├── CardsWxProgram ├── app.js ├── app.json ├── app.wxss ├── assets │ ├── common │ │ ├── _ani-botton.less │ │ ├── _badge.less │ │ ├── _botton.less │ │ ├── _cell.less │ │ ├── _field.less │ │ ├── _gallery.less │ │ ├── _indicator.less │ │ ├── _loadmore.less │ │ ├── _mixins.less │ │ ├── _popup.less │ │ ├── _switch.less │ │ └── _var.less │ ├── iconfont.wxss │ ├── index.wxss │ ├── module.css │ ├── packages.css │ └── packages │ │ ├── _addCard.less │ │ ├── _atlas.less │ │ ├── _case.less │ │ ├── _comment.less │ │ ├── _company.less │ │ ├── _detail.less │ │ ├── _editPopop.less │ │ ├── _fastAdd.less │ │ ├── _folder.less │ │ ├── _main.less │ │ ├── _master.less │ │ ├── _site.less │ │ ├── _swiper.less │ │ ├── _tabbar.less │ │ ├── _template.less │ │ ├── module.less │ │ └── packages.less ├── components │ ├── atlas │ │ ├── list.js │ │ ├── list.json │ │ └── list.wxml │ ├── button │ │ ├── button.js │ │ ├── button.wxml │ │ └── index.wxss │ ├── common │ │ └── helper.js │ ├── component.js │ ├── field │ │ ├── index.js │ │ ├── index.wxml │ │ └── index.wxss │ ├── index.js │ ├── switch │ │ ├── index.js │ │ ├── index.wxml │ │ └── index.wxss │ └── template │ │ └── template.wxml ├── image │ ├── avatar_man.png │ ├── avatar_woman.png │ ├── banner_01.jpg │ ├── blur_bg.png │ ├── error1.png │ ├── img_default.png │ ├── location.png │ ├── logo-little.png │ ├── logo.png │ ├── quoted.jpg │ ├── rank_version.jpg │ ├── tabbar_01.png │ ├── tabbar_02.png │ ├── tabbar_03.png │ ├── upload_add.png │ ├── upload_btn.png │ ├── upload_btn_add.png │ ├── upload_img.png │ └── wechat_bg.png ├── pages │ ├── login │ │ ├── bindphone │ │ │ ├── api.js │ │ │ ├── index.js │ │ │ ├── index.json │ │ │ ├── index.wxml │ │ │ └── index.wxss │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxss │ │ ├── layer │ │ │ ├── layer.js │ │ │ ├── layer.json │ │ │ ├── layer.wxml │ │ │ └── layer.wxss │ │ └── relogin │ │ │ └── index.js │ ├── main │ │ ├── activity_detail │ │ │ ├── api.js │ │ │ ├── detail.js │ │ │ ├── detail.wxml │ │ │ └── detail.wxss │ │ ├── activity_edit │ │ │ ├── api.js │ │ │ ├── upload.js │ │ │ ├── upload.json │ │ │ ├── upload.wxml │ │ │ └── upload.wxss │ │ ├── activity_list │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.json │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── activity_sign │ │ │ ├── api.js │ │ │ ├── sign.js │ │ │ ├── sign.json │ │ │ ├── sign.wxml │ │ │ └── sign.wxss │ │ ├── api.js │ │ ├── atlas_edit │ │ │ ├── api.js │ │ │ ├── upload.js │ │ │ ├── upload.json │ │ │ ├── upload.wxml │ │ │ └── upload.wxss │ │ ├── atlas_gallery │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── atlas_list │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.json │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── case_detail │ │ │ ├── api.js │ │ │ ├── detail.js │ │ │ ├── detail.wxml │ │ │ └── detail.wxss │ │ ├── case_edit │ │ │ ├── config.js │ │ │ ├── upload.js │ │ │ ├── upload.json │ │ │ ├── upload.wxml │ │ │ └── upload.wxss │ │ ├── case_fast │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.json │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── case_list │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.json │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── comment_edit │ │ │ ├── api.js │ │ │ ├── upload.js │ │ │ ├── upload.json │ │ │ ├── upload.wxml │ │ │ └── upload.wxss │ │ ├── comment_list │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.json │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── company_edit │ │ │ ├── upload.js │ │ │ ├── upload.json │ │ │ ├── upload.wxml │ │ │ └── upload.wxss │ │ ├── company_list │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.json │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── company_search │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.json │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── config.js │ │ ├── folder_group │ │ │ ├── api.js │ │ │ ├── group.js │ │ │ ├── group.json │ │ │ ├── group.wxml │ │ │ └── group.wxss │ │ ├── folder_list │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.json │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxss │ │ ├── master_edit │ │ │ ├── api.js │ │ │ ├── config.js │ │ │ ├── upload.js │ │ │ ├── upload.json │ │ │ ├── upload.wxml │ │ │ └── upload.wxss │ │ ├── master_fast │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.json │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── master_list │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.json │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── master_log │ │ │ ├── api.js │ │ │ ├── log.js │ │ │ ├── log.json │ │ │ ├── log.wxml │ │ │ └── log.wxss │ │ ├── message_list │ │ │ ├── api.js │ │ │ ├── list.js │ │ │ ├── list.json │ │ │ ├── list.wxml │ │ │ └── list.wxss │ │ ├── rank_version │ │ │ ├── version.js │ │ │ ├── version.json │ │ │ ├── version.wxml │ │ │ └── version.wxss │ │ ├── user │ │ │ ├── user.js │ │ │ ├── user.json │ │ │ ├── user.wxml │ │ │ └── user.wxss │ │ └── user_edit │ │ │ ├── config.js │ │ │ ├── upload.js │ │ │ ├── upload.json │ │ │ ├── upload.wxml │ │ │ └── upload.wxss │ └── start │ │ ├── add │ │ ├── add.js │ │ ├── add.json │ │ ├── add.wxml │ │ ├── add.wxss │ │ ├── api.js │ │ └── config.js │ │ ├── api.js │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxss │ │ ├── qrcode │ │ ├── qrcode.js │ │ ├── qrcode.json │ │ ├── qrcode.wxml │ │ └── qrcode.wxss │ │ └── version │ │ ├── api.js │ │ ├── version.js │ │ ├── version.json │ │ ├── version.wxml │ │ └── version.wxss ├── project.config.json ├── utils │ ├── api.js │ ├── filter.wxs │ └── util.js └── wxParse │ ├── html2json.js │ ├── htmlparser.js │ ├── showdown.js │ ├── wxDiscode.js │ ├── wxParse.js │ ├── wxParse.wxml │ └── wxParse.wxss └── README.md /CardsWxProgram/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "pages": [ 3 | "pages/start/index", 4 | "pages/start/add/add", 5 | "pages/start/version/version", 6 | "pages/login/index", 7 | "pages/login/layer/layer", 8 | "pages/start/qrcode/qrcode", 9 | "pages/main/atlas_gallery/list", 10 | "pages/main/index", 11 | "pages/main/user/user", 12 | "pages/main/case_fast/list", 13 | "pages/main/message_list/list", 14 | "pages/main/user_edit/upload", 15 | "pages/main/folder_group/group", 16 | "pages/main/folder_list/list", 17 | "pages/main/master_list/list", 18 | "pages/main/master_edit/upload", 19 | "pages/main/master_log/log", 20 | "pages/main/master_fast/list", 21 | "pages/main/activity_list/list", 22 | "pages/main/activity_edit/upload", 23 | "pages/main/activity_sign/sign", 24 | "pages/main/activity_detail/detail", 25 | "pages/main/atlas_list/list", 26 | "pages/main/atlas_edit/upload", 27 | "pages/main/comment_list/list", 28 | "pages/main/comment_edit/upload", 29 | "pages/main/case_list/list", 30 | "pages/main/case_edit/upload", 31 | "pages/main/case_detail/detail", 32 | "pages/main/rank_version/version", 33 | "pages/main/company_list/list", 34 | "pages/main/company_edit/upload", 35 | "pages/login/bindphone/index", 36 | "pages/main/company_search/list", 37 | "pages/login/relogin/index" 38 | ], 39 | "window": { 40 | "backgroundTextStyle": "light", 41 | "navigationBarBackgroundColor": "#fff", 42 | "navigationBarTitleText": "蜂巢名片", 43 | "navigationBarTextStyle": "black" 44 | }, 45 | "debug": false 46 | } 47 | -------------------------------------------------------------------------------- /CardsWxProgram/app.wxss: -------------------------------------------------------------------------------- 1 | /**app.wxss**/ 2 | 3 | .container { 4 | background: #F9F9F9; 5 | overflow: hidden; 6 | min-height: 100vh; 7 | box-sizing: border-box; 8 | } 9 | 10 | .container::before { 11 | position: fixed; 12 | top: 0; 13 | left: 0; 14 | content: ' '; 15 | width: 100%; 16 | height: 1px; 17 | background-color: #ebecf2; 18 | z-index: 1; 19 | } 20 | 21 | .wuli-panel { 22 | position: relative; 23 | background: #fff; 24 | overflow: hidden; 25 | } 26 | 27 | 28 | /* 文字限制行数 */ 29 | 30 | .wuli-ellipsis__l2 { 31 | max-height: 40px; 32 | line-height: 20px; 33 | overflow: hidden; 34 | text-overflow: ellipsis; 35 | display: -webkit-box; 36 | -webkit-line-clamp: 2; 37 | -webkit-box-orient: vertical; 38 | } 39 | 40 | .wuli-ellipsis__l3 { 41 | line-height: 1.4; 42 | overflow: hidden; 43 | text-overflow: ellipsis; 44 | display: -webkit-box; 45 | -webkit-line-clamp: 3; 46 | -webkit-box-orient: vertical; 47 | } 48 | 49 | .wuli-helper__tips { 50 | font-size: 28rpx; 51 | } 52 | 53 | .wuli-helper__tips::after { 54 | border: 0; 55 | } 56 | 57 | .kefubtn { 58 | border: none; 59 | background: initial; 60 | padding: none; 61 | border-radius: inherit; 62 | line-height: inherit; 63 | box-sizing: inherit; 64 | -webkit-tap-highlight-color: inherit; 65 | padding-left: 0; 66 | padding-right: 0; 67 | font-size: inherit; 68 | } 69 | 70 | .kefubtn::after, .wuli-btn__share::after { 71 | border: 0 none; 72 | } 73 | 74 | .wuli-btn__share { 75 | width: 44px; 76 | height: 44px; 77 | top: 0; 78 | opacity: 0; 79 | } 80 | 81 | .icon-zhuanfa { 82 | color: #00a0e9 !important; 83 | } 84 | 85 | .fade-in__animate { 86 | transition: all 500ms ease; 87 | transform: translate3d(0, 0, 0); 88 | -webkit-backface-visibility: hidden; 89 | backface-visibility: hidden; 90 | -webkit-perspective: 1000; 91 | perspective: 1000; 92 | } 93 | 94 | @import './assets/iconfont.wxss'; 95 | @import './assets/index.wxss'; -------------------------------------------------------------------------------- /CardsWxProgram/assets/common/_badge.less: -------------------------------------------------------------------------------- 1 | @import "_var"; 2 | 3 | .wuli-badge { 4 | position: relative; 5 | &__count { 6 | position: absolute; 7 | top: -8px; 8 | right: 36%; 9 | height: 1.6em; 10 | min-width: 1.6em; 11 | line-height: 1.6; 12 | padding: 0 0.4em; 13 | font-size: @--size-base + 6; 14 | border-radius: 0.8em; 15 | background: #f44; 16 | color: @--color-white; 17 | text-align: center; 18 | white-space: nowrap; 19 | transform: translateX(50%) scale(0.5); 20 | transform-origin: center; 21 | z-index: 10; 22 | box-shadow: 0 0 0 2px @--color-white; 23 | box-sizing: border-box; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/common/_cell.less: -------------------------------------------------------------------------------- 1 | @import "_var"; 2 | @import "_mixins"; 3 | 4 | .wuli-cell { 5 | position: relative; 6 | padding: 12px 15px; 7 | .display-flex(); 8 | align-items: center; 9 | line-height: 1.4; 10 | font-size: @--size-base + 2; 11 | &::after { 12 | content: ""; 13 | position: absolute; 14 | top: 0; 15 | left: 0; 16 | width: 200%; 17 | height: 200%; 18 | transform: scale(0.5); 19 | transform-origin: 0 0; 20 | pointer-events: none; 21 | box-sizing: border-box; 22 | border: 0 solid #e5e5e5; 23 | border-bottom-width: 1px; 24 | left: 15px; 25 | right: 0; 26 | } 27 | &__icon { 28 | margin-right: 5px; 29 | } 30 | &__bd { 31 | .box-flex(1); 32 | } 33 | &__text { 34 | line-height: 24px; 35 | font-size: 14px; 36 | } 37 | &__desc { 38 | line-height: 1.2; 39 | font-size: @--size-base - 2; 40 | color: #666; 41 | } 42 | &__ft { 43 | position: relative; 44 | text-align: right; 45 | color: #666; 46 | } 47 | &__no-pading { 48 | padding: 0; 49 | .wuli-cell__bd_padding { 50 | padding: 12px 0 12px 15px; 51 | } 52 | .wuli-form__input { 53 | height: 26px; 54 | } 55 | } 56 | &--last-child::after, 57 | &:last-child::after { 58 | display: none; 59 | } 60 | &__access { 61 | .wuli-cell__ft { 62 | padding-right: 13px; 63 | &::after { 64 | position: absolute; 65 | top: 50%; 66 | right: 2px; 67 | content: " "; 68 | display: inline-block; 69 | height: 6px; 70 | width: 6px; 71 | border-width: 2px 2px 0 0; 72 | border-color: #c8c8c8; 73 | border-style: solid; 74 | transform: translateY(-50%) matrix(0.71, 0.71, -0.71, 0.71, 0, 0); 75 | } 76 | } 77 | } 78 | &__switch { 79 | padding-top: 6px; 80 | padding-bottom: 6px; 81 | } 82 | &__item { 83 | position: relative; 84 | border-top: 1px solid #eee; 85 | height: 44px; 86 | line-height: 44px; 87 | overflow: hidden; 88 | } 89 | &__warp { 90 | position: absolute; 91 | top: 0; 92 | width: 100%; 93 | height: 44px; 94 | left: 15px; 95 | font-size: @--size-base; 96 | background-color: @--color-white; 97 | .transition(left 0.2s ease-in-out); 98 | .text-overflow(); 99 | z-index: 5; 100 | } 101 | &__del { 102 | position: absolute; 103 | top: 0; 104 | right: 0; 105 | width: 90px; 106 | text-align: center; 107 | color: @--color-white; 108 | font-size: @--size-base; 109 | background-color: @--color-danger; 110 | z-index: 4; 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/common/_field.less: -------------------------------------------------------------------------------- 1 | @import "_var"; 2 | 3 | .wuli-field { 4 | padding: 7px 15px; 5 | color: #333; 6 | &__wrapped { 7 | margin: 10px 15px 0; 8 | background-color: @--color-white; 9 | &::after { 10 | left: 0; 11 | border-width: 1px; 12 | border-radius: 4px; 13 | } 14 | } 15 | &.wuli-field__wrapped::after { 16 | display: block; 17 | } 18 | &__error.wuli-field__wrapped::after { 19 | border-color: @--color-danger; 20 | } 21 | &__title { 22 | color: #333; 23 | min-width: 65px; 24 | padding-right: 10px; 25 | } 26 | &__input { 27 | flex: 1; 28 | line-height: 1.6; 29 | padding: 4px 0; 30 | min-height: 22px; 31 | height: auto; 32 | font-size: @--size-base + 2; 33 | } 34 | &__placeholder { 35 | font-size: @--size-base + 2; 36 | color: #c3c3c3; 37 | } 38 | &__input--right { 39 | text-align: right; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/common/_gallery.less: -------------------------------------------------------------------------------- 1 | @import "_var"; 2 | @import "_mixins"; 3 | 4 | .wuli-gallery { 5 | display: block; 6 | position: fixed; 7 | top: 0; 8 | right: 0; 9 | bottom: 0; 10 | left: 0; 11 | background-color: @--color-black; 12 | z-index: 1000; 13 | &__swiper { 14 | width: 100%; 15 | height: 100%; 16 | } 17 | &__item { 18 | .display-flex(); 19 | flex-direction: column; 20 | justify-content: center; 21 | } 22 | &__img { 23 | flex: none; 24 | width: 100%; 25 | height: 100%; 26 | } 27 | &__opr { 28 | position: absolute; 29 | right: 0; 30 | bottom: 0; 31 | left: 0; 32 | background-color: #0d0d0d; 33 | color: @--color-white; 34 | line-height: 60px; 35 | text-align: center; 36 | } 37 | &__desc { 38 | display: block; 39 | font-size: @--size-base; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/common/_indicator.less: -------------------------------------------------------------------------------- 1 | @import "_var"; 2 | @import "_mixins"; 3 | 4 | page { 5 | background-color: #ebecf2; 6 | } 7 | .indicator { 8 | margin: 55rpx auto 25rpx; 9 | height: 16rpx; 10 | .display-flex(); 11 | align-items: center; 12 | justify-content: center; 13 | &-dots { 14 | width: 16rpx; 15 | height: 16rpx; 16 | margin: 0 5rpx; 17 | background-color: #cdced7; 18 | .border-radius(50%); 19 | &.is-active { 20 | background-color: #f9faff; 21 | box-shadow: inset 0 -2px 5px rgba(0, 0, 0, 0.1); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/common/_loadmore.less: -------------------------------------------------------------------------------- 1 | @import "_var"; 2 | @import "_mixins"; 3 | 4 | .wuli-loadmore { 5 | @--line-color: #f4f4f4; 6 | position: relative; 7 | width: 65%; 8 | margin: 21px auto; 9 | line-height: 20px; 10 | font-size: @--size-base; 11 | text-align: center; 12 | vertical-align: middle; 13 | &__tips { 14 | display: inline-block; 15 | vertical-align: middle; 16 | height: 20px; 17 | line-height: 20px; 18 | } 19 | &__nodata, 20 | &__nomore { 21 | color: @--color-info; 22 | &::after { 23 | content: ""; 24 | position: absolute; 25 | top: 0; 26 | left: 0; 27 | width: 200%; 28 | height: 200%; 29 | transform: scale(0.5); 30 | transform-origin: 0 0; 31 | pointer-events: none; 32 | box-sizing: border-box; 33 | border: 0 solid @--line-color; 34 | border-top-width: 1px; 35 | } 36 | } 37 | &__nodata { 38 | .wuli-loadmore__tips { 39 | position: relative; 40 | top: -11px; 41 | padding: 0 6px; 42 | z-index: 1; 43 | } 44 | } 45 | &__icon { 46 | margin: 50px auto 15px; 47 | .iconfont { 48 | font-size: @--size-base * 4; 49 | color: #999; 50 | } 51 | + .wuli-loadmore__tips { 52 | color: #999; 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/common/_popup.less: -------------------------------------------------------------------------------- 1 | .wuli-popup { 2 | visibility: hidden; 3 | &__show { 4 | visibility: visible; 5 | .wuli-popup__container { 6 | opacity: 1; 7 | } 8 | &.wuli-popup__left { 9 | .wuli-popup__container { 10 | transform: translate3d(0, 0, 0); 11 | } 12 | } 13 | &.wuli-popup__right { 14 | .wuli-popup__container { 15 | transform: translate3d(0, 0, 0); 16 | } 17 | } 18 | &.wuli-popup__bottom { 19 | .wuli-popup__container { 20 | transform: translate3d(0, 0, 0); 21 | } 22 | } 23 | &.wuli-popup__top { 24 | .wuli-popup__container { 25 | transform: translate3d(0, 0, 0); 26 | } 27 | } 28 | } 29 | &__mask { 30 | position: fixed; 31 | top: 0; 32 | left: 0; 33 | right: 0; 34 | bottom: 0; 35 | z-index: 10; 36 | background: rgba(0, 0, 0, 0.5); 37 | } 38 | &__container { 39 | position: fixed; 40 | left: 50%; 41 | top: 50%; 42 | background: #fff; 43 | transform: translate3d(-50%, -50%, 0); 44 | transform-origin: center; 45 | transition: all 0.4s ease; 46 | z-index: 99; 47 | opacity: 0; 48 | } 49 | &__left { 50 | .wuli-popup__container { 51 | left: 0; 52 | top: auto; 53 | transform: translate3d(-100%, 0, 0); 54 | } 55 | } 56 | &__right { 57 | .wuli-popup__container { 58 | right: 0; 59 | top: auto; 60 | left: auto; 61 | transform: translate3d(100%, 0, 0); 62 | } 63 | } 64 | &__bottom { 65 | .wuli-popup__container { 66 | top: auto; 67 | left: auto; 68 | bottom: 0; 69 | transform: translate3d(0, 100%, 0); 70 | } 71 | } 72 | &__top { 73 | .wuli-popup__container { 74 | top: 0; 75 | left: auto; 76 | transform: translate3d(0, -100%, 0); 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/common/_switch.less: -------------------------------------------------------------------------------- 1 | @import "_var"; 2 | @--color-border: @--color-primary; 3 | 4 | .wuli-switch { 5 | position: relative; 6 | display: inline-block; 7 | width: 52px; 8 | height: 30px; 9 | vertical-align: middle; 10 | box-sizing: border-box; 11 | border-radius: 15px; 12 | background: @--color-border; 13 | border: 1px solid @--color-border; 14 | &__circle { 15 | position: absolute; 16 | top: 0; 17 | left: 0; 18 | width: 28px; 19 | height: 28px; 20 | display: inline-block; 21 | background: #fff; 22 | border-radius: 14px; 23 | box-sizing: border-box; 24 | box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0 3px 1px 0 rgba(0, 0, 0, 0.05), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 25 | 0 3px 3px 0 rgba(0, 0, 0, 0.05); 26 | transition: transform 0.35s cubic-bezier(0.45, 1, 0.4, 1); 27 | z-index: 2; 28 | } 29 | &__bg { 30 | position: absolute; 31 | top: -1px; 32 | left: -1px; 33 | width: 52px; 34 | height: 30px; 35 | background: #fff; 36 | border-radius: 26px; 37 | display: inline-block; 38 | border: 1px solid #e5e5e5; 39 | box-sizing: border-box; 40 | transition: transform 0.35s cubic-bezier(0.45, 1, 0.4, 1); 41 | transform: scale(0); 42 | transform-origin: 36px 16px; 43 | } 44 | &__on { 45 | .wuli-switch__circle { 46 | transform: translateX(20px); 47 | } 48 | } 49 | &__off { 50 | .wuli-switch__bg { 51 | transform: scale(1); 52 | } 53 | } 54 | &__disabled { 55 | opacity: 0.4; 56 | } 57 | &__loading { 58 | position: absolute; 59 | left: 7px; 60 | top: 7px; 61 | width: 16px; 62 | height: 16px; 63 | background: url(https://img.yzcdn.cn/public_files/2017/02/24/9acec77d91106cd15b8107c4633d9155.png) no-repeat; 64 | background-size: 16px 16px; 65 | animation: wuli-switch-loading 0.8s infinite linear; 66 | } 67 | } 68 | 69 | @keyframes wuli-switch-loading { 70 | from { 71 | transform: rotate(0); 72 | } 73 | to { 74 | transform: rotate(360deg); 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/common/_var.less: -------------------------------------------------------------------------------- 1 | // wuli 变量 2 | // 参考 https://github.com/ElementUI/theme-chalk 3 | 4 | // Transition -------------------------- */ 5 | 6 | @--all-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); 7 | @--fade-transition: opacity 300ms cubic-bezier(0.23, 1, 0.32, 1); 8 | @--fade-linear-transition: opacity 200ms linear; 9 | @--md-fade-transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1), opacity 300ms cubic-bezier(0.23, 1, 0.32, 1); 10 | @--border-transition-base: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); 11 | @--color-transition-base: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); 12 | 13 | // Colors -------------------------- */ 14 | 15 | @--color-white: #fff; 16 | @--color-black: #000; 17 | 18 | @--color-primary: #13b6f7; 19 | 20 | @--color-success: #67c23a; 21 | @--color-warning: #e6a23c; 22 | @--color-danger: #f56c6c; 23 | @--color-info: #999; 24 | 25 | // Size -------------------------- */ 26 | 27 | @--size-base: 14px; 28 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/packages/_addCard.less: -------------------------------------------------------------------------------- 1 | @import "../common/_var"; 2 | @import "../common/_mixins"; 3 | @import "../common/_field"; 4 | 5 | page { 6 | background-color: #ebecf2; 7 | } 8 | 9 | .card-edit { 10 | &__hd { 11 | &-bg { 12 | position: relative; 13 | .display-flex(); 14 | align-items: center; 15 | justify-content: center; 16 | height: 500rpx; 17 | background-color: #e3e3e3; 18 | } 19 | &-img { 20 | width: 88rpx; 21 | height: 88rpx; 22 | } 23 | &--btn { 24 | position: absolute; 25 | right: 10px; 26 | bottom: 10px; 27 | z-index: 11; 28 | } 29 | &--img { 30 | width: 60rpx; 31 | height: 60rpx; 32 | } 33 | } 34 | &__bd, 35 | &__fd, 36 | &__ft { 37 | margin-top: 20rpx; 38 | } 39 | &__fd { 40 | &-icon { 41 | width: 138rpx; 42 | height: 138rpx; 43 | } 44 | &-title { 45 | align-items: flex-start; 46 | .wuli-field__title { 47 | padding-top: 4px; 48 | } 49 | } 50 | &-desc { 51 | color: @--color-info; 52 | font-size: @--size-base - 2; 53 | } 54 | } 55 | &__ft { 56 | height: 240rpx; 57 | .wuli-field { 58 | min-height: 98px; 59 | align-items: flex-start; 60 | &__input { 61 | min-height: 98px; 62 | } 63 | &__title { 64 | padding-top: 10px; 65 | } 66 | } 67 | } 68 | .wuli-btns { 69 | margin: 52px 15px 22px; 70 | .wuli-btn { 71 | .border-radius(4px); 72 | } 73 | } 74 | } 75 | 76 | .card-edit__hd .wuli-uploader__img { 77 | width: 100%; 78 | height: 250px; 79 | } 80 | 81 | // .wuli-btn__fixed { 82 | // box-sizing: border-box; 83 | // position: fixed; 84 | // .display-flex(); 85 | // left: 0; 86 | // right: 0; 87 | // bottom: 0; 88 | // .wuli-btn__primary { 89 | // width: 100%; 90 | // height: 47px; 91 | // line-height: 47px; 92 | // font-size: @--size-base + 3; 93 | // background-color: #13b6f7; 94 | // .border-radius(); 95 | // } 96 | // } 97 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/packages/_editPopop.less: -------------------------------------------------------------------------------- 1 | @import "../common/_var"; 2 | @import "../common/_mixins"; 3 | 4 | .wuli-edit { 5 | &__bd { 6 | height: 130px; 7 | width: 100%; 8 | .clearfix(); 9 | } 10 | &__item { 11 | float: left; 12 | padding-top: 25px; 13 | width: 25%; 14 | text-align: center; 15 | color: #282828; 16 | font-size: @--size-base + 1; 17 | &--icon { 18 | margin: 0 auto; 19 | width: 52px; 20 | height: 52px; 21 | .display-flex(); 22 | align-items: center; 23 | justify-content: center; 24 | background-color: @--color-white; 25 | .border-radius(5px); 26 | .iconfont { 27 | color: #494949; 28 | font-size: @--size-base * 2; 29 | } 30 | } 31 | &--desc { 32 | padding-top: 15px; 33 | } 34 | } 35 | &__fd { 36 | position: relative; 37 | width: 100%; 38 | height: 51px; 39 | line-height: 51px; 40 | text-align: center; 41 | font-size: @--size-base + 2; 42 | color: @--color-black; 43 | background-color: #e3e3e3; 44 | &::after { 45 | content: ""; 46 | position: absolute; 47 | left: 0; 48 | right: 0; 49 | width: 200%; 50 | height: 200%; 51 | transform: scale(0.5); 52 | transform-origin: 0 0; 53 | pointer-events: none; 54 | box-sizing: border-box; 55 | border: 0 solid #c3c3c3; 56 | border-top-width: 1px; 57 | } 58 | } 59 | .wuli-popup__container { 60 | left: 0; 61 | right: 0; 62 | background-color: #e3e3e3; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/packages/_master.less: -------------------------------------------------------------------------------- 1 | @import "../common/_var"; 2 | @import "../common/_mixins"; 3 | @import "../common/_field"; 4 | 5 | .wuli-upload { 6 | .wuli-btn__info { 7 | width: 100%; 8 | height: 47px; 9 | line-height: 47px; 10 | color: @--color-white; 11 | font-size: @--size-base + 3; 12 | border-color: #d2d2d2; 13 | background-color: #d2d2d2; 14 | .border-radius(); 15 | &.wuli-btn__primary { 16 | background-color: #13b6f7; 17 | } 18 | &::after { 19 | border: 0 none; 20 | } 21 | } 22 | &__bd, 23 | &__fd { 24 | margin-top: 10px; 25 | } 26 | &__fd { 27 | &.wuli-btns { 28 | margin-top: 30px; 29 | } 30 | textarea { 31 | height: 162rpx; 32 | } 33 | } 34 | &__ft { 35 | position: relative; 36 | min-height: 218rpx; 37 | padding: 0 15px; 38 | .clearfix(); 39 | } 40 | &__item { 41 | position: relative; 42 | float: left; 43 | width: 32%; 44 | margin-bottom: 10px; 45 | &--img { 46 | width: 100%; 47 | height: 218rpx; 48 | } 49 | &:nth-child(3n-1) { 50 | margin-left: 2%; 51 | margin-right: 2%; 52 | } 53 | &--del { 54 | position: absolute; 55 | width: 19px; 56 | height: 19px; 57 | right: 4px; 58 | top: 4px; 59 | .display-flex(); 60 | align-items: center; 61 | justify-content: center; 62 | color: @--color-white; 63 | background-color: #1b78fc; 64 | .border-radius(50%); 65 | .iconfont { 66 | font-size: @--size-base - 4; 67 | } 68 | } 69 | } 70 | &__person { 71 | padding: 0 15px; 72 | background-color: @--color-white; 73 | .clearfix(); 74 | &--item { 75 | float: left; 76 | width: 104rpx; 77 | height: auto; 78 | margin-right: 40rpx; 79 | margin-bottom: 20rpx; 80 | } 81 | &--img { 82 | width: 104rpx; 83 | height: 104rpx; 84 | .border-radius(50%); 85 | overflow: hidden; 86 | } 87 | &--avater { 88 | width: 100%; 89 | height: 100%; 90 | } 91 | &--desc { 92 | color: #c3c3c3; 93 | line-height: 2.5; 94 | text-align: center; 95 | font-size: @--size-base - 2; 96 | } 97 | } 98 | } 99 | 100 | // 工长日志 101 | .wuli-field__input { 102 | height: 150px; 103 | font-size: 14px; 104 | } 105 | .wuli-comment__num { 106 | font-size: 14px; 107 | color: #c3c3c3; 108 | position: absolute; 109 | right: 15px; 110 | bottom: 15px; 111 | } 112 | .wuli-comment__desc { 113 | font-size: 14px; 114 | position: absolute; 115 | left: 15px; 116 | bottom: 15px; 117 | color: #f56c6c; 118 | } 119 | .wuli-panel + .wuli-panel { 120 | margin-top: 10px; 121 | } 122 | 123 | .wuli-btn__fixed { 124 | box-sizing: border-box; 125 | position: fixed; 126 | .display-flex(); 127 | left: 0; 128 | right: 0; 129 | bottom: 0; 130 | .wuli-btn__primary { 131 | width: 100%; 132 | height: 47px; 133 | line-height: 47px; 134 | font-size: @--size-base + 3; 135 | background-color: #13b6f7; 136 | .border-radius(); 137 | } 138 | } 139 | .wuli-upload__ft { 140 | padding-top: 15px; 141 | } 142 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/packages/_tabbar.less: -------------------------------------------------------------------------------- 1 | @import "../common/_var"; 2 | @import "../common/_mixins"; 3 | 4 | .tabbar { 5 | box-sizing: border-box; 6 | margin-top: 20rpx; 7 | width: 100%; 8 | .display-flex(); 9 | align-items: center; 10 | justify-content: center; 11 | padding: 0 50rpx; 12 | &-item { 13 | position: relative; 14 | .box-flex(1); 15 | text-align: center; 16 | &__icon { 17 | width: 104rpx; 18 | height: 70rpx; 19 | } 20 | &__title { 21 | font-size: @--size-base - 2; 22 | color: #aaa; 23 | } 24 | &__btn { 25 | position: absolute; 26 | left: 37.5%; 27 | bottom: 88rpx; 28 | width: 172rpx; 29 | text-align: center; 30 | padding-left: 0; 31 | padding-right: 0; 32 | margin-bottom: 0; 33 | box-sizing: border-box; 34 | text-decoration: none; 35 | text-align: center; 36 | vertical-align: middle; 37 | background: none; 38 | opacity: 0; 39 | &-desc { 40 | margin-top: 10rpx; 41 | font-size: @--size-base - 2; 42 | color: #aaa; 43 | } 44 | &::after { 45 | border: 0 none; 46 | } 47 | } 48 | } 49 | .btn-share { 50 | position: absolute; 51 | left: 5%; 52 | bottom: 20px; 53 | } 54 | .btn-msg { 55 | position: absolute; 56 | left: 50%; 57 | bottom: 0; 58 | margin-bottom: 70px; 59 | .transform(translateX(-50%)); 60 | } 61 | .btn-code { 62 | position: absolute; 63 | right: 5%; 64 | bottom: 20px; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/packages/module.less: -------------------------------------------------------------------------------- 1 | @import "_main"; 2 | @import "_template"; 3 | -------------------------------------------------------------------------------- /CardsWxProgram/assets/packages/packages.less: -------------------------------------------------------------------------------- 1 | /* less 文件 (移动端通用less文件) 2 | * 作者 Aaron 3 | * 针对小程序开发 4 | * @charset "utf-8"; 5 | */ 6 | @import "../common/_indicator"; 7 | @import "_swiper"; 8 | @import "_tabbar"; 9 | @import "../common/_cell"; 10 | @import "../common/_botton"; 11 | @import "../common/_popup"; 12 | @import "../common/_switch"; 13 | @import "../common/_badge"; 14 | @import "../common/_loadmore"; 15 | @import "_editPopop"; 16 | -------------------------------------------------------------------------------- /CardsWxProgram/components/atlas/list.js: -------------------------------------------------------------------------------- 1 | // components/atlas/list.js 2 | Page({ 3 | /** 4 | * 页面的初始数据 5 | */ 6 | data: {}, 7 | 8 | /** 9 | * 生命周期函数--监听页面加载 10 | */ 11 | onLoad: function (options) {}, 12 | 13 | /** 14 | * 生命周期函数--监听页面初次渲染完成 15 | */ 16 | onReady: function () {}, 17 | 18 | /** 19 | * 生命周期函数--监听页面显示 20 | */ 21 | onShow: function () {}, 22 | 23 | /** 24 | * 生命周期函数--监听页面隐藏 25 | */ 26 | onHide: function () {}, 27 | 28 | /** 29 | * 生命周期函数--监听页面卸载 30 | */ 31 | onUnload: function () {}, 32 | 33 | /** 34 | * 页面相关事件处理函数--监听用户下拉动作 35 | */ 36 | onPullDownRefresh: function () {}, 37 | 38 | /** 39 | * 页面上拉触底事件的处理函数 40 | */ 41 | onReachBottom: function () {}, 42 | 43 | /** 44 | * 用户点击右上角分享 45 | */ 46 | onShareAppMessage: function () {} 47 | }); 48 | -------------------------------------------------------------------------------- /CardsWxProgram/components/atlas/list.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /CardsWxProgram/components/atlas/list.wxml: -------------------------------------------------------------------------------- 1 | 2 | 31 | -------------------------------------------------------------------------------- /CardsWxProgram/components/button/button.wxml: -------------------------------------------------------------------------------- 1 | 32 | -------------------------------------------------------------------------------- /CardsWxProgram/components/common/helper.js: -------------------------------------------------------------------------------- 1 | // 从事件对象中解析得到 componentId 2 | // 需要在元素上声明 data-component-id 3 | function extractComponentId(event = {}) { 4 | const { 5 | dataset: { componentId } 6 | } = event.currentTarget || {}; 7 | return componentId; 8 | } 9 | 10 | /* 11 | 注:默认合并所有生命周期函数 12 | 配置合并指定的生命周期 or 忽略指定字段 13 | const extend = extendCreator({ 14 | life: ['onLoad', 'onPullDownRefresh'], 15 | exclude: ['binder'] 16 | }); 17 | 18 | Page(extend({}, { 19 | onLoad() {}, 20 | ... 21 | })); 22 | */ 23 | 24 | const LIFE_CYCLE = [ 25 | "onLoad", 26 | "onReady", 27 | "onShow", 28 | "onHide", 29 | "onUnload", 30 | "onPullDownRefresh", 31 | "onReachBottom", 32 | "onShareAppMessage", 33 | "onPageScroll" 34 | ]; 35 | 36 | const extendCreator = (config = {}) => { 37 | const { life = LIFE_CYCLE, exclude = [] } = config; 38 | 39 | const excludeList = exclude.concat(LIFE_CYCLE.map(getFuncArrayName)); 40 | 41 | if (!Array.isArray(life) || !Array.isArray(exclude)) throw new Error("Invalid Extend Config"); 42 | let lifeCycleList = life.filter((item) => LIFE_CYCLE.indexOf(item) >= 0); 43 | return function extend(target, ...objList) { 44 | objList.forEach((source) => { 45 | if (source) { 46 | let keys = Object.keys(source); 47 | keys.forEach((key) => { 48 | let value = source[key]; 49 | if (excludeList.indexOf(key) >= 0) return; 50 | if (lifeCycleList.indexOf(key) >= 0 && typeof value === "function") { 51 | let funcArrayName = getFuncArrayName(key); 52 | if (!target[funcArrayName]) { 53 | target[funcArrayName] = []; 54 | if (target[key]) { 55 | target[funcArrayName].push(target[key]); 56 | } 57 | target[key] = function (...rest) { 58 | target[funcArrayName].forEach((func) => func.apply(this, rest)); 59 | }; 60 | } 61 | 62 | if (source[funcArrayName]) { 63 | // 经过生命周期合并的组件直接整合函数列表 64 | target[funcArrayName].push(...source[funcArrayName]); 65 | } else { 66 | // 添加生命周期函数进入函数列表 67 | target[funcArrayName].push(value); 68 | } 69 | } else { 70 | target[key] = value; 71 | } 72 | }); 73 | } 74 | }); 75 | return target; 76 | }; 77 | }; 78 | 79 | const getFuncArrayName = (name) => `__$${name}`; 80 | 81 | module.exports = { 82 | extractComponentId, 83 | extend: Object.assign, 84 | extendCreator 85 | }; 86 | -------------------------------------------------------------------------------- /CardsWxProgram/components/field/index.js: -------------------------------------------------------------------------------- 1 | const { extractComponentId } = require("../common/helper"); 2 | 3 | module.exports = { 4 | _handleWuliFieldChange(event) { 5 | const componentId = extractComponentId(event); 6 | event.componentId = componentId; 7 | 8 | if (this.handleWuliFieldChange) { 9 | return this.handleWuliFieldChange(event); 10 | } 11 | 12 | console.warn("页面缺少 handleWuliFieldChange 回调函数"); 13 | }, 14 | 15 | _handleWuliFieldFocus(event) { 16 | const componentId = extractComponentId(event); 17 | event.componentId = componentId; 18 | 19 | if (this.handleWuliFieldFocus) { 20 | return this.handleWuliFieldFocus(event); 21 | } 22 | }, 23 | 24 | _handleWuliFieldBlur(event) { 25 | const componentId = extractComponentId(event); 26 | event.componentId = componentId; 27 | 28 | if (this.handleWuliFieldBlur) { 29 | return this.handleWuliFieldBlur(event); 30 | } 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /CardsWxProgram/components/field/index.wxml: -------------------------------------------------------------------------------- 1 | 40 | -------------------------------------------------------------------------------- /CardsWxProgram/components/field/index.wxss: -------------------------------------------------------------------------------- 1 | .wuli-field{padding:7px 15px;color:#333}.wuli-field__wrapped{margin:10px 15px 0;background-color:#fff}.wuli-field__wrapped::after{left:0;border-width:1px;border-radius:4px}.wuli-field.wuli-field__wrapped::after{display:block}.wuli-field__error.wuli-field__wrapped::after{border-color:#f56c6c}.wuli-field__title{color:#333;min-width:65px;padding-right:10px}.wuli-field__input{flex:1;line-height:1.6;padding:4px 0;min-height:22px;height:auto;font-size:14px}.wuli-field__placeholder{font-size:14px}.wuli-field__input--right{text-align:right} -------------------------------------------------------------------------------- /CardsWxProgram/components/index.js: -------------------------------------------------------------------------------- 1 | import Field from "./field/index"; 2 | import Switch from "./switch/index"; 3 | import Button from "./button/button"; 4 | import { extend } from "./common/helper"; 5 | 6 | export { Field, Switch, Button, extend }; 7 | -------------------------------------------------------------------------------- /CardsWxProgram/components/switch/index.js: -------------------------------------------------------------------------------- 1 | var Switch = { 2 | _handleWuliSwitchChange(e) { 3 | var dataset = e.currentTarget.dataset; 4 | 5 | var checked = !dataset.checked; 6 | var loading = dataset.loading; 7 | var disabled = dataset.disabled; 8 | var componentId = dataset.componentId; 9 | 10 | if (loading || disabled) return; 11 | 12 | if (this.handleWuliSwitchChange) { 13 | this.handleWuliSwitchChange({ 14 | checked, 15 | componentId 16 | }); 17 | } else { 18 | console.warn("页面缺少 handleWuliSwitchChange 回调函数"); 19 | } 20 | } 21 | }; 22 | 23 | module.exports = Switch; 24 | -------------------------------------------------------------------------------- /CardsWxProgram/components/switch/index.wxml: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /CardsWxProgram/components/switch/index.wxss: -------------------------------------------------------------------------------- 1 | .wuli-switch{position:relative;display:inline-block;width:52px;height:30px;vertical-align:middle;box-sizing:border-box;border-radius:15px;background:#13b6f7;border:1px solid #13b6f7}.wuli-switch__circle{position:absolute;top:0;left:0;width:28px;height:28px;display:inline-block;background:#fff;border-radius:14px;box-sizing:border-box;box-shadow:0 0 0 1px rgba(0,0,0,0.1),0 3px 1px 0 rgba(0,0,0,0.05),0 2px 2px 0 rgba(0,0,0,0.1),0 3px 3px 0 rgba(0,0,0,0.05);transition:transform .35s cubic-bezier(.45, 1, .4, 1);z-index:2}.wuli-switch__bg{position:absolute;top:-1px;left:-1px;width:52px;height:30px;background:#fff;border-radius:26px;display:inline-block;border:1px solid #e5e5e5;box-sizing:border-box;transition:transform .35s cubic-bezier(.45, 1, .4, 1);transform:scale(0);transform-origin:36px 16px}.wuli-switch__on .wuli-switch__circle{transform:translateX(20px)}.wuli-switch__off .wuli-switch__bg{transform:scale(1)}.wuli-switch__disabled{opacity:.4}.wuli-switch__loading{position:absolute;left:7px;top:7px;width:16px;height:16px;background:url(https://img.yzcdn.cn/public_files/2017/02/24/9acec77d91106cd15b8107c4633d9155.png) no-repeat;background-size:16px 16px;animation:wuli-switch-loading .8s infinite linear}@keyframes wuli-switch-loading{from{transform:rotate(0)}to{transform:rotate(360deg)}} -------------------------------------------------------------------------------- /CardsWxProgram/image/avatar_man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/avatar_man.png -------------------------------------------------------------------------------- /CardsWxProgram/image/avatar_woman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/avatar_woman.png -------------------------------------------------------------------------------- /CardsWxProgram/image/banner_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/banner_01.jpg -------------------------------------------------------------------------------- /CardsWxProgram/image/blur_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/blur_bg.png -------------------------------------------------------------------------------- /CardsWxProgram/image/error1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/error1.png -------------------------------------------------------------------------------- /CardsWxProgram/image/img_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/img_default.png -------------------------------------------------------------------------------- /CardsWxProgram/image/location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/location.png -------------------------------------------------------------------------------- /CardsWxProgram/image/logo-little.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/logo-little.png -------------------------------------------------------------------------------- /CardsWxProgram/image/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/logo.png -------------------------------------------------------------------------------- /CardsWxProgram/image/quoted.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/quoted.jpg -------------------------------------------------------------------------------- /CardsWxProgram/image/rank_version.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/rank_version.jpg -------------------------------------------------------------------------------- /CardsWxProgram/image/tabbar_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/tabbar_01.png -------------------------------------------------------------------------------- /CardsWxProgram/image/tabbar_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/tabbar_02.png -------------------------------------------------------------------------------- /CardsWxProgram/image/tabbar_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/tabbar_03.png -------------------------------------------------------------------------------- /CardsWxProgram/image/upload_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/upload_add.png -------------------------------------------------------------------------------- /CardsWxProgram/image/upload_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/upload_btn.png -------------------------------------------------------------------------------- /CardsWxProgram/image/upload_btn_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/upload_btn_add.png -------------------------------------------------------------------------------- /CardsWxProgram/image/upload_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/upload_img.png -------------------------------------------------------------------------------- /CardsWxProgram/image/wechat_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Aaron52077/cards/02a0158f903e56d11734e4d0d821dd8dcf07b9bb/CardsWxProgram/image/wechat_bg.png -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/bindphone/api.js: -------------------------------------------------------------------------------- 1 | const api = require("../../../utils/api.js"); 2 | 3 | //发送验证码 4 | const SendCode = (params) => { 5 | api.wxRequest(params, `${api.apiURL}/api/fc/sms/Send`); 6 | }; 7 | //验证验证码 8 | const VerifyCode = (params) => { 9 | api.wxRequest(params, `${api.apiURL}/api/fc/sms/Verify`); 10 | }; 11 | 12 | //绑定手机号 13 | const BindingPhone = (params) => { 14 | params.data["SubjectId"] = api.configId; 15 | api.wxRequest(params, `${api.apiURL}/api/user/home/bindingphone`); 16 | }; 17 | 18 | //微信获取手机号 19 | const WxGetPhoneNumber = (params) => { 20 | //添加属性 21 | params.data["SubjectId"] = api.configId; 22 | api.wxRequest(params, `${api.apiURL}/api/user/home/wxgetphonenumber`); 23 | }; 24 | 25 | module.exports = { 26 | SendCode, 27 | VerifyCode, 28 | BindingPhone, 29 | WxGetPhoneNumber 30 | }; 31 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/bindphone/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "绑定手机号", 3 | "disableScroll": true 4 | } 5 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/bindphone/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 40 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/index.js: -------------------------------------------------------------------------------- 1 | //login.js 2 | const app = getApp(); 3 | 4 | Page({ 5 | data: { 6 | defaultData: { 7 | gender: 1 8 | } 9 | }, 10 | authorLogin: function (e) { 11 | var uinfo = e.detail.userInfo; 12 | if (uinfo == undefined || uinfo == null) { 13 | wx.showToast({ 14 | title: "您点击了拒绝授权,将无法正常显示个人信息,请重新点击授权登录", 15 | icon: "none", 16 | duration: 2000 17 | }); 18 | } else { 19 | app.authorLogin(e); 20 | } 21 | } 22 | }); 23 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "授权登录" 3 | } 4 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/index.wxss: -------------------------------------------------------------------------------- 1 | .login-wrapper { 2 | margin-top: 116rpx; 3 | padding: 0 90rpx; 4 | } 5 | 6 | .login-wrapper .swiper-slide__border { 7 | height: 880rpx; 8 | } 9 | 10 | .login-wrapper__bd { 11 | justify-content: flex-start; 12 | } 13 | 14 | .login__bd { 15 | margin: 72rpx 0 88rpx; 16 | font-size: 24rpx; 17 | text-align: center; 18 | color: #666; 19 | } 20 | 21 | .login__fd { 22 | box-sizing: border-box; 23 | display: block; 24 | position: relative; 25 | padding: 0 15px; 26 | width: 100%; 27 | } 28 | 29 | .wuli-btn { 30 | color: #383838; 31 | border-color: #dadada; 32 | font-size: 24rpx; 33 | line-height: 68rpx; 34 | height: 68rpx; 35 | } 36 | 37 | .swiper-slide__info { 38 | height: 320rpx; 39 | } 40 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/layer/layer.js: -------------------------------------------------------------------------------- 1 | // pages/login/layer/layer.js 2 | Page({ 3 | data: { 4 | isActive: 0, 5 | title: "会员登录" 6 | }, 7 | tabToggle(e) { 8 | const id = e.currentTarget.dataset.menu; 9 | if (id != 0) { 10 | this.setData({ 11 | isActive: parseInt(id), 12 | title: "会员注册" 13 | }); 14 | } else { 15 | this.setData({ 16 | isActive: parseInt(id), 17 | title: "会员登录" 18 | }); 19 | } 20 | }, 21 | formSubmit(event) { 22 | console.log("[wuli:field:submit]", event.detail.value); 23 | }, 24 | goVersion() { 25 | wx.navigateTo({ 26 | url: "/pages/main/company_search/list" 27 | }); 28 | }, 29 | forgetHanle() { 30 | wx.navigateTo({ 31 | url: "/pages/main/user/user" 32 | }); 33 | } 34 | }); 35 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/layer/layer.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "用户登录", 3 | "disableScroll": true 4 | } 5 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/layer/layer.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 84 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/layer/layer.wxss: -------------------------------------------------------------------------------- 1 | /* pages/login/layer/layer.wxss */ 2 | 3 | .wuli-login { 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | } 8 | 9 | .wuli-login__wrapper { 10 | box-sizing: border-box; 11 | position: relative; 12 | padding: 0 25px; 13 | height: 488px; 14 | width: 306px; 15 | background-color: #fff; 16 | border-radius: 4px; 17 | box-shadow: 0 5px 15px rgba(14, 16, 22, .1); 18 | } 19 | 20 | .wuli-login__hd { 21 | position: relative; 22 | width: 100%; 23 | height: 120px; 24 | border-bottom: 1px solid #e3e3e3; 25 | } 26 | 27 | .wuli-login__title { 28 | font-family: PingFangSC-Regular, sans-serif; 29 | padding: 30px 0 26px; 30 | text-align: center; 31 | font-size: 24px; 32 | color: #282828; 33 | } 34 | 35 | .wuli-login__menu { 36 | padding: 0 20px; 37 | height: 32px; 38 | display: flex; 39 | } 40 | 41 | .wuli-login__menu .menu-item { 42 | position: relative; 43 | flex: 1; 44 | display: flex; 45 | align-items: center; 46 | justify-content: center; 47 | height: 32px; 48 | color: #acacac; 49 | font-size: 12px; 50 | } 51 | 52 | .wuli-login__menu .menu-item::after { 53 | content: ""; 54 | position: absolute; 55 | left: 50%; 56 | bottom: 4rpx; 57 | width: 32px; 58 | height: 2px; 59 | transform: translateX(-50%); 60 | pointer-events: none; 61 | box-sizing: border-box; 62 | border: 0 solid #686868; 63 | border-bottom-width: 0; 64 | } 65 | 66 | .wuli-login__menu .menu-item.is-active { 67 | color: #686868; 68 | } 69 | 70 | .wuli-login__menu .menu-item.is-active::after { 71 | border-bottom-width: 2px; 72 | } 73 | .wuli-login__bd { 74 | padding: 10px 0; 75 | height: 272px; 76 | } 77 | .wuli-input__item { 78 | position: relative; 79 | height: 32px; 80 | margin-top: 15px; 81 | padding: 0 10px; 82 | display: -webkit-box; 83 | display: flex; 84 | flex-direction: row; 85 | align-items: center; 86 | line-height: 1.4; 87 | font-size: 14px; 88 | background-color: #ebebeb; 89 | border: 1px solid #e6e6e6; 90 | border-radius: 3px; 91 | } 92 | 93 | .wuli-field__placeholder { 94 | font-size: 14px; 95 | color: #c3c3c3; 96 | } 97 | 98 | .wuli-input__item .wuli-btn { 99 | border-radius: 4px; 100 | } 101 | .wuli-login__bd--btn { 102 | margin: 50px 0 30px; 103 | } 104 | .wuli-login__bd--btn .wuli-btn { 105 | height: 41px; 106 | line-height: 41px; 107 | border-radius: 4px; 108 | } 109 | 110 | .wuli-helper { 111 | position: relative; 112 | width: 100%; 113 | margin: 30px auto 10px; 114 | line-height: 20px; 115 | font-size: 13px; 116 | text-align: center; 117 | vertical-align: middle; 118 | } 119 | .wuli-helper__tips { 120 | padding: 0 10px; 121 | margin-bottom: 3px; 122 | position: relative; 123 | top: -11px; 124 | display: inline-block; 125 | vertical-align: middle; 126 | height: 20px; 127 | line-height: 20px; 128 | color: #282828; 129 | text-decoration: underline; 130 | background-color: #fff; 131 | z-index: 1; 132 | } 133 | .wuli-helper::after { 134 | content: ''; 135 | position: absolute; 136 | top: 0; 137 | left: 0; 138 | width: 200%; 139 | height: 200%; 140 | transform: scale(.5); 141 | transform-origin: 0 0; 142 | pointer-events: none; 143 | box-sizing: border-box; 144 | border: 0 solid #c4c4c4; 145 | border-top-width: 1px; 146 | } 147 | 148 | .wuli-input__item--password { 149 | padding: 10px 0 0; 150 | font-size: 11px; 151 | color: #d0d0d0; 152 | text-align: right; 153 | } -------------------------------------------------------------------------------- /CardsWxProgram/pages/login/relogin/index.js: -------------------------------------------------------------------------------- 1 | // pages/login/relogin/index.js 2 | const app = getApp(); 3 | Page({ 4 | data: {}, 5 | onLoad: function (options) { 6 | // 获取用户信息 7 | wx.showToast({ 8 | title: "正重新登录,请稍后……", 9 | icon: "loading", 10 | duration: 5000 11 | }); 12 | app.LoginPageTimeOut(); 13 | setTimeout((res) => { 14 | //回到原来的地方放 15 | wx.navigateBack(); 16 | wx.hideToast(); 17 | }, 2200); 18 | } 19 | }); 20 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/main/activity_detail/api.js: -------------------------------------------------------------------------------- 1 | const api = require("../../../utils/api.js"); 2 | 3 | const getActivitybyId = (params) => { 4 | api.wxRequest(params, `${api.apiURL}/api/Card/Activity/GetDetail`); 5 | }; 6 | 7 | module.exports = { 8 | getActivitybyId 9 | }; 10 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/main/activity_detail/detail.js: -------------------------------------------------------------------------------- 1 | // pages/main/activity_detail/detail.js 2 | const api = require("api.js"); 3 | const wxparse = require("../../../wxParse/wxParse.js"); 4 | const App = getApp(); 5 | 6 | Page({ 7 | data: { 8 | id: "", 9 | options: null, 10 | Detail: {}, 11 | windowWidth: App.globalData.systemInfo.windowWidth 12 | }, 13 | onLoad: function (options) { 14 | const self = this; 15 | const id = options.id; 16 | const cmd = options.type; 17 | self.setData({ 18 | id: id 19 | }); 20 | wx.showToast({ 21 | title: "正在加载", 22 | icon: "loading", 23 | duration: 1000 24 | }); 25 | api.getActivitybyId({ 26 | data: { 27 | id: id, 28 | type: cmd 29 | }, 30 | success: (res) => { 31 | const detail = res.data.Data; 32 | const articleInfo = res.data.Data.info; 33 | self.setData({ 34 | Detail: detail 35 | }); 36 | wx.setNavigationBarTitle({ 37 | title: detail.name 38 | }); 39 | wxparse.wxParse("article", "html", articleInfo, self, 5); 40 | wx.hideToast(); 41 | } 42 | }); 43 | } 44 | }); 45 | -------------------------------------------------------------------------------- /CardsWxProgram/pages/main/activity_detail/detail.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {{Detail.name}} 8 | 9 | 时间:{{Detail.starttime}} - {{Detail.endtime}} 10 | 浏览:{{Detail.hits}} 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |