├── client
├── van-ui
│ ├── common
│ │ ├── style
│ │ │ ├── var.wxss
│ │ │ ├── mixins
│ │ │ │ ├── clearfix.wxss
│ │ │ │ ├── ellipsis.wxss
│ │ │ │ └── hairline.wxss
│ │ │ ├── clearfix.wxss
│ │ │ ├── ellipsis.wxss
│ │ │ └── hairline.wxss
│ │ ├── utils.js
│ │ ├── class-names.js
│ │ └── index.wxss
│ ├── loading
│ │ ├── index.json
│ │ ├── index.js
│ │ └── index.wxml
│ ├── stepper
│ │ ├── index.json
│ │ └── index.wxml
│ ├── tab
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── tabs
│ │ └── index.json
│ ├── tag
│ │ ├── index.json
│ │ ├── index.wxml
│ │ ├── index.wxss
│ │ └── index.js
│ ├── badge
│ │ ├── index.json
│ │ ├── index.wxml
│ │ ├── index.js
│ │ └── index.wxss
│ ├── cell-group
│ │ ├── index.json
│ │ ├── index.wxss
│ │ ├── index.wxml
│ │ └── index.js
│ ├── col
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── icon
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── radio-group
│ │ ├── index.wxss
│ │ ├── index.wxml
│ │ ├── index.json
│ │ └── index.js
│ ├── row
│ │ ├── index.json
│ │ ├── index.wxss
│ │ ├── index.wxml
│ │ └── index.js
│ ├── slider
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.wxss
│ ├── tabbar
│ │ ├── index.json
│ │ ├── index.wxss
│ │ └── index.wxml
│ ├── transition
│ │ ├── index.json
│ │ ├── index.js
│ │ └── index.wxml
│ ├── badge-group
│ │ ├── index.json
│ │ ├── index.wxss
│ │ └── index.wxml
│ ├── checkbox-group
│ │ ├── index.wxss
│ │ ├── index.wxml
│ │ ├── index.json
│ │ └── index.js
│ ├── goods-action
│ │ ├── index.json
│ │ ├── index.js
│ │ ├── index.wxml
│ │ └── index.wxss
│ ├── progress
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.wxss
│ ├── goods-action-button
│ │ ├── index.wxss
│ │ ├── index.json
│ │ ├── index.js
│ │ └── index.wxml
│ ├── overlay
│ │ ├── index.wxss
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── cell
│ │ ├── index.json
│ │ └── index.wxml
│ ├── card
│ │ ├── index.json
│ │ ├── index.js
│ │ └── index.wxss
│ ├── notice-bar
│ │ ├── index.json
│ │ ├── index.wxss
│ │ └── index.wxml
│ ├── panel
│ │ ├── index.json
│ │ ├── index.wxss
│ │ ├── index.js
│ │ └── index.wxml
│ ├── radio
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.wxss
│ ├── steps
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── area
│ │ ├── index.json
│ │ ├── index.wxss
│ │ └── index.wxml
│ ├── button
│ │ ├── index.json
│ │ └── index.wxml
│ ├── checkbox
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.wxss
│ ├── nav-bar
│ │ ├── index.json
│ │ ├── index.js
│ │ ├── index.wxss
│ │ └── index.wxml
│ ├── popup
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── submit-bar
│ │ ├── index.json
│ │ ├── index.wxss
│ │ ├── index.wxml
│ │ └── index.js
│ ├── switch
│ │ ├── index.json
│ │ ├── index.wxml
│ │ ├── index.wxss
│ │ └── index.js
│ ├── tabbar-item
│ │ ├── index.json
│ │ ├── index.wxml
│ │ ├── index.js
│ │ └── index.wxss
│ ├── tree-select
│ │ ├── index.json
│ │ ├── index.wxss
│ │ └── index.wxml
│ ├── notify
│ │ ├── index.json
│ │ ├── index.wxss
│ │ ├── index.wxml
│ │ ├── notify.js
│ │ └── index.js
│ ├── switch-cell
│ │ ├── index.wxss
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── field
│ │ ├── index.json
│ │ └── index.wxss
│ ├── search
│ │ ├── index.json
│ │ ├── index.wxss
│ │ ├── index.wxml
│ │ └── index.js
│ ├── dialog
│ │ ├── index.json
│ │ └── index.wxss
│ ├── goods-action-icon
│ │ ├── index.json
│ │ ├── index.wxss
│ │ ├── index.js
│ │ └── index.wxml
│ ├── action-sheet
│ │ ├── index.json
│ │ ├── index.wxss
│ │ └── index.js
│ ├── toast
│ │ ├── index.json
│ │ ├── index.js
│ │ ├── index.wxss
│ │ └── index.wxml
│ └── mixins
│ │ ├── link.js
│ │ ├── button.js
│ │ ├── observer
│ │ ├── props.js
│ │ ├── index.js
│ │ └── behavior.js
│ │ ├── open-type.js
│ │ ├── basic.js
│ │ ├── touch.js
│ │ └── transition.js
├── pages
│ ├── work
│ │ ├── notice-content.json
│ │ ├── notice-submit.wxss
│ │ ├── video-submit.wxss
│ │ ├── video-player.json
│ │ ├── notices.wxss
│ │ ├── notice-submit.json
│ │ ├── video-submit.json
│ │ ├── video.json
│ │ ├── video.wxss
│ │ ├── index.json
│ │ ├── notice-content.wxml
│ │ ├── monthly.json
│ │ ├── notices.json
│ │ ├── video-player.wxss
│ │ ├── notice-content.wxss
│ │ ├── video-player.wxml
│ │ ├── fill-in-sheet.json
│ │ ├── notices.wxml
│ │ ├── video.wxml
│ │ ├── video-player.js
│ │ ├── notice-content.js
│ │ ├── notice-submit.js
│ │ └── notice-submit.wxml
│ ├── index
│ │ ├── profile.wxss
│ │ ├── profile.json
│ │ ├── index.json
│ │ └── index.wxss
│ ├── learning
│ │ ├── index.json
│ │ ├── free-rooms.json
│ │ ├── index.wxml
│ │ ├── index.js
│ │ └── index.wxss
│ └── about
│ │ ├── privacy.json
│ │ ├── opensource.json
│ │ ├── privacy.js
│ │ ├── opensource.wxss
│ │ ├── privacy.wxml
│ │ ├── privacy.wxss
│ │ └── opensource.js
├── zan-ui
│ ├── btn
│ │ ├── index.json
│ │ └── index.wxml
│ ├── cell
│ │ ├── index.json
│ │ └── index.wxml
│ ├── loading
│ │ ├── index.json
│ │ ├── index.js
│ │ └── index.wxml
│ ├── search
│ │ ├── index.json
│ │ └── index.wxml
│ ├── stepper
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.wxss
│ ├── tab
│ │ ├── index.json
│ │ └── index.wxss
│ ├── tag
│ │ ├── index.json
│ │ ├── index.wxml
│ │ ├── index.js
│ │ └── index.wxss
│ ├── toptips
│ │ ├── index.json
│ │ ├── index.wxml
│ │ ├── index.wxss
│ │ ├── toptips.js
│ │ └── index.js
│ ├── badge
│ │ ├── index.json
│ │ ├── index.wxml
│ │ ├── index.wxss
│ │ └── index.js
│ ├── capsule
│ │ ├── index.json
│ │ ├── index.js
│ │ ├── index.wxml
│ │ └── index.wxss
│ ├── card
│ │ ├── index.json
│ │ ├── index.js
│ │ └── index.wxml
│ ├── cell-group
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.wxss
│ ├── col
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── icon
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── panel
│ │ ├── index.json
│ │ ├── index.wxml
│ │ ├── index.js
│ │ └── index.wxss
│ ├── row
│ │ ├── index.json
│ │ ├── index.wxss
│ │ ├── index.wxml
│ │ └── index.js
│ ├── steps
│ │ ├── index.json
│ │ ├── index.js
│ │ └── index.wxml
│ ├── switch
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── btn-group
│ │ ├── index.json
│ │ ├── index.wxss
│ │ ├── index.wxml
│ │ └── index.js
│ ├── checkbox-group
│ │ ├── index.json
│ │ ├── index.wxml
│ │ ├── index.wxss
│ │ └── index.js
│ ├── loadmore
│ │ ├── index.json
│ │ ├── index.js
│ │ └── index.wxml
│ ├── common
│ │ └── pop-manager
│ │ │ ├── index.json
│ │ │ ├── index.wxml
│ │ │ └── index.js
│ ├── select
│ │ ├── index.wxss
│ │ ├── index.json
│ │ ├── index.js
│ │ └── index.wxml
│ ├── field
│ │ ├── index.json
│ │ └── index.wxss
│ ├── noticebar
│ │ ├── index.json
│ │ ├── index.wxss
│ │ └── index.wxml
│ ├── radio
│ │ ├── index.json
│ │ ├── index.js
│ │ └── index.wxml
│ ├── toast
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── actionsheet
│ │ ├── index.json
│ │ └── index.js
│ ├── checkbox
│ │ ├── index.json
│ │ ├── index.wxss
│ │ ├── index.wxml
│ │ └── index.js
│ ├── tree-select
│ │ ├── index.json
│ │ └── index.wxml
│ ├── popup
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.js
│ ├── datetime-picker
│ │ ├── index.json
│ │ ├── picker-view-column.wxml
│ │ ├── index.wxml
│ │ ├── index.wxss
│ │ └── date-picker-view.wxml
│ ├── index.js
│ ├── dialog
│ │ ├── index.json
│ │ ├── data.js
│ │ └── index.wxss
│ └── color
│ │ └── index.wxss
├── images
│ ├── me.png
│ ├── check.png
│ ├── free.png
│ ├── logo.jpg
│ ├── logo.png
│ ├── sheet.png
│ ├── study.png
│ ├── video.png
│ ├── work.png
│ ├── monthly.png
│ ├── notices.png
│ ├── learning.png
│ ├── logo-new.jpg
│ ├── logo-new.png
│ ├── not-free.png
│ ├── suxiexian.jpg
│ ├── upupming.jpeg
│ ├── check-active.png
│ ├── me-selected.png
│ ├── sheet-active.png
│ ├── study-active.png
│ ├── user-unlogin.png
│ ├── video-active.png
│ ├── logo-only-door.png
│ ├── monthly-active.png
│ ├── notices-active.png
│ ├── work-selected.png
│ ├── learning-selected.png
│ ├── work-selected-min.png
│ ├── switch.svg
│ ├── free.svg
│ ├── gmail.svg
│ ├── 1-active.svg
│ ├── 1.svg
│ ├── folder-open-fill.svg
│ ├── source-code.svg
│ ├── sheet.svg
│ ├── open-in-new.svg
│ ├── download.svg
│ ├── not-free.svg
│ ├── person.svg
│ ├── copyright.svg
│ ├── image.svg
│ ├── documentation.svg
│ ├── contributors.svg
│ ├── check.svg
│ ├── 3.svg
│ ├── 3-active.svg
│ ├── me.svg
│ ├── 2.svg
│ └── notices.svg
├── utils
│ ├── user-adapter.js
│ ├── update.js
│ ├── event.js
│ └── util.js
└── prototypes.js
├── .gitignore
├── images
├── logo.png
├── qrcode8x8.jpg
├── qrcode15x15.jpg
└── qrcode50x50.jpg
├── .notes
└── color.md
├── package.json
├── README.md
├── .eslintrc.json
├── project.config.json
└── LICENSE
/client/van-ui/common/style/var.wxss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/pages/work/notice-content.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/client/van-ui/common/style/mixins/clearfix.wxss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/van-ui/common/style/mixins/ellipsis.wxss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/van-ui/common/style/mixins/hairline.wxss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | videos.js
3 | videos
4 | .DS_Store
--------------------------------------------------------------------------------
/client/pages/index/profile.wxss:
--------------------------------------------------------------------------------
1 | /* pages/index/profile.wxss */
--------------------------------------------------------------------------------
/client/van-ui/loading/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/van-ui/stepper/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/van-ui/tab/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/van-ui/tabs/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/van-ui/tag/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/zan-ui/btn/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/zan-ui/cell/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/zan-ui/loading/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/zan-ui/search/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/zan-ui/stepper/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/zan-ui/tab/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/zan-ui/tag/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/zan-ui/toptips/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/van-ui/badge/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/van-ui/cell-group/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/van-ui/cell-group/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';
--------------------------------------------------------------------------------
/client/van-ui/col/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/van-ui/icon/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/van-ui/radio-group/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';
--------------------------------------------------------------------------------
/client/van-ui/row/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/van-ui/slider/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/van-ui/tabbar/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/van-ui/transition/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/zan-ui/badge/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/capsule/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/card/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/cell-group/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/zan-ui/col/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/icon/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/panel/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/row/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/steps/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/switch/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/van-ui/badge-group/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/van-ui/checkbox-group/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';
--------------------------------------------------------------------------------
/client/van-ui/goods-action/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/van-ui/progress/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/btn-group/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/checkbox-group/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
--------------------------------------------------------------------------------
/client/zan-ui/loadmore/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/btn-group/index.wxss:
--------------------------------------------------------------------------------
1 | .btn-group {
2 | margin: 15px;
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/common/pop-manager/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true
3 | }
4 |
--------------------------------------------------------------------------------
/client/zan-ui/row/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-row:after{content:"";display:table;clear:both}
--------------------------------------------------------------------------------
/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/images/logo.png
--------------------------------------------------------------------------------
/client/zan-ui/icon/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/client/zan-ui/row/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/client/images/me.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/me.png
--------------------------------------------------------------------------------
/images/qrcode8x8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/images/qrcode8x8.jpg
--------------------------------------------------------------------------------
/client/images/check.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/check.png
--------------------------------------------------------------------------------
/client/images/free.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/free.png
--------------------------------------------------------------------------------
/client/images/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/logo.jpg
--------------------------------------------------------------------------------
/client/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/logo.png
--------------------------------------------------------------------------------
/client/images/sheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/sheet.png
--------------------------------------------------------------------------------
/client/images/study.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/study.png
--------------------------------------------------------------------------------
/client/images/video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/video.png
--------------------------------------------------------------------------------
/client/images/work.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/work.png
--------------------------------------------------------------------------------
/client/van-ui/badge-group/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-badge-group{width:85px}
--------------------------------------------------------------------------------
/client/van-ui/checkbox-group/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/client/van-ui/common/style/clearfix.wxss:
--------------------------------------------------------------------------------
1 | .van-clearfix::after{content:'';display:table;clear:both}
--------------------------------------------------------------------------------
/client/van-ui/radio-group/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/client/zan-ui/btn-group/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/images/qrcode15x15.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/images/qrcode15x15.jpg
--------------------------------------------------------------------------------
/images/qrcode50x50.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/images/qrcode50x50.jpg
--------------------------------------------------------------------------------
/client/images/monthly.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/monthly.png
--------------------------------------------------------------------------------
/client/images/notices.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/notices.png
--------------------------------------------------------------------------------
/client/van-ui/goods-action-button/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';:host{-webkit-flex:1;flex:1}
--------------------------------------------------------------------------------
/client/images/learning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/learning.png
--------------------------------------------------------------------------------
/client/images/logo-new.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/logo-new.jpg
--------------------------------------------------------------------------------
/client/images/logo-new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/logo-new.png
--------------------------------------------------------------------------------
/client/images/not-free.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/not-free.png
--------------------------------------------------------------------------------
/client/images/suxiexian.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/suxiexian.jpg
--------------------------------------------------------------------------------
/client/images/upupming.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/upupming.jpeg
--------------------------------------------------------------------------------
/client/van-ui/goods-action/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent();
--------------------------------------------------------------------------------
/client/van-ui/tag/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/client/zan-ui/checkbox-group/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/client/images/check-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/check-active.png
--------------------------------------------------------------------------------
/client/images/me-selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/me-selected.png
--------------------------------------------------------------------------------
/client/images/sheet-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/sheet-active.png
--------------------------------------------------------------------------------
/client/images/study-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/study-active.png
--------------------------------------------------------------------------------
/client/images/user-unlogin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/user-unlogin.png
--------------------------------------------------------------------------------
/client/images/video-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/video-active.png
--------------------------------------------------------------------------------
/client/van-ui/goods-action/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/client/van-ui/row/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-row::after{content:"";display:table;clear:both}
--------------------------------------------------------------------------------
/client/images/logo-only-door.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/logo-only-door.png
--------------------------------------------------------------------------------
/client/images/monthly-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/monthly-active.png
--------------------------------------------------------------------------------
/client/images/notices-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/notices-active.png
--------------------------------------------------------------------------------
/client/images/work-selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/work-selected.png
--------------------------------------------------------------------------------
/client/van-ui/row/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/client/images/learning-selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/learning-selected.png
--------------------------------------------------------------------------------
/client/images/work-selected-min.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upupming/HITMers/HEAD/client/images/work-selected-min.png
--------------------------------------------------------------------------------
/client/van-ui/overlay/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-overlay{position:fixed;top:0;left:0;right:0;bottom:0}
--------------------------------------------------------------------------------
/client/van-ui/col/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/client/zan-ui/select/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-select__list .zan-select__radio{position:absolute;top:0;bottom:0;left:0;right:0;opacity:0}
--------------------------------------------------------------------------------
/client/van-ui/cell/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index"
5 | }
6 | }
--------------------------------------------------------------------------------
/client/zan-ui/field/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "zan-cell": "../cell/index"
5 | }
6 | }
--------------------------------------------------------------------------------
/client/pages/work/notice-submit.wxss:
--------------------------------------------------------------------------------
1 | .container {
2 | padding: 45rpx 15rpx 0;
3 | }
4 |
5 | .input {
6 | height: 500rpx;
7 | }
--------------------------------------------------------------------------------
/client/pages/work/video-submit.wxss:
--------------------------------------------------------------------------------
1 | .container {
2 | padding: 45rpx 15rpx 0;
3 | }
4 |
5 | .input {
6 | height: 500rpx;
7 | }
--------------------------------------------------------------------------------
/client/van-ui/badge-group/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/client/van-ui/card/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-tag": "../tag/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/notice-bar/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index"
5 | }
6 | }
--------------------------------------------------------------------------------
/client/van-ui/panel/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-cell": "../cell/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/radio/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/steps/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/zan-ui/noticebar/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "zan-icon": "../icon/index"
5 | }
6 | }
--------------------------------------------------------------------------------
/client/zan-ui/radio/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "zan-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/zan-ui/toast/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "zan-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/area/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-loading": "../loading/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/button/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-loading": "../loading/index"
5 | }
6 | }
--------------------------------------------------------------------------------
/client/van-ui/checkbox/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/nav-bar/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/zan-ui/actionsheet/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "zan-btn": "../btn/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/zan-ui/cell-group/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/client/zan-ui/checkbox-group/index.wxss:
--------------------------------------------------------------------------------
1 | .checkbox-group{padding-bottom:10px;background-color:#fff}.checkbox-group .zan-checkbox{margin-top:10px}
--------------------------------------------------------------------------------
/client/zan-ui/checkbox/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "zan-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/checkbox-group/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/popup/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-overlay": "../overlay/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/radio-group/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/submit-bar/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-button": "../button/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/switch/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-loading": "../loading/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/tabbar-item/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/tree-select/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/zan-ui/tree-select/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "zan-icon": "../icon/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/notify/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-transition": "../transition/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/overlay/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-transition": "../transition/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/cell-group/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/client/van-ui/goods-action-button/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-button": "../button/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/zan-ui/popup/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "pop-manager": "../common/pop-manager/index"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/client/van-ui/goods-action/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-goods-action{left:0;right:0;bottom:0;display:-webkit-flex;display:flex;position:fixed}
--------------------------------------------------------------------------------
/client/van-ui/panel/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-panel{background:#fff}.van-panel__header-value{color:#f44}.van-panel__footer{padding:10px 15px}
--------------------------------------------------------------------------------
/client/van-ui/switch-cell/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-switch-cell{padding-top:8px;padding-bottom:8px}.van-switch-cell__switch{vertical-align:middle}
--------------------------------------------------------------------------------
/client/zan-ui/col/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/client/zan-ui/datetime-picker/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "pop-manager": "../common/pop-manager/index"
5 | }
6 | }
--------------------------------------------------------------------------------
/client/van-ui/field/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-cell": "../cell/index",
5 | "van-icon": "../icon/index"
6 | }
7 | }
--------------------------------------------------------------------------------
/client/zan-ui/toptips/index.wxml:
--------------------------------------------------------------------------------
1 | {{ content }}
2 |
--------------------------------------------------------------------------------
/client/van-ui/search/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index",
5 | "van-field": "../field/index"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/client/zan-ui/icon/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | properties: {
5 | type: {
6 | type: String,
7 | value: ''
8 | }
9 | }
10 | });
--------------------------------------------------------------------------------
/client/zan-ui/select/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "zan-icon": "../icon/index",
5 | "zan-cell": "../cell/index"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/client/pages/learning/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "van-toast": "../../van-ui/toast/index",
4 | "van-notify": "../../van-ui/notify/index"
5 | }
6 | }
--------------------------------------------------------------------------------
/client/van-ui/dialog/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-popup": "../popup/index",
5 | "van-button": "../button/index"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/client/van-ui/switch-cell/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-cell": "../cell/index",
5 | "van-switch": "../switch/index"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/client/zan-ui/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | exports.Dialog = require('./dialog/dialog');
4 | exports.Toast = require('./toast/toast');
5 | exports.TopTips = require('./toptips/toptips');
--------------------------------------------------------------------------------
/client/van-ui/goods-action-icon/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index",
5 | "van-button": "../button/index"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/client/van-ui/tab/index.wxml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/client/zan-ui/dialog/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "pop-manager": "../common/pop-manager/index",
5 | "zan-button": "../btn/index"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/client/pages/work/video-player.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "zan-loading": "../../zan-ui/loading/index",
4 |
5 | "van-toast": "../../van-ui/toast/index"
6 | }
7 | }
--------------------------------------------------------------------------------
/client/van-ui/tabbar/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-tabbar{width:100%;height:50px;display:-webkit-flex;display:flex;background-color:#fff}.van-tabbar--fixed{left:0;bottom:0;position:fixed}
--------------------------------------------------------------------------------
/client/van-ui/cell-group/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | props: {
4 | border: {
5 | type: Boolean,
6 | value: true
7 | }
8 | }
9 | });
--------------------------------------------------------------------------------
/client/zan-ui/popup/index.wxml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/client/zan-ui/row/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | externalClasses: ['row-class'],
5 |
6 | relations: {
7 | '../col/index': {
8 | type: 'child'
9 | }
10 | }
11 | });
--------------------------------------------------------------------------------
/client/van-ui/notify/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-notify{top:0;width:100%;z-index:110;color:#fff;position:fixed;min-height:32px;line-height:2.3;font-size:14px;text-align:center;background-color:#e64340}
--------------------------------------------------------------------------------
/client/van-ui/action-sheet/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index",
5 | "van-popup": "../popup/index",
6 | "van-loading": "../loading/index"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/client/pages/about/privacy.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "van-toast": "../../van-ui/toast/index",
4 | "van-cell": "../../van-ui/cell/index",
5 | "van-cell-group": "../../van-ui/cell-group/index"
6 | }
7 | }
--------------------------------------------------------------------------------
/client/van-ui/tabbar/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/client/zan-ui/tag/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/client/pages/about/opensource.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "van-toast": "../../van-ui/toast/index",
4 | "van-cell": "../../van-ui/cell/index",
5 | "van-cell-group": "../../van-ui/cell-group/index"
6 | }
7 | }
--------------------------------------------------------------------------------
/client/zan-ui/loading/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | properties: {
5 | type: {
6 | type: String,
7 | value: 'circle'
8 | },
9 | color: {
10 | type: String
11 | }
12 | }
13 | });
--------------------------------------------------------------------------------
/client/van-ui/badge/index.wxml:
--------------------------------------------------------------------------------
1 |
2 | {{ info }}
3 | {{ title }}
4 |
5 |
--------------------------------------------------------------------------------
/client/van-ui/notify/index.wxml:
--------------------------------------------------------------------------------
1 |
7 | {{ text }}
8 |
9 |
--------------------------------------------------------------------------------
/client/pages/learning/free-rooms.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "zan-loading": "../../zan-ui/loading/index",
4 |
5 | "van-tabbar": "../../van-ui/tabbar/index",
6 | "van-tabbar-item": "../../van-ui/tabbar-item/index"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/client/zan-ui/loadmore/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | properties: {
5 | type: {
6 | type: String,
7 | value: 'loading'
8 | },
9 | text: {
10 | type: String,
11 | value: ''
12 | }
13 | }
14 | });
--------------------------------------------------------------------------------
/client/van-ui/toast/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": true,
3 | "usingComponents": {
4 | "van-icon": "../icon/index",
5 | "van-loading": "../loading/index",
6 | "van-overlay": "../overlay/index",
7 | "van-transition": "../transition/index"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/client/zan-ui/color/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-c-red{color:#f44!important}.zan-c-gray{color:#c9c9c9!important}.zan-c-gray-dark{color:#999!important}.zan-c-gray-darker{color:#666!important}.zan-c-black{color:#333!important}.zan-c-blue{color:#38f!important}.zan-c-green{color:#06bf04!important}
--------------------------------------------------------------------------------
/client/van-ui/common/utils.js:
--------------------------------------------------------------------------------
1 | function isDef(value) {
2 | return value !== undefined && value !== null;
3 | }
4 |
5 | function isObj(x) {
6 | var type = typeof x;
7 | return x !== null && (type === 'object' || type === 'function');
8 | }
9 |
10 | export { isObj, isDef };
--------------------------------------------------------------------------------
/client/van-ui/overlay/index.wxml:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/client/zan-ui/badge/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/client/van-ui/panel/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | classes: ['footer-class'],
4 | props: {
5 | desc: String,
6 | title: String,
7 | status: String,
8 | headerClass: String,
9 | useFooterSlot: Boolean
10 | }
11 | });
--------------------------------------------------------------------------------
/client/van-ui/transition/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | import { transition } from '../mixins/transition';
3 | VantComponent({
4 | mixins: [transition(true)],
5 | props: {
6 | name: {
7 | type: String,
8 | value: 'fade'
9 | }
10 | }
11 | });
--------------------------------------------------------------------------------
/client/pages/work/notices.wxss:
--------------------------------------------------------------------------------
1 | .title {
2 | font-size: 50rpx;
3 | font-weight: bold;
4 | margin-left: 20rpx;
5 | margin-bottom: 10rpx;
6 | }
7 |
8 | .add {
9 | position: fixed;
10 | bottom: 20rpx;
11 | right: 40rpx;
12 | font-size: 80rpx;
13 | color: #25EC7E;
14 | }
15 |
--------------------------------------------------------------------------------
/client/zan-ui/panel/index.wxml:
--------------------------------------------------------------------------------
1 |
2 | {{ title }}
5 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/client/van-ui/common/style/ellipsis.wxss:
--------------------------------------------------------------------------------
1 | .van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2}.van-multi-ellipsis--l3{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3}
--------------------------------------------------------------------------------
/client/van-ui/transition/index.wxml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/client/van-ui/icon/index.wxml:
--------------------------------------------------------------------------------
1 |
6 | {{ info }}
7 |
8 |
--------------------------------------------------------------------------------
/client/zan-ui/datetime-picker/picker-view-column.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{item}}
4 |
5 | {{ tip }}
6 |
--------------------------------------------------------------------------------
/client/van-ui/loading/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | props: {
4 | size: {
5 | type: String,
6 | value: '30px'
7 | },
8 | type: {
9 | type: String,
10 | value: 'circular'
11 | },
12 | color: {
13 | type: String,
14 | value: '#c9c9c9'
15 | }
16 | }
17 | });
--------------------------------------------------------------------------------
/client/zan-ui/common/pop-manager/index.wxml:
--------------------------------------------------------------------------------
1 |
4 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/client/zan-ui/tag/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | externalClasses: ['custom-class', 'theme-class'],
5 |
6 | properties: {
7 | type: {
8 | type: String
9 | },
10 | plain: {
11 | type: Boolean,
12 | value: false
13 | },
14 | disabled: {
15 | type: Boolean,
16 | value: false
17 | }
18 | }
19 | });
--------------------------------------------------------------------------------
/.notes/color.md:
--------------------------------------------------------------------------------
1 | # HITMers color redesign
2 |
3 | 60% + 30% + 10%
4 |
5 | - dominant hue (60%): White
6 | - secondary color: Blue
7 | - accent color: Yellow
8 |
9 | Color used: https://coolors.co/423b0b-ff7e6b-97d2fb-f7cb15-b5fed9
10 |
11 | ## Useful links
12 |
13 | 1. [How to use colors in UI Design](https://blog.prototypr.io/how-to-use-colors-in-ui-design-16406ec06753)
--------------------------------------------------------------------------------
/client/pages/work/notice-submit.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "van-toast": "../../van-ui/toast/index",
4 | "van-notify": "../../van-ui/notify/index",
5 | "van-popup": "../../van-ui/popup/index",
6 | "van-panel": "../../van-ui/panel/index",
7 | "van-field": "../../van-ui/field/index",
8 | "van-cell": "../../van-ui/cell/index"
9 | }
10 | }
--------------------------------------------------------------------------------
/client/pages/work/video-submit.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "van-toast": "../../van-ui/toast/index",
4 | "van-notify": "../../van-ui/notify/index",
5 | "van-popup": "../../van-ui/popup/index",
6 | "van-panel": "../../van-ui/panel/index",
7 | "van-field": "../../van-ui/field/index",
8 | "van-cell": "../../van-ui/cell/index"
9 | }
10 | }
--------------------------------------------------------------------------------
/client/zan-ui/col/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | externalClasses: ['col-class'],
5 |
6 | relations: {
7 | '../row/index': {
8 | type: 'parent'
9 | }
10 | },
11 |
12 | properties: {
13 | col: {
14 | value: 0,
15 | type: Number
16 | },
17 | offset: {
18 | value: 0,
19 | type: Number
20 | }
21 | }
22 | });
--------------------------------------------------------------------------------
/client/zan-ui/toptips/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-toptips{display:block;position:fixed;-webkit-transform:translateZ(0) translateY(-100%);width:100%;min-height:32px;top:0;line-height:2.3;font-size:14px;text-align:center;color:#fff;background-color:#e64340;z-index:110;opacity:0;-webkit-transition:all .4s ease;transition:all .4s ease}.zan-toptips--show{-webkit-transform:translateZ(0) translateY(0);opacity:1}
--------------------------------------------------------------------------------
/client/van-ui/switch/index.wxml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/client/zan-ui/cell-group/index.wxss:
--------------------------------------------------------------------------------
1 | .cell-group{position:relative;background-color:#fff;overflow:hidden}.cell-group--with-border::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-top-width:1px;border-bottom-width:1px}
--------------------------------------------------------------------------------
/client/van-ui/goods-action-icon/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-goods-action-icon{width:50px!important;border:none!important}.van-goods-action-icon__content{height:100%;display:-webkit-flex;display:flex;line-height:1;font-size:10px;color:#666;-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:center;justify-content:center}.van-goods-action-icon__icon{margin-bottom:5px}
--------------------------------------------------------------------------------
/client/van-ui/switch-cell/index.wxml:
--------------------------------------------------------------------------------
1 |
7 |
15 |
16 |
--------------------------------------------------------------------------------
/client/pages/learning/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{language.freeRooms}}
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/client/pages/work/video.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "zan-loading": "../../zan-ui/loading/index",
4 |
5 | "van-cell": "../../van-ui/cell/index",
6 | "van-cell-group": "../../van-ui/cell-group/index",
7 | "van-toast": "../../van-ui/toast/index",
8 | "van-notify": "../../van-ui/notify/index",
9 | "van-icon": "../../van-ui/icon/index"
10 | },
11 | "enablePullDownRefresh": true
12 | }
--------------------------------------------------------------------------------
/client/pages/index/profile.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "van-toast": "../../van-ui/toast/index",
4 | "van-notify": "../../van-ui/notify/index",
5 | "van-cell": "../../van-ui/cell/index",
6 | "van-cell-group": "../../van-ui/cell-group/index",
7 | "van-popup": "../../van-ui/popup/index",
8 | "van-field": "../../van-ui/field/index",
9 |
10 | "zan-panel": "../../zan-ui/panel/index"
11 | }
12 | }
--------------------------------------------------------------------------------
/client/pages/work/video.wxss:
--------------------------------------------------------------------------------
1 | .footer {
2 | position: fixed;
3 | left: 0;
4 | bottom: 0;
5 | width: 100%;
6 | background-color: #242729;
7 | color: white;
8 | text-align: center;
9 | border-top-left-radius: 3px;
10 | border-top-right-radius: 3px;
11 | }
12 |
13 |
14 | .add {
15 | position: fixed;
16 | bottom: 20rpx;
17 | right: 40rpx;
18 | font-size: 80rpx;
19 | color: #25EC7E;
20 | }
21 |
--------------------------------------------------------------------------------
/client/van-ui/icon/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | props: {
4 | info: null,
5 | name: String,
6 | size: String,
7 | color: String,
8 | customStyle: String,
9 | classPrefix: {
10 | type: String,
11 | value: 'van-icon'
12 | }
13 | },
14 | methods: {
15 | onClick: function onClick() {
16 | this.$emit('click');
17 | }
18 | }
19 | });
--------------------------------------------------------------------------------
/client/van-ui/progress/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 | {{ text }}
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/client/van-ui/slider/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/client/zan-ui/badge/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-badge{position:relative}.zan-badge__text{position:absolute;top:-.8em;right:0;height:1.6em;min-width:1.6em;line-height:1.6;padding:0 .4em;font-size:20px;border-radius:.8em;background:#f44;color:#fff;text-align:center;white-space:nowrap;-webkit-transform:translateX(50%) scale(.5);transform:translateX(50%) scale(.5);-webkit-transform-origin:center;transform-origin:center;z-index:10;box-shadow:0 0 0 2px #fff;box-sizing:border-box}
--------------------------------------------------------------------------------
/client/van-ui/loading/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
9 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/client/van-ui/overlay/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | props: {
4 | show: Boolean,
5 | mask: Boolean,
6 | customStyle: String,
7 | zIndex: {
8 | type: Number,
9 | value: 1
10 | }
11 | },
12 | methods: {
13 | onClick: function onClick() {
14 | this.$emit('click');
15 | },
16 | // for prevent touchmove
17 | noop: function noop() {}
18 | }
19 | });
--------------------------------------------------------------------------------
/client/zan-ui/panel/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | /**
5 | * 组件的属性列表
6 | * 用于组件自定义设置
7 | */
8 | properties: {
9 | // 标题
10 | title: {
11 | type: String,
12 | value: ''
13 | },
14 | // 内容区顶部是否取消10像素的间距
15 | hideTop: {
16 | type: Boolean,
17 | value: false
18 | },
19 | // 内容区顶部是否取消边框
20 | hideBorder: {
21 | type: Boolean,
22 | value: false
23 | }
24 | }
25 | });
--------------------------------------------------------------------------------
/client/zan-ui/steps/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | externalClasses: ['steps-class', 'icon-class', 'title-class', 'desc-class'],
5 | properties: {
6 | type: {
7 | type: String,
8 | value: 'horizon'
9 | },
10 |
11 | hasDesc: {
12 | type: Boolean,
13 | value: false
14 | },
15 |
16 | steps: { // 必须
17 | type: Array,
18 | value: []
19 | },
20 |
21 | className: String
22 | }
23 | });
--------------------------------------------------------------------------------
/client/van-ui/tag/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-tag{color:#fff;font-size:10px;padding:.2em .5em;line-height:normal;border-radius:.2em;display:inline-block}.van-tag::after{border-color:currentColor;border-radius:.4em}.van-tag--mark{padding-right:.6em;border-radius:0 .8em .8em 0}.van-tag--mark::after{border-radius:0 1.6em 1.6em 0}.van-tag--round{border-radius:.8em}.van-tag--round::after{border-radius:1.6em}.van-tag--medium{font-size:12px}.van-tag--large{font-size:14px}
--------------------------------------------------------------------------------
/client/zan-ui/switch/index.wxml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/client/pages/work/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "zan-panel": "../../zan-ui/panel/index",
4 | "zan-icon": "../../zan-ui/icon/index",
5 | "zan-cell": "../../zan-ui/cell/index",
6 | "zan-cell-group": "../../zan-ui/cell-group/index",
7 | "zan-dialog": "../../zan-ui/dialog/index",
8 | "zan-toast": "../../zan-ui/toast/index",
9 |
10 | "van-toast": "../../van-ui/toast/index",
11 | "van-notify": "../../van-ui/notify/index"
12 | }
13 | }
--------------------------------------------------------------------------------
/client/van-ui/mixins/link.js:
--------------------------------------------------------------------------------
1 | export var link = Behavior({
2 | properties: {
3 | url: String,
4 | linkType: {
5 | type: String,
6 | value: 'navigateTo'
7 | }
8 | },
9 | methods: {
10 | jumpLink: function jumpLink(urlKey) {
11 | if (urlKey === void 0) {
12 | urlKey = 'url';
13 | }
14 |
15 | var url = this.data[urlKey];
16 |
17 | if (url) {
18 | wx[this.data.linkType]({
19 | url: url
20 | });
21 | }
22 | }
23 | }
24 | });
--------------------------------------------------------------------------------
/client/zan-ui/loadmore/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 加载中...
5 |
6 |
7 |
8 | {{ text }}
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/client/zan-ui/card/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | options: {
5 | multipleSlots: true
6 | },
7 |
8 | externalClasses: ['card-class', 'thumb-class'],
9 |
10 | properties: {
11 | useThumbSlot: {
12 | type: Boolean,
13 | value: false
14 | },
15 | useDetailSlot: {
16 | type: Boolean,
17 | value: false
18 | },
19 | thumb: String,
20 | price: String,
21 | title: String,
22 | num: Number,
23 | desc: String,
24 | status: String
25 | }
26 | });
--------------------------------------------------------------------------------
/client/pages/work/notice-content.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{subject}}
4 |
5 | {{time}}
6 | {{user}}
7 |
8 | {{content}}
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/client/pages/work/monthly.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "calendar": "plugin://calendar/calendar",
4 | "zan-dialog": "../../zan-ui/dialog/index",
5 | "zan-cell": "../../zan-ui/cell/index",
6 | "zan-cell-group": "../../zan-ui/cell-group/index",
7 | "zan-loading": "../../zan-ui/loading/index",
8 | "zan-toast": "../../zan-ui/toast/index",
9 | "van-icon": "../../van-ui/icon/index",
10 | "van-field": "../../van-ui/field/index"
11 | },
12 | "enablePullDownRefresh": true
13 | }
--------------------------------------------------------------------------------
/client/van-ui/goods-action-icon/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | import { link } from '../mixins/link';
3 | import { button } from '../mixins/button';
4 | import { openType } from '../mixins/open-type';
5 | VantComponent({
6 | mixins: [link, button, openType],
7 | props: {
8 | text: String,
9 | info: String,
10 | icon: String
11 | },
12 | methods: {
13 | onClick: function onClick(event) {
14 | this.$emit('click', event.detail);
15 | this.jumpLink();
16 | }
17 | }
18 | });
--------------------------------------------------------------------------------
/client/van-ui/checkbox/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/client/van-ui/slider/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-slider{position:relative;border-radius:999px;background-color:#e5e5e5}.van-slider__bar{position:relative;border-radius:inherit;background-color:#38f}.van-slider__button{position:absolute;top:50%;right:0;width:20px;height:20px;border-radius:50%;background-color:#fff;-webkit-transform:translate3d(50%,-50%,0);transform:translate3d(50%,-50%,0);box-shadow:0 1px 2px rgba(0,0,0,.5)}.van-slider__button::after{content:'';position:absolute;width:200%;height:200%;top:-50%;left:-50%}.van-slider--disabled{opacity:.3}
--------------------------------------------------------------------------------
/client/zan-ui/panel/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-panel{position:relative;overflow:hidden}.zan-panel__title{font-size:14px;line-height:1;color:#999;padding:20px 15px 10px 15px}.zan-panel__content{position:relative;background:#fff;overflow:hidden}.zan-panel__content::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-top-width:1px;border-bottom-width:1px}.zan-panel--without-border::after{border:0 none}
--------------------------------------------------------------------------------
/client/zan-ui/capsule/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | externalClasses: ['custom-class'],
5 | /**
6 | * 组件的属性列表
7 | * 用于组件自定义设置
8 | */
9 | properties: {
10 | // 颜色状态
11 | type: {
12 | type: String,
13 | value: ''
14 | },
15 | // 自定义颜色
16 | color: {
17 | type: String,
18 | value: ''
19 | },
20 | // 左侧内容
21 | leftText: {
22 | type: String,
23 | value: ''
24 | },
25 | // 右侧内容
26 | rightText: {
27 | type: String,
28 | value: ''
29 | }
30 | }
31 | });
--------------------------------------------------------------------------------
/client/zan-ui/dialog/data.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | module.exports = {
4 | // 标题
5 | title: '',
6 | // 内容
7 | message: ' ',
8 | // 选择节点
9 | selector: '#zan-dialog',
10 | // 按钮是否展示为纵向
11 | buttonsShowVertical: false,
12 | // 是否展示确定
13 | showConfirmButton: true,
14 | // 确认按钮文案
15 | confirmButtonText: '确定',
16 | // 确认按钮颜色
17 | confirmButtonColor: '#3CC51F',
18 | // 是否展示取消
19 | showCancelButton: false,
20 | // 取消按钮文案
21 | cancelButtonText: '取消',
22 | // 取消按钮颜色
23 | cancelButtonColor: '#333',
24 | // 点击按钮自动关闭 dialog
25 | autoClose: true
26 | };
--------------------------------------------------------------------------------
/client/zan-ui/noticebar/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-noticebar{display:-webkit-box;display:flex;padding:9px 10px;font-size:12px;line-height:1.5}.zan-noticebar--within-icon{position:relative;padding-right:30px}.zan-noticebar__left-icon{height:18px;min-width:20px;padding-top:1px;box-sizing:border-box}.zan-noticebar__left-icon>image{width:16px;height:16px}.zan-noticebar__right-icon{position:absolute;top:10px;right:10px;font-size:15px;line-height:1}.zan-noticebar__content-wrap{position:relative;-webkit-box-flex:1;flex:1;height:18px;overflow:hidden}.zan-noticebar__content{position:absolute;white-space:nowrap}
--------------------------------------------------------------------------------
/client/van-ui/mixins/button.js:
--------------------------------------------------------------------------------
1 | export var button = Behavior({
2 | properties: {
3 | id: String,
4 | sessionFrom: String,
5 | appParameter: String,
6 | sendMessageImg: String,
7 | sendMessagePath: String,
8 | showMessageCard: String,
9 | sendMessageTitle: String,
10 | hoverStopPropagation: Boolean,
11 | hoverStartTime: {
12 | type: Number,
13 | value: 20
14 | },
15 | hoverStayTime: {
16 | type: Number,
17 | value: 70
18 | },
19 | lang: {
20 | type: String,
21 | value: 'en'
22 | }
23 | }
24 | });
--------------------------------------------------------------------------------
/client/van-ui/nav-bar/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | classes: ['title-class'],
4 | props: {
5 | title: String,
6 | leftText: String,
7 | rightText: String,
8 | leftArrow: Boolean,
9 | fixed: Boolean,
10 | zIndex: {
11 | type: Number,
12 | value: 1
13 | }
14 | },
15 | methods: {
16 | onClickLeft: function onClickLeft() {
17 | this.$emit('click-left');
18 | },
19 | onClickRight: function onClickRight() {
20 | this.$emit('click-right');
21 | }
22 | }
23 | });
--------------------------------------------------------------------------------
/client/van-ui/progress/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-progress{height:4px;position:relative;border-radius:4px;background:#e5e5e5}.van-progress__portion{left:0;height:100%;position:absolute;border-radius:inherit}.van-progress__portion--with-pivot{border-top-right-radius:0;border-bottom-right-radius:0}.van-progress__pivot{top:50%;right:0;min-width:2em;padding:0 5px;font-size:10px;position:absolute;line-height:1.6;text-align:center;border-radius:1em;word-break:keep-all;box-sizing:border-box;background-color:#e5e5e5;-webkit-transform:translate(100%,-50%);transform:translate(100%,-50%)}
--------------------------------------------------------------------------------
/client/pages/about/privacy.js:
--------------------------------------------------------------------------------
1 | import event from '../../utils/event';
2 |
3 | Page({
4 | data: {
5 | },
6 |
7 | onLoad: function () {
8 | this.setLanguage();
9 | event.on('languageChanged', this, this.setLanguage);
10 | },
11 | setLanguage() {
12 | this.setData({
13 | language: wx.T.getLanguage()
14 | });
15 | this.data.shouldChangeTitle = true;
16 | },
17 | onShow() {
18 | if (this.data.shouldChangeTitle) {
19 | wx.T.setNavigationBarTitle();
20 | this.data.shouldChangeTitle = false;
21 | }
22 | }
23 | });
--------------------------------------------------------------------------------
/client/van-ui/popup/index.wxml:
--------------------------------------------------------------------------------
1 |
8 |
16 |
--------------------------------------------------------------------------------
/client/zan-ui/checkbox/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-checkbox{display:inline-block;padding:0 10px;font-size:14px}.zan-checkbox__item{display:block;margin-top:10px}.zan-checkbox__list-item{display:block;padding:10px 10px 10px 0;margin-left:10px;border-bottom:1px solid #e5e5e5}.zan-checkbox__list-item .zan-checkbox__icon{float:right}.zan-checkbox__icon{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;color:#aaa}.zan-checkbox__icon.zan-checkbox--checked{color:#06bf04}.zan-checkbox__icon.zan-checkbox--disabled{color:#e5e5e5}.zan-checkbox__label{display:inline-block;margin-left:10px}
--------------------------------------------------------------------------------
/client/pages/about/opensource.wxss:
--------------------------------------------------------------------------------
1 | .icon {
2 | width: 30rpx;
3 | height: 30rpx;
4 | padding: 20rpx 20rpx 0 0;
5 | }
6 |
7 | .title {
8 | padding-top: 20rpx;
9 | text-align: center;
10 | }
11 |
12 | .para {
13 | padding: 10rpx;
14 | font-size: 30rpx;
15 | text-align: left;
16 | }
17 |
18 | .link {
19 | color: blue;
20 | }
21 |
22 | .contributors {
23 | text-align: center;
24 | }
25 |
26 | .contributor {
27 | padding-top: 30rpx;
28 | width: 25%;
29 | float: left;
30 | }
31 |
32 | .avatar {
33 | width: 80rpx;
34 | height: 80rpx;
35 | }
--------------------------------------------------------------------------------
/client/utils/user-adapter.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | getClientUser(serverUser) {
3 | let clientUser = serverUser;
4 |
5 | clientUser.stuId = serverUser.id;
6 | clientUser.stuName = serverUser.name;
7 | clientUser.stuLanguage = serverUser.language;
8 |
9 | return clientUser;
10 | },
11 |
12 | getServerUser(clientUser) {
13 | let serverUser = clientUser;
14 |
15 | serverUser.id = clientUser.stuId;
16 | serverUser.name = clientUser.stuName;
17 | serverUser.language = clientUser.stuLanguage;
18 |
19 | return serverUser;
20 | }
21 | };
--------------------------------------------------------------------------------
/client/van-ui/submit-bar/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-submit-bar{z-index:100;position:fixed;bottom:0;left:0;width:100%;-webkit-user-select:none;user-select:none}.van-submit-bar__tip{padding:10px;color:#f56723;font-size:12px;line-height:18px;background-color:#fff7cc}.van-submit-bar__bar{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;height:50px;background-color:#fff;font-size:14px}.van-submit-bar__text{-webkit-flex:1;flex:1;color:#333;font-weight:500;text-align:right}.van-submit-bar__price{padding-right:12px;color:#f44}.van-submit-bar__button button{width:110px}
--------------------------------------------------------------------------------
/client/zan-ui/checkbox/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/client/van-ui/badge/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | relation: {
4 | type: 'ancestor',
5 | name: 'badge-group'
6 | },
7 | props: {
8 | info: Number,
9 | title: String
10 | },
11 | methods: {
12 | onClick: function onClick() {
13 | var group = this.getRelationNodes('../badge-group/index')[0];
14 |
15 | if (group) {
16 | group.setActive(this);
17 | }
18 | },
19 | setActive: function setActive(active) {
20 | this.setData({
21 | active: active
22 | });
23 | }
24 | }
25 | });
--------------------------------------------------------------------------------
/client/van-ui/panel/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
--------------------------------------------------------------------------------
/client/zan-ui/select/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | properties: {
5 | items: {
6 | type: Array,
7 | value: []
8 | },
9 | name: {
10 | type: String,
11 | value: ''
12 | },
13 | checkedValue: {
14 | type: String,
15 | value: ''
16 | },
17 | activeColor: {
18 | type: String,
19 | value: '#ff4444'
20 | }
21 | },
22 |
23 | methods: {
24 | handleSelectChange: function handleSelectChange(e) {
25 | var value = e.detail.value;
26 | this.triggerEvent('change', { value: value });
27 | }
28 | }
29 | });
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hitmers",
3 | "version": "1.2.0",
4 | "description": "For HIT Musuemers",
5 | "main": "app.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/upupming/HITMers.git"
12 | },
13 | "keywords": [
14 | "museum",
15 | "HIT"
16 | ],
17 | "author": "upupming",
18 | "license": "MIT",
19 | "bugs": {
20 | "url": "https://github.com/upupming/HITMers/issues"
21 | },
22 | "homepage": "https://github.com/upupming/HITMers#readme"
23 | }
24 |
--------------------------------------------------------------------------------
/client/images/switch.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/zan-ui/capsule/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ leftText }}
7 | {{ rightText }}
11 |
12 |
13 | {{ leftText }}
14 | {{ rightText }}
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/client/pages/work/notices.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "zan-loading": "../../zan-ui/loading/index",
4 |
5 | "van-toast": "../../van-ui/toast/index",
6 | "van-notify": "../../van-ui/notify/index",
7 | "van-card": "../../van-ui/card/index",
8 | "van-cell": "../../van-ui/cell/index",
9 | "van-cell-group": "../../van-ui/cell-group/index",
10 | "van-icon": "../../van-ui/icon/index",
11 | "van-popup": "../../van-ui/popup/index",
12 | "van-panel": "../../van-ui/panel/index",
13 | "van-field": "../../van-ui/field/index"
14 | },
15 | "enablePullDownRefresh": true
16 | }
--------------------------------------------------------------------------------
/client/pages/work/video-player.wxss:
--------------------------------------------------------------------------------
1 | .container {
2 | padding: 45rpx 0 0;
3 | }
4 |
5 | .title {
6 | padding: 20rpx;
7 | text-align: center;
8 | font-size: 60rpx;
9 | font-weight: bold;
10 | }
11 |
12 | .para {
13 | padding: 20rpx;
14 | font-size: 30rpx;
15 | text-align: left;
16 | }
17 |
18 | .icon {
19 | width: 30rpx;
20 | height: 30rpx;
21 | padding: 20rpx 20rpx 0 0;
22 | }
23 | .info {
24 | color: #25EC7E;
25 | align-items: center;
26 | justify-content: center;
27 | padding-bottom: 30rpx;
28 | display: flex;
29 | }
30 | .info-item {
31 | padding: 20rpx;
32 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # HITMers
2 |
3 |
4 | 
Wechat mini-program client for HITMers Node.js Server.
5 |
6 |
7 | ## 已实现/待完成功能
8 |
9 | ## 国际化
10 |
11 | - [x] 支持中英双语
12 |
13 | ## 讲解员个人
14 |
15 | - [x] 位置跟踪打卡
16 | - [x] 统计打卡次数,计入工作量
17 | - [x] 示范视频
18 | - [ ] 请假实时通知到老师,老师同意后方可请假
19 | - [x] 总结每月讲团数量,反馈讲解员状态
20 |
21 |
22 | ## 讲解系统
23 |
24 | - [x] 排班系统,减轻排班人员负担
25 | - [ ] 参观登记系统,老师登记、讲解员实时可见
26 | - [ ] 为每个半天的小班建立讨论小组,实时联系
27 | - [ ] 通知系统,讲稿改动通知等等
28 |
29 | ## 预约系统
30 |
31 | - [ ] 在微信公众号里显示已经预约的参观团信息
32 |
--------------------------------------------------------------------------------
/client/pages/work/notice-content.wxss:
--------------------------------------------------------------------------------
1 | .container {
2 | padding: 45rpx 15rpx 0;
3 | }
4 |
5 | .title {
6 | padding: 20rpx;
7 | text-align: center;
8 | font-size: 60rpx;
9 | font-weight: bold;
10 | }
11 |
12 | .para {
13 | padding: 10rpx;
14 | font-size: 30rpx;
15 | text-align: left;
16 | }
17 |
18 | .icon {
19 | width: 30rpx;
20 | height: 30rpx;
21 | padding: 20rpx 20rpx 0 0;
22 | }
23 | .info {
24 | color: #25EC7E;
25 | align-items: center;
26 | justify-content: center;
27 | padding-bottom: 30rpx;
28 | display: flex;
29 | }
30 | .info-item {
31 | padding: 20rpx;
32 | }
--------------------------------------------------------------------------------
/client/van-ui/goods-action-button/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | import { link } from '../mixins/link';
3 | import { button } from '../mixins/button';
4 | import { openType } from '../mixins/open-type';
5 | VantComponent({
6 | mixins: [link, button, openType],
7 | props: {
8 | text: String,
9 | loading: Boolean,
10 | disabled: Boolean,
11 | type: {
12 | type: String,
13 | value: 'danger'
14 | }
15 | },
16 | methods: {
17 | onClick: function onClick(event) {
18 | this.$emit('click', event.detail);
19 | this.jumpLink();
20 | }
21 | }
22 | });
--------------------------------------------------------------------------------
/client/zan-ui/badge/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var DEFAULT_COLOR = '#fff';
4 | var DEFAULT_BACKGROUND_COLOR = '#f44';
5 | var DEFAULT_FONT_SIZE = 10;
6 | var DEFAULT_BOX_SHADOW = '0 0 0 2px #fff';
7 |
8 | Component({
9 | properties: {
10 | color: {
11 | type: String,
12 | value: DEFAULT_COLOR
13 | },
14 | backgroundColor: {
15 | type: String,
16 | value: DEFAULT_BACKGROUND_COLOR
17 | },
18 | fontSize: {
19 | type: Number,
20 | value: DEFAULT_FONT_SIZE
21 | },
22 | boxShadow: {
23 | type: String,
24 | value: DEFAULT_BOX_SHADOW
25 | }
26 | }
27 | });
--------------------------------------------------------------------------------
/client/images/free.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/pages/work/video-player.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{subject}}
4 |
5 | {{time}}
6 | {{user}}
7 |
8 |
9 | {{desc}}
10 |
11 |
12 |
--------------------------------------------------------------------------------
/client/van-ui/radio/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/client/zan-ui/loading/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "commonjs": true,
5 | "es6": true
6 | },
7 | "extends": "eslint:recommended",
8 | "parserOptions": {
9 | "ecmaFeatures": {
10 | "jsx": true
11 | },
12 | "ecmaVersion": 2017,
13 | "sourceType": "module"
14 | },
15 | "rules": {
16 | "indent": [
17 | "error",
18 | 2
19 | ],
20 | "linebreak-style": [
21 | "error",
22 | "windows"
23 | ],
24 | "quotes": [
25 | "error",
26 | "single"
27 | ],
28 | "semi": [
29 | "error",
30 | "always"
31 | ]
32 | },
33 | "globals": {
34 | "getApp": false,
35 | "wx": true,
36 | "Page": false
37 | }
38 | }
--------------------------------------------------------------------------------
/client/van-ui/search/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-search{display:-webkit-flex;display:flex;padding:7px 15px;-webkit-align-items:center;align-items:center;box-sizing:border-box}.van-search__field{-webkit-flex:1;flex:1;border-radius:4px}.van-search__field__left-icon{color:#999}.van-search--show-action{padding-right:0}.van-search input::-webkit-search-cancel-button,.van-search input::-webkit-search-decoration,.van-search input::-webkit-search-results-button,.van-search input::-webkit-search-results-decoration{display:none}.van-search__action{padding:0 10px;font-size:14px;line-height:30px;color:#666}.van-search__action:active{background-color:#e8e8e8}
--------------------------------------------------------------------------------
/client/zan-ui/capsule/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-capsule{display:inline-block;font-size:12px;vertical-align:middle;line-height:19px;-webkit-transform:scale(.83);transform:scale(.83)}.zan-capsule__left,.zan-capsule__right{display:inline-block;line-height:17px;height:19px;vertical-align:middle;box-sizing:border-box}.zan-capsule__left{padding:0 2px;color:#fff;background:#999;border-radius:2px 0 0 2px;border:1rpx solid #999}.zan-capsule__right{padding:0 5px;color:#999;border-radius:0 2px 2px 0;border:1rpx solid #999}.zan-capsule--danger .zan-capsule__left{color:#fff;background:#f24544;border-color:#f24544}.zan-capsule--danger .zan-capsule__right{color:#f24544;border-color:#f24544}
--------------------------------------------------------------------------------
/client/zan-ui/common/pop-manager/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | properties: {
5 | show: {
6 | type: Boolean,
7 | value: false
8 | },
9 | // 是否有遮罩层
10 | overlay: {
11 | type: Boolean,
12 | value: true
13 | },
14 | // 遮罩层是否会显示
15 | showOverlay: {
16 | type: Boolean,
17 | value: true
18 | },
19 | // 内容从哪个方向出,可选 center top bottom left right
20 | type: {
21 | type: String,
22 | value: 'center'
23 | }
24 | },
25 |
26 | methods: {
27 | handleMaskClick: function handleMaskClick() {
28 | this.triggerEvent('clickmask', {});
29 | }
30 | }
31 | });
--------------------------------------------------------------------------------
/client/van-ui/radio/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-radio{overflow:hidden;line-height:1;-webkit-user-select:none;user-select:none}.van-radio__input,.van-radio__label{display:inline-block;vertical-align:middle}.van-radio__input{position:relative;font-size:20px}.van-radio__control{z-index:1;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;opacity:0}.van-radio__label{margin-left:10px;color:#333;font-size:16px;line-height:20px}.van-radio__label--left{margin:0 10px 0 0;float:left}.van-radio__icon{pointer-events:none;display:block;line-height:0}.van-radio__icon--disabled{color:#e5e5e5}.van-radio__icon--checked{color:#06bf04}.van-radio__icon--check{color:#999}
--------------------------------------------------------------------------------
/client/van-ui/switch/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-switch{height:1em;width:1.6em;display:inline-block;position:relative;background:#fff;box-sizing:content-box;border:1px solid rgba(0,0,0,.1);border-radius:1em}.van-switch__node{top:0;left:0;z-index:1;width:1em;height:1em;transition:.3s;position:absolute;border-radius:100%;background-color:#fff;box-shadow:0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05)}.van-switch__loading{top:25%;left:25%;width:50%;height:50%;position:absolute}.van-switch--on{background-color:#44db5e}.van-switch--on .van-switch__node{-webkit-transform:translateX(.6em);transform:translateX(.6em)}.van-switch--disabled{opacity:.4}
--------------------------------------------------------------------------------
/client/van-ui/notice-bar/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-notice-bar{display:-webkit-flex;display:flex;height:40px;padding:0 15px;font-size:14px;line-height:24px;-webkit-align-items:center;align-items:center}.van-notice-bar--within-icon{position:relative;padding-right:40px}.van-notice-bar__left-icon{height:18px;min-width:20px;box-sizing:border-box}.van-notice-bar__left-icon>image{width:16px;height:16px}.van-notice-bar__right-icon{position:absolute;top:10px;right:15px;font-size:16px}.van-notice-bar__content-wrap{-webkit-flex:1;flex:1;height:24px;overflow:hidden;position:relative}.van-notice-bar__content{position:absolute;white-space:nowrap}.van-notice-bar__content.van-ellipsis{max-width:100%}
--------------------------------------------------------------------------------
/client/pages/about/privacy.wxml:
--------------------------------------------------------------------------------
1 |
2 | {{language.privacy}}
3 |
4 |
5 | {{language.weProtectPravicy}}
6 |
7 |
8 | {{language.collectedInfo.title}}
9 | {{language.collectedInfo.text}}
10 |
11 |
12 | {{language.whyCollectInfo.title}}
13 | {{language.whyCollectInfo.text}}
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/client/images/gmail.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/pages/learning/index.js:
--------------------------------------------------------------------------------
1 | import event from '../../utils/event';
2 |
3 | Page({
4 | data: {
5 | },
6 |
7 | onLoad: function () {
8 | this.setLanguage();
9 | event.on('languageChanged', this, this.setLanguage);
10 | },
11 | setLanguage() {
12 | this.setData({
13 | language: wx.T.getLanguage()
14 | });
15 | this.data.shouldChangeTitle = true;
16 | },
17 | onShow() {
18 | if (this.data.shouldChangeTitle) {
19 | wx.T.setNavigationBarTitle();
20 | this.data.shouldChangeTitle = false;
21 | }
22 | },
23 |
24 | navigateTo(event) {
25 | wx.navigateTo({
26 | url: event.currentTarget.id
27 | });
28 | }
29 | });
--------------------------------------------------------------------------------
/client/van-ui/notify/notify.js:
--------------------------------------------------------------------------------
1 | import { isObj } from '../common/utils';
2 | var defaultOptions = {
3 | selector: '#van-notify',
4 | duration: 3000
5 | };
6 |
7 | function parseOptions(text) {
8 | return isObj(text) ? text : {
9 | text: text
10 | };
11 | }
12 |
13 | export default function Notify(options) {
14 | if (options === void 0) {
15 | options = {};
16 | }
17 |
18 | var pages = getCurrentPages();
19 | var ctx = pages[pages.length - 1];
20 | options = Object.assign({}, defaultOptions, parseOptions(options));
21 | var el = ctx.selectComponent(options.selector);
22 | delete options.selector;
23 |
24 | if (el) {
25 | el.setData(options);
26 | el.show();
27 | }
28 | }
--------------------------------------------------------------------------------
/client/van-ui/stepper/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
14 |
18 |
19 |
--------------------------------------------------------------------------------
/client/images/1-active.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/images/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/van-ui/tabbar-item/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | {{ info }}
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/client/images/folder-open-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/van-ui/mixins/observer/props.js:
--------------------------------------------------------------------------------
1 | export function observeProps(props) {
2 | if (!props) {
3 | return;
4 | }
5 |
6 | Object.keys(props).forEach(function (key) {
7 | var prop = props[key];
8 |
9 | if (prop === null || !('type' in prop)) {
10 | prop = {
11 | type: prop
12 | };
13 | }
14 |
15 | var _prop = prop,
16 | observer = _prop.observer;
17 |
18 | prop.observer = function () {
19 | if (observer) {
20 | if (typeof observer === 'string') {
21 | observer = this[observer];
22 | }
23 |
24 | observer.apply(this, arguments);
25 | }
26 |
27 | this.setData();
28 | };
29 |
30 | props[key] = prop;
31 | });
32 | }
--------------------------------------------------------------------------------
/client/images/source-code.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/van-ui/mixins/open-type.js:
--------------------------------------------------------------------------------
1 | export var openType = Behavior({
2 | properties: {
3 | openType: String
4 | },
5 | methods: {
6 | bindGetUserInfo: function bindGetUserInfo(event) {
7 | this.$emit('getuserinfo', event.detail);
8 | },
9 | bindContact: function bindContact(event) {
10 | this.$emit('contact', event.detail);
11 | },
12 | bindGetPhoneNumber: function bindGetPhoneNumber(event) {
13 | this.$emit('getphonenumber', event.detail);
14 | },
15 | bindOpenSetting: function bindOpenSetting(event) {
16 | this.$emit('opensetting', event.detail);
17 | },
18 | bindError: function bindError(event) {
19 | this.$emit('error', event.detail);
20 | }
21 | }
22 | });
--------------------------------------------------------------------------------
/client/zan-ui/popup/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | properties: {
5 | show: {
6 | type: Boolean,
7 | value: false
8 | },
9 |
10 | overlay: {
11 | type: Boolean,
12 | value: true
13 | },
14 |
15 | closeOnClickOverlay: {
16 | type: Boolean,
17 | value: true
18 | },
19 |
20 | // 弹出方向
21 | type: {
22 | type: String,
23 | value: 'center'
24 | }
25 | },
26 |
27 | methods: {
28 | handleMaskClick: function handleMaskClick() {
29 | this.triggerEvent('click-overlay', {});
30 |
31 | if (!this.data.closeOnClickOverlay) {
32 | return;
33 | }
34 | this.triggerEvent('close', {});
35 | }
36 | }
37 | });
--------------------------------------------------------------------------------
/client/pages/about/privacy.wxss:
--------------------------------------------------------------------------------
1 | .icon {
2 | width: 30rpx;
3 | height: 30rpx;
4 | padding: 20rpx 20rpx 0 0;
5 | }
6 |
7 | .top-title {
8 | font-size: 50rpx;
9 | font-weight: bold;
10 | margin-left: 20rpx;
11 | margin-bottom: 10rpx;
12 | }
13 |
14 | .title {
15 | padding-top: 20rpx;
16 | text-align: center;
17 | }
18 |
19 | .para {
20 | padding: 10rpx;
21 | font-size: 30rpx;
22 | text-align: left;
23 | }
24 |
25 | .link {
26 | color: blue;
27 | }
28 |
29 | .contributors {
30 | text-align: center;
31 | }
32 |
33 | .contributor {
34 | padding-top: 30rpx;
35 | width: 25%;
36 | float: left;
37 | }
38 |
39 | .avatar {
40 | width: 80rpx;
41 | height: 80rpx;
42 | }
--------------------------------------------------------------------------------
/client/pages/index/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "zan-panel": "../../zan-ui/panel/index",
4 | "zan-icon": "../../zan-ui/icon/index",
5 | "zan-cell": "../../zan-ui/cell/index",
6 | "zan-cell-group": "../../zan-ui/cell-group/index",
7 | "zan-button": "../../zan-ui/btn/index",
8 | "zan-dialog": "../../zan-ui/dialog/index",
9 | "zan-loading": "../../zan-ui/loading/index",
10 |
11 | "van-field": "../../van-ui/field/index",
12 | "van-toast": "../../van-ui/toast/index",
13 | "van-cell": "../../van-ui/cell/index",
14 | "van-icon": "../../van-ui/icon/index",
15 | "van-popup": "../../van-ui/popup/index",
16 | "van-notify": "../../van-ui/notify/index"
17 | }
18 | }
--------------------------------------------------------------------------------
/client/images/sheet.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/van-ui/switch-cell/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | field: true,
4 | props: {
5 | title: String,
6 | border: Boolean,
7 | checked: Boolean,
8 | loading: Boolean,
9 | disabled: Boolean,
10 | size: {
11 | type: String,
12 | value: '26px'
13 | }
14 | },
15 | watch: {
16 | checked: function checked(value) {
17 | this.setData({
18 | value: value
19 | });
20 | }
21 | },
22 | created: function created() {
23 | this.setData({
24 | value: this.data.checked
25 | });
26 | },
27 | methods: {
28 | onChange: function onChange(event) {
29 | this.$emit('change', event.detail);
30 | }
31 | }
32 | });
--------------------------------------------------------------------------------
/client/zan-ui/btn-group/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | relations: {
5 | '../btn/index': {
6 | type: 'child',
7 | linked: function linked() {
8 | updateBtnChild.call(this);
9 | },
10 | linkChange: function linkChange() {
11 | updateBtnChild.call(this);
12 | },
13 | unlinked: function unlinked() {
14 | updateBtnChild.call(this);
15 | }
16 | }
17 | }
18 | });
19 |
20 | function updateBtnChild() {
21 | var btns = this.getRelationNodes('../btn/index');
22 |
23 | if (btns.length > 0) {
24 | var lastIndex = btns.length - 1;
25 |
26 | btns.forEach(function (btn, index) {
27 | btn.switchLastButtonStatus(index === lastIndex);
28 | });
29 | }
30 | }
--------------------------------------------------------------------------------
/client/zan-ui/checkbox-group/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var _relations;
4 |
5 | var CHECKBOX_PATH = '../checkbox/index';
6 |
7 | Component({
8 | relations: (_relations = {}, _relations[CHECKBOX_PATH] = {
9 | type: 'child',
10 | linked: function linked() {
11 | this.updateChildren(CHECKBOX_PATH);
12 | }
13 | }, _relations),
14 |
15 | data: {
16 | elementUpdateTimeout: 0
17 | },
18 |
19 | methods: {
20 | updateChildren: function updateChildren(childPath) {
21 | // 把checkbox标记为在group中,设置不同样式
22 | var elements = this.getRelationNodes(childPath);
23 |
24 | elements.forEach(function (checkbox, index) {
25 | checkbox.updateData({ isInGroup: true });
26 | });
27 | }
28 | }
29 | });
--------------------------------------------------------------------------------
/client/van-ui/tab/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | relation: {
4 | name: 'tabs',
5 | type: 'ancestor'
6 | },
7 | props: {
8 | title: String,
9 | disabled: Boolean
10 | },
11 | data: {
12 | inited: false,
13 | active: false
14 | },
15 | watch: {
16 | disabled: function disabled() {
17 | var parent = this.getRelationNodes('../tabs/index')[0];
18 |
19 | if (parent) {
20 | parent.updateTabs();
21 | }
22 | },
23 | title: function title() {
24 | var parent = this.getRelationNodes('../tabs/index')[0];
25 |
26 | if (parent) {
27 | parent.setLine();
28 | parent.updateTabs();
29 | }
30 | }
31 | }
32 | });
--------------------------------------------------------------------------------
/client/van-ui/toast/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | props: {
4 | show: Boolean,
5 | mask: Boolean,
6 | message: String,
7 | forbidClick: Boolean,
8 | zIndex: {
9 | type: Number,
10 | value: 1000
11 | },
12 | type: {
13 | type: String,
14 | value: 'text'
15 | },
16 | loadingType: {
17 | type: String,
18 | value: 'circular'
19 | },
20 | position: {
21 | type: String,
22 | value: 'middle'
23 | }
24 | },
25 | methods: {
26 | clear: function clear() {
27 | this.setData({
28 | show: false
29 | });
30 | },
31 | // for prevent touchmove
32 | noop: function noop() {}
33 | }
34 | });
--------------------------------------------------------------------------------
/client/pages/work/fill-in-sheet.json:
--------------------------------------------------------------------------------
1 | {
2 | "usingComponents": {
3 | "zan-loading": "../../zan-ui/loading/index",
4 | "zan-dialog": "../../zan-ui/dialog/index",
5 | "zan-field": "../../zan-ui/field/index",
6 | "zan-cell": "../../zan-ui/cell/index",
7 | "zan-toast": "../../zan-ui/toast/index",
8 | "zan-panel": "../../zan-ui/panel/index",
9 |
10 | "van-toast": "../../van-ui/toast/index",
11 | "van-notify": "../../van-ui/notify/index",
12 | "van-popup": "../../van-ui/popup/index",
13 | "van-icon": "../../van-ui/icon/index",
14 | "van-action-sheet": "../../van-ui/action-sheet/index",
15 | "van-dialog": "../../van-ui/dialog/index"
16 | },
17 | "enablePullDownRefresh": true
18 | }
--------------------------------------------------------------------------------
/client/pages/work/notices.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{language.notices}}
4 |
12 | {{notice.subject}}
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/client/zan-ui/stepper/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
7 | -
8 |
9 |
16 |
21 | +
22 |
23 |
24 |
--------------------------------------------------------------------------------
/client/pages/work/video.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 | {{video.subject}}
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/project.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "miniprogramRoot": "client/",
3 | "setting": {
4 | "urlCheck": false,
5 | "es6": true,
6 | "postcss": true,
7 | "minified": true,
8 | "newFeature": true
9 | },
10 | "appid": "wxcb3ed1484b8c7147",
11 | "projectname": "HITMers",
12 | "condition": {
13 | "search": {
14 | "current": -1,
15 | "list": []
16 | },
17 | "conversation": {
18 | "current": -1,
19 | "list": []
20 | },
21 | "plugin": {
22 | "current": -1,
23 | "list": []
24 | },
25 | "game": {
26 | "list": []
27 | },
28 | "miniprogram": {
29 | "current": 0,
30 | "list": [
31 | {
32 | "id": -1,
33 | "name": "shareFromFreeRooms",
34 | "pathName": "pages/learning/free-rooms"
35 | }
36 | ]
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/client/van-ui/tabbar-item/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | props: {
4 | info: null,
5 | icon: String,
6 | dot: Boolean
7 | },
8 | relation: {
9 | name: 'tabbar',
10 | type: 'ancestor'
11 | },
12 | data: {
13 | active: false
14 | },
15 | methods: {
16 | onClick: function onClick() {
17 | var parent = this.getRelationNodes('../tabbar/index')[0];
18 |
19 | if (parent) {
20 | parent.onChange(this);
21 | }
22 |
23 | this.$emit('click');
24 | },
25 | setActive: function setActive(active) {
26 | if (this.data.active !== active) {
27 | this.setData({
28 | active: active
29 | });
30 | }
31 | }
32 | }
33 | });
--------------------------------------------------------------------------------
/client/zan-ui/datetime-picker/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{text || placeholder}}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 取消
13 | 确认
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/client/van-ui/mixins/basic.js:
--------------------------------------------------------------------------------
1 | import { classNames } from '../common/class-names';
2 | export var basic = Behavior({
3 | methods: {
4 | classNames: classNames,
5 | $emit: function $emit() {
6 | this.triggerEvent.apply(this, arguments);
7 | },
8 | getRect: function getRect(selector, all) {
9 | var _this = this;
10 |
11 | return new Promise(function (resolve) {
12 | wx.createSelectorQuery().in(_this)[all ? 'selectAll' : 'select'](selector).boundingClientRect(function (rect) {
13 | if (all && Array.isArray(rect) && rect.length) {
14 | resolve(rect);
15 | }
16 |
17 | if (!all && rect) {
18 | resolve(rect);
19 | }
20 | }).exec();
21 | });
22 | }
23 | }
24 | });
--------------------------------------------------------------------------------
/client/zan-ui/switch/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | externalClasses: ['custom-class', 'theme-class'],
5 |
6 | properties: {
7 | checked: {
8 | type: Boolean,
9 | value: false
10 | },
11 |
12 | loading: {
13 | type: Boolean,
14 | value: false
15 | },
16 |
17 | disabled: {
18 | type: Boolean,
19 | value: false
20 | }
21 | },
22 |
23 | methods: {
24 | handleZanSwitchChange: function handleZanSwitchChange() {
25 | if (this.data.loading || this.data.disabled) {
26 | return;
27 | }
28 | var checked = !this.data.checked;
29 | this.triggerEvent('change', {
30 | checked: checked,
31 | loading: this.data.loading
32 | });
33 | }
34 | }
35 | });
--------------------------------------------------------------------------------
/client/zan-ui/radio/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | behaviors: ['wx://form-field'],
5 |
6 | externalClasses: ['radio-class', 'radio-color'],
7 |
8 | properties: {
9 | items: Array,
10 | type: String
11 | },
12 |
13 | methods: {
14 | radioChange: function radioChange(e) {
15 | this.selectItem(e.detail.value);
16 | this.triggerEvent('change', e);
17 | },
18 | selectItem: function selectItem(value) {
19 | var items = this.data.items;
20 |
21 |
22 | items.forEach(function (item) {
23 | if (item.name === value) {
24 | item.checked = true;
25 | } else {
26 | item.checked = false;
27 | }
28 | });
29 |
30 | this.setData({ items: items });
31 | }
32 | }
33 | });
--------------------------------------------------------------------------------
/client/zan-ui/tab/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-tab{height:45px}.zan-tab__bd{width:100%;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;border-bottom:1rpx solid #e5e5e5;background:#fff}.zan-tab__bd--fixed{position:fixed;top:0;z-index:2}.zan-tab__item{-webkit-box-flex:1;flex:1;display:inline-block;padding:0 5px;line-height:0;box-sizing:border-box;overflow:hidden;text-align:center}.zan-tab__title{display:inline-block;max-width:100%;height:44px;line-height:44px;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;word-break:keep-all;font-size:14px;color:#666}.zan-tab__item--selected .zan-tab__title{color:#f44;border-bottom:2px solid #f44}.zan-tab__bd--scroll{display:block;white-space:nowrap}.zan-tab__bd--scroll .zan-tab__item{min-width:80px}
--------------------------------------------------------------------------------
/client/van-ui/checkbox/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-checkbox{overflow:hidden;-webkit-user-select:none;user-select:none}.van-checkbox__icon-wrap,.van-checkbox__label{display:inline-block;line-height:20px;vertical-align:middle}.van-checkbox__icon{box-sizing:border-box;display:block;width:20px;height:20px;border:1px solid #aaa;color:transparent;font-size:12px;text-align:center}.van-checkbox__icon--round{border-radius:100%}.van-checkbox__icon--checked{border-color:#06bf04;background-color:#06bf04;color:#fff}.van-checkbox__icon--disabled{border-color:#eee;background-color:currentColor;color:#f8f8f8}.van-checkbox__icon--disabled.van-checkbox__icon--checked{border-color:#eee;background-color:#eee}.van-checkbox__label{margin-left:10px}.van-checkbox__label--left{margin:0 10px 0 0;float:left}
--------------------------------------------------------------------------------
/client/van-ui/action-sheet/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-action-sheet{max-height:90%!important;color:#333}.van-action-sheet__cancel,.van-action-sheet__item{height:50px;font-size:16px;line-height:50px;text-align:center;background-color:#fff}.van-action-sheet__cancel:active,.van-action-sheet__item:active{background-color:#e8e8e8}.van-action-sheet__item--disabled{color:#c9c9c9}.van-action-sheet__item--disabled:active{background-color:#fff}.van-action-sheet__subname{margin-left:5px;font-size:12px;color:#666}.van-action-sheet__blank{height:10px;background-color:#f8f8f8}.van-action-sheet__header{font-size:16px;font-weight:500;line-height:44px;text-align:center}.van-action-sheet__close{position:absolute!important;top:0;right:0;padding:0 15px;font-size:18px!important;line-height:inherit!important;color:#999}
--------------------------------------------------------------------------------
/client/van-ui/nav-bar/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-nav-bar{height:46px;position:relative;-webkit-user-select:none;user-select:none;text-align:center;line-height:46px;background-color:#fff}.van-nav-bar__arrow{color:#38f;vertical-align:middle;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.van-nav-bar__arrow+.van-nav-bar__text{margin-left:-20px;padding-left:25px}.van-nav-bar--fixed{top:0;left:0;width:100%;position:fixed}.van-nav-bar__title{margin:0 auto;max-width:60%;font-size:16px;font-weight:500}.van-nav-bar__left,.van-nav-bar__right{bottom:0;font-size:14px;position:absolute}.van-nav-bar__left{left:15px}.van-nav-bar__right{right:15px}.van-nav-bar__text{color:#38f;margin:0 -15px;padding:0 15px;display:inline-block;vertical-align:middle}.van-nav-bar__text:active{background-color:#e8e8e8}
--------------------------------------------------------------------------------
/client/van-ui/common/class-names.js:
--------------------------------------------------------------------------------
1 | var hasOwn = {}.hasOwnProperty;
2 | export function classNames() {
3 | var classes = [];
4 |
5 | for (var i = 0; i < arguments.length; i++) {
6 | var arg = arguments[i];
7 | if (!arg) continue;
8 | var argType = typeof arg;
9 |
10 | if (argType === 'string' || argType === 'number') {
11 | classes.push(arg);
12 | } else if (Array.isArray(arg) && arg.length) {
13 | var inner = classNames.apply(null, arg);
14 |
15 | if (inner) {
16 | classes.push(inner);
17 | }
18 | } else if (argType === 'object') {
19 | for (var key in arg) {
20 | if (hasOwn.call(arg, key) && arg[key]) {
21 | classes.push(key);
22 | }
23 | }
24 | }
25 | }
26 |
27 | return classes.join(' ');
28 | }
29 | ;
--------------------------------------------------------------------------------
/client/van-ui/mixins/touch.js:
--------------------------------------------------------------------------------
1 | export var touch = Behavior({
2 | methods: {
3 | touchStart: function touchStart(event) {
4 | this.direction = '';
5 | this.deltaX = 0;
6 | this.deltaY = 0;
7 | this.offsetX = 0;
8 | this.offsetY = 0;
9 | this.startX = event.touches[0].clientX;
10 | this.startY = event.touches[0].clientY;
11 | },
12 | touchMove: function touchMove(event) {
13 | var touch = event.touches[0];
14 | this.deltaX = touch.clientX - this.startX;
15 | this.deltaY = touch.clientY - this.startY;
16 | this.offsetX = Math.abs(this.deltaX);
17 | this.offsetY = Math.abs(this.deltaY);
18 | this.direction = this.offsetX > this.offsetY ? 'horizontal' : this.offsetX < this.offsetY ? 'vertical' : '';
19 | }
20 | }
21 | });
--------------------------------------------------------------------------------
/client/images/open-in-new.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/utils/update.js:
--------------------------------------------------------------------------------
1 | module.exports = (language) => {
2 | const updateManager = wx.getUpdateManager();
3 |
4 | updateManager.onCheckForUpdate(function (res) {
5 | if(!res.hasUpdate) {
6 | wx.showToast({
7 | title: language.noUpdate,
8 | icon: 'none'
9 | });
10 | }
11 | });
12 |
13 | updateManager.onUpdateReady(function () {
14 | wx.showModal({
15 | title: 'Update',
16 | content: 'Update is ready, relaunch?',
17 | success: function (res) {
18 | if (res.confirm) {
19 | // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
20 | updateManager.applyUpdate();
21 | }
22 | }
23 | });
24 |
25 | });
26 |
27 | // updateManager.onUpdateFailed(function () {
28 | // // 新的版本下载失败
29 | // });
30 | };
--------------------------------------------------------------------------------
/client/van-ui/tree-select/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.tree-select{-webkit-user-select:none;user-select:none;position:relative;font-size:16px}.tree-select__nav{width:35%;position:absolute;left:0;top:0;bottom:0;overflow:scroll;background-color:#fff;-webkit-overflow-scrolling:touch}.tree-select__nitem{line-height:44px;padding:0 15px;background-color:#fff}.tree-select__nitem--active,.tree-select__nitem:active{background-color:#f8f8f8}.tree-select__nitem--active{font-weight:500}.tree-select__content{padding:0 15px;margin-left:35%;overflow:scroll;-webkit-overflow-scrolling:touch}.tree-select__item{position:relative;line-height:44px;padding-left:5px;padding-right:18px}.tree-select__item--active,.tree-select__item:active{color:#f44}.tree-select__selected{float:right;position:absolute;right:0;top:0;bottom:0;line-height:inherit}
--------------------------------------------------------------------------------
/client/van-ui/badge/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-badge{display:block;overflow:hidden;font-size:14px;line-height:1.4;-webkit-user-select:none;user-select:none;color:#666;word-break:break-all;box-sizing:border-box;padding:20px 12px 20px 9px;background-color:#f8f8f8;border-left:3px solid transparent}.van-badge:active{background-color:#e8e8e8}.van-badge::after{border-bottom-width:1px}.van-badge--active{font-weight:700;color:#333;border-color:#f44}.van-badge--active::after{border-right-width:1px}.van-badge--active,.van-badge--active:active{background-color:#fff}.van-badge__info{position:absolute;top:4px;right:2px;color:#fff;font-size:12px;font-weight:500;-webkit-transform:scale(.8);transform:scale(.8);text-align:center;box-sizing:border-box;padding:0 6px;min-width:18px;line-height:18px;border-radius:9px;background-color:#f44}
--------------------------------------------------------------------------------
/client/zan-ui/toast/index.wxml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
10 |
15 |
19 |
20 |
21 |
26 |
27 |
28 |
29 | {{ message }}
30 |
31 |
--------------------------------------------------------------------------------
/client/van-ui/card/index.js:
--------------------------------------------------------------------------------
1 | import { link } from '../mixins/link';
2 | import { VantComponent } from '../common/component';
3 | VantComponent({
4 | classes: ['num-class', 'desc-class', 'thumb-class', 'title-class', 'price-class', 'origin-price-class'],
5 | mixins: [link],
6 | props: {
7 | tag: String,
8 | num: String,
9 | desc: String,
10 | thumb: String,
11 | title: String,
12 | price: String,
13 | centered: Boolean,
14 | lazyLoad: Boolean,
15 | thumbLink: String,
16 | originPrice: String,
17 | thumbMode: {
18 | type: String,
19 | value: 'scaleToFill'
20 | },
21 | currency: {
22 | type: String,
23 | value: '¥'
24 | }
25 | },
26 | methods: {
27 | onClickThumb: function onClickThumb() {
28 | this.jumpLink('thumbLink');
29 | }
30 | }
31 | });
--------------------------------------------------------------------------------
/client/zan-ui/cell/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{ title }}
12 | {{ label }}
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | {{ value }}
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/client/images/download.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/pages/learning/index.wxss:
--------------------------------------------------------------------------------
1 | .icon-wrap {
2 | width: 33.33333%;
3 | float: left;
4 | padding-top: 60rpx;
5 | padding-bottom: 20rpx;
6 | text-align: center;
7 | color: var(--theme-color);
8 | color: #969A97;
9 | }
10 |
11 | .icon-img {
12 | width: 100rpx;
13 | height: 100rpx;
14 | display:inline-block;
15 |
16 | background-position: center;
17 | background-repeat: no-repeat;
18 | background-size: cover;
19 | }
20 |
21 | .icon-action, .icon-action-2 {
22 | font-size: 25rpx;
23 | }
24 |
25 | .icon-wrap:active {
26 | color: var(--theme-color);
27 | background: #d9d9d9;
28 | }
29 |
30 | .study {
31 | background-image: url('https://i.loli.net/2019/02/28/5c779c598750d.png');
32 | }
33 | .study:active {
34 | background-image: url('https://i.loli.net/2019/02/28/5c779c5985dfc.png');
35 | }
--------------------------------------------------------------------------------
/client/pages/work/video-player.js:
--------------------------------------------------------------------------------
1 | const request = require('../../utils/requests');
2 | const video = require('../../videos');
3 |
4 | Page({
5 | data: {
6 | loading: true
7 | },
8 | onLoad(params) {
9 | this.setData(params);
10 |
11 | request.getRawVideoUrl(params.video_code, video.username, video.password)
12 | .then(res => {
13 | let url = res.data.files['mp4'].url;
14 | this.setData({
15 | videoUrl: 'https:' + url,
16 | loading: false
17 | });
18 | });
19 | },
20 |
21 | onShareAppMessage() {
22 | return {
23 | title: this.data.subject,
24 | path: `/pages/work/video-player?video_code=${this.data.video_code}&desc=${this.data.desc}&time=${this.data.time}&user=${this.data.user}&subject=${this.data.subject}`
25 | };
26 | }
27 | });
--------------------------------------------------------------------------------
/client/zan-ui/toptips/toptips.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | function Toptips() {
4 | var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5 |
6 | var pages = getCurrentPages();
7 | var ctx = pages[pages.length - 1];
8 | var defaultOptions = {
9 | selector: '#zan-toptips',
10 | duration: 3000
11 | };
12 |
13 | options = Object.assign(defaultOptions, parseParam(options));
14 |
15 | var $toptips = ctx.selectComponent(options.selector);
16 | delete options.selector;
17 |
18 | $toptips.setData(Object.assign({}, options));
19 | $toptips && $toptips.show();
20 | }
21 |
22 | function parseParam() {
23 | var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
24 |
25 | return typeof params === 'object' ? params : { content: params };
26 | }
27 |
28 | module.exports = Toptips;
--------------------------------------------------------------------------------
/client/images/not-free.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/van-ui/popup/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | import { transition } from '../mixins/transition';
3 | VantComponent({
4 | mixins: [transition(false)],
5 | props: {
6 | transition: String,
7 | customStyle: String,
8 | overlayStyle: String,
9 | zIndex: {
10 | type: Number,
11 | value: 100
12 | },
13 | overlay: {
14 | type: Boolean,
15 | value: true
16 | },
17 | closeOnClickOverlay: {
18 | type: Boolean,
19 | value: true
20 | },
21 | position: {
22 | type: String,
23 | value: 'center'
24 | }
25 | },
26 | methods: {
27 | onClickOverlay: function onClickOverlay() {
28 | this.$emit('click-overlay');
29 |
30 | if (this.data.closeOnClickOverlay) {
31 | this.$emit('close');
32 | }
33 | }
34 | }
35 | });
--------------------------------------------------------------------------------
/client/van-ui/dialog/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-dialog{width:85%;font-size:16px;overflow:hidden;border-radius:4px;background-color:#fff}.van-dialog__header{font-weight:500;padding-top:25px;text-align:center}.van-dialog__header--isolated{padding:25px 0}.van-dialog__message{padding:25px;font-size:14px;line-height:1.5}.van-dialog__message--has-title{padding-top:12px;color:#666}.van-dialog__footer{display:-webkit-flex;display:flex}.van-dialog__button{-webkit-flex:1;flex:1}.van-dialog__cancel,.van-dialog__confirm{border:0!important}.van-dialog__confirm,.van-dialog__confirm:active{color:#38f!important}.van-dialog-bounce-enter{opacity:0;-webkit-transform:translate3d(-50%,-50%,0) scale(.7);transform:translate3d(-50%,-50%,0) scale(.7)}.van-dialog-bounce-leave-active{opacity:0;-webkit-transform:translate3d(-50%,-50%,0) scale(.9);transform:translate3d(-50%,-50%,0) scale(.9)}
--------------------------------------------------------------------------------
/client/van-ui/switch/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | field: true,
4 | classes: ['node-class'],
5 | props: {
6 | checked: Boolean,
7 | loading: Boolean,
8 | disabled: Boolean,
9 | size: {
10 | type: String,
11 | value: '30px'
12 | }
13 | },
14 | watch: {
15 | checked: function checked(value) {
16 | this.setData({
17 | value: value
18 | });
19 | }
20 | },
21 | created: function created() {
22 | this.setData({
23 | value: this.data.checked
24 | });
25 | },
26 | methods: {
27 | onClick: function onClick() {
28 | if (!this.data.disabled && !this.data.loading) {
29 | var checked = !this.data.checked;
30 | this.$emit('input', checked);
31 | this.$emit('change', checked);
32 | }
33 | }
34 | }
35 | });
--------------------------------------------------------------------------------
/client/zan-ui/toast/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var DEFAULT_DATA = {
4 | show: false,
5 | message: '',
6 | icon: '',
7 | image: '',
8 | mask: false
9 | };
10 |
11 | var SUPPORT_TYPE = ['loading', 'success', 'fail'];
12 |
13 | Component({
14 | data: Object.assign({}, DEFAULT_DATA),
15 |
16 | methods: {
17 | show: function show(options) {
18 | var toastOptions = Object.assign({}, options);
19 |
20 | var icon = options.icon || '';
21 | var image = options.image || '';
22 | if (SUPPORT_TYPE.indexOf(options.type) > -1) {
23 | icon = options.type;
24 | image = '';
25 | }
26 |
27 | this.setData(Object.assign({}, toastOptions, {
28 | icon: icon,
29 | image: image
30 | }));
31 | },
32 | clear: function clear() {
33 | this.setData(Object.assign({}, DEFAULT_DATA));
34 | }
35 | }
36 | });
--------------------------------------------------------------------------------
/client/pages/work/notice-content.js:
--------------------------------------------------------------------------------
1 | import event from '../../utils/event';
2 |
3 | Page({
4 | data: {
5 | },
6 |
7 | onLoad: function (params) {
8 | this.setLanguage();
9 | event.on('languageChanged', this, this.setLanguage);
10 |
11 | this.setData(params);
12 | },
13 | setLanguage() {
14 | this.setData({
15 | language: wx.T.getLanguage()
16 | });
17 | this.data.shouldChangeTitle = true;
18 | },
19 | onShow() {
20 | if (this.data.shouldChangeTitle) {
21 | wx.T.setNavigationBarTitle();
22 | this.data.shouldChangeTitle = false;
23 | }
24 | },
25 |
26 | onShareAppMessage() {
27 | return {
28 | title: this.data.subject,
29 | path: `/pages/work/notice-content?subject=${this.data.subject}&content=${this.data.content}&time=${this.data.time}&user=${this.data.user}`
30 | };
31 | }
32 | });
--------------------------------------------------------------------------------
/client/images/person.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/zan-ui/field/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-field{display:block;position:relative;color:#333; height: 80rpx;}.zan-field::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-bottom-width:1px;left:15px;right:0}.zan-field--no-border::after{border-bottom-width:0}.zan-field--wrapped{background-color:#fff}.zan-field--wrapped::after{left:0;border-width:1px;border-radius:4px}.zan-field--wrapped::after{display:block}.zan-field--error{color:#f40}.zan-field--wrapped.zan-field--error::after{border-color:#f40}.zan-field__title{color:#333;min-width:65px;padding-right:10px; font-size:12px;}.zan-field__input{-webkit-box-flex:1;flex:1;line-height:1.6;height:auto;font-size:10px}.zan-field__placeholder{font-size:10px}.zan-field__input--right{text-align:right}
--------------------------------------------------------------------------------
/client/van-ui/common/style/hairline.wxss:
--------------------------------------------------------------------------------
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{content:' ';position:absolute;pointer-events:none;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;top:-50%;left:-50%;right:-50%;bottom:-50%;-webkit-transform:scale(.5);transform:scale(.5);border:0 solid #eee}.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}
--------------------------------------------------------------------------------
/client/utils/event.js:
--------------------------------------------------------------------------------
1 | let events = {};
2 |
3 | function on(name, self, callback) {
4 | let tuple = [self, callback];
5 | let callbacks = events[name];
6 | if (Array.isArray(callbacks)) {
7 | callbacks.push(tuple);
8 | }
9 | else {
10 | events[name] = [tuple];
11 | }
12 | }
13 |
14 | function remove(name, self) {
15 | let callbacks = events[name];
16 | if (Array.isArray(callbacks)) {
17 | events[name] = callbacks.filter((tuple) => {
18 | return tuple[0] != self;
19 | });
20 | }
21 | }
22 |
23 | function emit(name, data) {
24 | let callbacks = events[name];
25 | if (Array.isArray(callbacks)) {
26 | callbacks.map((tuple) => {
27 | let self = tuple[0];
28 | let callback = tuple[1];
29 | callback.call(self, data);
30 | });
31 | }
32 | }
33 |
34 | exports.on = on;
35 | exports.remove = remove;
36 | exports.emit = emit;
--------------------------------------------------------------------------------
/client/images/copyright.svg:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/client/van-ui/toast/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-toast{display:-webkit-flex;display:flex;color:#fff;font-size:12px;line-height:1.2;border-radius:5px;word-break:break-all;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:column;flex-direction:column;box-sizing:border-box;background-color:rgba(0,0,0,.7)}.van-toast__container{top:50%;left:50%;position:fixed;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.van-toast--text{padding:12px;min-width:220px}.van-toast--icon{width:120px;min-height:120px;padding:15px}.van-toast--icon .van-toast__icon{height:1em;font-size:50px}.van-toast--icon .van-toast__text{font-size:14px;padding-top:10px}.van-toast__loading{margin:10px 0 5px}.van-toast--top{-webkit-transform:translate(0,-30vh);transform:translate(0,-30vh)}.van-toast--bottom{-webkit-transform:translate(0,30vh);transform:translate(0,30vh)}
--------------------------------------------------------------------------------
/client/van-ui/submit-bar/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{ tipStr }}
6 |
7 |
8 |
9 |
10 |
11 |
12 | {{ label || '合计:' }}
13 | {{ currency }} {{ priceStr }}
14 |
15 |
16 |
26 | {{ loading ? '' : buttonText }}
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/client/zan-ui/steps/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
6 | {{ step.text }}
7 | {{ step.desc }}
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/client/van-ui/goods-action-button/index.wxml:
--------------------------------------------------------------------------------
1 |
27 | {{ text }}
28 |
29 |
--------------------------------------------------------------------------------
/client/images/image.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/van-ui/notify/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | props: {
4 | text: String,
5 | color: {
6 | type: String,
7 | value: '#fff'
8 | },
9 | backgroundColor: {
10 | type: String,
11 | value: '#e64340'
12 | },
13 | duration: {
14 | type: Number,
15 | value: 3000
16 | }
17 | },
18 | methods: {
19 | show: function show() {
20 | var _this = this;
21 |
22 | var duration = this.data.duration;
23 | clearTimeout(this.timer);
24 | this.setData({
25 | show: true
26 | });
27 |
28 | if (duration > 0 && duration !== Infinity) {
29 | this.timer = setTimeout(function () {
30 | _this.hide();
31 | }, duration);
32 | }
33 | },
34 | hide: function hide() {
35 | clearTimeout(this.timer);
36 | this.setData({
37 | show: false
38 | });
39 | }
40 | }
41 | });
--------------------------------------------------------------------------------
/client/van-ui/nav-bar/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
12 | {{ leftText }}
13 |
14 |
15 |
16 |
17 | {{ title }}
18 |
19 |
20 |
21 | {{ rightText }}
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/client/zan-ui/stepper/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-stepper{color:#666}.zan-stepper view{display:inline-block;padding:5px 0;text-align:center;box-sizing:border-box;vertical-align:middle;font-size:12px;border:1rpx solid #999}.zan-stepper .zan-stepper__minus{border-right:none;border-radius:2px 0 0 2px}.zan-stepper .zan-stepper__text{border:1rpx solid #999;display:inline-block;text-align:center;vertical-align:middle;min-height:auto;font-size:12px}.zan-stepper .zan-stepper__plus{border-left:none;border-radius:0 2px 2px 0}.zan-stepper .zan-stepper--disabled{background:#f8f8f8;color:#bbb;border-color:#e8e8e8}.zan-stepper--small view{min-width:36px;line-height:18px}.zan-stepper--small .zan-stepper__text{width:36px;line-height:28px;height:28px}.zan-stepper--middle view{min-width:40px;line-height:20px}.zan-stepper--middle .zan-stepper__text{width:40px;line-height:30px;height:30px}.zan-stepper--large view{min-width:44px;line-height:22px}.zan-stepper--large .zan-stepper__text{width:44px;line-height:32px;height:32px}
--------------------------------------------------------------------------------
/client/images/documentation.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/zan-ui/radio/index.wxml:
--------------------------------------------------------------------------------
1 |
6 |
28 |
29 |
--------------------------------------------------------------------------------
/client/images/contributors.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/van-ui/toast/index.wxml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
15 |
16 | {{ message }}
17 |
18 |
19 |
20 |
26 |
27 | {{ message }}
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/client/van-ui/action-sheet/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | props: {
4 | show: Boolean,
5 | title: String,
6 | cancelText: String,
7 | zIndex: {
8 | type: Number,
9 | value: 100
10 | },
11 | actions: {
12 | type: Array,
13 | value: []
14 | },
15 | overlay: {
16 | type: Boolean,
17 | value: true
18 | },
19 | closeOnClickOverlay: {
20 | type: Boolean,
21 | value: true
22 | }
23 | },
24 | methods: {
25 | onSelect: function onSelect(event) {
26 | var index = event.currentTarget.dataset.index;
27 | var item = this.data.actions[index];
28 |
29 | if (item && !item.disabled && !item.loading) {
30 | this.$emit('select', item);
31 | }
32 | },
33 | onCancel: function onCancel() {
34 | this.$emit('cancel');
35 | },
36 | onClose: function onClose() {
37 | this.$emit('close');
38 | }
39 | }
40 | });
--------------------------------------------------------------------------------
/client/zan-ui/noticebar/index.wxml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 | {{ text }}
12 |
13 |
14 |
15 |
16 |
22 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/client/van-ui/col/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | relation: {
4 | name: 'row',
5 | type: 'ancestor'
6 | },
7 | props: {
8 | span: Number,
9 | offset: Number
10 | },
11 | data: {
12 | style: ''
13 | },
14 | computed: {
15 | classes: function classes() {
16 | var _this$data = this.data,
17 | span = _this$data.span,
18 | offset = _this$data.offset;
19 | return this.classNames('custom-class', 'van-col', {
20 | ["van-col--" + span]: span,
21 | ["van-col--offset-" + offset]: offset
22 | });
23 | }
24 | },
25 | methods: {
26 | setGutter: function setGutter(gutter) {
27 | var padding = gutter / 2 + "px";
28 | var style = gutter ? "padding-left: " + padding + "; padding-right: " + padding + ";" : '';
29 |
30 | if (style !== this.data.style) {
31 | this.setData({
32 | style: style
33 | });
34 | }
35 | }
36 | }
37 | });
--------------------------------------------------------------------------------
/client/van-ui/button/index.wxml:
--------------------------------------------------------------------------------
1 |
30 |
--------------------------------------------------------------------------------
/client/van-ui/tabbar-item/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';:host{-webkit-flex:1;flex:1}.van-tabbar-item{color:#666;height:100%;display:-webkit-flex;display:flex;line-height:1;font-size:12px;-webkit-align-items:center;align-items:center;-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:center;justify-content:center}.van-tabbar-item__icon{font-size:18px;margin-bottom:5px;position:relative}.van-tabbar-item__icon .van-icon{display:block}.van-tabbar-item__icon .van-icon__info{color:#fff;left:100%;top:-.5em;font-size:.6em;padding:0 .25em;text-align:center;min-width:1.4em;line-height:1.4;position:absolute;border-radius:.6em;box-sizing:border-box;background-color:#f44;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-family:PingFang SC,Helvetica Neue,Arial,sans-serif}.van-tabbar-item__icon--dot::after{top:0;right:-8px;width:8px;height:8px;content:' ';position:absolute;border-radius:100%;background-color:#f44}.van-tabbar-item__icon image{width:50px;height:18px}.van-tabbar-item--active{color:#38f}
--------------------------------------------------------------------------------
/client/zan-ui/checkbox/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var _relations;
4 |
5 | var CHECKBOX_GROUP_PATH = '../checkbox-group/index';
6 |
7 | Component({
8 | externalClasses: ['checkbox-class'],
9 | relations: (_relations = {}, _relations[CHECKBOX_GROUP_PATH] = {
10 | type: 'parent'
11 | }, _relations),
12 |
13 | properties: {
14 | checked: Boolean,
15 | disabled: Boolean,
16 | isInGroup: Boolean,
17 | labelDisabled: Boolean,
18 | type: String
19 | },
20 |
21 | data: function data() {
22 | return {
23 | isInGroup: false,
24 | isInCell: false
25 | };
26 | },
27 |
28 |
29 | methods: {
30 | handleClick: function handleClick() {
31 | if (this.data.disabled) {
32 | return;
33 | }
34 |
35 | var checked = !this.data.checked;
36 |
37 | this.triggerEvent('change', checked);
38 | this.setData({ checked: checked });
39 | },
40 | updateData: function updateData(data) {
41 | this.setData(data);
42 | }
43 | }
44 | });
--------------------------------------------------------------------------------
/client/pages/about/opensource.js:
--------------------------------------------------------------------------------
1 | import event from '../../utils/event';
2 |
3 | Page({
4 | data: {
5 | links: [
6 | 'https://github.com/upupming/HITMers-node-js-server',
7 | 'https://github.com/upupming/HITMers',
8 | 'https://github.com/upupming/HITMers/issues',
9 | 'https://upupming.site/HITMers',
10 | 'upupming@gmail.com'
11 | ]
12 | },
13 |
14 | onLoad: function () {
15 | this.setLanguage();
16 | event.on('languageChanged', this, this.setLanguage);
17 | },
18 | setLanguage() {
19 | this.setData({
20 | language: wx.T.getLanguage()
21 | });
22 | this.data.shouldChangeTitle = true;
23 | },
24 | onShow() {
25 | if (this.data.shouldChangeTitle) {
26 | wx.T.setNavigationBarTitle();
27 | this.data.shouldChangeTitle = false;
28 | }
29 | },
30 |
31 | copy(event) {
32 | wx.pro.setClipboardData({
33 | data: this.data.links[event.currentTarget.dataset.linkIndex]
34 | });
35 | }
36 | });
--------------------------------------------------------------------------------
/client/van-ui/card/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-card{box-sizing:border-box;position:relative;height:100px;padding:5px 15px 5px 115px;background:#fafafa;color:#333;font-size:12px}.van-card--center{-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}.van-card__thumb{position:absolute;top:5px;left:15px;width:90px;height:90px}.van-card__img{width:100%;height:100%}.van-card,.van-card__content{display:-webkit-flex;display:flex}.van-card__content{width:100%}.van-card__desc,.van-card__title{line-height:20px;word-break:break-all}.van-card__title{max-height:40px}.van-card__desc{max-height:20px;color:#666}.van-card__left{-webkit-flex:1;flex:1;min-width:0}.van-card__right{-webkit-flex:none;flex:none;padding-left:10px;line-height:20px;text-align:right}.van-card__origin-price{color:#666;text-decoration:line-through}.van-card__num{color:#666}.van-card__tag{position:absolute;top:2px;left:0}.van-card__footer{position:absolute;right:15px;bottom:5px}.van-card__footer .van-button{margin-left:5px}
--------------------------------------------------------------------------------
/client/van-ui/submit-bar/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | classes: ['bar-class', 'price-class', 'button-class'],
4 | props: {
5 | tip: [String, Boolean],
6 | type: Number,
7 | price: null,
8 | label: String,
9 | loading: Boolean,
10 | disabled: Boolean,
11 | buttonText: String,
12 | currency: {
13 | type: String,
14 | value: '¥'
15 | },
16 | buttonType: {
17 | type: String,
18 | value: 'danger'
19 | }
20 | },
21 | computed: {
22 | hasPrice: function hasPrice() {
23 | return typeof this.data.price === 'number';
24 | },
25 | priceStr: function priceStr() {
26 | return (this.data.price / 100).toFixed(2);
27 | },
28 | tipStr: function tipStr() {
29 | var tip = this.data.tip;
30 | return typeof tip === 'string' ? tip : '';
31 | }
32 | },
33 | methods: {
34 | onSubmit: function onSubmit(event) {
35 | this.$emit('submit', event.detail);
36 | }
37 | }
38 | });
--------------------------------------------------------------------------------
/client/van-ui/tag/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | var DEFAULT_COLOR = '#999';
3 | var COLOR_MAP = {
4 | danger: '#f44',
5 | primary: '#38f',
6 | success: '#06bf04'
7 | };
8 | VantComponent({
9 | props: {
10 | size: String,
11 | type: String,
12 | mark: Boolean,
13 | color: String,
14 | plain: Boolean,
15 | round: Boolean
16 | },
17 | computed: {
18 | classes: function classes() {
19 | var data = this.data;
20 | return this.classNames('van-tag', 'custom-class', {
21 | 'van-tag--mark': data.mark,
22 | 'van-tag--plain': data.plain,
23 | 'van-tag--round': data.round,
24 | ["van-tag--" + data.size]: data.size,
25 | 'van-hairline--surround': data.plain
26 | });
27 | },
28 | style: function style() {
29 | var color = this.data.color || COLOR_MAP[this.data.type] || DEFAULT_COLOR;
30 | var key = this.data.plain ? 'color' : 'background-color';
31 | return key + ": " + color;
32 | }
33 | }
34 | });
--------------------------------------------------------------------------------
/client/zan-ui/tag/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-tag{display:inline-block;position:relative;box-sizing:border-box;line-height:16px;padding:0 5px;border-radius:2px;font-size:11px;background:#c9c9c9;text-align:center;color:#fff}.zan-tag::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-width:1px;border-radius:4px}.zan-tag--plain{color:#c9c9c9;background:#fff}.zan-tag--primary{color:#fff;background-color:#4b0}.zan-tag--primary::after{border-color:#4b0}.zan-tag--primary.zan-tag--plain{color:#4b0;background:#fff}.zan-tag--danger{color:#fff;background:#f44}.zan-tag--danger::after{border-color:#f44}.zan-tag--danger.zan-tag--plain{color:#f44;background:#fff}.zan-tag--warn{color:#fff;background:#f85}.zan-tag--warn::after{border-color:#f85}.zan-tag--warn.zan-tag--plain{color:#f85;background:#fff}.zan-tag--disabled{color:#999!important;background:#e5e5e5}.zan-tag--disabled::after{border-color:#ccc}
--------------------------------------------------------------------------------
/client/zan-ui/tree-select/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
12 | {{ item.text }}
13 |
14 |
15 |
19 |
26 | {{ item.text }}
27 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/client/van-ui/mixins/observer/index.js:
--------------------------------------------------------------------------------
1 | import { behavior } from './behavior';
2 | import { observeProps } from './props';
3 | export function observe(vantOptions, options) {
4 | var watch = vantOptions.watch,
5 | computed = vantOptions.computed;
6 |
7 | if (watch) {
8 | var props = options.properties || {};
9 | Object.keys(watch).forEach(function (key) {
10 | if (key in props) {
11 | var prop = props[key];
12 |
13 | if (prop === null || !('type' in prop)) {
14 | prop = {
15 | type: prop
16 | };
17 | }
18 |
19 | prop.observer = watch[key];
20 | props[key] = prop;
21 | }
22 | });
23 | options.properties = props;
24 | }
25 |
26 | if (computed) {
27 | options.behaviors.push(behavior);
28 | options.methods = options.methods || {};
29 |
30 | options.methods.$options = function () {
31 | return vantOptions;
32 | };
33 |
34 | if (options.properties) {
35 | observeProps(options.properties);
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/client/van-ui/row/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | relation: {
4 | name: 'col',
5 | type: 'descendant',
6 | linked: function linked(target) {
7 | if (this.data.gutter) {
8 | target.setGutter(this.data.gutter);
9 | }
10 | }
11 | },
12 | props: {
13 | gutter: Number
14 | },
15 | watch: {
16 | gutter: 'setGutter'
17 | },
18 | mounted: function mounted() {
19 | if (this.data.gutter) {
20 | this.setGutter();
21 | }
22 | },
23 | methods: {
24 | setGutter: function setGutter() {
25 | var _this = this;
26 |
27 | var gutter = this.data.gutter;
28 | var margin = "-" + Number(gutter) / 2 + "px";
29 | var style = gutter ? "margin-right: " + margin + "; margin-left: " + margin + ";" : '';
30 | this.setData({
31 | style: style
32 | });
33 | this.getRelationNodes('../col/index').forEach(function (col) {
34 | col.setGutter(_this.data.gutter);
35 | });
36 | }
37 | }
38 | });
--------------------------------------------------------------------------------
/client/zan-ui/datetime-picker/index.wxss:
--------------------------------------------------------------------------------
1 | .picker-visible {
2 | height: 236px;
3 | bottom: 0;
4 | }
5 |
6 | picker-view-column.year-view-column {
7 | width: 50px;
8 | flex: 2;
9 | }
10 | picker-view-column {
11 | width: 30px;
12 | text-align: center;
13 | }
14 | .hidden {
15 | display: none;
16 | }
17 | .view-column-tip {
18 | height: 235px;
19 | line-height: 235px;
20 | margin: 0 5px;
21 | }
22 |
23 | .picker {
24 | width: 100vw;
25 | height: 100vh;
26 | top: 0;
27 | left: 0;
28 | z-index: 12;
29 | }
30 |
31 | .picker .picker-action {
32 | height: 36px;
33 | bottom: 235px;
34 | padding: 0 15px;
35 | width: 100%;
36 | display: flex;
37 | align-items: center;
38 | position: absolute;
39 | background: #fff;
40 | box-sizing: border-box;
41 | border-bottom: 1rpx solid #e5e5e5;
42 | justify-content: space-between;
43 | }
44 | .picker-action view:last-child {
45 | color: #1aad16;
46 | }
47 |
48 | .picker picker-view {
49 | position: absolute;
50 | bottom: 0;
51 | background: #fff;
52 | width: 100vw;
53 | }
--------------------------------------------------------------------------------
/client/van-ui/cell/index.wxml:
--------------------------------------------------------------------------------
1 |
6 |
12 |
13 |
14 |
18 |
19 | {{ title }}
20 | {{ label }}
21 |
22 |
23 |
24 |
25 |
26 | {{ value }}
27 |
28 |
29 |
30 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/client/van-ui/steps/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 | {{ item.text }}
10 | {{ item.desc }}
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/client/van-ui/tree-select/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
13 | {{ item.text }}
14 |
15 |
16 |
20 |
27 | {{ item.text }}
28 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/client/van-ui/field/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-field__body{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.van-field__body--textarea{min-height:24px}.van-field__input{border:0;margin:0;padding:0;width:100%;height:24px;resize:none;display:block;text-align:left;min-height:24px;line-height:inherit;box-sizing:border-box;background-color:transparent}.van-field__input--disabled{opacity:1;color:#666;background-color:transparent}.van-field__input--center{text-align:center}.van-field__input--right{text-align:right}.van-field__clear-root{height:24px}.van-field__button,.van-field__clear,.van-field__icon-container{-webkit-flex-shrink:0;flex-shrink:0}.van-field__clear,.van-field__icon-container{padding:0 10px;line-height:inherit;margin-right:-10px;vertical-align:middle}.van-field__clear{color:#c9c9c9;font-size:16px}.van-field__icon-container{color:#999}.van-field__icon{display:block;font-size:16px;line-height:inherit}.van-field__button{padding-left:10px}.van-field__error-message{color:#f44;font-size:12px;text-align:left}.van-field--error{color:#f44}
--------------------------------------------------------------------------------
/client/utils/util.js:
--------------------------------------------------------------------------------
1 | import Toast from '../van-ui/toast/toast';
2 |
3 | function show(message, type) {
4 | if(type) {
5 | Toast[type](message);
6 | } else {
7 | Toast(message);
8 | }
9 | }
10 |
11 | function keepShowing(message, type) {
12 | if(type) {
13 | Toast[type]({
14 | duration: 0,
15 | message
16 | });
17 | } else {
18 | Toast({
19 | duration: 0,
20 | message
21 | });
22 | }
23 | }
24 |
25 | function getDateString(date, withHours) {
26 | return getYearMonthDays(date)
27 | + (withHours ? getHourMinutes(date) : '');
28 | }
29 | function getYearMonthDays(date) {
30 | date = new Date(date);
31 | return `${date.getFullYear()}-${('0' + (date.getMonth() + 1)).slice(-2)}-${('0' + date.getDate()).slice(-2)}`;
32 | }
33 | function getHourMinutes(date) {
34 | date = new Date(date);
35 | return `${('0' + date.getHours()).slice(-2)}:${('0' + date.getMinutes()).slice(-2)}`;
36 | }
37 |
38 | module.exports = { show, keepShowing, getDateString, getYearMonthDays, getHourMinutes };
--------------------------------------------------------------------------------
/client/van-ui/notice-bar/index.wxml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 | {{ text }}
13 |
14 |
15 |
16 |
17 |
23 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/client/van-ui/search/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
25 |
26 |
27 |
28 | 取消
29 |
30 |
31 |
--------------------------------------------------------------------------------
/client/van-ui/area/index.wxss:
--------------------------------------------------------------------------------
1 | @import '../common/index.wxss';.van-picker{-webkit-text-size-adjust:100%;position:relative;overflow:hidden;background-color:#fff;-webkit-user-select:none;user-select:none}.van-picker__toolbar{display:-webkit-flex;display:flex;-webkit-justify-content:space-between;justify-content:space-between;height:44px;line-height:44px}.van-picker__cancel,.van-picker__confirm{color:#38f;padding:0 15px;font-size:14px}.van-picker__cancel:active,.van-picker__confirm:active{background-color:#e8e8e8}.van-picker__title{max-width:50%;font-size:16px;font-weight:500;text-align:center}.van-picker__columns{position:relative}.van-picker__loading{display:-webkit-flex;display:flex;z-index:4;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;background-color:rgba(255,255,255,.9)}.van-picker-column{-webkit-flex:1;flex:1;overflow:hidden;font-size:16px;text-align:center}.van-picker-column__item{padding:0 5px;color:#999}.van-picker-column__item--selected{font-weight:500;color:#333}.van-picker-column__item--disabled{opacity:.3}
--------------------------------------------------------------------------------
/client/van-ui/mixins/observer/behavior.js:
--------------------------------------------------------------------------------
1 | export var behavior = Behavior({
2 | created: function created() {
3 | var _this = this;
4 |
5 | if (!this.$options) {
6 | return;
7 | }
8 |
9 | var cache = {};
10 | var setData = this.setData;
11 |
12 | var _this$$options = this.$options(),
13 | computed = _this$$options.computed;
14 |
15 | var keys = Object.keys(computed);
16 |
17 | var calcComputed = function calcComputed() {
18 | var needUpdate = {};
19 | keys.forEach(function (key) {
20 | var value = computed[key].call(_this);
21 |
22 | if (cache[key] !== value) {
23 | cache[key] = needUpdate[key] = value;
24 | }
25 | });
26 | return needUpdate;
27 | };
28 |
29 | Object.defineProperty(this, 'setData', {
30 | writable: true
31 | });
32 |
33 | this.setData = function (data, callback) {
34 | data && setData.call(_this, data, callback);
35 | setData.call(_this, calcComputed());
36 | };
37 | },
38 | attached: function attached() {
39 | this.setData();
40 | }
41 | });
--------------------------------------------------------------------------------
/client/zan-ui/actionsheet/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Component({
4 | externalClasses: ['mask-class', 'container-class'],
5 | properties: {
6 | actions: {
7 | type: Array,
8 | value: []
9 | },
10 | show: {
11 | type: Boolean,
12 | value: false
13 | },
14 | cancelWithMask: {
15 | type: Boolean,
16 | value: true
17 | },
18 | cancelText: {
19 | type: String,
20 | value: ''
21 | }
22 | },
23 | methods: {
24 | onMaskClick: function onMaskClick() {
25 | if (this.data.cancelWithMask) {
26 | this.cancelClick();
27 | }
28 | },
29 | cancelClick: function cancelClick() {
30 | this.triggerEvent('cancel');
31 | },
32 | handleBtnClick: function handleBtnClick(_ref) {
33 | var _ref$currentTarget = _ref.currentTarget,
34 | currentTarget = _ref$currentTarget === undefined ? {} : _ref$currentTarget;
35 |
36 | var dataset = currentTarget.dataset || {};
37 | var index = dataset.index;
38 |
39 | this.triggerEvent('actionclick', { index: index });
40 | }
41 | }
42 | });
--------------------------------------------------------------------------------
/client/zan-ui/dialog/index.wxss:
--------------------------------------------------------------------------------
1 | .zan-dialog--container{width:80vw;font-size:16px;overflow:hidden;border-radius:4px;background-color:#fff;color:#333}.zan-dialog__header{padding:15px 0 0;text-align:center}.zan-dialog__content{position:relative;padding:15px 20px;line-height:1.5;min-height:40px}.zan-dialog__content::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-bottom-width:1px}.zan-dialog__content--title{color:#999;font-size:14px}.zan-dialog__footer{overflow:hidden}.zan-dialog__button{-webkit-box-flex:1;flex:1}.zan-dialog__button-inside,.zan-dialog__button-inside--first{margin-bottom:0;line-height:50px;height:50px}.zan-dialog__button-inside--first::after,.zan-dialog__button-inside::after{border-width:0;border-radius:0}.zan-dialog__footer--horizon{display:-webkit-box;display:flex}.zan-dialog__footer--horizon .zan-dialog__button-inside::after{border-left-width:1px}.zan-dialog__footer--vertical .zan-dialog__button-inside::after{border-top-width:1px}
--------------------------------------------------------------------------------
/client/van-ui/radio-group/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | field: true,
4 | relation: {
5 | name: 'radio',
6 | type: 'descendant',
7 | linked: function linked(target) {
8 | var _this$data = this.data,
9 | value = _this$data.value,
10 | disabled = _this$data.disabled;
11 | target.setData({
12 | value: value,
13 | disabled: disabled || target.data.disabled
14 | });
15 | }
16 | },
17 | props: {
18 | value: null,
19 | disabled: Boolean
20 | },
21 | watch: {
22 | value: function value(_value) {
23 | var children = this.getRelationNodes('../radio/index');
24 | children.forEach(function (child) {
25 | child.setData({
26 | value: _value
27 | });
28 | });
29 | },
30 | disabled: function disabled(_disabled) {
31 | var children = this.getRelationNodes('../radio/index');
32 | children.forEach(function (child) {
33 | child.setData({
34 | disabled: _disabled || child.data.disabled
35 | });
36 | });
37 | }
38 | }
39 | });
--------------------------------------------------------------------------------
/client/van-ui/steps/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | props: {
4 | icon: String,
5 | steps: Array,
6 | active: Number,
7 | direction: {
8 | type: String,
9 | value: 'horizontal'
10 | },
11 | activeColor: {
12 | type: String,
13 | value: '#06bf04'
14 | }
15 | },
16 | watch: {
17 | steps: 'formatSteps',
18 | active: 'formatSteps'
19 | },
20 | created: function created() {
21 | this.formatSteps();
22 | },
23 | methods: {
24 | formatSteps: function formatSteps() {
25 | var _this = this;
26 |
27 | var steps = this.data.steps;
28 | steps.forEach(function (step, index) {
29 | step.status = _this.getStatus(index);
30 | });
31 | this.setData({
32 | steps: steps
33 | });
34 | },
35 | getStatus: function getStatus(index) {
36 | var active = this.data.active;
37 |
38 | if (index < active) {
39 | return 'finish';
40 | } else if (index === active) {
41 | return 'process';
42 | }
43 |
44 | return '';
45 | }
46 | }
47 | });
--------------------------------------------------------------------------------
/client/zan-ui/card/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | ¥ {{ price }}
16 |
17 | {{ title }}
18 |
19 |
20 |
21 |
22 | x {{ num }}
23 |
24 | {{ desc }}
25 |
26 |
27 |
28 |
29 | {{ status }}
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 upupming
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/client/zan-ui/btn/index.wxml:
--------------------------------------------------------------------------------
1 |
25 |
--------------------------------------------------------------------------------
/client/zan-ui/search/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
9 |
10 |
23 |
31 |
32 |
38 | {{cancelText || '取消'}}
39 |
40 |
41 |
--------------------------------------------------------------------------------
/client/prototypes.js:
--------------------------------------------------------------------------------
1 | Array.prototype.indexOfSameValue = function(obj){
2 | function isEquivalent(a, b) {
3 | // Create arrays of property names
4 | var aProps = Object.getOwnPropertyNames(a);
5 | var bProps = Object.getOwnPropertyNames(b);
6 |
7 | // If number of properties is different,
8 | // objects are not equivalent
9 | if (aProps.length != bProps.length) {
10 | return false;
11 | }
12 |
13 | for (var i = 0; i < aProps.length; i++) {
14 | var propName = aProps[i];
15 |
16 | // If values of same property are not equal,
17 | // objects are not equivalent
18 | if (a[propName] !== b[propName]) {
19 | return false;
20 | }
21 | }
22 |
23 | // If we made it this far, objects
24 | // are considered equivalent
25 | return true;
26 | }
27 | for(let i=0; i
26 |
27 |
33 | {{ text }}
34 |
35 |
36 |
--------------------------------------------------------------------------------
/client/zan-ui/toptips/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var FONT_COLOR = '#fff';
4 | var BG_COLOR = '#e64340';
5 |
6 | Component({
7 | properties: {
8 | content: String,
9 | color: {
10 | type: String,
11 | value: FONT_COLOR
12 | },
13 | backgroundColor: {
14 | type: String,
15 | value: BG_COLOR
16 | },
17 | isShow: {
18 | type: Boolean,
19 | value: false
20 | },
21 | duration: {
22 | type: Number,
23 | value: 3000
24 | }
25 | },
26 |
27 | methods: {
28 | show: function show() {
29 | var _this = this;
30 |
31 | var duration = this.data.duration;
32 |
33 |
34 | this._timer && clearTimeout(this._timer);
35 | this.setData({
36 | isShow: true
37 | });
38 |
39 | if (duration > 0 && duration !== Infinity) {
40 | this._timer = setTimeout(function () {
41 | _this.hide();
42 | }, duration);
43 | }
44 | },
45 | hide: function hide() {
46 | this._timer = clearTimeout(this._timer);
47 |
48 | this.setData({
49 | isShow: false,
50 | backgroundColor: BG_COLOR
51 | });
52 | }
53 | }
54 | });
--------------------------------------------------------------------------------
/client/van-ui/search/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | field: true,
4 | classes: ['cancel-class'],
5 | props: {
6 | focus: Boolean,
7 | disabled: Boolean,
8 | readonly: Boolean,
9 | showAction: Boolean,
10 | useActionSlot: Boolean,
11 | placeholder: String,
12 | placeholderStyle: String,
13 | background: {
14 | type: String,
15 | value: '#f2f2f2'
16 | },
17 | maxlength: {
18 | type: Number,
19 | value: -1
20 | }
21 | },
22 | methods: {
23 | onChange: function onChange(event) {
24 | this.setData({
25 | value: event.detail
26 | });
27 | this.$emit('change', event.detail);
28 | },
29 | onCancel: function onCancel() {
30 | this.setData({
31 | value: ''
32 | });
33 | this.$emit('cancel');
34 | this.$emit('change', '');
35 | },
36 | onSearch: function onSearch() {
37 | this.$emit('search', this.data.value);
38 | },
39 | onFocus: function onFocus() {
40 | this.$emit('focus');
41 | },
42 | onBlur: function onBlur() {
43 | this.$emit('blur');
44 | }
45 | }
46 | });
--------------------------------------------------------------------------------
/client/zan-ui/datetime-picker/date-picker-view.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
14 |
18 |
22 |
26 |
30 |
34 |
35 |
--------------------------------------------------------------------------------
/client/images/check.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/zan-ui/select/index.wxml:
--------------------------------------------------------------------------------
1 |
5 |
17 |
18 |
19 |
20 |
21 | function getColor(color) {
22 | color = color || '#ff4444'
23 | return color;
24 | }
25 |
26 | module.exports = {
27 | getColor: getColor,
28 | getItemStyle: function(item, checkedValue, activeColor) {
29 | var padding = item.padding * 10;
30 | var style = 'padding-left: ' + padding + 'px;';
31 |
32 | // 如果为选中状态,则高亮
33 | if (item.value === checkedValue) {
34 | style += 'color: ' + getColor(activeColor);
35 | }
36 |
37 | return style;
38 | }
39 | };
40 |
41 |
--------------------------------------------------------------------------------
/client/pages/index/index.wxss:
--------------------------------------------------------------------------------
1 | .container {
2 | padding: 45rpx 15rpx 0;
3 | }
4 |
5 | .title {
6 | text-align: center;
7 | user-select: none;
8 | }
9 |
10 | .logo,
11 | .title-text {
12 | display: inline-block;
13 | vertical-align: middle;
14 | }
15 |
16 | .title-text {
17 | font-size: 50rpx;
18 | margin-left: 15rpx;
19 | font-weight: 400;
20 | font-family: "Dosis", "Source Sans Pro", "Helvetica Neue", Arial, sans-serif;
21 | }
22 |
23 | .logo {
24 | width: 190rpx;
25 | height: 190rpx;
26 | }
27 |
28 | .desc {
29 | font-size: 28rpx;
30 | color: #455a64;
31 | text-align: center;
32 | }
33 |
34 | .flex-container {
35 | display: flex;
36 | }
37 |
38 | .center {
39 | margin: auto;
40 | padding-left: 15rpx;
41 | }
42 |
43 | .center-text {
44 | display: block;
45 | margin: auto;
46 | padding-top: 8rpx;
47 | padding-left: 20rpx;
48 | width: 200rpx;
49 | word-wrap: break-word;
50 | }
51 |
52 | .user-avatar {
53 | display: block;
54 | overflow: hidden;
55 | width: 100rpx;
56 | height: 100rpx;
57 | padding: 10rpx;
58 | border-radius: 50%;
59 | }
60 |
61 | .profile:active
62 | ,.cell:active
63 | ,.view-text:active {
64 | color: var(--theme-color);
65 | background: #d9d9d9;
66 | }
--------------------------------------------------------------------------------
/client/pages/work/notice-submit.js:
--------------------------------------------------------------------------------
1 | import event from '../../utils/event';
2 | const request = require('../../utils/requests');
3 | let util = require('../../utils/util');
4 |
5 | Page({
6 | data: {
7 | },
8 |
9 | onLoad: function () {
10 | this.setLanguage();
11 | event.on('languageChanged', this, this.setLanguage);
12 | },
13 | setLanguage() {
14 | this.setData({
15 | language: wx.T.getLanguage()
16 | });
17 | this.data.shouldChangeTitle = true;
18 | },
19 | onShow() {
20 | if (this.data.shouldChangeTitle) {
21 | wx.T.setNavigationBarTitle();
22 | this.data.shouldChangeTitle = false;
23 | }
24 | },
25 |
26 | submitNotice(event) {
27 | request.addNotice(event.detail.value.subject, event.detail.value.content)
28 | .then(res => {
29 | if(res.statusCode === 200) {
30 | util.show(this.data.language.noticeAdded, 'success');
31 | setTimeout(() => {
32 | wx.navigateBack({
33 | delta: 1
34 | });
35 | }, 1500);
36 | }
37 | });
38 | },
39 | abandonNotice() {
40 | wx.navigateBack({
41 | delta: 1
42 | });
43 | },
44 | });
--------------------------------------------------------------------------------
/client/van-ui/common/index.wxss:
--------------------------------------------------------------------------------
1 | .van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2}.van-multi-ellipsis--l3{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3}.van-clearfix::after{content:'';display:table;clear:both}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom::after,.van-hairline--left::after,.van-hairline--right::after,.van-hairline--surround::after,.van-hairline--top-bottom::after,.van-hairline--top::after,.van-hairline::after{content:' ';position:absolute;pointer-events:none;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;top:-50%;left:-50%;right:-50%;bottom:-50%;-webkit-transform:scale(.5);transform:scale(.5);border:0 solid #eee}.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}
--------------------------------------------------------------------------------
/client/images/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/pages/work/notice-submit.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/client/van-ui/checkbox-group/index.js:
--------------------------------------------------------------------------------
1 | import { VantComponent } from '../common/component';
2 | VantComponent({
3 | field: true,
4 | relation: {
5 | name: 'checkbox',
6 | type: 'descendant',
7 | linked: function linked(target) {
8 | var _this$data = this.data,
9 | value = _this$data.value,
10 | disabled = _this$data.disabled;
11 | target.setData({
12 | value: value.indexOf(target.data.name) !== -1,
13 | disabled: disabled || target.data.disabled
14 | });
15 | }
16 | },
17 | props: {
18 | value: Array,
19 | disabled: Boolean,
20 | max: Number
21 | },
22 | watch: {
23 | value: function value(_value) {
24 | var children = this.getRelationNodes('../checkbox/index');
25 | children.forEach(function (child) {
26 | child.setData({
27 | value: _value.indexOf(child.data.name) !== -1
28 | });
29 | });
30 | },
31 | disabled: function disabled(_disabled) {
32 | var children = this.getRelationNodes('../checkbox/index');
33 | children.forEach(function (child) {
34 | child.setData({
35 | disabled: _disabled || child.data.disabled
36 | });
37 | });
38 | }
39 | }
40 | });
--------------------------------------------------------------------------------
/client/images/3-active.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/images/me.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/van-ui/mixins/transition.js:
--------------------------------------------------------------------------------
1 | export var transition = function transition(showDefaultValue) {
2 | return Behavior({
3 | properties: {
4 | customStyle: String,
5 | show: {
6 | type: Boolean,
7 | value: showDefaultValue,
8 | observer: 'observeShow'
9 | },
10 | duration: {
11 | type: Number,
12 | value: 300
13 | }
14 | },
15 | data: {
16 | type: '',
17 | inited: false,
18 | display: false
19 | },
20 | attached: function attached() {
21 | if (this.data.show) {
22 | this.show();
23 | }
24 | },
25 | methods: {
26 | observeShow: function observeShow(value) {
27 | if (value) {
28 | this.show();
29 | } else {
30 | this.setData({
31 | type: 'leave'
32 | });
33 | }
34 | },
35 | show: function show() {
36 | this.setData({
37 | inited: true,
38 | display: true,
39 | type: 'enter'
40 | });
41 | },
42 | onAnimationEnd: function onAnimationEnd() {
43 | if (!this.data.show) {
44 | this.setData({
45 | display: false
46 | });
47 | }
48 | }
49 | }
50 | });
51 | };
--------------------------------------------------------------------------------
/client/van-ui/area/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 取消
4 | {{ title }}
5 | 确定
6 |
7 |
8 |
9 |
10 |
11 |
12 |
19 |
26 | {{ item.name }}
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/client/images/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/images/notices.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------