cb-biz-ui 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -0
- package/components/cb-address-list/cb-address-list.vue +133 -0
- package/components/cb-cart-bar/cb-cart-bar.vue +52 -0
- package/components/cb-cart-bar-button/cb-cart-bar-button.vue +36 -0
- package/components/cb-cart-bar-icon/cb-cart-bar-icon.vue +48 -0
- package/components/cb-category/cb-category.vue +163 -0
- package/components/cb-delivery-address/cb-delivery-address.vue +48 -0
- package/components/cb-discount-coupon/cb-discount-coupon.vue +124 -0
- package/components/cb-discount-coupon/interface.d.ts +32 -0
- package/components/cb-discount-coupon/utils.ts +23 -0
- package/components/cb-drag-list/cb-drag-list.vue +868 -0
- package/components/cb-drag-list/drag.wxs +366 -0
- package/components/cb-form-classify/cb-form-classify.vue +208 -0
- package/components/cb-form-select/cb-form-select.vue +250 -0
- package/components/cb-goods-card/cb-goods-card.vue +251 -0
- package/components/cb-goods-sku/cb-goods-sku.vue +270 -0
- package/components/cb-header/cb-header.vue +113 -0
- package/components/cb-inventory/cb-inventory.vue +161 -0
- package/components/cb-manage-goods-item/cb-manage-goods-item.vue +95 -0
- package/components/cb-money-input/cb-money-input.vue +90 -0
- package/components/cb-offline-stores-coupon/cb-offline-stores-coupon.vue +96 -0
- package/components/cb-offline-stores-coupon/interface.d.ts +29 -0
- package/components/cb-offline-stores-coupon/utils.ts +10 -0
- package/components/cb-order-card/cb-order-card.vue +187 -0
- package/components/cb-order-goods/cb-order-goods.vue +64 -0
- package/components/cb-order-info/cb-order-info.vue +112 -0
- package/components/cb-order-remark/cb-order-remark.vue +121 -0
- package/components/cb-shipping-coupon/cb-shipping-coupon.vue +112 -0
- package/components/cb-shipping-coupon/interface.d.ts +32 -0
- package/components/cb-shipping-coupon/utils.ts +23 -0
- package/components/cb-shopping-cart/cb-shopping-cart.vue +230 -0
- package/components/cb-shopping-cart-tabbar/cb-shopping-cart-tabbar.vue +147 -0
- package/components/cb-sort-icon/cb-sort-icon.vue +70 -0
- package/components/cb-store-location/cb-store-location.vue +85 -0
- package/components/cb-unit-select/cb-unit-select.vue +161 -0
- package/components/cb-vertical-nav/cb-vertical-nav.vue +102 -0
- package/components/interface/types.d.ts +246 -0
- package/index.js +39 -0
- package/index.scss +23 -0
- package/libs/config/index.js +20 -0
- package/libs/css/address-list.scss +143 -0
- package/libs/css/cart-bar-icon.scss +34 -0
- package/libs/css/category.scss +83 -0
- package/libs/css/common.scss +0 -0
- package/libs/css/delivery-address.scss +46 -0
- package/libs/css/discount-coupon.scss +237 -0
- package/libs/css/form-classify.scss +98 -0
- package/libs/css/form-select.scss +98 -0
- package/libs/css/global/color.scss +156 -0
- package/libs/css/global/common.scss +0 -0
- package/libs/css/global/style.h5.scss +8 -0
- package/libs/css/global/style.mp.scss +0 -0
- package/libs/css/global/style.nvue.scss +3 -0
- package/libs/css/global/style.vue.scss +0 -0
- package/libs/css/goods-card.scss +154 -0
- package/libs/css/inventory.scss +74 -0
- package/libs/css/manage-goods-item.scss +76 -0
- package/libs/css/offline-stores-coupon.scss +133 -0
- package/libs/css/order-goods.scss +63 -0
- package/libs/css/order-info.scss +89 -0
- package/libs/css/order-remark.scss +68 -0
- package/libs/css/shipping-coupon.scss +151 -0
- package/libs/css/shopping-cart.scss +50 -0
- package/libs/css/sort-icon.scss +34 -0
- package/libs/css/store-location.scss +66 -0
- package/libs/css/theme.json +10 -0
- package/libs/css/unit-select.scss +62 -0
- package/libs/css/vertical-nav.scss +27 -0
- package/libs/utils/deep-clone.js +36 -0
- package/libs/utils/deep-merge.js +37 -0
- package/libs/utils/guid.js +42 -0
- package/libs/utils/index.js +6 -0
- package/libs/utils/time-format.js +54 -0
- package/libs/utils/validate.js +238 -0
- package/package.json +24 -0
- package/theme.scss +39 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
.order-goods {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
padding: 20rpx 0;
|
|
5
|
+
line-height: 1;
|
|
6
|
+
.image {
|
|
7
|
+
.goods_image {
|
|
8
|
+
// width: 116rpx;
|
|
9
|
+
// height: 116rpx;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
.goods-info {
|
|
13
|
+
width: 100%;
|
|
14
|
+
display: flex;
|
|
15
|
+
flex-wrap: wrap;
|
|
16
|
+
align-content: space-between;
|
|
17
|
+
font-size: 28rpx;
|
|
18
|
+
color: #333;
|
|
19
|
+
padding: 5rpx 0;
|
|
20
|
+
box-sizing: border-box;
|
|
21
|
+
flex: 1;
|
|
22
|
+
margin-left: 20rpx;
|
|
23
|
+
.name {
|
|
24
|
+
font-weight: 600;
|
|
25
|
+
line-height: 1.2;
|
|
26
|
+
}
|
|
27
|
+
.specifications {
|
|
28
|
+
width: 100%;
|
|
29
|
+
display: flex;
|
|
30
|
+
justify-content: space-between;
|
|
31
|
+
margin-top: 5rpx;
|
|
32
|
+
.num {
|
|
33
|
+
font-size: 24rpx;
|
|
34
|
+
color: #666666;
|
|
35
|
+
}
|
|
36
|
+
.price {
|
|
37
|
+
.platformPrice {
|
|
38
|
+
font-weight: 600;
|
|
39
|
+
width: 100%;
|
|
40
|
+
color: #ff524f;
|
|
41
|
+
font-size: 26rpx;
|
|
42
|
+
font-weight: 600;
|
|
43
|
+
letter-spacing: 1px;
|
|
44
|
+
text-align: right;
|
|
45
|
+
}
|
|
46
|
+
.only-marketPrice{
|
|
47
|
+
color: #333;
|
|
48
|
+
font-weight: 600;
|
|
49
|
+
font-size: 24rpx;
|
|
50
|
+
}
|
|
51
|
+
.marketPrice {
|
|
52
|
+
margin-top: 12rpx;
|
|
53
|
+
color: rgb(153, 153, 153);
|
|
54
|
+
font-size: 24rpx;
|
|
55
|
+
font-weight: 400;
|
|
56
|
+
letter-spacing: 1px;
|
|
57
|
+
text-align: right;
|
|
58
|
+
text-decoration-line: line-through;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
.order-info {
|
|
2
|
+
line-height: 1;
|
|
3
|
+
background: #fff;
|
|
4
|
+
margin: 35rpx 0;
|
|
5
|
+
border-radius: 4rpx;
|
|
6
|
+
.header {
|
|
7
|
+
padding: 30rpx 36rpx;
|
|
8
|
+
font-size: 32rpx;
|
|
9
|
+
color: #333;
|
|
10
|
+
font-weight: 600;
|
|
11
|
+
border-bottom: 1px solid #eaeaea;
|
|
12
|
+
}
|
|
13
|
+
.order-info_content {
|
|
14
|
+
padding: 0 20rpx;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.price-list {
|
|
18
|
+
border-top: 1rpx solid #eaeaea;
|
|
19
|
+
font-size: 22rpx;
|
|
20
|
+
color: #666666;
|
|
21
|
+
padding-top: 15rpx;
|
|
22
|
+
.item {
|
|
23
|
+
width: 100%;
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
justify-content: space-between;
|
|
27
|
+
.label {
|
|
28
|
+
display: flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
.icon {
|
|
31
|
+
width: 26rpx;
|
|
32
|
+
height: 26rpx;
|
|
33
|
+
margin-right: 7rpx;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
.value {
|
|
37
|
+
font-weight: 600;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
.active-class {
|
|
41
|
+
&:active {
|
|
42
|
+
opacity: 0.8;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
.delivery {
|
|
46
|
+
margin-bottom: 20rpx;
|
|
47
|
+
.value {
|
|
48
|
+
color: #323232;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
.goods-price {
|
|
52
|
+
margin-bottom: 25rpx;
|
|
53
|
+
.value {
|
|
54
|
+
color: #ff524f;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
.discount-coupon {
|
|
58
|
+
.value {
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
margin-right: -5rpx;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
.count-price {
|
|
66
|
+
border-top: 1rpx solid #eaeaea;
|
|
67
|
+
font-size: 22rpx;
|
|
68
|
+
color: #666666;
|
|
69
|
+
display: flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
justify-content: flex-end;
|
|
72
|
+
padding: 20rpx 0;
|
|
73
|
+
.item {
|
|
74
|
+
margin-left: 25rpx;
|
|
75
|
+
.name {
|
|
76
|
+
margin-right: 15rpx;
|
|
77
|
+
}
|
|
78
|
+
.value {
|
|
79
|
+
font-weight: 600;
|
|
80
|
+
color: #323232;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
.discount-coupon {
|
|
84
|
+
.value {
|
|
85
|
+
color: #ff524f;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
.order-remark {
|
|
2
|
+
padding-top: 30rpx;
|
|
3
|
+
.order-remark_header {
|
|
4
|
+
padding: 0 30rpx;
|
|
5
|
+
display: flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
justify-content: center;
|
|
8
|
+
font-size: 30rpx;
|
|
9
|
+
color: #333333;
|
|
10
|
+
font-weight: bold;
|
|
11
|
+
margin-bottom: 30rpx;
|
|
12
|
+
text-align: center;
|
|
13
|
+
position: relative;
|
|
14
|
+
.close {
|
|
15
|
+
position: absolute;
|
|
16
|
+
right: 40rpx;
|
|
17
|
+
&:active{
|
|
18
|
+
opacity: .8;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
.content {
|
|
23
|
+
padding: 0 30rpx;
|
|
24
|
+
}
|
|
25
|
+
.tag-content {
|
|
26
|
+
margin-top: 20rpx;
|
|
27
|
+
padding: 0 30rpx;
|
|
28
|
+
.tip {
|
|
29
|
+
font-size: 26rpx;
|
|
30
|
+
color: #6d7278;
|
|
31
|
+
font-weight: 600;
|
|
32
|
+
margin-bottom: 20rpx;
|
|
33
|
+
}
|
|
34
|
+
.tag-box {
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
flex-wrap: wrap;
|
|
38
|
+
.tag-item {
|
|
39
|
+
margin-left: 10rpx;
|
|
40
|
+
margin-bottom: 10rpx;
|
|
41
|
+
background: rgb(233, 233, 233);
|
|
42
|
+
border-radius: 14px;
|
|
43
|
+
font-size: 12px;
|
|
44
|
+
padding: 5px 10px;
|
|
45
|
+
margin-right: 10px;
|
|
46
|
+
margin-bottom: 10px;
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
display: inline-block;
|
|
49
|
+
max-width: 100%;
|
|
50
|
+
&:active {
|
|
51
|
+
background: rgb(242, 20, 12);
|
|
52
|
+
color: #fff;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
.submit {
|
|
58
|
+
width: 100%;
|
|
59
|
+
margin-top: 30rpx;
|
|
60
|
+
box-sizing: border-box;
|
|
61
|
+
padding: 30rpx 0;
|
|
62
|
+
background: rgb(255, 255, 255);
|
|
63
|
+
box-shadow: 0 -4rpx 12rpx #0000000d;
|
|
64
|
+
display: flex;
|
|
65
|
+
align-items: center;
|
|
66
|
+
justify-content: center;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
.shipping-coupon {
|
|
2
|
+
line-height: 1;
|
|
3
|
+
display: flex;
|
|
4
|
+
width: 328rpx;
|
|
5
|
+
position: relative;
|
|
6
|
+
|
|
7
|
+
.background {
|
|
8
|
+
width: 100%;
|
|
9
|
+
height: 205rpx;
|
|
10
|
+
border-radius: 30rpx;
|
|
11
|
+
|
|
12
|
+
.coupon-title {
|
|
13
|
+
border-radius: 10rpx;
|
|
14
|
+
height: 91rpx;
|
|
15
|
+
margin: 0 39rpx;
|
|
16
|
+
text-align: center;
|
|
17
|
+
box-sizing: border-box;
|
|
18
|
+
padding-top: 22rpx;
|
|
19
|
+
margin-top: -25rpx;
|
|
20
|
+
|
|
21
|
+
.text {
|
|
22
|
+
font-size: 25rx;
|
|
23
|
+
font-weight: 600;
|
|
24
|
+
text-align: center;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.content {
|
|
30
|
+
display: flex;
|
|
31
|
+
flex-wrap: wrap;
|
|
32
|
+
align-items: center;
|
|
33
|
+
width: 100%;
|
|
34
|
+
height: 155rpx;
|
|
35
|
+
box-sizing: border-box;
|
|
36
|
+
padding: 13rpx 8rpx 9rpx 17rpx;
|
|
37
|
+
position: absolute;
|
|
38
|
+
top: 50rpx;
|
|
39
|
+
border-radius: 0rpx 0rpx 30rpx 30rpx;
|
|
40
|
+
|
|
41
|
+
.content-box {
|
|
42
|
+
width: 100%;
|
|
43
|
+
height: 80rpx;
|
|
44
|
+
display: flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
justify-content: space-between;
|
|
47
|
+
|
|
48
|
+
.left {
|
|
49
|
+
height: 100%;
|
|
50
|
+
padding-top: 8rpx;
|
|
51
|
+
box-sizing: border-box;
|
|
52
|
+
flex: 1;
|
|
53
|
+
color: #fff;
|
|
54
|
+
font-size: 40rpx;
|
|
55
|
+
font-weight: 600;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.right {
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
width: 120rpx;
|
|
62
|
+
height: 100%;
|
|
63
|
+
font-size: 20rpx;
|
|
64
|
+
font-weight: 600;
|
|
65
|
+
|
|
66
|
+
.button {
|
|
67
|
+
width: 120rpx;
|
|
68
|
+
height: 47rpx;
|
|
69
|
+
display: flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
justify-content: center;
|
|
72
|
+
font-size: 22rpx;
|
|
73
|
+
border-radius: 23.5rpx;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.validity {
|
|
79
|
+
display: flex;
|
|
80
|
+
align-items: center;
|
|
81
|
+
width: 100%;
|
|
82
|
+
font-size: 14rpx;
|
|
83
|
+
|
|
84
|
+
.date {
|
|
85
|
+
margin: 0 8rpx;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.red-card {
|
|
92
|
+
.background {
|
|
93
|
+
background: linear-gradient(135deg, rgb(81, 178, 252) 0%, rgb(28, 127, 249) 100%);
|
|
94
|
+
|
|
95
|
+
.coupon-title {
|
|
96
|
+
background: linear-gradient(135deg, rgb(231, 253, 255) 0%, rgb(227, 242, 255) 100%);
|
|
97
|
+
|
|
98
|
+
.text {
|
|
99
|
+
color: #333333;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.content {
|
|
105
|
+
background: linear-gradient(135deg, rgb(116, 213, 254), rgb(20, 119, 249) 100%);
|
|
106
|
+
box-shadow: 0px -2px 15px rgba(71, 169, 251, 0.5);
|
|
107
|
+
|
|
108
|
+
.content-box {
|
|
109
|
+
.left {
|
|
110
|
+
.money {
|
|
111
|
+
.type {
|
|
112
|
+
color: #fff;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.value {
|
|
116
|
+
color: #fff;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.rule {
|
|
121
|
+
color: #fff5db;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.right {
|
|
126
|
+
.button {
|
|
127
|
+
color: #197cf9;
|
|
128
|
+
background: linear-gradient(128.74deg,
|
|
129
|
+
rgb(255, 255, 255) 5.848%,
|
|
130
|
+
rgb(195, 233, 255) 94.497%);
|
|
131
|
+
box-shadow: 0px 2px 8px rgb(0, 107, 239);
|
|
132
|
+
|
|
133
|
+
&:active {
|
|
134
|
+
opacity: 0.8;
|
|
135
|
+
// box-shadow: 0px 0px 0px rgb(255, 46, 53);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.disabled {
|
|
140
|
+
background: rgb(178, 185, 192);
|
|
141
|
+
box-shadow: 0px 2px 8px rgb(0, 107, 239);
|
|
142
|
+
color: #ffffff;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.validity {
|
|
148
|
+
color: #fff5db;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
.shopping-cart {
|
|
2
|
+
position: relative;
|
|
3
|
+
box-sizing: border-box;
|
|
4
|
+
height: 100%;
|
|
5
|
+
background-color: #fff;
|
|
6
|
+
.goods-card_box {
|
|
7
|
+
flex: 1;
|
|
8
|
+
}
|
|
9
|
+
.bottom-1px-border {
|
|
10
|
+
position: relative;
|
|
11
|
+
padding-bottom: 30rpx;
|
|
12
|
+
padding-top: 29rpx;
|
|
13
|
+
&:after {
|
|
14
|
+
content: ' ';
|
|
15
|
+
position: absolute;
|
|
16
|
+
transform-origin: center;
|
|
17
|
+
box-sizing: border-box;
|
|
18
|
+
pointer-events: none;
|
|
19
|
+
top: -50%;
|
|
20
|
+
left: -50%;
|
|
21
|
+
right: -50%;
|
|
22
|
+
bottom: -50%;
|
|
23
|
+
border: 0 solid #eaeaea;
|
|
24
|
+
transform: scale(0.5);
|
|
25
|
+
border-bottom-width: 1px;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
.ui-mtop {
|
|
29
|
+
// margin-top: 24rpx;
|
|
30
|
+
}
|
|
31
|
+
.ui-cart-cell {
|
|
32
|
+
width: 100%;
|
|
33
|
+
border-radius: 12rpx;
|
|
34
|
+
// padding: 28rpx 0;
|
|
35
|
+
overflow: hidden;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.ui-goods-item {
|
|
39
|
+
display: flex;
|
|
40
|
+
padding: 0 29rpx;
|
|
41
|
+
box-sizing: border-box;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.ui-checkbox {
|
|
45
|
+
min-width: 50rpx;
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
.sort-icon {
|
|
2
|
+
display: flex;
|
|
3
|
+
justify-content: center;
|
|
4
|
+
flex-wrap: wrap;
|
|
5
|
+
margin-left: 8rpx;
|
|
6
|
+
.icon {
|
|
7
|
+
width: 100%;
|
|
8
|
+
.up {
|
|
9
|
+
width: 0px;
|
|
10
|
+
height: 0px;
|
|
11
|
+
border-left: 5px solid transparent;
|
|
12
|
+
border-right: 5px solid transparent;
|
|
13
|
+
border-bottom: 5px solid #dcdcdc;
|
|
14
|
+
font-size: 0px;
|
|
15
|
+
line-height: 0px;
|
|
16
|
+
margin-bottom: 5rpx;
|
|
17
|
+
}
|
|
18
|
+
.down {
|
|
19
|
+
width: 0px;
|
|
20
|
+
height: 0px;
|
|
21
|
+
border-left: 5px solid transparent;
|
|
22
|
+
border-right: 5px solid transparent;
|
|
23
|
+
border-top: 5px solid #dcdcdc;
|
|
24
|
+
font-size: 0px;
|
|
25
|
+
line-height: 0px;
|
|
26
|
+
}
|
|
27
|
+
.up-actived {
|
|
28
|
+
border-bottom-color: rgb(58, 138, 251);
|
|
29
|
+
}
|
|
30
|
+
.down-actived {
|
|
31
|
+
border-top-color: rgb(58, 138, 251);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
.store-location {
|
|
2
|
+
background: #fff;
|
|
3
|
+
// margin: 0 38rpx;
|
|
4
|
+
border-radius: 4rpx;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
line-height: 1;
|
|
7
|
+
.header {
|
|
8
|
+
font-size: 32rpx;
|
|
9
|
+
font-weight: 600;
|
|
10
|
+
color: #333;
|
|
11
|
+
// border-bottom: 1rpx solid #eaeaea;
|
|
12
|
+
padding: 25rpx 36rpx;
|
|
13
|
+
}
|
|
14
|
+
.content {
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
padding: 25rpx 36rpx;
|
|
18
|
+
padding-top: 0rpx;
|
|
19
|
+
padding-right: 79rpx;
|
|
20
|
+
color: #333;
|
|
21
|
+
font-size: 28rpx;
|
|
22
|
+
.logo {
|
|
23
|
+
.img {
|
|
24
|
+
width: 120rpx;
|
|
25
|
+
height: 120rpx;
|
|
26
|
+
border-radius: 50%;
|
|
27
|
+
margin-right: 20rpx;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
.store-info {
|
|
31
|
+
// margin-left: 45rpx;
|
|
32
|
+
.store-header {
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: center;
|
|
35
|
+
margin-bottom: 15rpx;
|
|
36
|
+
.title {
|
|
37
|
+
font-size: 36rpx;
|
|
38
|
+
font-weight: 600;
|
|
39
|
+
color: #333;
|
|
40
|
+
margin-right: 19rpx;
|
|
41
|
+
}
|
|
42
|
+
.tag{
|
|
43
|
+
width: 98rpx;
|
|
44
|
+
flex-shrink: 0;
|
|
45
|
+
}
|
|
46
|
+
.tel {
|
|
47
|
+
width: 24rpx;
|
|
48
|
+
height: 24rpx;
|
|
49
|
+
margin-left: 23rpx;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
.address-box {
|
|
53
|
+
width: 100%;
|
|
54
|
+
margin-bottom: 10rpx;
|
|
55
|
+
}
|
|
56
|
+
.address {
|
|
57
|
+
line-height: 1.3;
|
|
58
|
+
}
|
|
59
|
+
.address,
|
|
60
|
+
.time {
|
|
61
|
+
font-size: 24rpx;
|
|
62
|
+
color: #666666;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
.unit-select {
|
|
2
|
+
line-height: 1;
|
|
3
|
+
height: 100%;
|
|
4
|
+
width: 100%;
|
|
5
|
+
.header {
|
|
6
|
+
width: 100%;
|
|
7
|
+
height: 90rpx;
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
position: relative;
|
|
12
|
+
border-bottom: 1px solid #e5e5e5;
|
|
13
|
+
font-size: 32rpx;
|
|
14
|
+
font-weight: 500;
|
|
15
|
+
color: #333;
|
|
16
|
+
.icon {
|
|
17
|
+
position: absolute;
|
|
18
|
+
left: 25rpx;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
.content {
|
|
22
|
+
display: flex;
|
|
23
|
+
height: 100%;
|
|
24
|
+
font-size: 28rpx;
|
|
25
|
+
color: rgb(51, 51, 51);
|
|
26
|
+
.parent {
|
|
27
|
+
width: 220rpx;
|
|
28
|
+
height: 100%;
|
|
29
|
+
overflow-y: scroll;
|
|
30
|
+
border-right: 1rpx solid #e5e5e5;
|
|
31
|
+
.item {
|
|
32
|
+
width: 100%;
|
|
33
|
+
height: 100rpx;
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
justify-content: center;
|
|
37
|
+
background: rgb(241, 241, 241);
|
|
38
|
+
}
|
|
39
|
+
.actived {
|
|
40
|
+
background: #fff;
|
|
41
|
+
color: rgb(66, 107, 199);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
.child {
|
|
45
|
+
height: 100%;
|
|
46
|
+
overflow-y: scroll;
|
|
47
|
+
flex: 1;
|
|
48
|
+
.item {
|
|
49
|
+
width: 100%;
|
|
50
|
+
height: 100rpx;
|
|
51
|
+
padding: 0 25rpx;
|
|
52
|
+
box-sizing: border-box;
|
|
53
|
+
display: flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
justify-content: space-between;
|
|
56
|
+
}
|
|
57
|
+
.actived {
|
|
58
|
+
color: rgb(66, 107, 199);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.cate-gory {
|
|
2
|
+
width: 100%;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.cate-gory-item {
|
|
6
|
+
width: 100%;
|
|
7
|
+
height: 110rpx;
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: center;
|
|
11
|
+
justify-content: center;
|
|
12
|
+
font-size: 26rpx;
|
|
13
|
+
font-weight: 400;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.active {
|
|
17
|
+
position: relative;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.active::before {
|
|
21
|
+
content: '';
|
|
22
|
+
position: absolute;
|
|
23
|
+
border-left: 3rpx solid #ff524f;
|
|
24
|
+
height: 110rpx;
|
|
25
|
+
left: 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// 判断arr是否为一个数组,返回一个bool值
|
|
2
|
+
function isArray(arr) {
|
|
3
|
+
return Object.prototype.toString.call(arr) === '[object Array]';
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
// 深度克隆
|
|
7
|
+
function deepClone(obj, cache = new WeakMap()) {
|
|
8
|
+
if (obj === null || typeof obj !== 'object') return obj;
|
|
9
|
+
if (cache.has(obj)) return cache.get(obj);
|
|
10
|
+
let clone;
|
|
11
|
+
if (obj instanceof Date) {
|
|
12
|
+
clone = new Date(obj.getTime());
|
|
13
|
+
} else if (obj instanceof RegExp) {
|
|
14
|
+
clone = new RegExp(obj);
|
|
15
|
+
} else if (obj instanceof Map) {
|
|
16
|
+
clone = new Map(
|
|
17
|
+
Array.from(obj, ([key, value]) => [key, deepClone(value, cache)])
|
|
18
|
+
);
|
|
19
|
+
} else if (obj instanceof Set) {
|
|
20
|
+
clone = new Set(Array.from(obj, (value) => deepClone(value, cache)));
|
|
21
|
+
} else if (Array.isArray(obj)) {
|
|
22
|
+
clone = obj.map((value) => deepClone(value, cache));
|
|
23
|
+
} else if (Object.prototype.toString.call(obj) === '[object Object]') {
|
|
24
|
+
clone = Object.create(Object.getPrototypeOf(obj));
|
|
25
|
+
cache.set(obj, clone);
|
|
26
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
27
|
+
clone[key] = deepClone(value, cache);
|
|
28
|
+
}
|
|
29
|
+
} else {
|
|
30
|
+
clone = Object.assign({}, obj);
|
|
31
|
+
}
|
|
32
|
+
cache.set(obj, clone);
|
|
33
|
+
return clone;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export default deepClone;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import deepClone from './deep-clone';
|
|
2
|
+
|
|
3
|
+
// JS对象深度合并
|
|
4
|
+
function deepMerge(target = {}, source = {}) {
|
|
5
|
+
target = deepClone(target);
|
|
6
|
+
if (
|
|
7
|
+
typeof target !== 'object' ||
|
|
8
|
+
target === null ||
|
|
9
|
+
typeof source !== 'object' ||
|
|
10
|
+
source === null
|
|
11
|
+
)
|
|
12
|
+
return target;
|
|
13
|
+
const merged = Array.isArray(target)
|
|
14
|
+
? target.slice()
|
|
15
|
+
: Object.assign({}, target);
|
|
16
|
+
for (const prop in source) {
|
|
17
|
+
if (!source.hasOwnProperty(prop)) continue;
|
|
18
|
+
const sourceValue = source[prop];
|
|
19
|
+
const targetValue = merged[prop];
|
|
20
|
+
if (sourceValue instanceof Date) {
|
|
21
|
+
merged[prop] = new Date(sourceValue);
|
|
22
|
+
} else if (sourceValue instanceof RegExp) {
|
|
23
|
+
merged[prop] = new RegExp(sourceValue);
|
|
24
|
+
} else if (sourceValue instanceof Map) {
|
|
25
|
+
merged[prop] = new Map(sourceValue);
|
|
26
|
+
} else if (sourceValue instanceof Set) {
|
|
27
|
+
merged[prop] = new Set(sourceValue);
|
|
28
|
+
} else if (typeof sourceValue === 'object' && sourceValue !== null) {
|
|
29
|
+
merged[prop] = deepMerge(targetValue, sourceValue);
|
|
30
|
+
} else {
|
|
31
|
+
merged[prop] = sourceValue;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return merged;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export default deepMerge;
|