├── 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 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | {{ tags }}
11 |
12 | {{ title }}
13 |
14 |
15 | {{ count }}
16 | {{ hits }}
17 |
18 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/CardsWxProgram/components/button/button.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
18 |
19 |
20 |
26 |
27 |
28 |
29 |
30 |
31 |
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 |
2 |
7 | {{ title }}
8 |
23 |
38 |
39 |
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 |
2 |
10 |
11 |
12 |
13 |
14 |
15 |
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 |
5 | 绑定手机号
6 |
7 |
8 |
39 |
40 |
41 |
44 |
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 |
18 | 会员登录
19 |
20 |
21 |
22 |
23 |
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 |
5 | {{ title }}
6 |
10 |
11 |
12 |
13 |
41 |
42 |
43 |
82 |
83 |
84 |
85 | 我是企业版用户
86 |
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 |
21 |
22 |
23 |
24 |
25 | 报名参加
26 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_detail/detail.wxss:
--------------------------------------------------------------------------------
1 | /* pages/main/activity_detail/detail.wxss */
2 | @import "../../../wxParse/wxParse.wxss";
3 |
4 | page {
5 | background: #fff;
6 | }
7 |
8 | .cover {
9 | width: 100%;
10 | height: 328rpx;
11 | }
12 |
13 | .detail {
14 | padding: 0 24rpx;
15 | background: #fff;
16 | }
17 |
18 | .detail .title {
19 | padding: 24rpx 0;
20 | border-bottom: 2rpx solid #eee;
21 | overflow: hidden;
22 | }
23 |
24 | .detail .title-top {
25 | font-size: 30rpx;
26 | color: #282828;
27 | }
28 |
29 | .detail .title-top span {
30 | margin-left: 13rpx;
31 | }
32 |
33 | .detail .title-bottom {
34 | color: #999;
35 | font-size: 24rpx;
36 | display: flex;
37 | margin-top: 14rpx;
38 | justify-content: space-between;
39 | }
40 |
41 | .detail .detail-html {
42 | margin: 12px 0 60px;
43 | color: #666;
44 | font-size: 28rpx;
45 | line-height: 1.8;
46 | }
47 | .detail .detail-html image{
48 | width: 100%;
49 | }
50 | .sign {
51 | width: 100%;
52 | height: 100rpx;
53 | line-height: 100rpx;
54 | text-align: center;
55 | font-size: 36rpx;
56 | color: #fff;
57 | background: #00bbff;
58 | position: fixed;
59 | left: 0;
60 | bottom: 0;
61 | }
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_edit/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const HandelData = (params) => {
4 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Activity/HandelData`);
5 | };
6 | const GetDetail = (params) => {
7 | //添加属性
8 | api.wxRequest(params, `${api.apiURL}/api/card/Activity/GetDetail`);
9 | };
10 |
11 | module.exports = {
12 | HandelData,
13 | GetDetail
14 | };
15 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_edit/upload.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "活动编辑"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_edit/upload.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_edit/upload.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:16px}.wuli-field__placeholder{font-size:16px;color:#c3c3c3}.wuli-field__input--right{text-align:right}.wuli-switch{position:relative;display:inline-block;width:52px;height:32px;vertical-align:middle;box-sizing:border-box;border-radius:16px;background:#13b6f7;border:1px solid #13b6f7}.wuli-switch__circle{position:absolute;top:0;left:0;width:30px;height:30px;display:inline-block;background:#fff;border-radius:15px;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:32px;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)}}page{background-color:#f4f4f4}.wuli-upload__textarea textarea{height:162rpx}.wuli-upload__textarea .wuli-cell::after{border:0 none}.wuli-upload__bd{position:relative;min-height:218rpx;padding:0 15px;zoom:1}.wuli-upload__bd:before,.wuli-upload__bd:after{display:table;content:"";line-height:0}.wuli-upload__bd:after{clear:both}.wuli-upload__item{float:left;width:32%;margin-bottom:10px}.wuli-upload__item--img{width:100%;height:218rpx}.wuli-upload__item:nth-child(3n-1){margin-left:2%;margin-right:2%}.wuli-upload__fd{margin-top:10px}.wuli-btn__fixed{box-sizing:border-box;position:fixed;display:-webkit-box;display:flex;flex-direction:row;left:0;right:0;bottom:0}.wuli-btn__fixed .wuli-btn__info{width:100%;height:47px;line-height:47px;color:#fff;font-size:17px;border-color:#d2d2d2;background-color:#d2d2d2;-webkit-border-radius:3px;border-radius:3px}.wuli-btn__fixed .wuli-btn__info.wuli-btn__primary{background-color:#13b6f7}.wuli-btn__fixed .wuli-btn__info::after{border:0 none}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_list/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 | //活动列表
3 | const GetActivityList = (params) => {
4 | api.wxRequest(params, `${api.apiURL}/api/card/Activity/PagedList`);
5 | };
6 | //删除
7 | const ActivityDel = (params) => {
8 | api.wxRequest(params, `${api.apiURL}/api/card/Activity/GetDetail`);
9 | };
10 | //足迹添加
11 | const HandleFootPrint = (params) => {
12 | api.wxTokenRequest(params, `${api.apiURL}/api/card/FootPrint/add`);
13 | };
14 |
15 | module.exports = {
16 | GetActivityList,
17 | ActivityDel,
18 | HandleFootPrint
19 | };
20 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_list/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "活动"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_list/list.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 添加活动
7 |
8 |
9 |
10 | {{item.name}}
11 |
12 |
13 | {{item.hits}}
14 |
17 |
18 |
19 |
20 |
21 |
22 | 玩命的加载中...
23 |
24 |
25 |
26 |
27 | 亲,我是有底线的...
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_list/list.wxss:
--------------------------------------------------------------------------------
1 | /* pages/main/activity_list/list.wxss */
2 |
3 | .container {
4 | background: #f4f4f4;
5 | }
6 |
7 | .wuli-activity {
8 | padding: 0 10px;
9 | }
10 |
11 | .wuli-activity__item {
12 | box-sizing: border-box;
13 | margin-bottom: 10px;
14 | width: 100%;
15 | height: 186px;
16 | background-color: #fff;
17 | border-radius: 5px;
18 | }
19 |
20 | .wuli-activity__item--img {
21 | width: 100%;
22 | height: 142px;
23 | }
24 |
25 | .wuli-activity__item--inner {
26 | display: flex;
27 | align-items: center;
28 | padding: 5px 0;
29 | line-height: 1.4;
30 | }
31 |
32 | .wuli-activity__item--title {
33 | flex: 1;
34 | padding-left: 15px;
35 | color: #333;
36 | font-size: 14px;
37 | overflow: hidden;
38 | text-overflow: ellipsis;
39 | white-space: nowrap;
40 | }
41 |
42 | .desc-menu {
43 | width: 50px;
44 | text-align: center;
45 | }
46 |
47 | .desc-hits, .desc-menu {
48 | display: inline-block;
49 | font-size: 12px;
50 | color: #cfcfcf;
51 | }
52 |
53 | .desc-hits .iconfont, .desc-menu .iconfont {
54 | font-size: 14px;
55 | }
56 |
57 | .wuli-activity__edit {
58 | padding: 0 15px;
59 | height: 40px;
60 | line-height: 40px;
61 | text-align: right;
62 | font-size: 14px;
63 | color: #000;
64 | font-weight: bolder;
65 | }
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_sign/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const submitSignup = (params) => {
4 | //添加属性
5 | params.data["SubjectId"] = api.configId;
6 | api.wxRequest(params, `${api.apiURL}/api/wap/budget/add`);
7 | };
8 |
9 | module.exports = {
10 | submitSignup
11 | };
12 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_sign/sign.js:
--------------------------------------------------------------------------------
1 | // pages/main/activity_sign/sign.js
2 | const api = require("api.js");
3 |
4 | Page({
5 | data: {
6 | formData: {
7 | title: "名片小程序-免费报价",
8 | url: "/pages/quoted/index",
9 | tel: "",
10 | name: "",
11 | style: "",
12 | money: "",
13 | type: "",
14 | area: "",
15 | unit: "",
16 | property: ""
17 | }
18 | },
19 | onLoad: function (options) {
20 | var self = this;
21 | self.setData({
22 | formData: {
23 | title: "小程序免费设计-" + options.title,
24 | url: options.url,
25 | tel: "",
26 | name: "",
27 | style: "",
28 | money: "",
29 | type: "新房装修",
30 | area: "",
31 | unit: "",
32 | property: ""
33 | }
34 | });
35 | },
36 | formSubmit: function (e) {
37 | const self = this;
38 | var phone = e.detail.value.tel;
39 | var reg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/;
40 | if (!reg.test(phone)) {
41 | wx.showToast({
42 | title: "请输入正确的手机号码!",
43 | icon: "none",
44 | duration: 1000
45 | });
46 | return false;
47 | }
48 | api.submitSignup({
49 | data: {
50 | uid: 0,
51 | url: self.data.formData.url,
52 | title: self.data.formData.title,
53 | tel: phone,
54 | name: e.detail.value.name,
55 | style: self.data.formData.style,
56 | money: self.data.formData.money,
57 | type: self.data.formData.unit,
58 | area: e.detail.value.area,
59 | property: e.detail.value.property,
60 | pid: 0
61 | },
62 | method: "POST",
63 | success: (res) => {
64 | //弹窗提示
65 | wx.showToast({
66 | title: res.data.Data,
67 | icon: "none",
68 | duration: 3000
69 | });
70 | }
71 | });
72 | },
73 | onShareAppMessage: function () {}
74 | });
75 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_sign/sign.json:
--------------------------------------------------------------------------------
1 | {
2 | "disableScroll": true
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_sign/sign.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
28 | 蜂巢SAAS技术支持
29 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/activity_sign/sign.wxss:
--------------------------------------------------------------------------------
1 | /* pages/main/activity_sign/sign.wxss */
2 |
3 | .cover {
4 | width: 100%;
5 | height: 240rpx;
6 | }
7 |
8 | .input-group .input-top {
9 | background: #fff;
10 | padding: 0 24rpx;
11 | }
12 |
13 | .input-group .input-item {
14 | background: #fff;
15 | height: 88rpx;
16 | line-height: 88rpx;
17 | border-bottom: 2rpx solid #eee;
18 | display: flex;
19 | align-items: center;
20 | }
21 |
22 | .input-group .input-item input {
23 | font-size: 28rpx;
24 | color: #999;
25 | width: 660rpx;
26 | }
27 |
28 | .input-group .input-item .picker-empty {
29 | margin-top: 102rpx;
30 | }
31 |
32 | .input-group .input-item .picker-empty span {
33 | margin: 0 5rpx;
34 | }
35 |
36 | .input-group .input-item .picker-item {
37 | margin: 0 5rpx;
38 | }
39 |
40 | .input-group .button-top {
41 | font-size: 24rpx;
42 | color: #999;
43 | text-align: center;
44 | height: 95rpx;
45 | line-height: 95rpx;
46 | }
47 |
48 | .input-group button {
49 | margin: 0 15px;
50 | height: 88rpx;
51 | display: block;
52 | background: #fe4d05;
53 | border-radius: 10rpx;
54 | line-height: 88rpx;
55 | text-align: center;
56 | color: #fff;
57 | font-size: 36rpx;
58 | }
59 |
60 | .input-group .techology {
61 | font-size: 28rpx;
62 | color: #666;
63 | text-align: center;
64 | margin-top: 40rpx;
65 | margin-bottom: 40rpx;
66 | position: relative;
67 | }
68 |
69 | .input-group .techology::after {
70 | content: "";
71 | width: 58rpx;
72 | height: 2rpx;
73 | background: #666;
74 | position: absolute;
75 | top: 50%;
76 | right: 180rpx;
77 | }
78 |
79 | .input-group .techology::before {
80 | content: "";
81 | width: 58rpx;
82 | height: 2rpx;
83 | background: #666;
84 | position: absolute;
85 | top: 50%;
86 | left: 180rpx;
87 | }
88 |
89 | .techology {
90 | font-size: 28rpx;
91 | color: #666;
92 | text-align: center;
93 | margin-top: 40rpx;
94 | margin-bottom: 40rpx;
95 | position: relative;
96 | }
97 |
98 | .techology::after {
99 | content: "";
100 | width: 58rpx;
101 | height: 2rpx;
102 | background: #666;
103 | position: absolute;
104 | top: 50%;
105 | right: 180rpx;
106 | }
107 |
108 | .techology::before {
109 | content: "";
110 | width: 58rpx;
111 | height: 2rpx;
112 | background: #666;
113 | position: absolute;
114 | top: 50%;
115 | left: 180rpx;
116 | }
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../utils/api.js");
2 |
3 | const GetCardIndex = (params) => {
4 | //添加属性
5 | params.data["SubjectId"] = api.configId;
6 | api.wxRequest(params, `${api.apiURL}/api/card/home/GetInfo`);
7 | };
8 |
9 | //根据id 获取用户信息
10 | const getUserInfoById = (params) => {
11 | api.wxRequest(params, `${api.apiURL}/api/user/home/UserInfo`);
12 | };
13 |
14 | //分类统计
15 | const GetCommentTagsNum = (params) => {
16 | api.wxRequest(params, `${api.apiURL}/api/card/Comment/GetTagsNum`);
17 | };
18 |
19 | const CollectCard = (params) => {
20 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Folder/Collect`);
21 | };
22 |
23 | const HandelLike = (params) => {
24 | api.wxTokenRequest(params, `${api.apiURL}/api/card/home/Likes`);
25 | };
26 |
27 | //转发计数
28 | const HandelForward = (params) => {
29 | api.wxTokenRequest(params, `${api.apiURL}/api/card/home/Forward`);
30 | };
31 | //点赞
32 | const CommentLike = (params) => {
33 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Comment/Likes`);
34 | };
35 | //足迹添加
36 | const HandleFootPrint = (params) => {
37 | api.wxTokenRequest(params, `${api.apiURL}/api/card/FootPrint/add`);
38 | };
39 |
40 | module.exports = {
41 | GetCardIndex,
42 | getUserInfoById,
43 | GetCommentTagsNum,
44 | CollectCard,
45 | HandelLike,
46 | HandelForward,
47 | CommentLike,
48 | HandleFootPrint
49 | };
50 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_edit/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const HandleData = (params) => {
4 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Atlas/HandleData`);
5 | };
6 | const getDetail = (params) => {
7 | //添加属性
8 | api.wxRequest(params, `${api.apiURL}/api/card/Atlas/GetDetail`);
9 | };
10 |
11 | module.exports = {
12 | HandleData,
13 | getDetail
14 | };
15 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_edit/upload.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "上传画集"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_edit/upload.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_edit/upload.wxss:
--------------------------------------------------------------------------------
1 | page{background-color:#f4f4f4}.wuli-btn__fixed{box-sizing:border-box;position:fixed;display:-webkit-box;display:flex;flex-direction:row;left:0;right:0;bottom:0}.wuli-btn__fixed .wuli-btn__primary{width:100%;height:47px;line-height:47px;font-size:17px;background-color:#13b6f7;-webkit-border-radius:3px;border-radius:3px}.wuli-upload{padding-bottom:77px}.wuli-upload__textarea textarea{height:162rpx}.wuli-upload__textarea .wuli-cell::after{border:0 none}.wuli-upload__bd{position:relative;min-height:218rpx;padding:0 15px;zoom:1}.wuli-upload__bd:before,.wuli-upload__bd:after{display:table;content:"";line-height:0}.wuli-upload__bd:after{clear:both}.wuli-upload__item{position:relative;float:left;width:32%;margin-bottom:10px}.wuli-upload__item--img{width:100%;height:218rpx}.wuli-upload__item:nth-child(3n-1){margin-left:2%;margin-right:2%}.wuli-upload__item--del{position:absolute;width:19px;height:19px;right:4px;top:4px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;color:#fff;background-color:#1b78fc;-webkit-border-radius:50%;border-radius:50%}.wuli-upload__item--del .iconfont{font-size:10px}.wuli-upload__fd{margin-top:10px}.wuli-btn__fixed{box-sizing:border-box;position:fixed;display:-webkit-box;display:flex;flex-direction:row;left:0;right:0;bottom:0}.wuli-btn__fixed .wuli-btn__info{width:100%;height:47px;line-height:47px;color:#fff;font-size:17px;border-color:#d2d2d2;background-color:#d2d2d2;-webkit-border-radius:3px;border-radius:3px}.wuli-btn__fixed .wuli-btn__info.wuli-btn__primary{background-color:#13b6f7}.wuli-btn__fixed .wuli-btn__info::after{border:0 none}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_gallery/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const getDetail = (params) => {
4 | //添加属性
5 | api.wxRequest(params, `${api.apiURL}/api/card/Atlas/GetDetail`);
6 | };
7 | //足迹添加
8 | const HandleFootPrint = (params) => {
9 | api.wxTokenRequest(params, `${api.apiURL}/api/card/FootPrint/add`);
10 | };
11 |
12 | module.exports = {
13 | getDetail,
14 | HandleFootPrint
15 | };
16 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_gallery/list.js:
--------------------------------------------------------------------------------
1 | // pages/main/atlas_gallery/list.js
2 | const api = require("api.js");
3 | const app = getApp();
4 |
5 | Page({
6 | data: {
7 | gallery: {
8 | current: 0
9 | },
10 | urls: [],
11 | title: "",
12 | id: 0
13 | },
14 | onLoad: function (options) {
15 | var that = this;
16 | var id = options.id;
17 | if (id) {
18 | //编辑
19 | var data = {
20 | id: id
21 | };
22 | api.getDetail({
23 | data,
24 | success: (res) => {
25 | that.setData({
26 | urls: res.data.Data.arr_Atlas,
27 | id: id,
28 | title: res.data.Data.info
29 | });
30 | wx.setNavigationBarTitle({
31 | title: res.data.Data.title
32 | });
33 | }
34 | });
35 | }
36 | },
37 | onShow: function () {
38 | setTimeout((res) => {
39 | var loginInfo = app.globalData.userInfo,
40 | current_id = app.globalData.visitUserInfo.id;
41 | if (current_id != 0) {
42 | //添加足迹
43 | api.HandleFootPrint({
44 | data: {
45 | cid: current_id,
46 | info: `用户【${loginInfo.name}】浏览了你的图集 ${this.data.title}`,
47 | type: 2,
48 | url: "pages/main/atlas_gallery/list?id=" + this.data.id
49 | },
50 | method: "post",
51 | success: (res) => {
52 | console.log(res);
53 | }
54 | });
55 | }
56 | }, 2500);
57 | },
58 | bindchange(e) {
59 | this.setData({
60 | [`gallery.current`]: e.detail.current
61 | });
62 | },
63 | previewImage(e) {
64 | const dataset = e.currentTarget.dataset;
65 | const current = dataset.current;
66 | const urls = this.data.urls;
67 |
68 | wx.previewImage({
69 | current: current,
70 | urls: urls
71 | });
72 | }
73 | });
74 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_gallery/list.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{title}}
12 |
13 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_gallery/list.wxss:
--------------------------------------------------------------------------------
1 | .wuli-gallery{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000;z-index:1000}.wuli-gallery__swiper{width:100%;height:100%}.wuli-gallery__item{display:-webkit-box;display:flex;flex-direction:row;flex-direction:column;justify-content:center}.wuli-gallery__img{flex:none;width:100%;height:100%}.wuli-gallery__opr{position:absolute;right:0;bottom:0;left:0;background-color:#0d0d0d;color:#fff;line-height:60px;text-align:center}.wuli-gallery__desc{display:block;font-size:14px}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_list/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const AlbumList = (params) => {
4 | api.wxRequest(params, `${api.apiURL}/api/card/Atlas/PagedList`);
5 | };
6 | const Albumdel = (params) => {
7 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Atlas/Remove`);
8 | };
9 | const TopAlbum = (params) => {
10 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Atlas/SetTop`);
11 | };
12 | //足迹添加
13 | const HandleFootPrint = (params) => {
14 | api.wxTokenRequest(params, `${api.apiURL}/api/card/FootPrint/add`);
15 | };
16 |
17 | module.exports = {
18 | AlbumList,
19 | Albumdel,
20 | TopAlbum,
21 | HandleFootPrint
22 | };
23 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_list/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "图集列表"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_list/list.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 添加画册
13 |
14 |
15 |
16 |
17 |
18 | 这人很懒,什么也没有留下...
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | 玩命的加载中...
36 |
37 |
38 |
39 |
40 | 亲,我是有底线的...
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/atlas_list/list.wxss:
--------------------------------------------------------------------------------
1 | page{background-color:#f4f4f4}.wuli-panel__bg{padding:15px;background-color:#fff}.wuli-search{position:relative;height:76rpx;background-color:#efefef;-webkit-border-radius:2px;border-radius:2px}.wuli-search__input{padding-left:72rpx;margin-top:12rpx;font-size:14px}.wuli-search .iconfont{position:absolute;left:24rpx;top:18rpx;font-size:18px;color:#b5b5b5}.wuli-atlas{position:relative;background-color:#f4f4f4}.wuli-atlas__hd{padding:0 15px;height:38px;line-height:38px;color:#4d4d4d;font-size:14px;text-align:right;font-weight:bolder}.wuli-atlas__bd{margin:0 15px;display:-webkit-box;display:flex;flex-direction:row;box-sizing:border-box}.wuli-atlas__item{position:relative;background-color:#fff;margin-bottom:10px;-webkit-border-radius:4px;border-radius:4px;box-shadow:0 5px 15px rgba(14,16,22,0.1)}.wuli-atlas__item--tag{position:absolute;left:-6rpx;top:10px;padding:3px 12px 3px 10px;font-size:12px;color:#e5f7ff;background-color:#67d47b;border-top-right-radius:8px;border-bottom-right-radius:8px}.wuli-atlas__item--tag::after{content:"";position:absolute;left:0;top:-7rpx;width:0;height:0;border-width:6rpx 5rpx;border-style:solid;border-color:#f4f4f4 #67d47b #67d47b #f4f4f4}.wuli-atlas__item--thumb{border-top-left-radius:4px;border-top-right-radius:4px;overflow:hidden}.wuli-atlas__item--img{width:100%}.wuli-atlas__item--info{padding:0 10px}.wuli-atlas__item--title{font-family:'PingFang SC-Medium';color:#282828;font-size:14px;font-weight:bolder}.wuli-atlas__item--desc{padding:10px 0 5px;display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-atlas__item--desc .desc-tags{-webkit-flex:1;flex:1;color:#989898;font-size:12px}.wuli-atlas__item--desc .desc-tag{display:inline-block}.wuli-atlas__item--desc .desc-tag:first-child{margin-right:12px}.wuli-atlas__item--desc .desc-tag .iconfont{margin-right:3px;font-size:14px}.wuli-atlas__item--desc .desc-edit{color:#989898}.wuli-atlas__item--desc .desc-edit .iconfont{font-size:14px;vertical-align:5rpx}.wuli-atlas__left,.wuli-atlas__right{-webkit-flex:1;flex:1}.wuli-atlas__left{padding-right:5px}.wuli-atlas__right{padding-left:5px}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/case_detail/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | //案例详情
4 | const getCaseDetail = (params) => {
5 | api.wxRequest(params, `${api.apiURL}/api/Card/Cases/GetDetail`);
6 | };
7 |
8 | //施工日志
9 | const getDailyList = (params) => {
10 | api.wxRequest(params, `${api.apiURL}/api/Card/Sites/Daily`);
11 | };
12 | //足迹添加
13 | const HandleFootPrint = (params) => {
14 | api.wxTokenRequest(params, `${api.apiURL}/api/card/FootPrint/add`);
15 | };
16 |
17 | module.exports = {
18 | getCaseDetail,
19 | getDailyList,
20 | HandleFootPrint
21 | };
22 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/case_detail/detail.wxss:
--------------------------------------------------------------------------------
1 | .wuli-detail__hd{margin-bottom:10px}.wuli-detail__hd--banner{height:250px}.wuli-detail__hd--banner .slide-image{width:100%;height:250px}.wuli-detail__hd--title{padding:15px 10px 0;font-size:15px}.wuli-detail__hd--info{padding:0 10px;margin:5px 0}.wuli-detail__hd--tag1{color:#f54c04;font-size:12px}.wuli-detail__hd--tag2{margin-right:20px;color:#f54c04;font-size:24px}.wuli-detail__hd--tag3,.wuli-detail__hd--tag4{color:#f54c04;border:1px solid #f54c04;padding:1px 5px;font-size:12px}.wuli-detail__hd--tag3+text,.wuli-detail__hd--tag4+text{margin-left:10px}.wuli-detail__hd--tag4{color:#ff9204}.wuli-detail__hd--badge{font-weight:bolder;margin-right:10px;font-size:17px}.wuli-detail .wuli-cell__icon{width:28px;height:28px}.wuli-detail .wuli-cell__bd{font-size:13px;color:#575757}.wuli-detail__panel{height:50px;display:-webkit-box;display:flex;flex-direction:row;justify-content:center;align-items:center}.wuli-detail__panel .line{width:12%;border-top:1px solid #dcdcdc}.wuli-detail__panel--title{width:30%;font-size:14px;color:#828282;text-align:center}.wuli-detail__panel--title .iconfont{margin-right:8px;font-size:18px}.wuli-log__item{display:-webkit-box;display:flex;flex-direction:row;position:relative;padding:10px}.wuli-log__item::after{content:"";position:absolute;left:0;right:0;width:200%;height:200%;transform:scale(.5);transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #dcdcdc;border-bottom-width:1px}.wuli-log__item+.wuli-log__item{margin-top:15px}.wuli-log__avatar{width:50px;height:50px;-webkit-border-radius:50%;border-radius:50%;overflow:hidden}.wuli-log__avatar image{width:50px;height:50px}.wuli-log__inner{-webkit-flex:1;flex:1;padding-left:15px}.wuli-log__inner--title{font-size:16px;line-height:1.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wuli-log__inner--time{font-size:16px;line-height:1.5;font-size:12px;color:#828282}.wuli-log__inner--progress{margin:5px 0;color:#999;font-size:12px}.wuli-log__inner--desc{margin-top:10px;zoom:1}.wuli-log__inner--desc:before,.wuli-log__inner--desc:after{display:table;content:"";line-height:0}.wuli-log__inner--desc:after{clear:both}.wuli-log__inner--desc image{float:left;width:32%;height:100px;margin-bottom:5px}.wuli-log__inner--desc image:nth-child(3n-1){margin:0 2%}.wuli-log__inner--other{margin-top:5px;position:relative;font-size:12px;color:#999}.wuli-log__inner--other .text-color{color:#ff9204}.wuli-log__inner--info{margin:10px 0;font-size:14px;line-height:1.6}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/case_edit/config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // Form 中使用输入框
3 | form: {
4 | name: {
5 | error: true,
6 | title: "案例名称",
7 | placeholder: "填写案例名称",
8 | componentId: "name"
9 | },
10 | style: {
11 | error: true,
12 | title: "风格",
13 | placeholder: "填写风格",
14 | componentId: "style"
15 | },
16 | area: {
17 | error: true,
18 | title: "面积",
19 | placeholder: "填写面积",
20 | inputType: "digit",
21 | componentId: "area"
22 | },
23 | unit: {
24 | error: true,
25 | title: "户型",
26 | placeholder: "填写户型",
27 | componentId: "unit"
28 | },
29 | address: {
30 | title: "工地地址",
31 | placeholder: "填写工地地址",
32 | // type: 'textarea',
33 | componentId: "address"
34 | },
35 | price: {
36 | title: "案例造价",
37 | placeholder: "填写案例造价",
38 | inputType: "digit",
39 | componentId: "price"
40 | },
41 | status: {
42 | title: "工地状态",
43 | placeholder: "填写工地状态",
44 | componentId: "status"
45 | },
46 | info: {
47 | title: "",
48 | placeholder: "请在这输入描述...",
49 | componentId: "info",
50 | type: "textarea"
51 | }
52 | }
53 | };
54 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/case_edit/upload.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "编辑案例信息"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/case_edit/upload.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:16px}.wuli-field__placeholder{font-size:16px;color:#c3c3c3}.wuli-field__input--right{text-align:right}.wuli-upload .wuli-btn__info{width:100%;height:47px;line-height:47px;color:#fff;font-size:17px;border-color:#d2d2d2;background-color:#d2d2d2;-webkit-border-radius:3px;border-radius:3px}.wuli-upload .wuli-btn__info.wuli-btn__primary{background-color:#13b6f7}.wuli-upload .wuli-btn__info::after{border:0 none}.wuli-upload__bd,.wuli-upload__fd{margin-top:10px}.wuli-upload__fd.wuli-btns{margin-top:30px}.wuli-upload__fd textarea{height:162rpx}.wuli-upload__ft{position:relative;min-height:218rpx;padding:0 15px;zoom:1}.wuli-upload__ft:before,.wuli-upload__ft:after{display:table;content:"";line-height:0}.wuli-upload__ft:after{clear:both}.wuli-upload__item{position:relative;float:left;width:32%;margin-bottom:10px}.wuli-upload__item--img{width:100%;height:218rpx}.wuli-upload__item:nth-child(3n-1){margin-left:2%;margin-right:2%}.wuli-upload__item--del{position:absolute;width:19px;height:19px;right:4px;top:4px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;color:#fff;background-color:#1b78fc;-webkit-border-radius:50%;border-radius:50%}.wuli-upload__item--del .iconfont{font-size:10px}.wuli-upload__person{padding:0 15px;background-color:#fff;zoom:1}.wuli-upload__person:before,.wuli-upload__person:after{display:table;content:"";line-height:0}.wuli-upload__person:after{clear:both}.wuli-upload__person--item{float:left;width:104rpx;height:auto;margin-right:40rpx;margin-bottom:20rpx}.wuli-upload__person--img{width:104rpx;height:104rpx;-webkit-border-radius:50%;border-radius:50%;overflow:hidden}.wuli-upload__person--avater{width:100%;height:100%}.wuli-upload__person--desc{color:#c3c3c3;line-height:2.5;text-align:center;font-size:12px}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/case_fast/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const getPagedList = (params) => {
4 | api.wxRequest(params, `${api.apiURL}/api/card/cases/PagedListCompany`);
5 | };
6 | //绑定
7 | const BindCaseCompany = (params) => {
8 | api.wxTokenRequest(params, `${api.apiURL}/api/card/cases/BindCaseCompany`);
9 | };
10 |
11 | module.exports = {
12 | getPagedList,
13 | BindCaseCompany
14 | };
15 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/case_fast/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "案例一键添加"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/case_fast/list.wxss:
--------------------------------------------------------------------------------
1 | .wuli-tap__menu{position:fixed;top:1px;left:0;right:0;height:42px;line-height:42px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;font-size:14px;border-bottom:1px solid #e5e5e5;z-index:99}.wuli-tap__menu .menu-item{position:relative;-webkit-flex:1;flex:1;text-align:center;color:#525252;background-color:#fff}.wuli-tap__menu .menu-item text{box-sizing:border-box;position:relative;display:inline-block;width:52px;padding-right:8px}.wuli-tap__menu .menu-item text::after{position:absolute;top:48%;right:0;content:" ";display:inline-block;height:6px;width:6px;border-width:0 3rpx 3rpx 0;border-color:#525252;border-style:solid;transform:translateY(-50%) matrix(.71, .71, -0.71, .71, 0, 0)}.wuli-tap__menu .menu-item:nth-child(2)::before{content:'';position:absolute;top:0;width:200%;height:200%;transform:scale(.5);transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-left-width:2px;border-right-width:2px;left:0;right:0}.wuli-tap__item{height:78px;display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-tap__item--img{display:-webkit-box;display:flex;flex-direction:row;align-items:center;width:114px;height:78px;overflow:hidden}.wuli-tap__item--img image{width:114px;height:78px}.wuli-tap__item--inner{box-sizing:border-box;-webkit-flex:1;flex:1;padding:0 60px 0 15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wuli-tap__item--title{margin-bottom:5px;font-size:15px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wuli-tap__item--desc{font-size:12px;color:#999}.wuli-tap__item--desc text+text{margin-left:10px}.wuli-tap__item--progress{margin:10px 0 5px;display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-tap__item--progress .progress{margin-right:8px;-webkit-flex:1;flex:1;height:8px;background-color:#f7e4e4;-webkit-border-radius:8px;border-radius:8px}.wuli-tap__item--progress .progress--inner{height:8px;background-color:#fe3c32;-webkit-border-radius:8px;border-radius:8px}.wuli-tap__item--progress .progress--desc{font-size:12px;color:#fe3c32}.wuli-tap__item--info{display:-webkit-box;display:flex;flex-direction:row;justify-content:space-between;color:#999;font-size:12px}.wuli-tap__item--checkbox{position:absolute;top:50%;right:15px;width:28px;height:28px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;border:1px solid #5d9267;-webkit-border-radius:50%;border-radius:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transform-origin:center;transform-origin:center}.wuli-tap__item--checkbox .iconfont{color:#5d9267;font-size:14px}.wuli-tap__item--checkbox.is-active{border-color:#5d9267;background-color:#5d9267}.wuli-tap__item--checkbox.is-active .iconfont{color:#fff}.wuli-tap__bd{box-sizing:border-box;padding:52px 0 0}.wuli-tap__bd--group+.wuli-tap__bd--group{margin-top:10px}.wuli-tap__fd .wuli-popup__container{left:0;right:0}.wuli-tap__fd .wuli-btn__primary{width:100%;height:47px;line-height:47px;font-size:17px;background-color:#13b6f7;-webkit-border-radius:3px;border-radius:3px}.wuli-tap__fd .wuli-btn__primary text{font-size:12px}.wuli-menu .wuli-popup__container{top:44px;left:0;right:0;font-size:16px;background:#fff}.wuli-menu__mask{top:44px}.wuli-menu__tags{display:-webkit-box;display:flex;flex-direction:row;flex-wrap:wrap;padding:8px}.wuli-menu__tag{flex:0 0 33.3%;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;height:34px}.wuli-menu__tag text{display:block;width:220rpx;height:50rpx;line-height:50rpx;text-align:center;font-size:12px;color:#666;border:1px solid #dcdcdc}.wuli-menu__tag text.is-active{color:#e34a2b;border-color:#e34a2b}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/case_list/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const getPagedList = (params) => {
4 | api.wxRequest(params, `${api.apiURL}/api/card/cases/PagedList`);
5 | };
6 | //删除
7 | const Remove = (params) => {
8 | api.wxTokenRequest(params, `${api.apiURL}/api/card/cases/Remove`);
9 | };
10 | //足迹添加
11 | const HandleFootPrint = (params) => {
12 | api.wxTokenRequest(params, `${api.apiURL}/api/card/FootPrint/add`);
13 | };
14 |
15 | module.exports = {
16 | getPagedList,
17 | Remove,
18 | HandleFootPrint
19 | };
20 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/case_list/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "案例列表"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/case_list/list.wxss:
--------------------------------------------------------------------------------
1 | page{background-color:#f4f4f4}.wuli-panel__bg{padding:15px;background-color:#fff}.wuli-search{position:relative;height:76rpx;background-color:#efefef;-webkit-border-radius:2px;border-radius:2px}.wuli-search__input{padding-left:72rpx;margin-top:12rpx;font-size:14px}.wuli-search .iconfont{position:absolute;left:24rpx;top:18rpx;font-size:18px;color:#b5b5b5}.wuli-cases{box-sizing:border-box}.wuli-cases__edit{padding:0 15px;height:40px;line-height:40px;text-align:right;font-size:14px;color:#000;font-weight:bolder}.wuli-cases__item{padding:15px 15px 0;margin-bottom:10px}.wuli-cases__item--big{-webkit-flex:3;flex:3;margin-right:5px;height:189px;background-color:#eee;overflow:hidden}.wuli-cases__item--small{-webkit-flex:2;flex:2;display:-webkit-box;display:flex;flex-direction:row;flex-direction:column;height:189px;overflow:hidden}.wuli-cases__item .img-big{width:100%;height:195px}.wuli-cases__item .img-small{width:100%;height:95px;background-color:#eee}.wuli-cases__item .img-small:first-child{margin-bottom:5px}.wuli-cases__hd{display:-webkit-box;display:flex;flex-direction:row}.wuli-cases__bd{padding:10px 0 0}.wuli-cases__bd--inner{display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-cases__bd--star{width:98px}.wuli-cases__bd--star .iconfont{margin-right:6px;color:#ff9930;font-size:14px}.wuli-cases__bd--star .iconfont:last-child{margin-right:0}.wuli-cases__bd--title{-webkit-flex:1;flex:1;padding-right:10px;font-size:17px;color:#282828;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wuli-cases__bd--tags{-webkit-flex:1;flex:1}.wuli-cases__bd--eye{display:inline-block;color:#cfcfcf;font-size:12px}.wuli-cases__bd--eye .iconfont{font-size:14px}.wuli-cases__bd--eye+view{padding-left:20px}.wuli-cases__bd--tag{position:relative;display:inline-block;font-size:12px;color:#989898;text-align:center;padding:0 8px}.wuli-cases__bd--tag:first-child{padding:0 8px 0 0}.wuli-cases__bd--tag:first-child::after{border:0}.wuli-cases__bd--tag::after{content:"";position:absolute;top:3px;right:0;width:200%;height:calc(200% - 8px);transform:scale(.5);transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #989898;border-right-width:1px}.wuli-cases__fd{display:-webkit-box;display:flex;flex-direction:row;align-items:center;padding:10px 0;height:32px}.wuli-cases__fd--menu{display:inline-block}.wuli-cases__fd--menu .iconfont{color:#989898;font-size:14px}.menu-popup{width:100%;height:100%}.menu-popup .wuli-popup__mask{background:rgba(243,243,243,0.97)}.menu-popup .wuli-popup__container{left:0;right:0;background:none}.menu-popup__bd{height:calc(100vh - 48px);display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center}.menu-popup__bd--warpper{box-sizing:border-box;padding:0 30px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;width:100%}.menu-popup__item{display:-webkit-box;display:flex;flex-direction:row;flex:0 0 50%;align-items:center;justify-content:center;flex-direction:column;height:100px;font-size:14px;color:#989898;text-align:center}.menu-popup__item .item-circle{display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;width:60px;height:60px;-webkit-border-radius:50%;border-radius:50%}.menu-popup__item .item-circle .iconfont{color:#fff;font-size:28px}.menu-popup__item .item-title{margin-top:16rpx}.menu-popup__item .item-normal{background-color:#00a0e9}.menu-popup__item .item-warning{background-color:#ff9930}.menu-popup__item .item-danger{background-color:#ff674f}.menu-popup__item .item-success{background-color:#34b781}.menu-popup__item .item-info{background-color:#e0537d}.menu-popup__fd{height:48px;line-height:48px;text-align:center;border-top:1px solid #e2e2e2}.menu-popup__fd .iconfont{font-size:20px;color:#c0c0c0}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/comment_edit/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const CommentAdd = (params) => {
4 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Comment/Add`);
5 | };
6 |
7 | //获取评论标签
8 | const GetCommentTags = (params) => {
9 | api.wxRequest(params, `${api.apiURL}/api/card/Comment/GetTags`);
10 | };
11 |
12 | module.exports = {
13 | CommentAdd,
14 | GetCommentTags
15 | };
16 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/comment_edit/upload.js:
--------------------------------------------------------------------------------
1 | // pages/main/comment_edit/upload.js
2 | const app = getApp();
3 | const api = require("api.js");
4 | const fcglobal = require("../../../utils/api.js");
5 | const util = require("../../../utils/util.js");
6 |
7 | Page({
8 | data: {
9 | textAreaDesc: "",
10 | placeholderText: "至少5个字嘛!",
11 | min: 5,
12 | max: 125,
13 | tagIndex: null,
14 | formdata: {
15 | content: "",
16 | pid: 0, //用于回复
17 | uid: 0, //发布评论的人
18 | cid: 0, //评论的对象
19 | tags: ""
20 | },
21 | tagsList: [],
22 | placehoder: " 留下点评,帮助更多人",
23 | submitText: "提交评论"
24 | },
25 | onLoad: function (options) {
26 | var uinfo = app.globalData.userInfo;
27 | if (options.id) {
28 | //有id代表为回复
29 | this.setData({
30 | ["formdata.pid"]: options.id,
31 | placehoder: "回复:" + options.name,
32 | submitText: "立即回复"
33 | });
34 | if (!options.curuid) {
35 | this.setData({
36 | ["formdata.uid"]: uinfo.id,
37 | ["formdata.cid"]: uinfo.id
38 | });
39 | }
40 | }
41 | if (options.curuid) {
42 | //l
43 | this.setData({
44 | ["formdata.uid"]: uinfo.id,
45 | ["formdata.cid"]: options.curuid
46 | });
47 | }
48 | api.GetCommentTags({
49 | success: (res) => {
50 | let tagsList = res.data.Data;
51 | tagsList.map((item) => ((item["checked"] = false), item));
52 | this.setData({
53 | tagsList: tagsList
54 | });
55 | }
56 | });
57 | },
58 | bindTextAreaBlur: function (e) {
59 | this.setData({
60 | textAreaDesc: e.detail.value
61 | });
62 | },
63 | formSubmit: function (event) {
64 | if (event.detail.value.content.length <= 5) {
65 | util.showTextModal("字数不能少于5!");
66 | return false;
67 | }
68 | this.setData({
69 | ["formdata.content"]: event.detail.value.content
70 | });
71 | api.CommentAdd({
72 | data: this.data.formdata,
73 | method: "post",
74 | success: (res) => {
75 | if (res.data.StatusCode == 200) {
76 | util.showSuccessModal("评论成功");
77 | setTimeout((res) => {
78 | if (this.data.formdata.cid != app.globalData.userInfo.id) {
79 | wx.navigateTo({
80 | url: "/pages/main/comment_list/list?curuid=" + this.data.formdata.cid
81 | });
82 | } else {
83 | // 回到上一页
84 | wx.navigateBack();
85 | }
86 | }, 2000);
87 | } else {
88 | this.showErrorModal("评论失败");
89 | }
90 | }
91 | });
92 | },
93 | //字数限制
94 | textareaHanle(e) {
95 | let value = e.detail.value;
96 | let len = parseInt(value.length);
97 |
98 | //最少字数限制
99 | if (len <= this.data.min)
100 | this.setData({
101 | placeholderText: "请您多多填写评论内容哦~"
102 | });
103 | else if (len > this.data.min)
104 | this.setData({
105 | placeholderText: ""
106 | });
107 | //最多字数限制
108 | if (len > this.data.max) return;
109 | // 当输入框内容的长度大于最大长度限制(max)时,终止setData()的执行
110 | this.setData({
111 | totalNum: len //当前字数
112 | });
113 | },
114 | tagHanle(e) {
115 | const value = e.currentTarget.dataset.id;
116 | this.setData({
117 | ["formdata.tags"]: this.data.tagsList[value].name,
118 | tagIndex: value
119 | });
120 | }
121 | });
122 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/comment_edit/upload.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "评论编辑"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/comment_edit/upload.wxml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/comment_edit/upload.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:16px}.wuli-field__placeholder{font-size:16px;color:#c3c3c3}.wuli-field__input--right{text-align:right}.wuli-btn__fixed{box-sizing:border-box;position:fixed;display:-webkit-box;display:flex;flex-direction:row;left:0;right:0;bottom:0}.wuli-btn__fixed .wuli-btn__primary{width:100%;height:47px;line-height:47px;font-size:17px;background-color:#13b6f7;-webkit-border-radius:3px;border-radius:3px}
2 | .wuli-field__input {
3 | height: 150px;
4 | font-size: 14px;
5 | }
6 | .wuli-comment__num {
7 | font-size: 14px;
8 | color: #c3c3c3;
9 | position: absolute;
10 | right: 15px;
11 | bottom: 15px;
12 | }
13 | .wuli-comment__desc{
14 | font-size: 14px;
15 | position: absolute;
16 | left: 15px;
17 | bottom: 15px;
18 | color: #f56c6c;
19 | }
20 | .wuli-comment__tags {
21 | position: relative;
22 | margin-top: 10px;
23 | padding: 15px;
24 | }
25 | .wuli-comment__tag {
26 | box-sizing: border-box;
27 | display: inline-block;
28 | width: 30%;
29 | padding: 4px 10px;
30 | margin-bottom: 8px;
31 | text-align: center;
32 | color: #666;
33 | font-size: 12px;
34 | border: 1px solid #eee;
35 | border-radius: 15px;
36 | }
37 | .wuli-comment__tag:nth-child(3n-1) {
38 | margin: 0 5%;
39 | }
40 | .wuli-comment__tag.is-active {
41 | border-color: #f56c6c;
42 | color: #f56c6c;
43 | }
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/comment_list/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const CommentList = (params) => {
4 | api.wxRequest(params, `${api.apiURL}/api/card/Comment/PagedList`);
5 | };
6 | const CommentDel = (params) => {
7 | //添加属性
8 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Comment/Remove`);
9 | };
10 | //点赞
11 | const CommentLike = (params) => {
12 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Comment/Likes`);
13 | };
14 | //分类统计
15 | const GetCommentTagsNum = (params) => {
16 | api.wxRequest(params, `${api.apiURL}/api/card/Comment/GetTagsNum`);
17 | };
18 | //足迹添加
19 | const HandleFootPrint = (params) => {
20 | api.wxTokenRequest(params, `${api.apiURL}/api/card/FootPrint/add`);
21 | };
22 |
23 | module.exports = {
24 | CommentList,
25 | CommentDel,
26 | CommentLike,
27 | GetCommentTagsNum,
28 | HandleFootPrint
29 | };
30 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/comment_list/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "评论"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/comment_list/list.wxss:
--------------------------------------------------------------------------------
1 | .container{background-color:#f4f4f4}.wuli-comment__hd{padding:15px 15px 10px;background-color:#fff;border-bottom:1px solid #f7f7f7}.wuli-comment__tags{zoom:1}.wuli-comment__tags:before,.wuli-comment__tags:after{display:table;content:"";line-height:0}.wuli-comment__tags:after{clear:both}.wuli-comment__tag{display:inline-block;margin-right:8px;margin-bottom:5px;padding:5px 12px;color:#666;font-size:12px;text-align:center;background-color:#fdecea;-webkit-border-radius:15px;border-radius:15px}.wuli-comment__bd--info{display:-webkit-box;display:flex;flex-direction:row}.wuli-comment__bd--avater{width:32px;height:32px;-webkit-border-radius:50%;border-radius:50%}.wuli-comment__bd--inner{-webkit-flex:1;flex:1;margin-left:8px}.wuli-comment__item{margin-bottom:10px;padding:15px;background-color:#fff}.wuli-comment__item--hd{display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-comment__item--title{-webkit-flex:1;flex:1;font-size:14px;font-weight:bolder}.wuli-comment__item--bd{margin:5px 0 10px;padding-right:25px;font-size:14px;color:#666;line-height:1.6}.wuli-comment__item--fd{display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-comment__item--inner{-webkit-flex:1;flex:1;padding-left:40px;font-size:12px;color:#989898}.wuli-comment__item--time{margin-right:10px}.wuli-comment__item--reply{position:relative;box-sizing:border-box}.wuli-comment__item--reply .iconfont{font-size:24px;color:#6a7180}.wuli-comment__reply{box-sizing:border-box;position:relative;margin:10px 0 0 30px;min-height:37px;height:auto;line-height:1.6;font-size:12px;background-color:#f4f4f4}.wuli-comment__reply::before{content:"";position:absolute;left:27px;top:-6px;display:inline-block;width:0;height:0;overflow:hidden;vertical-align:middle;border-bottom:6px solid #f4f4f4;border-left:6px dashed transparent;border-right:6px dashed transparent}.wuli-comment__reply--item{position:relative;padding:8px 10px}.wuli-comment__reply .reply-name{min-width:60px;color:#f76603}.wuli-comment__reply .reply-info{color:#333}.wuli-comment__reply--total{height:36px;padding:0 10px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;color:#f76603}.wuli-comment__reply--total+view{border-top:1px solid #e8e8e8}.wuli-comment__reply .reply-person{-webkit-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wuli-comment__btns{width:100%}.wuli-comment__btns .iconfont{color:#ff674f;font-size:14px;margin-right:5px}.wuli-comment__btns .wuli-btn{display:block;font-size:14px;color:#ff674f}.wuli-comment .wuli-popup__mask{background:none}.wuli-comment .wuli-popup__container{position:absolute;top:-5px;right:30px;padding:0 5px;width:130px;height:32px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;background-color:#373a41;-webkit-border-radius:3px;border-radius:3px}.wuli-comment .wuli-popup__container .item-btn{-webkit-flex:1;flex:1;color:#fff;text-align:center;font-size:12px}.wuli-comment .wuli-popup__container .iconfont{margin-right:3px;font-size:15px;color:#fff}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/company_edit/upload.js:
--------------------------------------------------------------------------------
1 | // pages/main/company_edit/upload.js
2 | import { Field } from "../../../components/index";
3 |
4 | Page(
5 | Object.assign({}, Field, {
6 | data: {
7 | tel: {
8 | error: true,
9 | title: "电话",
10 | inputType: "tel",
11 | placeholder: "请输入公司电话",
12 | componentId: "companyTel"
13 | },
14 | hasLocation: false,
15 | companyName: "",
16 | companyTel: "",
17 | companyAddress: ""
18 | },
19 | onLoad: function (options) {},
20 | handleWuliFieldChange(e) {
21 | //const { componentId, detail } = e;
22 | },
23 | formSubmit(event) {
24 | console.log("[wuli:field:submit]", event.detail.value);
25 | },
26 | chooseLocation: function () {
27 | var that = this;
28 | wx.chooseLocation({
29 | success: function (res) {
30 | that.setData({
31 | hasLocation: true,
32 | companyAddress: res.address
33 | });
34 | },
35 | fail: function () {
36 | wx.getSetting({
37 | success: function (res) {
38 | var status = res.authSetting;
39 | if (!status["scope.userLocation"]) {
40 | wx.showModal({
41 | title: "是否授权当前位置",
42 | content: "需要获取您的地理位置,请确认授权,否则地图功能将无法使用",
43 | success: function (tip) {
44 | if (tip.confirm) {
45 | wx.openSetting({
46 | success: function (request) {
47 | request.authSetting = {
48 | "scope.userLocation": true
49 | };
50 | //授权成功之后,再调用chooseLocation选择地方
51 | wx.chooseLocation({
52 | success: function (res) {
53 | that.setData({
54 | hasLocation: true,
55 | companyAddress: res.address
56 | });
57 | }
58 | });
59 | }
60 | });
61 | }
62 | }
63 | });
64 | }
65 | }
66 | });
67 | }
68 | });
69 | },
70 | goCersion() {
71 | wx.navigateTo({
72 | url: "/pages/main/rank_version/version"
73 | });
74 | },
75 | //上传图片
76 | chooseImage: function (e) {
77 | var that = this;
78 | wx.chooseImage({
79 | count: 1, // 默认9
80 | sizeType: ["original", "compressed"],
81 | sourceType: ["album", "camera"],
82 | success: function (res) {
83 | var tempFilePaths = res.tempFilePaths;
84 | }
85 | });
86 | }
87 | })
88 | );
89 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/company_edit/upload.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "公司信息编辑"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/company_edit/upload.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
42 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/company_edit/upload.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:16px}.wuli-field__placeholder{font-size:16px;color:#c3c3c3}.wuli-field__input--right{text-align:right}page{background-color:#ebecf2}.card-edit__hd-bg{display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;height:500rpx;background-color:#e3e3e3}.card-edit__hd-img{width:88rpx;height:88rpx}.card-edit__bd,.card-edit__fd,.card-edit__ft{margin-top:20rpx}.card-edit__fd-icon{width:138rpx;height:138rpx}.card-edit__fd-title{align-items:flex-start}.card-edit__fd-title .wuli-field__title{padding-top:4px}.card-edit__fd-desc{color:#999;font-size:12px}.card-edit__ft{height:240rpx}.card-edit__ft .wuli-field{min-height:98px;align-items:flex-start}.card-edit__ft .wuli-field__input{min-height:98px}.card-edit__ft .wuli-field__title{padding-top:10px}.card-edit .wuli-btns{margin:52px 15px 22px}.card-edit .wuli-btns .wuli-btn{-webkit-border-radius:4px;border-radius:4px}.wuli-btn__fixed{box-sizing:border-box;position:fixed;display:-webkit-box;display:flex;flex-direction:row;left:0;right:0;bottom:0}.wuli-btn__fixed .wuli-btn__primary{width:100%;height:47px;line-height:47px;font-size:17px;background-color:#13b6f7;-webkit-border-radius:3px;border-radius:3px}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/company_list/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const RemoveCompnayWithCard = (params) => {
4 | api.wxTokenRequest(params, `${api.apiURL}/api/Card/Company/RemoveCompnayWithCard`);
5 | };
6 | const GetBindCompanyInfo = (params) => {
7 | api.wxTokenRequest(params, `${api.apiURL}/api/Card/Company/GetBindCompanyInfo`);
8 | };
9 |
10 | module.exports = {
11 | RemoveCompnayWithCard,
12 | GetBindCompanyInfo
13 | };
14 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/company_list/list.js:
--------------------------------------------------------------------------------
1 | // pages/main/company_list/list.js
2 | const app = getApp();
3 | const api = require("api.js");
4 | const util = require("../../../utils/util.js");
5 | Page({
6 | data: {
7 | markers: [],
8 | companyId: 0,
9 | companyInfo: 0
10 | },
11 | onLoad: function (options) {
12 | this.setData({
13 | companyId: app.globalData.userInfo.cardCompanyId
14 | });
15 |
16 | if (this.data.cardCompanyId == 0) {
17 | return false;
18 | } else {
19 | api.GetBindCompanyInfo({
20 | data: {},
21 | success: (res) => {
22 | var companyInfo = res.data.Data;
23 | var markers = [
24 | {
25 | latitude: parseFloat(companyInfo.latitude),
26 | longitude: parseFloat(companyInfo.longitude),
27 | name: companyInfo.name,
28 | iconPath: "/image/location.png"
29 | }
30 | ];
31 | this.setData({
32 | companyInfo: companyInfo,
33 | markers: markers
34 | });
35 | }
36 | });
37 | }
38 | },
39 | //拨打电话
40 | callPhone(e) {
41 | wx.makePhoneCall({
42 | phoneNumber: e.currentTarget.dataset.phone
43 | });
44 | },
45 | Visitingline(e) {
46 | wx.openLocation({
47 | latitude: parseFloat(e.currentTarget.dataset.latitude),
48 | longitude: parseFloat(e.currentTarget.dataset.longitude),
49 | scale: 16,
50 | name: e.currentTarget.dataset.name,
51 | address: e.currentTarget.dataset.address
52 | });
53 | },
54 | handleRemoveCompany() {
55 | wx.showModal({
56 | content: "你确定要解除该企业关联吗??",
57 | confirmText: "确定",
58 | cancelText: "取消",
59 | success: (res) => {
60 | if (res.confirm) {
61 | api.RemoveCompnayWithCard({
62 | method: "post",
63 | success: (res) => {
64 | if (res.data.StatusCode == 200) {
65 | util.showSuccessModal("解除关联成功!");
66 | setTimeout(() => {
67 | wx.navigateTo({
68 | url: "/pages/main/user/user"
69 | });
70 | }, 1500);
71 | }
72 | }
73 | });
74 | }
75 | }
76 | });
77 | }
78 | });
79 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/company_list/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "企业认证信息"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/company_list/list.wxss:
--------------------------------------------------------------------------------
1 | page{background-color:#f4f4f4}.wuli-panel__bg{padding:15px;background-color:#fff}.wuli-search{position:relative;height:76rpx;background-color:#efefef;-webkit-border-radius:2px;border-radius:2px}.wuli-search__input{padding-left:72rpx;margin-top:12rpx;font-size:14px}.wuli-search .iconfont{position:absolute;left:24rpx;top:18rpx;font-size:18px;color:#b5b5b5}.wuli-companys{box-sizing:border-box}.wuli-companys__hd{padding:15px;display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-companys__hd--lt{display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #e2e2e2;-webkit-border-radius:7px;border-radius:7px}.wuli-companys__hd--logo{width:25px;height:25px}.wuli-companys__hd--rt{margin-left:10px;-webkit-flex:1;flex:1}.wuli-companys__hd--entry{float:right;width:62px;height:20px;line-height:20px;font-size:12px;color:#fff;text-align:center;background-image:-webkit-linear-gradient(right, #ff8b00, #f50);background-image:linear-gradient(to right, #ff8b00, #f50);-webkit-border-radius:10px;border-radius:10px}.wuli-companys__hd--title{margin-right:64px;font-size:14px;color:#282828;font-weight:bolder}.wuli-companys__hd--tags{margin-top:3px;width:100%}.wuli-companys__hd--tag{float:left;position:relative;box-sizing:border-box;line-height:16px;padding:0 5px;-webkit-border-radius:8px;border-radius:8px;font-size:11px;background:#ff002d;text-align:center;color:#fff}.wuli-companys__hd--tag+.wuli-companys__hd--tag{margin-left:5px;background:#fe7532}.wuli-companys__item{border-top:1px solid #f4f4f4}.wuli-companys__bd{position:relative;padding:0 15px}.wuli-companys__bd::after{content:"";position:absolute;left:0;right:0;width:200%;height:200%;transform:scale(.5);transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #f4f4f4;border-bottom-width:1px}.wuli-companys__bd--inner{display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-companys__bd .inner-tags{font-size:12px}.wuli-companys__bd .inner-tag{display:inline-block;color:#989898}.wuli-companys__bd .inner-number{display:inline-block;color:#ff5b00}.wuli-companys__bd .inner-center{-webkit-flex:1;flex:1;text-align:center}.wuli-companys__fd{margin-top:15px}.wuli-companys__fd--title{padding:10px 15px;color:#333;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wuli-companys__fd--map{box-sizing:border-box;height:96px}.wuli-companys__fd--map .setion-map{width:100%;height:96px}.wuli-companys__fd--menu{height:40px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center}.wuli-companys__fd--menu .menu-item{position:relative;-webkit-flex:1;flex:1;text-align:center;font-size:14px;color:#666}.wuli-companys__fd--menu .menu-item::after{content:"";position:absolute;top:0;right:0;width:200%;height:200%;transform:scale(.5);transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #ccc;border-right-width:1px}.wuli-companys__fd--menu .menu-item:first-child::after{border:0}.wuli-companys__fd--menu .menu-item .iconfont{margin-right:5px}.wuli-btn__fixed{box-sizing:border-box;position:fixed;display:-webkit-box;display:flex;flex-direction:row;left:0;right:0;bottom:0}.wuli-btn__fixed .wuli-btn__primary{width:100%;height:47px;line-height:47px;font-size:17px;background-color:#13b6f7;-webkit-border-radius:3px;border-radius:3px}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/company_search/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const GetCompanyList = (params) => {
4 | //添加属性
5 | api.wxRequest(params, `${api.apiURL}/api/user/home/GetCompanyList`);
6 | };
7 | //发送验证码
8 | const SendCode = (params) => {
9 | //添加属性
10 | api.wxRequest(params, `${api.apiURL}/api/fc/sms/Send`);
11 | };
12 | //验证验证码
13 | const VerifyCode = (params) => {
14 | //添加属性
15 | api.wxRequest(params, `${api.apiURL}/api/fc/sms/Verify`);
16 | };
17 | //验证绑定公司信息
18 | const BindCompnayWithCard = (params) => {
19 | //添加属性
20 | api.wxRequest(params, `${api.apiURL}/api/fc/sms/BindCompnayWithCard`);
21 | };
22 |
23 | module.exports = {
24 | GetCompanyList,
25 | SendCode,
26 | VerifyCode,
27 | BindCompnayWithCard
28 | };
29 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/company_search/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "加入企业版"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/company_search/list.wxss:
--------------------------------------------------------------------------------
1 | page{background-color:#f4f4f4}.wuli-panel__bg{padding:15px;background-color:#fff}.wuli-search{position:relative;height:76rpx;background-color:#efefef;-webkit-border-radius:2px;border-radius:2px}.wuli-search__input{padding-left:72rpx;margin-top:12rpx;font-size:14px}.wuli-search .iconfont{position:absolute;left:24rpx;top:18rpx;font-size:18px;color:#b5b5b5}.wuli-companys{box-sizing:border-box}.wuli-companys__hd{padding:15px;display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-companys__hd--lt{display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid #e2e2e2;-webkit-border-radius:7px;border-radius:7px}.wuli-companys__hd--logo{width:25px;height:25px}.wuli-companys__hd--rt{margin-left:10px;-webkit-flex:1;flex:1}.wuli-companys__hd--entry{float:right;width:62px;height:20px;line-height:20px;font-size:12px;color:#fff;text-align:center;background-image:-webkit-linear-gradient(right, #ff8b00, #f50);background-image:linear-gradient(to right, #ff8b00, #f50);-webkit-border-radius:10px;border-radius:10px}.wuli-companys__hd--title{margin-right:64px;font-size:14px;color:#282828;font-weight:bolder}.wuli-companys__hd--tags{margin-top:3px;width:100%}.wuli-companys__hd--tag{float:left;position:relative;box-sizing:border-box;line-height:16px;padding:0 5px;-webkit-border-radius:8px;border-radius:8px;font-size:11px;background:#ff002d;text-align:center;color:#fff}.wuli-companys__hd--tag+.wuli-companys__hd--tag{margin-left:5px;background:#fe7532}.wuli-companys__item{position:relative;padding:0 0 10px;border-top:1px solid #f4f4f4}.wuli-companys__bd{position:relative;padding:0 15px}.wuli-companys__bd::after{content:"";position:absolute;left:0;right:0;width:200%;height:200%;transform:scale(.5);transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #f4f4f4;border-bottom-width:1px}.wuli-companys__bd--inner{display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-companys__bd .inner-tags{font-size:12px}.wuli-companys__bd .inner-tag{display:inline-block;color:#989898}.wuli-companys__bd .inner-number{display:inline-block;color:#ff5b00}.wuli-companys__bd .inner-center{-webkit-flex:1;flex:1;text-align:center}checkbox .wx-checkbox-input{border-radius:50%;width:40rpx;height:40rpx}checkbox .wx-checkbox-input.wx-checkbox-input-checked{border-color:#ff6152;background-color:#ff6152}checkbox .wx-checkbox-input.wx-checkbox-input-checked::before{border-radius:50%;width:40rpx;height:40rpx;line-height:40rpx;text-align:center;font-size:14px;color:#fff;background:transparent;transform:translate(-50%, -50%);-webkit-transform:translate(-50%, -50%)}.checkbox-label{position:absolute;right:15px;top:20px;z-index:1}.wuli-layer{width:75%;height:299px;background-color:transparent}.wuli-layer .wuli-input__item{position:relative;height:42px;margin-top:15px;padding:0 10px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;line-height:1.4;font-size:14px;background-color:#ebebeb;border:1px solid #e6e6e6;border-radius:3px}.wuli-layer .wuli-input__item .wuli-btn{-webkit-border-radius:4px;border-radius:4px}.wuli-layer .wuli-field__placeholder{font-size:14px;color:#c3c3c3}.wuli-layer__wrapper{padding:0 15px;height:245px;background:#fff;-webkit-border-radius:4px;border-radius:4px}.wuli-layer__close{position:relative;padding:0 10px;height:54px;text-align:right}.wuli-layer__close .iconfont{font-size:32px;color:#fff}.wuli-layer__close::after{content:"";position:absolute;top:30px;right:25px;width:2px;height:25px;pointer-events:none;box-sizing:border-box;background-color:#fff}.wuli-layer__hd{padding:25px 0 10px;font-size:17px;color:#5d5d5d;text-align:center}.wuli-layer__fd{margin-top:15px}.wuli-layer__fd .wuli-btn{height:42px;line-height:42px;border-radius:4px}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // 导航
3 | menu: [
4 | {
5 | class: "item-normal",
6 | title: "图集",
7 | icon: "icon-Ftujineirong-",
8 | url: "/pages/main/atlas_list/list"
9 | },
10 | {
11 | class: "item-warning",
12 | title: "案例",
13 | icon: "icon-anli",
14 | url: "/pages/main/case_list/list"
15 | },
16 | {
17 | class: "item-danger",
18 | title: "在建工地",
19 | icon: "icon--cg",
20 | url: "/pages/main/master_list/list"
21 | },
22 | {
23 | class: "item-success",
24 | title: "个人资料",
25 | icon: "icon-personalCenter",
26 | url: "/pages/main/user/user"
27 | },
28 | {
29 | class: "item-info",
30 | title: "评论",
31 | icon: "icon-icon-edit",
32 | url: "/pages/main/comment_list/list"
33 | },
34 | {
35 | class: "item-success",
36 | title: "企业",
37 | icon: "icon-gongsi",
38 | url: "/pages/main/company_list/list"
39 | },
40 | {
41 | class: "item-normal",
42 | title: "活动",
43 | icon: "icon-huodong",
44 | url: "/pages/main/activity_list/list"
45 | },
46 | {
47 | class: "item-danger",
48 | title: "邀请",
49 | icon: "icon-weixin",
50 | url: "/pages/start/qrcode/qrcode"
51 | }
52 | ]
53 | };
54 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/folder_group/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | //获取名片列表
4 | const getPagedList = (params) => {
5 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Folder/FolderWithUserList`);
6 | };
7 |
8 | //修改组名
9 | const ModifyFolderName = (params) => {
10 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Folder/ModifyFolderName`);
11 | };
12 | //删除分组
13 | const DelFolder = (params) => {
14 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Folder/DelFolder`);
15 | };
16 | //新增分组
17 | const ModifyGrounp = (params) => {
18 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Folder/ModifyGrounp`);
19 | };
20 |
21 | module.exports = {
22 | getPagedList,
23 | ModifyFolderName,
24 | DelFolder,
25 | ModifyGrounp
26 | };
27 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/folder_group/group.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "名片夹分组"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/folder_group/group.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | 编辑
12 |
13 |
14 |
15 | 增加分组
16 | 完成
17 |
18 |
19 |
20 |
27 |
28 |
29 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
67 |
68 |
69 |
70 |
71 | {{ item.groupname }}
72 | {{ item.CardCount }}张
73 |
74 |
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/folder_group/group.wxss:
--------------------------------------------------------------------------------
1 | .container{background-color:#fff}.wuli-panel__bg{padding:15px 15px 0;background-color:#fff}.wuli-search{position:relative;height:76rpx;background-color:#efefef;-webkit-border-radius:2px;border-radius:2px}.wuli-search__input{padding-left:72rpx;margin-top:12rpx;font-size:14px}.wuli-search .iconfont{position:absolute;left:24rpx;top:18rpx;font-size:18px;color:#b5b5b5}.wuli-folder{padding:0 15px}.wuli-folder .wuli-panel{margin-top:15px;padding-bottom:7px;border-bottom:1px solid #ebecf2;overflow:inherit}.wuli-folder__del{position:absolute;left:-16rpx;top:-24rpx}.wuli-folder__del .iconfont{font-size:24px;color:#ff6152}.wuli-folder__edit{height:44px;line-height:44px;text-align:right;font-size:15px;color:#4d4d4d;font-weight:bolder}.wuli-folder__edit--add{height:44px;line-height:44px;display:inline-block;width:72px;font-size:15px;color:#666;text-align:left}.wuli-folder__edit--end{position:relative;display:inline-block;height:44px;line-height:44px;width:44px;text-align:right;font-size:15px;color:#ff6152}.wuli-folder__edit--end::before{content:"";position:absolute;top:16px;left:0;height:13px;width:1px;background-color:#ababab}.wuli-folder__item{display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;height:344rpx;transition:all .3s cubic-bezier(.645, .045, .355, 1);overflow:hidden}.wuli-folder__item--big{-webkit-flex:1;flex:1;margin-right:2rpx}.wuli-folder__item--input{max-width:76px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:18px;color:#4d4d4d}.wuli-folder__item--input+.iconfont{font-size:20px;color:#585858}.wuli-folder__item--small{-webkit-flex:1;flex:1;margin-left:2rpx}.wuli-folder__item--small .small-item{-webkit-flex:1;flex:1;height:168rpx;background-color:#efefef;-webkit-border-radius:4px;border-radius:4px;overflow:hidden}.wuli-folder__item--small .small-item:first-child{margin-right:2rpx}.wuli-folder__item--small .small-item:last-child{margin-left:2rpx}.wuli-folder__item--small .small-item__bd,.wuli-folder__item--small .small-item__fd{display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;height:168rpx}.wuli-folder__item--small .small-item__fd{margin-top:4rpx}.wuli-folder__item--small .small-img{width:100%;height:168rpx}.wuli-folder__item--first{width:100%;height:344rpx;background-color:#efefef;-webkit-border-radius:4px;border-radius:4px;overflow:hidden}.wuli-folder__item--title{display:-webkit-box;display:flex;flex-direction:row;align-items:center;height:74rpx;color:#4d4d4d}.wuli-folder__item--txt{-webkit-flex:1;flex:1;font-size:18px}.wuli-folder__item--desc{font-size:12px}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/folder_list/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 | //获取某个名片夹的名片列表
3 | const CardFoldertList = (params) => {
4 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Folder/CardFoldertList`);
5 | };
6 | // 批量删除 名片
7 | const DelFolderCard = (params) => {
8 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Folder/DelFolderCard`);
9 | };
10 | // 获取名片夹列表FolderList
11 | const FolderList = (params) => {
12 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Folder/FolderList`);
13 | };
14 | //MoveToFolder 移动分组
15 | const MoveToFolder = (params) => {
16 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Folder/MoveToFolder`);
17 | };
18 |
19 | module.exports = {
20 | CardFoldertList,
21 | DelFolderCard,
22 | FolderList,
23 | MoveToFolder
24 | };
25 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/folder_list/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "名片列表"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "名片主页"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_edit/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const HandleSelfCaseData = (params) => {
4 | api.wxTokenRequest(params, `${api.apiURL}/api/card/cases/HandleData`);
5 | };
6 | const getDetail = (params) => {
7 | api.wxRequest(params, `${api.apiURL}/api/card/cases/GetDetail`);
8 | };
9 |
10 | module.exports = {
11 | HandleSelfCaseData,
12 | getDetail
13 | };
14 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_edit/config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // Form 中使用输入框
3 | form: {
4 | name: {
5 | error: true,
6 | title: "工地名称",
7 | placeholder: "填写工地名称",
8 | componentId: "name"
9 | },
10 | style: {
11 | error: true,
12 | title: "工地风格",
13 | placeholder: "填写工地风格",
14 | componentId: "style"
15 | },
16 | area: {
17 | error: true,
18 | title: "工地面积",
19 | placeholder: "填写工地面积(m²)",
20 | inputType: "digit",
21 | componentId: "area"
22 | },
23 | unit: {
24 | error: true,
25 | title: "工地户型",
26 | placeholder: "填写工地户型",
27 | componentId: "unit"
28 | },
29 | address: {
30 | title: "工地地址",
31 | placeholder: "填写工地地址",
32 | // type: 'textarea',
33 | componentId: "address"
34 | },
35 | price: {
36 | title: "工地价格",
37 | placeholder: "填写工地价格(单位元)",
38 | inputType: "digit",
39 | componentId: "price"
40 | },
41 | status: {
42 | title: "工地状态",
43 | placeholder: "填写工地状态",
44 | componentId: "status"
45 | },
46 | info: {
47 | title: "",
48 | placeholder: "请在这输入描述...",
49 | componentId: "info",
50 | type: "textarea"
51 | }
52 | }
53 | };
54 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_edit/upload.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "在建工地编辑"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_edit/upload.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:16px}.wuli-field__placeholder{font-size:16px;color:#c3c3c3}.wuli-field__input--right{text-align:right}.wuli-upload .wuli-btn__info{width:100%;height:47px;line-height:47px;color:#fff;font-size:17px;border-color:#d2d2d2;background-color:#d2d2d2;-webkit-border-radius:3px;border-radius:3px}.wuli-upload .wuli-btn__info.wuli-btn__primary{background-color:#13b6f7}.wuli-upload .wuli-btn__info::after{border:0 none}.wuli-upload__bd,.wuli-upload__fd{margin-top:10px}.wuli-upload__fd.wuli-btns{margin-top:30px}.wuli-upload__fd textarea{height:162rpx}.wuli-upload__ft{position:relative;min-height:218rpx;padding:0 15px;zoom:1}.wuli-upload__ft:before,.wuli-upload__ft:after{display:table;content:"";line-height:0}.wuli-upload__ft:after{clear:both}.wuli-upload__item{position:relative;float:left;width:32%;margin-bottom:10px}.wuli-upload__item--img{width:100%;height:218rpx}.wuli-upload__item:nth-child(3n-1){margin-left:2%;margin-right:2%}.wuli-upload__item--del{position:absolute;width:19px;height:19px;right:4px;top:4px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;color:#fff;background-color:#1b78fc;-webkit-border-radius:50%;border-radius:50%}.wuli-upload__item--del .iconfont{font-size:10px}.wuli-upload__person{padding:0 15px;background-color:#fff;zoom:1}.wuli-upload__person:before,.wuli-upload__person:after{display:table;content:"";line-height:0}.wuli-upload__person:after{clear:both}.wuli-upload__person--item{float:left;width:104rpx;height:auto;margin-right:40rpx;margin-bottom:20rpx}.wuli-upload__person--img{width:104rpx;height:104rpx;-webkit-border-radius:50%;border-radius:50%;overflow:hidden}.wuli-upload__person--avater{width:100%;height:100%}.wuli-upload__person--desc{color:#c3c3c3;line-height:2.5;text-align:center;font-size:12px}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_fast/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const getPagedList = (params) => {
4 | api.wxRequest(params, `${api.apiURL}/api/card/sites/PagedListCompany`);
5 | };
6 | //绑定
7 | const BindCaseCompany = (params) => {
8 | api.wxTokenRequest(params, `${api.apiURL}/api/card/sites/BindCaseCompany`);
9 | };
10 |
11 | module.exports = {
12 | getPagedList,
13 | BindCaseCompany
14 | };
15 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_fast/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "工地一键添加"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_fast/list.wxss:
--------------------------------------------------------------------------------
1 | .wuli-tap__menu{position:fixed;top:1px;left:0;right:0;height:42px;line-height:42px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;font-size:14px;border-bottom:1px solid #e5e5e5;z-index:99}.wuli-tap__menu .menu-item{position:relative;-webkit-flex:1;flex:1;text-align:center;color:#525252;background-color:#fff}.wuli-tap__menu .menu-item text{box-sizing:border-box;position:relative;display:inline-block;width:52px;padding-right:8px}.wuli-tap__menu .menu-item text::after{position:absolute;top:48%;right:0;content:" ";display:inline-block;height:6px;width:6px;border-width:0 3rpx 3rpx 0;border-color:#525252;border-style:solid;transform:translateY(-50%) matrix(.71, .71, -0.71, .71, 0, 0)}.wuli-tap__menu .menu-item:nth-child(2)::before{content:'';position:absolute;top:0;width:200%;height:200%;transform:scale(.5);transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e5e5e5;border-left-width:2px;border-right-width:2px;left:0;right:0}.wuli-tap__item{height:78px;display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-tap__item--img{display:-webkit-box;display:flex;flex-direction:row;align-items:center;width:114px;height:78px;overflow:hidden}.wuli-tap__item--img image{width:114px;height:78px}.wuli-tap__item--inner{box-sizing:border-box;-webkit-flex:1;flex:1;padding:0 60px 0 15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wuli-tap__item--title{margin-bottom:5px;font-size:15px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wuli-tap__item--desc{font-size:12px;color:#999}.wuli-tap__item--desc text+text{margin-left:10px}.wuli-tap__item--progress{margin:10px 0 5px;display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-tap__item--progress .progress{margin-right:8px;-webkit-flex:1;flex:1;height:8px;background-color:#f7e4e4;-webkit-border-radius:8px;border-radius:8px}.wuli-tap__item--progress .progress--inner{height:8px;background-color:#fe3c32;-webkit-border-radius:8px;border-radius:8px}.wuli-tap__item--progress .progress--desc{font-size:12px;color:#fe3c32}.wuli-tap__item--info{display:-webkit-box;display:flex;flex-direction:row;justify-content:space-between;color:#999;font-size:12px}.wuli-tap__item--checkbox{position:absolute;top:50%;right:15px;width:28px;height:28px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;border:1px solid #5d9267;-webkit-border-radius:50%;border-radius:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transform-origin:center;transform-origin:center}.wuli-tap__item--checkbox .iconfont{color:#5d9267;font-size:14px}.wuli-tap__item--checkbox.is-active{border-color:#5d9267;background-color:#5d9267}.wuli-tap__item--checkbox.is-active .iconfont{color:#fff}.wuli-tap__bd{box-sizing:border-box;padding:52px 0 0}.wuli-tap__bd--group+.wuli-tap__bd--group{margin-top:10px}.wuli-tap__fd .wuli-popup__container{left:0;right:0}.wuli-tap__fd .wuli-btn__primary{width:100%;height:47px;line-height:47px;font-size:17px;background-color:#13b6f7;-webkit-border-radius:3px;border-radius:3px}.wuli-tap__fd .wuli-btn__primary text{font-size:12px}.wuli-menu .wuli-popup__container{top:44px;left:0;right:0;font-size:16px;background:#fff}.wuli-menu__mask{top:44px}.wuli-menu__tags{display:-webkit-box;display:flex;flex-direction:row;flex-wrap:wrap;padding:8px}.wuli-menu__tag{flex:0 0 33.3%;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;height:34px}.wuli-menu__tag text{display:block;width:220rpx;height:50rpx;line-height:50rpx;text-align:center;font-size:12px;color:#666;border:1px solid #dcdcdc}.wuli-menu__tag text.is-active{color:#e34a2b;border-color:#e34a2b}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_list/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const getPagedList = (params) => {
4 | //添加属性
5 | params.data["SubjectId"] = api.configId;
6 | api.wxRequest(params, `${api.apiURL}/api/card/Sites/PagedList`);
7 | };
8 |
9 | const delCase = (params) => {
10 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Cases/Remove`);
11 | };
12 |
13 | //设为案例
14 | const SetSelfCase = (params) => {
15 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Sites/SetCase`);
16 | };
17 | //足迹添加
18 | const HandleFootPrint = (params) => {
19 | api.wxTokenRequest(params, `${api.apiURL}/api/card/FootPrint/add`);
20 | };
21 |
22 | module.exports = {
23 | getPagedList,
24 | delCase,
25 | SetSelfCase,
26 | HandleFootPrint
27 | };
28 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_list/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "在建工地列表"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_list/list.wxss:
--------------------------------------------------------------------------------
1 | page{background-color:#f4f4f4}.wuli-panel__bg{padding:15px;background-color:#fff}.wuli-search{position:relative;height:76rpx;background-color:#efefef;-webkit-border-radius:2px;border-radius:2px}.wuli-search__input{padding-left:72rpx;margin-top:12rpx;font-size:14px}.wuli-search .iconfont{position:absolute;left:24rpx;top:18rpx;font-size:18px;color:#b5b5b5}.wuli-sites{box-sizing:border-box}.wuli-sites__edit{padding:0 15px;height:40px;line-height:40px;text-align:right;font-size:14px;color:#000;font-weight:bolder}.wuli-sites__hd{position:relative;padding:15px 15px 0;height:150px;overflow:hidden}.wuli-sites__hd--img{width:100%;height:150px}.wuli-sites__hd--progress{position:absolute;left:50%;top:50%;width:104px;height:25px;line-height:25px;font-size:12px;color:#fff;text-align:center;background-color:rgba(0,0,0,0.8);border:2px solid #fff;-webkit-border-radius:15px;border-radius:15px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);-webkit-transform-origin:center;transform-origin:center}.wuli-sites__bd{position:relative;padding:0 15px}.wuli-sites__bd--inner{margin:12px 0 5px;display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-sites__bd--title{-webkit-flex:1;flex:1;padding:0 10px;font-size:14px;color:#282828;font-weight:bolder;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wuli-sites__bd--time{padding:4px 8px;font-size:11px;color:#838083;letter-spacing:1px;background-color:#f4f4f4}.wuli-sites__fd{margin-bottom:5px;padding:0 15px 0 25px;position:relative;display:-webkit-box;display:flex;flex-direction:row;align-items:center}.wuli-sites__fd--desc{-webkit-flex:1;flex:1;font-size:12px;color:#cfcfcf}.wuli-sites__fd--desc .iconfont{margin-right:4px;font-size:14px}.wuli-sites__fd--edit{width:40px;color:#b6b6b6;text-align:center}.wuli-sites__fd--edit .iconfont{font-size:16px}.wuli-sites__item{margin-bottom:10px}.menu-popup{width:100%;height:100%}.menu-popup .wuli-popup__mask{background:rgba(243,243,243,0.97)}.menu-popup .wuli-popup__container{left:0;right:0;background:none}.menu-popup__bd{height:calc(100vh - 48px);display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center}.menu-popup__bd--warpper{box-sizing:border-box;padding:0 30px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;width:100%}.menu-popup__item{display:-webkit-box;display:flex;flex-direction:row;flex:0 0 50%;align-items:center;justify-content:center;flex-direction:column;height:100px;font-size:14px;color:#989898;text-align:center}.menu-popup__item .item-circle{display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;width:60px;height:60px;-webkit-border-radius:50%;border-radius:50%}.menu-popup__item .item-circle .iconfont{color:#fff;font-size:28px}.menu-popup__item .item-title{margin-top:16rpx}.menu-popup__item .item-normal{background-color:#00a0e9}.menu-popup__item .item-warning{background-color:#ff9930}.menu-popup__item .item-danger{background-color:#ff674f}.menu-popup__item .item-success{background-color:#34b781}.menu-popup__item .item-info{background-color:#e0537d}.menu-popup__fd{height:48px;line-height:48px;text-align:center;border-top:1px solid #e2e2e2}.menu-popup__fd .iconfont{font-size:20px;color:#c0c0c0}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_log/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const WriteLog = (params) => {
4 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Sites/WriteLog`);
5 | };
6 |
7 | module.exports = {
8 | WriteLog
9 | };
10 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_log/log.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "施工日志"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_log/log.wxml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/master_log/log.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:16px}.wuli-field__placeholder{font-size:16px;color:#c3c3c3}.wuli-field__input--right{text-align:right}.wuli-upload .wuli-btn__info{width:100%;height:47px;line-height:47px;color:#fff;font-size:17px;border-color:#d2d2d2;background-color:#d2d2d2;-webkit-border-radius:3px;border-radius:3px}.wuli-upload .wuli-btn__info.wuli-btn__primary{background-color:#13b6f7}.wuli-upload .wuli-btn__info::after{border:0 none}.wuli-upload__bd,.wuli-upload__fd{margin-top:10px}.wuli-upload__fd.wuli-btns{margin-top:30px}.wuli-upload__fd textarea{height:162rpx}.wuli-upload__ft{position:relative;min-height:218rpx;padding:0 15px;zoom:1}.wuli-upload__ft:before,.wuli-upload__ft:after{display:table;content:"";line-height:0}.wuli-upload__ft:after{clear:both}.wuli-upload__item{position:relative;float:left;width:32%;margin-bottom:10px}.wuli-upload__item--img{width:100%;height:218rpx}.wuli-upload__item:nth-child(3n-1){margin-left:2%;margin-right:2%}.wuli-upload__item--del{position:absolute;width:19px;height:19px;right:4px;top:4px;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;color:#fff;background-color:#1b78fc;-webkit-border-radius:50%;border-radius:50%}.wuli-upload__item--del .iconfont{font-size:10px}.wuli-upload__person{padding:0 15px;background-color:#fff;zoom:1}.wuli-upload__person:before,.wuli-upload__person:after{display:table;content:"";line-height:0}.wuli-upload__person:after{clear:both}.wuli-upload__person--item{float:left;width:104rpx;height:auto;margin-right:40rpx;margin-bottom:20rpx}.wuli-upload__person--img{width:104rpx;height:104rpx;-webkit-border-radius:50%;border-radius:50%;overflow:hidden}.wuli-upload__person--avater{width:100%;height:100%}.wuli-upload__person--desc{color:#c3c3c3;line-height:2.5;text-align:center;font-size:12px}.wuli-field__input{height:150px;font-size:14px}.wuli-comment__num{font-size:14px;color:#c3c3c3;position:absolute;right:15px;bottom:15px}.wuli-comment__desc{font-size:14px;position:absolute;left:15px;bottom:15px;color:#f56c6c}.wuli-panel+.wuli-panel{margin-top:10px}.wuli-btn__fixed{box-sizing:border-box;position:fixed;display:-webkit-box;display:flex;flex-direction:row;left:0;right:0;bottom:0}.wuli-btn__fixed .wuli-btn__primary{width:100%;height:47px;line-height:47px;font-size:17px;background-color:#13b6f7;-webkit-border-radius:3px;border-radius:3px}.wuli-upload__ft{padding-top:15px}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/message_list/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const getPagedList = (params) => {
4 | //添加属性
5 | params.data["SubjectId"] = api.configId;
6 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Message/PagedList`);
7 | };
8 | const handleRead = (params) => {
9 | //添加属性
10 | params.data["SubjectId"] = api.configId;
11 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Message/Read`);
12 | };
13 | const handleDel = (params) => {
14 | //添加属性
15 | params.data["SubjectId"] = api.configId;
16 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Message/Delete`);
17 | };
18 |
19 | module.exports = {
20 | getPagedList,
21 | handleRead,
22 | handleDel
23 | };
24 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/message_list/list.js:
--------------------------------------------------------------------------------
1 | // pages/main/message_list/list.js
2 | const app = getApp();
3 | const api = require("api.js");
4 | const util = require("../../../utils/util.js");
5 |
6 | Page({
7 | data: {
8 | PagedListData: [],
9 | searchCondition: {
10 | PageIndex: 1,
11 | uid: 0, //用户id
12 | keyword: ""
13 | },
14 | loading: false,
15 | totalpage: 0,
16 | windowsHeight: app.globalData.systemInfo.screenHeight //设备高度
17 | },
18 | onLoad: function (options) {
19 | var that = this;
20 | var data = that.data.searchCondition;
21 | api.getPagedList({
22 | data,
23 | success: (res) => {
24 | var PagedListData = res.data.Data;
25 | PagedListData.forEach((ele) => {
26 | ele.addtime = new Date(ele.addtime)
27 | .toISOString()
28 | .replace(/T/g, " ")
29 | .replace(/\.[\d]{3}Z/, "");
30 | });
31 | that.setData({
32 | PagedListData: PagedListData,
33 | totalpage: res.data.TotalPage,
34 | loading: res.data.TotalPage <= 1 ? false : true
35 | });
36 | }
37 | });
38 | }, //滚动距底部50触发事件
39 | loadMore: function () {
40 | var that = this;
41 | if (that.data.searchCondition.PageIndex >= that.data.totalpage) {
42 | that.setData({
43 | loading: false
44 | });
45 | return;
46 | }
47 | that.setData({
48 | loading: true,
49 | ["searchCondition.PageIndex"]: that.data.searchCondition.PageIndex + 1
50 | });
51 | var data = that.data.searchCondition;
52 | api.getPagedList({
53 | data,
54 | success: (res) => {
55 | var PagedListData = res.data.Data;
56 | PagedListData.forEach((ele) => {
57 | ele.addtime = new Date(ele.addtime)
58 | .toISOString()
59 | .replace(/T/g, " ")
60 | .replace(/\.[\d]{3}Z/, "");
61 | });
62 | that.setData({
63 | PagedListData: that.data.PagedListData.concat(PagedListData),
64 | totalpage: res.data.TotalPage
65 | });
66 | }
67 | });
68 | },
69 | //已读
70 | handleRead: function (e) {
71 | var id = e.currentTarget.dataset.id,
72 | index = e.currentTarget.dataset.index,
73 | isRead = e.currentTarget.dataset.isRead;
74 | if (isRead) {
75 | return false;
76 | }
77 | api.handleRead({
78 | data: {
79 | id: id
80 | },
81 | method: "post",
82 | success: (res) => {
83 | if (res.data.StatusCode == 200) {
84 | this.setData({
85 | [`PagedListData[${index}].isRead`]: true
86 | });
87 | wx.hideLoading();
88 | }
89 | }
90 | });
91 | },
92 | handleDel: function (e) {
93 | var id = e.currentTarget.dataset.id,
94 | index = e.currentTarget.dataset.index;
95 | var that = this;
96 | wx.showModal({
97 | content: "删除当前消息??",
98 | confirmText: "确定",
99 | cancelText: "取消",
100 | success: (b) => {
101 | if (b.confirm) {
102 | api.handleDel({
103 | data: { id: id },
104 | method: "post",
105 | success: (res) => {
106 | that.data.PagedListData.splice(index, 1),
107 | that.setData({
108 | PagedListData: that.data.PagedListData
109 | });
110 | util.showSuccessModal("删除成功");
111 | }
112 | });
113 | }
114 | }
115 | });
116 | }
117 | });
118 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/message_list/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "消息中心"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/message_list/list.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{item.addtime}}
6 |
8 |
9 |
10 |
11 |
12 | {{item.uname}}
13 | {{item.info}}
14 |
15 |
16 |
17 |
18 |
19 |
20 | 玩命的加载中...
21 |
22 |
23 |
24 |
25 | 亲,我是有底线的...
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/message_list/list.wxss:
--------------------------------------------------------------------------------
1 | /* pages/main/message_list/list.wxss */
2 |
3 | .container {
4 | background-color: #ebecf2;
5 | }
6 |
7 | .wuli-message {
8 | padding: 0 10px;
9 | }
10 |
11 | .wuli-message__item {
12 | position: relative;
13 | text-align: center;
14 | }
15 |
16 | .wuli-message__hd {
17 | display: inline-block;
18 | margin: 15px auto;
19 | padding: 2rpx 12rpx;
20 | font-size: 11px;
21 | color: #fff;
22 | background-color: #dadada;
23 | border-radius: 3px;
24 | }
25 |
26 | .wuli-message__bd {
27 | box-sizing: border-box;
28 | display: flex;
29 | padding: 15px;
30 | border-radius: 3px;
31 | box-shadow: 0 5px 15px rgba(14, 16, 21, .1);
32 | }
33 |
34 | .wuli-message__img, .wuli-message__avater {
35 | width: 36px;
36 | height: 36px;
37 | border-radius: 50%;
38 | }
39 |
40 | .wuli-message__img {
41 | background-color: #eee;
42 | }
43 |
44 | .wuli-message__info {
45 | flex: 1;
46 | padding-left: 10px;
47 | line-height: 1.5;
48 | text-align: left;
49 | }
50 |
51 | .wuli-message__title {
52 | font-size: 14px;
53 | color: #282828;
54 | }
55 |
56 | .wuli-message__desc {
57 | font-size: 12px;
58 | color: #989898;
59 | }
60 |
61 | .wuli-message__badge {
62 | position: absolute;
63 | top: 0;
64 | right: 15px;
65 | height: 1.6em;
66 | min-width: 1.6em;
67 | line-height: 1.6;
68 | padding: 0 .4em;
69 | font-size: 16px;
70 | border-radius: .8em;
71 | background: #f44;
72 | text-align: center;
73 | white-space: nowrap;
74 | transform: translateX(50%) scale(.5);
75 | transform-origin: center;
76 | z-index: 10;
77 | box-shadow: 0 0 0 2px #fff;
78 | box-sizing: border-box;
79 | }
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/rank_version/version.js:
--------------------------------------------------------------------------------
1 | // pages/main/rank_version/version.js
2 | Page({
3 | data: {
4 | configData: ["一键添加案例、在建工地", "增加官网入口", "自动获取企业信息", "更多功能正在赶来"]
5 | },
6 | goVersion() {
7 | wx.navigateTo({
8 | url: "/pages/main/case_fast/list"
9 | });
10 | },
11 | colseHanle() {
12 | // 回到上一页
13 | wx.navigateBack();
14 | }
15 | });
16 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/rank_version/version.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "加入企业版"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/rank_version/version.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 企业版介绍
13 |
14 | {{item}}
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/rank_version/version.wxss:
--------------------------------------------------------------------------------
1 | /* pages/main/rank_version/version.wxss */
2 |
3 | .wuli-version {
4 | position: relative;
5 | display: flex;
6 | align-items: center;
7 | justify-content: center;
8 | width: 100%;
9 | height: 100vh;
10 | }
11 |
12 | .wuli-version__wrapper {
13 | position: relative;
14 | height: 488px;
15 | width: 306px;
16 | background-color: #fff;
17 | border-radius: 4px;
18 | box-shadow: 0 5px 15px rgba(14, 16, 22, .1);
19 | }
20 |
21 | .wuli-version__hd, .wuli-version__hd--img {
22 | width: 100%;
23 | height: 204px;
24 | }
25 |
26 | .wuli-version__hd {
27 | background-color: #eee;
28 | }
29 |
30 | .wuli-version__hd--img {
31 | border-top-left-radius: 4px;
32 | border-top-right-radius: 4px;
33 | }
34 |
35 | .wuli-version__bd {
36 | position: relative;
37 | height: 235px;
38 | }
39 | .wuli-version__hd--colse {
40 | position: absolute;
41 | top: 0;
42 | right: 0;
43 | padding-right: 4px;
44 | width: 50px;
45 | height: 44px;
46 | text-align: right;
47 | }
48 | .wuli-version__hd--colse .iconfont {
49 | position: relative;
50 | font-size: 17px;
51 | color: #fff;
52 | z-index: 1;
53 | }
54 | .wuli-version__hd--colse::after {
55 | content: '';
56 | position: absolute;
57 | top: 0;
58 | right: 0;
59 | width: 0;
60 | height: 0;
61 | border-width: 22px 25px;
62 | border-style: solid;
63 | border-color: #7c7d7f #7c7d7f transparent transparent;
64 | border-top-right-radius: 4px;
65 | }
66 | .wuli-version__title {
67 | padding: 20px 0;
68 | font-size: 24px;
69 | text-align: center;
70 | }
71 |
72 | .wuli-version__item {
73 | padding: 5px 20px 5px 75px;
74 | display: flex;
75 | align-items: center;
76 | font-size: 12px;
77 | color: #878787;
78 | }
79 |
80 | .wuli-version__item .iconfont {
81 | margin-right: 5px;
82 | font-size: 20px;
83 | color: #13b6f7;
84 | }
85 |
86 | .wuli-version__fd {
87 | position: relative;
88 | height: 48px;
89 | line-height: 48px;
90 | color: #ff674f;
91 | font-size: 14px;
92 | text-align: center;
93 | }
94 |
95 | .wuli-version__fd::after {
96 | content: "";
97 | position: absolute;
98 | left: 0;
99 | right: 0;
100 | width: 200%;
101 | height: 200%;
102 | transform: scale(.5);
103 | transform-origin: 0 0;
104 | pointer-events: none;
105 | box-sizing: border-box;
106 | border: 0 solid #f4f4f4;
107 | border-top-width: 1px;
108 | }
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/user/user.js:
--------------------------------------------------------------------------------
1 | // pages/main/user/user.js
2 | const app = getApp();
3 | Page({
4 | data: {
5 | userInfo: null
6 | },
7 | onLoad: function (options) {
8 | var that = this;
9 | var uinfo = app.globalData.userInfo;
10 | that.setData({
11 | userInfo: uinfo
12 | });
13 | }
14 | });
15 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/user/user.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "个人中心"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/user/user.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 个人信息
5 |
6 |
7 |
8 |
9 | 认证信息
10 | 个人认证
11 | 企业认证
12 |
13 |
14 | 电话
15 | {{userInfo.phone}}
16 |
17 |
18 | 微信号
19 | {{userInfo.wechatNum}}
20 |
21 |
22 | 个人主页
23 |
24 |
25 |
26 |
27 |
31 |
32 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/user/user.wxss:
--------------------------------------------------------------------------------
1 | /* pages/main/user/user.wxss */
2 | .wuli-panel {
3 | margin-top: 20rpx;
4 | }
5 | .wuli-panel:first-child {
6 | margin-top: 0;
7 | }
8 | .wuli-cell {
9 | box-sizing: border-box;
10 | height: 104rpx;
11 | }
12 | .wuli-cell__avater {
13 | width: 64rpx;
14 | height: 64rpx;
15 | border-radius: 50%;
16 | vertical-align: middle;
17 | }
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/user_edit/config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // Form 中使用输入框
3 | form: {
4 | name: {
5 | focus: false,
6 | title: "名字",
7 | placeholder: "请输入名字",
8 | componentId: "name"
9 | },
10 | job: {
11 | error: true,
12 | title: "职位",
13 | placeholder: "请输入职位",
14 | componentId: "job"
15 | },
16 | tel: {
17 | error: true,
18 | title: "电话",
19 | inputType: "tel",
20 | placeholder: "请输入手机号",
21 | componentId: "tel"
22 | },
23 | wechat: {
24 | title: "微信号",
25 | disabled: true,
26 | value: "deng25887047",
27 | componentId: "wechat"
28 | },
29 | company: {
30 | title: "公司",
31 | placeholder: "请输入公司名称",
32 | componentId: "蔚来装饰有限公司"
33 | }
34 | }
35 | };
36 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/user_edit/upload.js:
--------------------------------------------------------------------------------
1 | // pages/main/user_edit/upload.js
2 | import { Field } from "../../../components/index";
3 | import config from "./config";
4 |
5 | var sourceType = [["camera"], ["album"], ["camera", "album"]];
6 | var sizeType = [["compressed"], ["original"], ["compressed", "original"]];
7 |
8 | Page(
9 | Object.assign({}, Field, {
10 | data: {
11 | config,
12 | name: "李莎莎",
13 | job: "首席设计师",
14 | tel: "17608228219",
15 | company: "蔚来装饰有限公司",
16 | desc: "",
17 | imageList: [],
18 | sourceTypeIndex: 2,
19 | sourceType: ["拍照", "相册", "拍照或相册"],
20 | sizeTypeIndex: 2,
21 | sizeType: ["压缩", "原图", "压缩或原图"],
22 | countIndex: 0,
23 | count: [1, 2, 3, 4, 5, 6, 7, 8, 9]
24 | },
25 | onLoad: function (options) {},
26 | handleWuliFieldChange(e) {
27 | const { componentId, detail } = e;
28 | // console.log('[wuli:field:change]', componentId, detail);
29 | },
30 |
31 | handleWuliFieldFocus(e) {
32 | const { componentId, detail } = e;
33 | },
34 |
35 | handleWuliFieldBlur(e) {
36 | const { componentId, detail } = e;
37 | },
38 |
39 | formSubmit(event) {
40 | // console.log('[wuli:field:submit]', event.detail.value);
41 | const userFormInfo = JSON.stringify(event.detail.value);
42 | wx.navigateTo({
43 | url: `/pages/start/index/index?info=${userFormInfo}`
44 | });
45 | },
46 | chooseImage: function () {
47 | var that = this;
48 | wx.chooseImage({
49 | sourceType: sourceType[that.data.sourceTypeIndex],
50 | sizeType: sizeType[that.data.sizeTypeIndex],
51 | count: that.data.count[that.data.countIndex],
52 | success: function (res) {
53 | that.setData({
54 | imageList: res.tempFilePaths
55 | });
56 | }
57 | });
58 | },
59 | previewImage: function (e) {
60 | var current = e.target.dataset.src;
61 |
62 | wx.previewImage({
63 | current: current,
64 | urls: this.data.imageList
65 | });
66 | }
67 | })
68 | );
69 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/user_edit/upload.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "个人资料编辑"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/user_edit/upload.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
33 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/main/user_edit/upload.wxss:
--------------------------------------------------------------------------------
1 | @import '../../start/add/add.wxss';
2 |
3 | .card-edit__bd textarea {
4 | height: 212rpx;
5 | }
6 | .card-edit__bd .wuli-cell:last-child {
7 | align-items: flex-start;
8 | }
9 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/add/add.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "名片信息"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/add/add.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:16px}.wuli-field__placeholder{font-size:16px;color:#c3c3c3}.wuli-field__input--right{text-align:right}page{background-color:#ebecf2}.card-edit__hd-bg{position:relative;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;height:500rpx;background-color:#e3e3e3}.card-edit__hd-img{width:88rpx;height:88rpx}.card-edit__hd--btn{position:absolute;right:10px;bottom:10px;z-index:11}.card-edit__hd--img{width:60rpx;height:60rpx}.card-edit__bd,.card-edit__fd,.card-edit__ft{margin-top:20rpx}.card-edit__fd-icon{width:138rpx;height:138rpx}.card-edit__fd-title{align-items:flex-start}.card-edit__fd-title .wuli-field__title{padding-top:4px}.card-edit__fd-desc{color:#999;font-size:12px}.card-edit__ft{height:240rpx}.card-edit__ft .wuli-field{min-height:98px;align-items:flex-start}.card-edit__ft .wuli-field__input{min-height:98px}.card-edit__ft .wuli-field__title{padding-top:10px}.card-edit .wuli-btns{margin:52px 15px 22px}.card-edit .wuli-btns .wuli-btn{-webkit-border-radius:4px;border-radius:4px}.card-edit__hd .wuli-uploader__img{width:100%;height:250px}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/add/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | const createCard = (params) => {
4 | api.wxTokenRequest(params, `${api.apiURL}/api/card/home/CreateBusinessCard`);
5 | };
6 |
7 | const getLoginedUInfo = (params) => {
8 | api.wxTokenRequest(params, `${api.apiURL}/api/card/home/GetLoginedUInfo`);
9 | };
10 |
11 | module.exports = {
12 | createCard,
13 | getLoginedUInfo
14 | };
15 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/add/config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // Form 中使用输入框
3 | form: {
4 | name: {
5 | focus: false,
6 | title: "名字*",
7 | placeholder: "请输入名字",
8 | componentId: "name"
9 | },
10 | position: {
11 | error: true,
12 | title: "职位*",
13 | placeholder: "请输入职位",
14 | componentId: "position"
15 | },
16 | goodat: {
17 | error: true,
18 | title: "擅长",
19 | placeholder: "如:简约风;异性吊顶(用;分开)",
20 | componentId: "goodat"
21 | },
22 | phone: {
23 | error: true,
24 | title: "电话*",
25 | inputType: "tel",
26 | placeholder: "请输入手机号",
27 | componentId: "phone"
28 | },
29 | wechatNum: {
30 | title: "微信号*",
31 | error: true,
32 | placeholder: "请输入微信号",
33 | value: "deng25887047",
34 | componentId: "wechatNum"
35 | },
36 | companyTel: {
37 | title: "电话",
38 | placeholder: "请输入公司联系电话",
39 | componentId: "companyTel"
40 | }
41 | }
42 | };
43 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../utils/api.js");
2 |
3 | const GetIndexUser = (params) => {
4 | api.wxTokenRequest(params, `${api.apiURL}/api/card/Folder/GetIndexUser`);
5 | };
6 |
7 | //转发计数
8 | const HandelForward = (params) => {
9 | api.wxTokenRequest(params, `${api.apiURL}/api/card/home/Forward`);
10 | };
11 |
12 | //短信转发分享
13 | const SmsShare = (params) => {
14 | api.wxTokenRequest(params, `${api.apiURL}/api/card/home/SmsShare`);
15 | };
16 |
17 | module.exports = {
18 | GetIndexUser,
19 | HandelForward,
20 | SmsShare
21 | };
22 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "disableScroll": true
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/index.wxss:
--------------------------------------------------------------------------------
1 | .wuli-ani-dial{position:relative;z-index:1500}.wuli-ani-dial__action{position:relative;right:0;bottom:0;width:100rpx;height:100rpx;-webkit-border-radius:50%;border-radius:50%;z-index:1500;background-color:#e40a5d;color:#fff;overflow:hidden;-webkit-transition-duration:.3s;transition-duration:.3s;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;box-shadow:0 0 8rpx rgba(0,0,0,0.14),0 8rpx 16rpx rgba(0,0,0,0.28)}.wuli-ani-dial__action--hover{-webkit-transition-duration:0s;transition-duration:0s;opacity:.8 !important}.wuli-ani-dial__icon{display:inline-block;line-height:1}.wuli-ani-dial__buttons{position:absolute;width:100%;left:50%;margin-left:-50%;bottom:100%;display:-webkit-box;display:flex;flex-direction:row;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse;visibility:hidden;pointer-events:none}.wuli-ani-dial__button{height:88rpx;width:88rpx;opacity:0;color:#fff;border-radius:50%;position:relative;z-index:1;overflow:visible;background-color:#fff;-webkit-transition-duration:.3s;transition-duration:.3s;display:-webkit-box;display:flex;flex-direction:row;align-items:center;justify-content:center;-webkit-transform:translate3d(0, 0, 0) scale(.3);transform:translate3d(0, 0, 0) scale(.3);-webkit-transform-origin:center bottom;transform-origin:center bottom;box-shadow:0 0 8rpx rgba(14,16,22,0.1),0 8rpx 16rpx rgba(14,16,22,0.1)}.wuli-ani-dial__button[data-label]:after{content:attr(data-label);position:absolute;top:130%;padding:8rpx 20rpx;font-size:11px;color:#767676;pointer-events:none;white-space:nowrap;opacity:0;box-sizing:border-box;-webkit-transform:translate3d(0, -50%, 0);transform:translate3d(0, -50%, 0);-webkit-transform-origin:center;transform-origin:center;-webkit-transition:all .3s;transition:all .3s}.wuli-ani-dial__button--hover{-webkit-transition-duration:0s;transition-duration:0s;opacity:.8 !important}.wuli-ani-dial__button .iconfont{font-size:24px;color:#767676}.wuli-ani-dial--opened .wuli-ani-dial__buttons{visibility:visible;pointer-events:auto}.wuli-ani-dial--opened .wuli-ani-dial__button{opacity:1;-webkit-transform:translate3d(50%, 0, 0) scaleY(1);transform:translate3d(50%, 0, 0) scaleY(1);-webkit-transition-delay:.1s;transition-delay:.1s}.wuli-ani-dial--opened .wuli-ani-dial__button[data-label]:after{opacity:1}.wuli-ani-dial--opened .wuli-ani-dial__button:nth-child(2){-webkit-transform:translate3d(-50%, -50%, 0) scaleY(1);transform:translate3d(-50%, -50%, 0) scaleY(1)}.wuli-ani-dial--opened .wuli-ani-dial__button:nth-child(3){-webkit-transform:translate3d(-50%, 0, 0) scaleY(1);transform:translate3d(-50%, 0, 0) scaleY(1)}.wuli-ani-dial__top-left{left:15px;top:15px}.wuli-ani-dial__top-left .wuli-ani-dial__button[data-label]:after{left:60px}.wuli-ani-dial__top-left .wuli-ani-dial__buttons{bottom:inherit;top:100%;margin-bottom:0;margin-top:16px}.wuli-ani-dial__top-right{right:15px;top:15px}.wuli-ani-dial__top-right .wuli-ani-dial__button[data-label]:after{right:60px}.wuli-ani-dial__top-right .wuli-ani-dial__buttons{bottom:inherit;top:100%;margin-bottom:0;margin-top:16px}.wuli-ani-dial__bottom-left{left:15px;bottom:15px}.wuli-ani-dial__bottom-left .wuli-ani-dial__button[data-label]:after{left:60px}.wuli-ani-dial__bottom-right{right:15px;bottom:15px}.wuli-ani-dial__bottom-right .wuli-ani-dial__button[data-label]:after{right:60px}
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/qrcode/qrcode.js:
--------------------------------------------------------------------------------
1 | // pages/start/qrcode/qrcode.js
2 | const app = getApp();
3 |
4 | Page({
5 | data: {
6 | userInfo: null
7 | },
8 | onLoad: function (options) {
9 | var that = this;
10 | var uinfo = app.globalData.userInfo;
11 | that.setData({
12 | userInfo: uinfo
13 | });
14 | }
15 | });
16 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/qrcode/qrcode.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "二维码"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/qrcode/qrcode.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | {{userInfo.name}}
11 | {{userInfo.introduction}}
12 |
13 | 扫描二维码,来认识和了解我吧
14 | 升级成为会员,拥有专属小程序码
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/qrcode/qrcode.wxss:
--------------------------------------------------------------------------------
1 | /* pages/start/qrcode/qrcode.wxss */
2 |
3 | .qrcode-bg {
4 | position: absolute;
5 | left: 0;
6 | top: 0;
7 | right: 0;
8 | width: 100%;
9 | height: 100%;
10 | }
11 |
12 | .qrcode__bd {
13 | position: relative;
14 | display: flex;
15 | align-items: center;
16 | justify-content: center;
17 | width: 100%;
18 | height: 100vh;
19 | z-index: 2;
20 | }
21 |
22 | .qrcode__bd--wrapper {
23 | position: relative;
24 | height: 976rpx;
25 | width: 612rpx;
26 | }
27 |
28 | .qrcode__bd--avatar {
29 | position: relative;
30 | box-sizing: border-box;
31 | margin-left: auto;
32 | margin-right: auto;
33 | width: 172rpx;
34 | height: 172rpx;
35 | padding: 6rpx;
36 | background-color: #fff;
37 | border-radius: 50%;
38 | overflow: hidden;
39 | z-index: 1;
40 | }
41 |
42 | .qrcode__bd--avatar image {
43 | width: 160rpx;
44 | height: 160rpx;
45 | background-color: #eee;
46 | border-radius: 50%;
47 | }
48 |
49 | .qrcode__bd--info {
50 | box-sizing: border-box;
51 | position: absolute;
52 | left: 0;
53 | right: 0;
54 | bottom: 0;
55 | padding: 0 50rpx;
56 | width: 100%;
57 | height: 876rpx;
58 | text-align: center;
59 | background-color: #fff;
60 | border-radius: 12rpx;
61 | }
62 |
63 | .qrcode__bd--title {
64 | margin-top: 113rpx;
65 | margin-bottom: 30rpx;
66 | font-size: 48rpx;
67 | color: #141818;
68 | }
69 |
70 | .qrcode__bd--desc {
71 | height: 44px;
72 | max-height: 44px;
73 | line-height: 22px;
74 | font-size: 28rpx;
75 | color: #666;
76 | overflow: hidden;
77 | text-overflow: ellipsis;
78 | display: -webkit-box;
79 | -webkit-line-clamp: 2;
80 | -webkit-box-orient: vertical;
81 | }
82 | .qrcode__bd--code {
83 | margin: 0 0 20rpx;
84 | width: 392rpx;
85 | height: 392rpx;
86 | }
87 | .qrcode__bd--inner {
88 | color: #989898;
89 | font-size: 28rpx;
90 | }
91 | .qrcode__bd--inner + .qrcode__bd--inner {
92 | margin-top: 5px;
93 | }
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/version/api.js:
--------------------------------------------------------------------------------
1 | const api = require("../../../utils/api.js");
2 |
3 | //发送验证码
4 | const GetVersionProducts = (params) => {
5 | api.wxTokenRequest(params, `${api.apiURL}/api/Card/Buy/GetVersionProducts`);
6 | };
7 |
8 | //发送验证码
9 | const SendCode = (params) => {
10 | api.wxRequest(params, `${api.apiURL}/api/fc/sms/Send`);
11 | };
12 |
13 | const submitOrder = (params) => {
14 | params.data["SubjectId"] = api.configId;
15 | api.wxTokenRequest(params, `${api.apiURL}/api/Card/Buy/submitOrder`);
16 | };
17 |
18 | module.exports = {
19 | submitOrder,
20 | GetVersionProducts
21 | };
22 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/version/version.js:
--------------------------------------------------------------------------------
1 | // pages/start/version/version.js
2 | const api = require("api.js");
3 | const app = getApp();
4 |
5 | Page({
6 | data: {
7 | userInfo: null,
8 | VersionProducts: [],
9 | selectdIndex: 0
10 | },
11 | onLoad: function (options) {
12 | var that = this;
13 | var uinfo = app.globalData.userInfo;
14 | that.setData({
15 | userInfo: uinfo
16 | });
17 | api.GetVersionProducts({
18 | success: (res) => {
19 | if (res.data.StatusCode == 200) {
20 | that.setData({
21 | VersionProducts: res.data.Data
22 | });
23 | } else if (res.data.StatusCode == 401) {
24 | // 绑定手机号
25 | wx.redirectTo({
26 | url: "/pages/login/bindphone/index"
27 | });
28 | }
29 | }
30 | });
31 | },
32 | //立即支付
33 | buynow() {
34 | var uinfo = this.data.userInfo;
35 | var pro = this.data.VersionProducts[this.data.selectdIndex];
36 | api.submitOrder({
37 | data: {
38 | source: 20001,
39 | productId: pro.productId,
40 | name: pro.name,
41 | companyId: pro.companyId,
42 | type: pro.type,
43 | remark: "购买蜂巢名片小程序",
44 | price: pro.price
45 | },
46 | method: "POST",
47 | success: (res) => {
48 | if (res.data.StatusCode == 888) {
49 | wx.navigateTo({
50 | url: "/pages/start/add/add"
51 | });
52 | } else {
53 | //唤起微信支付
54 | var result = res.data.Data;
55 | wx.requestPayment({
56 | timeStamp: result.timeStamp,
57 | nonceStr: result.nonceStr,
58 | package: result.package,
59 | signType: "MD5",
60 | paySign: result.paySign,
61 | success: function (res) {
62 | //微信支付成功,跳转 创建名片信息页面……
63 | wx.navigateTo({
64 | url: "/pages/start/add/add"
65 | });
66 | },
67 | fail: function (res) {
68 | //付款失败 提示
69 | }
70 | });
71 | }
72 | }
73 | });
74 | },
75 | chooseHanle(e) {
76 | const index = parseInt(e.currentTarget.dataset.index);
77 | this.setData({
78 | selectdIndex: index
79 | });
80 | }
81 | });
82 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/version/version.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "VIP选择"
3 | }
4 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/version/version.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 | {{item.name}}
13 | {{item.summary}}
14 |
15 | ¥
16 | {{item.price}} {{item.unit}}
17 |
18 |
19 |
20 |
21 | · {{p.value}} {{p.name}}
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/CardsWxProgram/pages/start/version/version.wxss:
--------------------------------------------------------------------------------
1 | /* pages/start/version/version.wxss */
2 |
3 | .container {
4 | background-color: #fff;
5 | }
6 |
7 | .version__hd {
8 | width: 100%;
9 | height: 100%;
10 | margin-bottom: 30rpx;
11 | background-color: #ebecf2;
12 | }
13 | .version__hd image {
14 | width: 100%;
15 | height: 100%;
16 | }
17 | .version .wuli-panel {
18 | margin-bottom: 70px;
19 | }
20 | .version__item {
21 | margin: 0 30rpx;
22 | height: 232rpx;
23 | }
24 |
25 | .version__item--content {
26 | display: flex;
27 | align-items: center;
28 | justify-content: center;
29 | padding: 0 40rpx;
30 | height: 160rpx;
31 | border: 2rpx solid #e1e1e1;
32 | border-radius: 6rpx;
33 | }
34 |
35 | .version__item--content.is-active {
36 | border-color: #90d3ed;
37 | background-color: #d9f4ff;
38 | }
39 |
40 | .version__item--title {
41 | flex: 1;
42 | }
43 |
44 | .version__item--info {
45 | height: 44px;
46 | line-height: 20px;
47 | font-size: 34rpx;
48 | color: #282828;
49 | }
50 |
51 | .version__item--time {
52 | font-size: 24rpx;
53 | color: #989898;
54 | }
55 |
56 | .version__item--inner {
57 | font-size: 24rpx;
58 | color: #f54544;
59 | }
60 |
61 | .version__item--inner text {
62 | font-size: 48rpx;
63 | }
64 |
65 | .version__item--descs {
66 | padding: 0 8rpx;
67 | display: flex;
68 | align-items: center;
69 | justify-content: center;
70 | height: 72rpx;
71 | }
72 |
73 | .version__item--desc {
74 | flex: 1;
75 | font-size: 24rpx;
76 | }
77 |
78 | .wuli-btn__fixed {
79 | box-sizing: border-box;
80 | position: fixed;
81 | display: flex;
82 | left: 0;
83 | right: 0;
84 | bottom: 0;
85 |
86 | }
87 | .wuli-btn__fixed .wuli-btn__primary {
88 | width: 100%;
89 | height: 47px;
90 | line-height: 47px;
91 | font-size: 17px;
92 | background-color: #13b6f7;
93 | border-radius: 3px;
94 | }
--------------------------------------------------------------------------------
/CardsWxProgram/project.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "项目配置文件。",
3 | "packOptions": {
4 | "ignore": []
5 | },
6 | "setting": {
7 | "urlCheck": true,
8 | "es6": true,
9 | "postcss": true,
10 | "minified": true,
11 | "newFeature": true
12 | },
13 | "compileType": "miniprogram",
14 | "libVersion": "2.1.0",
15 | "appid": "wxe960b2dc53b03d7f",
16 | "projectname": "cards",
17 | "isGameTourist": false,
18 | "condition": {
19 | "search": {
20 | "current": -1,
21 | "list": []
22 | },
23 | "conversation": {
24 | "current": -1,
25 | "list": []
26 | },
27 | "plugin": {
28 | "current": -1,
29 | "list": []
30 | },
31 | "game": {
32 | "currentL": -1,
33 | "list": []
34 | },
35 | "miniprogram": {
36 | "current": -1,
37 | "list": []
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/CardsWxProgram/utils/api.js:
--------------------------------------------------------------------------------
1 | const apiURL = "https://api.baidu.com";
2 | const configId = 22152;
3 | const uploadPath = "https://api.baidu.cn/api/fc/upload/UploadPicture";
4 |
5 | const uploadserverUrl = "https://api.baidu.cn/upload/atlas";
6 |
7 | const wxRequest = (params, url) => {
8 | // wx.showLoading({
9 | // title: '拼命加载中',
10 | // })
11 | wx.request({
12 | url,
13 | method: params.method || "GET",
14 | data: params.data || {},
15 | header: {
16 | "content-type": "application/json"
17 | },
18 | success(res) {
19 | if (params.success) {
20 | params.success(res);
21 | // wx.hideLoading()
22 | }
23 | },
24 | fail(res) {
25 | if (params.fail) {
26 | params.fail(res);
27 | // wx.hideLoading()
28 | }
29 | }
30 | });
31 | };
32 |
33 | //用户登录成功之后 与用户相关的请求必须带token
34 | const wxTokenRequest = (params, url) => {
35 | var token = wx.getStorageSync("fc_card_token");
36 | // wx.showLoading({
37 | // title: '拼命加载中',
38 | // })
39 | wx.request({
40 | url,
41 | method: params.method || "GET",
42 | data: params.data || {},
43 | header: {
44 | "content-type": "application/json",
45 | Authorization: `Bearer ${token}`
46 | },
47 | success(res) {
48 | if (params.success) {
49 | if (res.data != undefined && res.data != "" && res.data.StatusCode != undefined) {
50 | if (res.data.StatusCode == 403 || res.data.StatusCode == 405) {
51 | //token 失效 前往授权登录界面
52 | wx.navigateTo({
53 | url: "/pages/login/relogin/index"
54 | });
55 | }
56 | }
57 | params.success(res);
58 | //wx.hideLoading()
59 | }
60 | },
61 | fail(res) {
62 | if (params.fail) {
63 | params.fail(res);
64 | //wx.hideLoading()
65 | }
66 | }
67 | });
68 | };
69 |
70 | const wxPromise = (params, url) => {
71 | wx.showNavigationBarLoading();
72 | return new Promise((resove, reject) => {
73 | wx.request({
74 | url,
75 | method: params.method || "GET",
76 | data: params.data || {},
77 | header: {
78 | "content-type": "application/json"
79 | },
80 | success(res) {
81 | if (params.success) {
82 | wx.hideNavigationBarLoading();
83 | // params.success(res);
84 | resove(res.data);
85 | }
86 | },
87 | fail(res) {
88 | if (params.fail) {
89 | wx.hideNavigationBarLoading();
90 | // params.fail(res);
91 | console.log("reqest error", res);
92 | }
93 | }
94 | });
95 | });
96 | };
97 |
98 | const postonLogin = (params) => {
99 | wxRequest(params, `${apiURL}/api/fc/WxOpen/OnLogin`);
100 | };
101 |
102 | const postRegister = (params) => {
103 | wxRequest(params, `${apiURL}/api/fc/WxOpen/Register`);
104 | };
105 |
106 | const getConfig = (params) => {
107 | wxRequest(params, `${apiURL}/api/wap/index/Configure?id=${configId}`);
108 | };
109 |
110 | const getDecWxconfig = (params) => {
111 | wxRequest(params, `${apiURL}/api/wap/index/GetDecWxconfig?id=${configId}`);
112 | };
113 |
114 | module.exports = {
115 | apiURL,
116 | configId,
117 | wxRequest,
118 | wxTokenRequest,
119 | postonLogin,
120 | postRegister,
121 | uploadPath,
122 | getConfig,
123 | getDecWxconfig,
124 | uploadserverUrl
125 | };
126 |
--------------------------------------------------------------------------------
/CardsWxProgram/utils/filter.wxs:
--------------------------------------------------------------------------------
1 | var filter = {
2 | totalPrice: function (num) {
3 | return num >= 10000 ? (num / 10000).toFixed(1) + "万" : num;
4 | },
5 | formatUrl: function (url) {
6 | var imgUrl = url;
7 | if (url == undefined) {
8 | return "";
9 | }
10 | if (url.indexOf("http://") == -1) {
11 | imgUrl = "http:" + url;
12 | }
13 | return imgUrl;
14 | },
15 | customReplace: function (str, val, val2) {
16 | return str.replace(val, val2);
17 | },
18 | formatImg: function (src) {
19 | if (src == "" || src == undefined) {
20 | return "/image/img_default.png";
21 | } else {
22 | return src;
23 | }
24 | }
25 | };
26 |
27 | module.exports = {
28 | getTotalPrice: filter.totalPrice,
29 | formatUrl: filter.formatUrl,
30 | customReplace: filter.customReplace,
31 | formatImg: filter.formatImg
32 | };
33 |
--------------------------------------------------------------------------------
/CardsWxProgram/utils/util.js:
--------------------------------------------------------------------------------
1 | function formatNumber(n) {
2 | const num = n.toString();
3 | return num[1] ? num : `0${num}`;
4 | }
5 |
6 | function formatWan(num) {
7 | return num >= 10000 ? (num / 10000).toFixed(1) + "万" : num;
8 | }
9 |
10 | function formatUrl(url) {
11 | return url.substr(0, 5).toLowerCase() == "http:" ? url : "http:" + url;
12 | }
13 |
14 | function formatTime(date, type) {
15 | const year = date.getFullYear();
16 | const month = date.getMonth() + 1;
17 | const day = date.getDate();
18 | const hour = date.getHours();
19 | const minute = date.getMinutes();
20 | const second = date.getSeconds();
21 | let time = "";
22 | switch (type) {
23 | case 1:
24 | time = `${[year, month, day].map(formatNumber).join(".")}`;
25 | break;
26 | case 2:
27 | time = `${[year, month, day].map(formatNumber).join(".")} ${[hour, minute].map(formatNumber).join(":")}`;
28 | break;
29 | default:
30 | time = `${[year, month, day].map(formatNumber).join(".")} ${[hour, minute, second].map(formatNumber).join(":")}`;
31 | }
32 | return time;
33 | }
34 |
35 | class NumberAnimate {
36 | constructor(opt) {
37 | let def = {
38 | from: 50, //开始时的数字
39 | speed: 2000, // 总时间
40 | refreshTime: 100, // 刷新一次的时间
41 | decimals: 2, // 小数点后的位数
42 | onUpdate: function () {}, // 更新时回调函数
43 | onComplete: function () {} // 完成时回调函数
44 | };
45 | this.tempValue = 0; //累加变量值
46 | this.opt = Object.assign(def, opt); //assign传入配置参数
47 | this.loopCount = 0; //循环次数计数
48 | this.loops = Math.ceil(this.opt.speed / this.opt.refreshTime); //数字累加次数
49 | this.increment = this.opt.from / this.loops; //每次累加的值
50 | this.interval = null; //计时器对象
51 | this.init();
52 | }
53 | init() {
54 | this.interval = setInterval(() => {
55 | this.updateTimer();
56 | }, this.opt.refreshTime);
57 | }
58 | updateTimer() {
59 | this.loopCount++;
60 | this.tempValue = this.formatFloat(this.tempValue, this.increment).toFixed(this.opt.decimals);
61 | if (this.loopCount >= this.loops) {
62 | clearInterval(this.interval);
63 | this.tempValue = this.opt.from;
64 | this.opt.onComplete();
65 | }
66 | this.opt.onUpdate();
67 | }
68 | //解决0.1+0.2不等于0.3的小数累加精度问题
69 | formatFloat(num1, num2) {
70 | let baseNum, baseNum1, baseNum2;
71 | try {
72 | baseNum1 = num1.toString().split(".")[1].length;
73 | } catch (e) {
74 | baseNum1 = 0;
75 | }
76 | try {
77 | baseNum2 = num2.toString().split(".")[1].length;
78 | } catch (e) {
79 | baseNum2 = 0;
80 | }
81 | baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
82 | return (num1 * baseNum + num2 * baseNum) / baseNum;
83 | }
84 | }
85 |
86 | //提示框错误
87 | function showErrorModal(str) {
88 | wx.showToast({
89 | title: str,
90 | image: "/image/error1.png",
91 | duration: 2000
92 | });
93 | setTimeout((res) => {
94 | wx.hideToast();
95 | }, 2000);
96 | }
97 |
98 | //提示框成功
99 | function showSuccessModal(str) {
100 | wx.showToast({
101 | title: str,
102 | icon: "success",
103 | duration: 2000
104 | });
105 | setTimeout((res) => {
106 | wx.hideToast();
107 | }, 2000);
108 | }
109 |
110 | //纯文本
111 | function showTextModal(str) {
112 | wx.showToast({
113 | title: str,
114 | icon: "none",
115 | duration: 2000
116 | });
117 | setTimeout((res) => {
118 | wx.hideToast();
119 | }, 2000);
120 | }
121 |
122 | module.exports = {
123 | formatNumber,
124 | formatUrl,
125 | formatTime,
126 | NumberAnimate,
127 | showErrorModal,
128 | showSuccessModal,
129 | showTextModal
130 | };
131 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # cards
2 | 企业级个人名片小程序
3 |
--------------------------------------------------------------------------------