jufubao-food 1.0.15-beta1 → 1.0.15-beta11
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/package.json +1 -1
- package/src/components/JfbFoodConfirmV2/JfbFoodConfirmV2.vue +3 -1
- package/src/components/JfbFoodProductInfo/Attr.js +9 -15
- package/src/components/JfbFoodProductInfo/JfbFoodProductInfo.vue +33 -19
- package/src/components/JfbFoodProductInfo/XdSpu.vue +5 -1
- package/src/components/JfbFoodProductInfo/cusAttr/advanced.js +28 -0
- package/src/components/JfbFoodProductInfo/cusAttr/content.js +75 -0
- package/src/components/JfbFoodProductInfo/cusAttr/style.js +85 -0
- package/src/components/JfbFoodProductList/Api.js +14 -0
- package/src/components/JfbFoodProductList/JfbFoodProductList.vue +536 -153
- package/src/components/JfbFoodProductList/Mock.js +301 -7
- package/src/components/JfbFoodProductList/cusAttr/content.js +165 -0
- package/src/components/JfbFoodProductList/cusAttr/style.js +333 -42
|
@@ -15,139 +15,189 @@
|
|
|
15
15
|
</view>
|
|
16
16
|
</view>
|
|
17
17
|
<!-- #endif -->
|
|
18
|
-
<view
|
|
19
|
-
<view
|
|
20
|
-
<view class="
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<
|
|
18
|
+
<view class="jfb-food-product-list__body" :style="[bodyStyleComp]">
|
|
19
|
+
<view v-if="shopInfo">
|
|
20
|
+
<view class="shop_info" :style="{top: layoutInfo.top+'rpx'}" @click="handleSwitchShop">
|
|
21
|
+
<view class="flex-center">
|
|
22
|
+
<xd-font-icon icon="icona-Buy2" size="36" style="margin-right: 8rpx;"></xd-font-icon>
|
|
23
|
+
<view class="shop_name">{{ shopInfo.shop_name }}</view><text style="margin:0 20rpx;">|</text> <text class="_distance">{{ shopInfo.distance }}</text>
|
|
24
|
+
</view>
|
|
25
|
+
<view>
|
|
26
|
+
<xd-font-icon icon="iconxiangyou_xian" color="#666666" size="28"></xd-font-icon>
|
|
27
|
+
</view>
|
|
26
28
|
</view>
|
|
27
|
-
|
|
28
|
-
<view style="height: 100rpx;"></view>
|
|
29
|
+
<view style="height: 100rpx;"></view>
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
>
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
:
|
|
31
|
+
<view class="section_main" :style="[sectionMainStyleComp]">
|
|
32
|
+
<view class="left_nav" :style="[navStyleComp]">
|
|
33
|
+
<scroll-view style="height:100%" scroll-y="true" class="nav_scroll">
|
|
34
|
+
<view v-for="(item, index) in categoryList" :key="item.category_id"
|
|
35
|
+
class="nav_item" :class="{active: index === cateIndex}"
|
|
36
|
+
:style="[navItemStyleComp, {
|
|
37
|
+
color: index === cateIndex ? titleStyle.actColor : titleStyle.color,
|
|
38
|
+
fontWeight: index === cateIndex ? titleStyle.actFontWeight : titleStyle.fontWeight,
|
|
39
|
+
fontSize: index === cateIndex ? titleStyle.actFontSize : titleStyle.fontSize,
|
|
40
|
+
backgroundColor: index === cateIndex ? titleStyle.actBgColor : titleStyle.bgColor
|
|
41
|
+
}]"
|
|
42
|
+
@click="switchCate(index)"
|
|
43
|
+
>
|
|
44
|
+
{{ item.category_name }}
|
|
45
|
+
<view v-if="item.cart_num" class="cate_num">{{ item.cart_num }}</view>
|
|
46
|
+
<view v-if="index === cateIndex" :style="[navActiveBarStyle]" class="nav_active_bar"></view>
|
|
47
|
+
</view>
|
|
48
|
+
<view style="height: 80rpx;"></view>
|
|
49
|
+
</scroll-view>
|
|
50
|
+
</view>
|
|
51
|
+
<view class="right_product">
|
|
52
|
+
<scroll-view :style="{height:'100%'}" scroll-y="true"
|
|
53
|
+
class="product_scroll"
|
|
54
|
+
:scroll-into-view="prodScrollIntoView"
|
|
55
|
+
:scroll-top="prodScrollTop"
|
|
56
|
+
@scroll="handleScroll"
|
|
54
57
|
>
|
|
55
|
-
<view class="
|
|
56
|
-
|
|
57
|
-
<view v-for="
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
<view class="prod_specs" v-if="item.sub_name">{{item.sub_name}}</view>
|
|
69
|
-
<view class="prod_price">
|
|
70
|
-
<view style="display:flex;align-items:center">
|
|
71
|
-
<CusPrice :isPlus="is_plus_site" :isShowIcon="false" salePriceFontSize="32" :showPrice="item.show_prices"></CusPrice>
|
|
58
|
+
<view class="product_scroll_inner">
|
|
59
|
+
<view style="height: 16rpx;"></view>
|
|
60
|
+
<view v-for="(cate, i) in showCategoryList" :key="cate.category_id"
|
|
61
|
+
class="product_group"
|
|
62
|
+
:id="getID(cate)"
|
|
63
|
+
:data-next="cate.nextHeight"
|
|
64
|
+
>
|
|
65
|
+
<view class="group_title" :style="[contGroupTitleStyle]">{{ cate.category_name }}</view>
|
|
66
|
+
<view class="product_list" v-if="cate.productList.length">
|
|
67
|
+
<view v-for="item in cate.productList" :key="item.key" :style="[contProductStyles]">
|
|
68
|
+
<view class="product_item" @click="toProductDetail(item)">
|
|
69
|
+
<view class="prod_img" :style="[contProductImageStyle]">
|
|
70
|
+
<image :src="item.thumb"/>
|
|
72
71
|
</view>
|
|
73
|
-
<view class="
|
|
74
|
-
<view
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
72
|
+
<view class="prod_info">
|
|
73
|
+
<view class="prod_tit"
|
|
74
|
+
:style="[contProductTitleStyle]"
|
|
75
|
+
:class="{
|
|
76
|
+
prod_tit_one:item.product_sku_name
|
|
77
|
+
}">{{item.product_name}}</view>
|
|
78
|
+
<!-- <view class="prod_brand" :style="{color:brandTextColor}" v-if="prod.brand_name">{{prod.brand_name}}</view> -->
|
|
79
|
+
<view class="prod_specs" v-if="item.sub_name">{{item.sub_name}}</view>
|
|
80
|
+
<view class="prod_price">
|
|
81
|
+
<view style="display:flex;align-items:center">
|
|
82
|
+
<CusPrice :isPlus="is_plus_site" :isShowIcon="false" salePriceFontSize="32" :showPrice="item.show_prices"></CusPrice>
|
|
83
|
+
</view>
|
|
84
|
+
<view v-if="isAddCart==='Y'" class="p_r" style="font-size: 28rpx;color:#999" @click.stop>
|
|
85
|
+
<view v-if="item.has_choose" class="chose_spu" :style="[choseSpuStyleComp]" @click="handleChoseProduct(item)">
|
|
86
|
+
<!-- 选规格 -->
|
|
87
|
+
{{ cartName }}
|
|
88
|
+
<view v-if="item.num" class="cart_edg">{{ item.num }}</view>
|
|
89
|
+
</view>
|
|
90
|
+
<view v-else>
|
|
91
|
+
<xd-number v-if="item.num" v-model="item.num" circle :pointCusStyle="pointCusStyle" @change="val => handleCartNumChange(val, item)"></xd-number>
|
|
92
|
+
<!-- <xd-font-icon v-else icon="iconaddcart" :color="mainColor" size="46"></xd-font-icon> -->
|
|
93
|
+
<view class="icon_add_cart" :style="[choseSpuStyleComp]" v-else @click="handleChoseProduct(item)">+</view>
|
|
94
|
+
</view>
|
|
95
|
+
</view>
|
|
82
96
|
</view>
|
|
83
97
|
</view>
|
|
84
98
|
</view>
|
|
85
99
|
</view>
|
|
86
100
|
</view>
|
|
101
|
+
<view class="product_list" v-else>
|
|
102
|
+
<view class="product_loading" :style="{height: scrollBoxHeight + 'px'}">
|
|
103
|
+
商品加载中...
|
|
104
|
+
</view>
|
|
105
|
+
</view>
|
|
87
106
|
</view>
|
|
107
|
+
<view style="height: 80rpx;"></view>
|
|
88
108
|
</view>
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
商品加载中...
|
|
92
|
-
</view>
|
|
93
|
-
</view>
|
|
94
|
-
</view>
|
|
95
|
-
<view style="height: 80rpx;"></view>
|
|
96
|
-
</scroll-view>
|
|
109
|
+
</scroll-view>
|
|
110
|
+
</view>
|
|
97
111
|
</view>
|
|
98
|
-
</view>
|
|
99
112
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
113
|
+
<view style="height: 120rpx;"></view>
|
|
114
|
+
<view class="fixed_bottom" :style="fixed_bottom">
|
|
115
|
+
<view class="btm_l">
|
|
116
|
+
<view class="card_edg" @click="cartProductShow=true">
|
|
117
|
+
<xd-font-icon icon="icona-Buy21" color="#FF5A39" size="50"></xd-font-icon>
|
|
118
|
+
<view v-if="cartCount" class="card_num">{{ cartCount }}</view>
|
|
119
|
+
</view>
|
|
120
|
+
<xd-unit :price="cartPrice" :isOld="false"></xd-unit>
|
|
106
121
|
</view>
|
|
107
|
-
<
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
<view class="modal_head">
|
|
118
|
-
<view>已选商品</view>
|
|
119
|
-
<view class="clear_cart" @click="handleClearCart">
|
|
120
|
-
<xd-font-icon icon="iconshanchu-01" color="#999999" size="26" style="margin-right: 8rpx;"></xd-font-icon>
|
|
121
|
-
清空
|
|
122
|
-
</view>
|
|
122
|
+
<view>
|
|
123
|
+
<xd-button v-if="cartProductList.length"
|
|
124
|
+
:cusStyle="{fontSize: '28rpx'}"
|
|
125
|
+
width="170rpx" size="small" type="primary"
|
|
126
|
+
@click="handleSubmitCart"
|
|
127
|
+
>选好了</xd-button>
|
|
128
|
+
<xd-button v-else
|
|
129
|
+
:cusStyle="{fontSize: '28rpx'}"
|
|
130
|
+
width="170rpx" size="small" type="primary" :disabled="true"
|
|
131
|
+
>选好了</xd-button>
|
|
123
132
|
</view>
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
<view
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
133
|
+
</view>
|
|
134
|
+
<view class="cart_product_modal" v-if="cartProductShow">
|
|
135
|
+
<view class="modal" @click="cartProductShow=false"></view>
|
|
136
|
+
<view class="modal_cont">
|
|
137
|
+
<view class="modal_head">
|
|
138
|
+
<view>已选商品</view>
|
|
139
|
+
<view class="clear_cart" @click="handleClearCart">
|
|
140
|
+
<xd-font-icon icon="iconshanchu-01" color="#999999" size="26" style="margin-right: 8rpx;"></xd-font-icon>
|
|
141
|
+
清空
|
|
142
|
+
</view>
|
|
143
|
+
</view>
|
|
144
|
+
<view v-if="cartProductList.length" class="prod_list">
|
|
145
|
+
<view class="prod_item" v-for="prod in cartProductList" :key="prod.product_id">
|
|
146
|
+
<view class="prod_img">
|
|
147
|
+
<image :src="prod.thumb"/>
|
|
148
|
+
</view>
|
|
149
|
+
<view class="prod_info">
|
|
150
|
+
<view class="prod_tit"
|
|
151
|
+
:class="{
|
|
152
|
+
prod_tit_one:prod.sub_name
|
|
153
|
+
}">{{prod.product_name}}</view>
|
|
154
|
+
<!-- <view class="prod_brand" :style="{color:brandTextColor}" v-if="prod.brand_name">{{prod.brand_name}}</view> -->
|
|
155
|
+
<view class="prod_specs" v-if="prod.sub_name">{{prod.sub_name}}</view>
|
|
156
|
+
<view class="prod_price">
|
|
157
|
+
<view style="display:flex;align-items:center">
|
|
158
|
+
<CusPrice :isPlus="is_plus_site" type="order" :showPrice="prod.show_prices"></CusPrice>
|
|
159
|
+
</view>
|
|
160
|
+
<view style="font-size: 28rpx;color:#999">
|
|
161
|
+
<xd-number circle v-model="prod.num" @change="val => handleCartNumChange(val, prod)"></xd-number>
|
|
162
|
+
</view>
|
|
142
163
|
</view>
|
|
143
164
|
</view>
|
|
144
165
|
</view>
|
|
145
166
|
</view>
|
|
167
|
+
<view v-else class="prod_list">
|
|
168
|
+
<xd-no-data height="250rpx" :scaleSize="0.8">购物车暂无商品</xd-no-data>
|
|
169
|
+
</view>
|
|
146
170
|
</view>
|
|
147
|
-
|
|
148
|
-
|
|
171
|
+
</view>
|
|
172
|
+
</view>
|
|
173
|
+
<xd-down-drawer :show.sync="showTakeoutShop" height="625rpx" :isClose="false">
|
|
174
|
+
<view class="take_shop_wrap" >
|
|
175
|
+
<view class="take_title">附近门店较多,请确认自取门店</view>
|
|
176
|
+
<view class="take_shop_list">
|
|
177
|
+
<view class="take_shop_item" :class="{active:i===curShopIndex}"
|
|
178
|
+
v-for="(item,i) in shopList" :key="i"
|
|
179
|
+
@click="setCurShop(i)"
|
|
180
|
+
>
|
|
181
|
+
<view class="shop_name_bar">
|
|
182
|
+
<view class="shop_name">
|
|
183
|
+
<text style="margin-right: 16rpx;">{{item.resource_shop_name}}</text>
|
|
184
|
+
<view class="curr_active">正在预览</view>
|
|
185
|
+
</view>
|
|
186
|
+
<view class="more_r">详情 <xd-font-icon icon="iconxiangyou_xian" :size="24"></xd-font-icon></view>
|
|
187
|
+
</view>
|
|
188
|
+
<view class="shop_addr_bar">
|
|
189
|
+
<view>{{item.address}}</view>
|
|
190
|
+
<view>{{item.distance}}</view>
|
|
191
|
+
</view>
|
|
192
|
+
<view class="shop_time" v-if="item.business_time_name">营业时间:{{ item.business_time_name }}</view>
|
|
193
|
+
</view>
|
|
149
194
|
</view>
|
|
195
|
+
<view class="chose_other" @click="handleSwitchShop">选择其他门店 <xd-font-icon icon="iconxiangyou_xian" :size="24"></xd-font-icon></view>
|
|
150
196
|
</view>
|
|
197
|
+
</xd-down-drawer>
|
|
198
|
+
<view v-if="showEmptyShop" class="empty_shop">
|
|
199
|
+
<xd-no-data :scaleSize="2" iconType="shop">附近暂无门店</xd-no-data>
|
|
200
|
+
<view class="empty_chose_btn" @click="handleSwitchShop">选择其他门店 <xd-font-icon icon="iconxiangyou_xian" :size="24"></xd-font-icon></view>
|
|
151
201
|
</view>
|
|
152
202
|
</view>
|
|
153
203
|
</view>
|
|
@@ -160,11 +210,11 @@
|
|
|
160
210
|
import XdButton from "@/components/XdButton/XdButton"
|
|
161
211
|
import XdUnit from "@/components/XdUnit/XdUnit"
|
|
162
212
|
import XdNoData from "@/components/XdNoData/XdNoData"
|
|
163
|
-
|
|
213
|
+
import XdDownDrawer from "@/components/XdDownDrawer/XdDownDrawer"
|
|
164
214
|
import XdNumber from "@/components/XdNumber/XdNumber"
|
|
165
215
|
import { jfbRootExec } from "@/utils/xd.event";
|
|
166
216
|
import JfbFoodProductListMixin from "./JfbFoodProductListMixin";
|
|
167
|
-
import { getContainerPropsValue } from "@/utils/xd.base";
|
|
217
|
+
import { getContainerPropsValue, gCPVal } from "@/utils/xd.base";
|
|
168
218
|
import componentsMixins from "@/mixins/componentsMixins";
|
|
169
219
|
import extsMixins from "@/mixins/extsMixins";
|
|
170
220
|
import { mapState } from "vuex";
|
|
@@ -175,7 +225,7 @@
|
|
|
175
225
|
CusProduct,
|
|
176
226
|
XdButton,
|
|
177
227
|
XdUnit,
|
|
178
|
-
|
|
228
|
+
XdDownDrawer,
|
|
179
229
|
CusPrice,
|
|
180
230
|
XdNumber,
|
|
181
231
|
XdNoData
|
|
@@ -186,6 +236,7 @@
|
|
|
186
236
|
data() {
|
|
187
237
|
return {
|
|
188
238
|
closeMask: true,
|
|
239
|
+
isPreview: false,
|
|
189
240
|
resource_shop_id: "",
|
|
190
241
|
xnamespace: "",
|
|
191
242
|
consume_mode: "",
|
|
@@ -196,6 +247,8 @@
|
|
|
196
247
|
page_size: 10,
|
|
197
248
|
page_token: 1,
|
|
198
249
|
productList: [],
|
|
250
|
+
showTakeoutShop: false,
|
|
251
|
+
showEmptyShop: false,
|
|
199
252
|
|
|
200
253
|
lastScrollTop: 0,
|
|
201
254
|
pointerScroll: true,
|
|
@@ -214,24 +267,37 @@
|
|
|
214
267
|
cartCount: 0,
|
|
215
268
|
cartProductShow: false,
|
|
216
269
|
scrollTopTimer: null,
|
|
270
|
+
brand_id: "",
|
|
271
|
+
shopList: [],
|
|
272
|
+
curShopIndex: -1,
|
|
217
273
|
|
|
218
274
|
//商品列表
|
|
219
275
|
column_num: 1,
|
|
220
276
|
skeNumber:10,
|
|
221
277
|
rowSpacing: 16,
|
|
222
|
-
columnSpacing:
|
|
278
|
+
columnSpacing: 16,
|
|
223
279
|
listPadding:{},
|
|
224
280
|
productConfig:{},
|
|
225
281
|
itemPadding:{},
|
|
226
|
-
itemSpacing:20,
|
|
227
|
-
imageRadius:'
|
|
282
|
+
itemSpacing: 20,
|
|
283
|
+
imageRadius:'0',
|
|
228
284
|
brandColor:'',
|
|
229
285
|
itemFontStyle:{},
|
|
230
286
|
itemBgcColor: '#FFFFFF',
|
|
231
287
|
is_plus_site: false,
|
|
288
|
+
radius: '0',
|
|
289
|
+
contShadow:'0 0 0 rgba(0,0,0,0)',
|
|
290
|
+
|
|
291
|
+
//导航
|
|
292
|
+
titleBgcColor: '#FFFFFF',
|
|
293
|
+
titleStyle: {},
|
|
294
|
+
navStyle: "",
|
|
295
|
+
isAddCart: "Y",
|
|
296
|
+
cartStyle: "",
|
|
297
|
+
cartName: "",
|
|
232
298
|
|
|
233
299
|
//面板
|
|
234
|
-
|
|
300
|
+
showDiscount: "Y", //是否展示划线价
|
|
235
301
|
differ: 1, //原价与现价的差值
|
|
236
302
|
foodDetailPath: "",
|
|
237
303
|
confirmPath: "",
|
|
@@ -240,7 +306,8 @@
|
|
|
240
306
|
},
|
|
241
307
|
computed: {
|
|
242
308
|
...mapState({
|
|
243
|
-
stateLocation: state => state.cityLocation.location || {}
|
|
309
|
+
stateLocation: state => state.cityLocation.location || {},
|
|
310
|
+
stateCity: state => state.cityLocation.city || {},
|
|
244
311
|
}),
|
|
245
312
|
curCategory() {
|
|
246
313
|
return this.categoryList[this.cateIndex] || {};
|
|
@@ -248,19 +315,30 @@
|
|
|
248
315
|
contProductStyles(){
|
|
249
316
|
return {
|
|
250
317
|
backgroundColor: this.itemBgcColor,
|
|
251
|
-
marginBottom: this.
|
|
252
|
-
padding:
|
|
253
|
-
borderRadius: '
|
|
318
|
+
marginBottom: this.columnSpacing + 'rpx',
|
|
319
|
+
padding: this.getMarginAndPadding(this.itemPadding, 0),
|
|
320
|
+
borderRadius: this.radius + 'rpx',
|
|
321
|
+
border: this.contBorder,
|
|
322
|
+
boxShadow: this.contShadow
|
|
254
323
|
}
|
|
255
324
|
},
|
|
256
325
|
contGroupTitleStyle(){
|
|
326
|
+
return {}
|
|
327
|
+
},
|
|
328
|
+
contProductTitleStyle(){
|
|
329
|
+
return {
|
|
330
|
+
...this.itemFontStyle,
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
contProductImageStyle(){
|
|
257
334
|
return {
|
|
258
|
-
|
|
335
|
+
borderRadius: this.imageRadius + 'rpx',
|
|
259
336
|
}
|
|
260
337
|
},
|
|
261
338
|
bodyStyleComp(){
|
|
262
339
|
return {
|
|
263
|
-
'--main-color': this.mainColor
|
|
340
|
+
'--main-color': this.mainColor,
|
|
341
|
+
minHeight: this.layoutInfo.bodyMinHeightRpx + 'rpx',
|
|
264
342
|
}
|
|
265
343
|
},
|
|
266
344
|
sectionMainStyleComp(){
|
|
@@ -269,6 +347,64 @@
|
|
|
269
347
|
height: (this.layoutInfo.bodyMinHeightRpx - 220) + 'rpx',
|
|
270
348
|
}
|
|
271
349
|
},
|
|
350
|
+
navStyleComp(){
|
|
351
|
+
return {
|
|
352
|
+
backgroundColor: this.titleBgcColor,
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
navItemStyleComp(){
|
|
356
|
+
return {
|
|
357
|
+
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
navActiveBarStyle(){
|
|
361
|
+
if(this.navStyle === 'long'){
|
|
362
|
+
return {
|
|
363
|
+
top: 0,
|
|
364
|
+
bottom: 0
|
|
365
|
+
}
|
|
366
|
+
}else if(this.navStyle === 'no'){
|
|
367
|
+
return {
|
|
368
|
+
display: 'none'
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
choseSpuStyleComp(){
|
|
373
|
+
if(this.cartStyle === 'btn_cartCFull'){}
|
|
374
|
+
else if(this.cartStyle === 'btn_cartCPlain'){
|
|
375
|
+
return {
|
|
376
|
+
border: '1px solid ' + this.mainColor,
|
|
377
|
+
color: this.mainColor,
|
|
378
|
+
backgroundColor: 'transparent'
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
else if(this.cartStyle === 'btn_cartFFull'){
|
|
382
|
+
return {
|
|
383
|
+
borderRadius: 0,
|
|
384
|
+
}
|
|
385
|
+
}else if(this.cartStyle === 'btn_cartFPlain'){
|
|
386
|
+
return {
|
|
387
|
+
border: '1px solid ' + this.mainColor,
|
|
388
|
+
color: this.mainColor,
|
|
389
|
+
backgroundColor: 'transparent',
|
|
390
|
+
borderRadius: 0,
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
},
|
|
394
|
+
pointCusStyle(){
|
|
395
|
+
if(this.cartStyle === 'btn_cartFFull'){
|
|
396
|
+
return {
|
|
397
|
+
borderRadius: 0,
|
|
398
|
+
}
|
|
399
|
+
}else if(this.cartStyle === 'btn_cartFPlain'){
|
|
400
|
+
return {
|
|
401
|
+
// border: '1px solid ' + this.mainColor,
|
|
402
|
+
// color: this.mainColor,
|
|
403
|
+
// backgroundColor: 'transparent',
|
|
404
|
+
borderRadius: 0,
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
},
|
|
272
408
|
fixed_bottom() {
|
|
273
409
|
return this.fixedStyle({height: 30, zIndex: 111});
|
|
274
410
|
},
|
|
@@ -291,6 +427,7 @@
|
|
|
291
427
|
},
|
|
292
428
|
created() {
|
|
293
429
|
this.init(this.container);
|
|
430
|
+
this.isPreview = this.$configProject['isPreview'];
|
|
294
431
|
this.is_plus_site = this.projectAttr.headers['X-Site-Group']==="vip";
|
|
295
432
|
//todo
|
|
296
433
|
},
|
|
@@ -299,19 +436,79 @@
|
|
|
299
436
|
this.setNameSpace(options);
|
|
300
437
|
this.resource_shop_id = options.resource_shop_id;
|
|
301
438
|
this.consume_mode = options.consume_mode || 'HDSELF';
|
|
302
|
-
|
|
303
|
-
this.
|
|
439
|
+
this.brand_id = options.brand_id;
|
|
440
|
+
if(this.resource_shop_id){
|
|
441
|
+
this.p_getFoodShopDetail(this.resource_shop_id);
|
|
442
|
+
}else if(this.brand_id || this.$configProject['isPreview']){
|
|
443
|
+
this.p_getFoodShopList();
|
|
444
|
+
}else{
|
|
445
|
+
this.$xdAlert({
|
|
446
|
+
content: '请配置品牌ID',
|
|
447
|
+
})
|
|
448
|
+
}
|
|
304
449
|
},
|
|
305
450
|
/**
|
|
306
451
|
* @description 监听事件变化
|
|
307
452
|
* @param container {object} 业务组件对象自己
|
|
308
453
|
*/
|
|
309
454
|
init(container) {
|
|
310
|
-
this.foodDetailPath = getContainerPropsValue(container, 'content.foodDetailPath', {value: "
|
|
311
|
-
this.confirmPath = getContainerPropsValue(container, 'content.confirmPath', {value: "
|
|
455
|
+
this.foodDetailPath = getContainerPropsValue(container, 'content.foodDetailPath', {value: ""}).value;
|
|
456
|
+
this.confirmPath = getContainerPropsValue(container, 'content.confirmPath', {value: ""}).value;
|
|
312
457
|
this.switchStorePath = getContainerPropsValue(container, 'content.switchStorePath', { value: ''}).value;
|
|
313
|
-
|
|
314
|
-
this.
|
|
458
|
+
this.showDiscount = gCPVal(container, 'showDiscount', "Y");
|
|
459
|
+
this.differ = gCPVal(container, 'differ', 1);
|
|
460
|
+
|
|
461
|
+
//商品样式关联属性
|
|
462
|
+
const sValue = "{\"border\":0,\"backgroundColor\":\"#fff\"}";
|
|
463
|
+
let itemBgcColoStyle = this.getRelationStatus(container,'productStyle',{ itemBgcColorStatus:['itemBgcColor'],bgBorder:['contBorder', 'bs']},sValue);
|
|
464
|
+
this.itemBgcColor = gCPVal(container, 'itemBgcColor', ['#fff'], {sKey: 'itemBgcColorStatus', cusFields: ['productStyle','backgroundColor',itemBgcColoStyle]});
|
|
465
|
+
this.contBorder = gCPVal(container, 'contBorder', [{color: '#eee',width: '2',style: 'solid'}], {isBorder: true, bsOld:['is_border','is_border_w','is_border_c'], cusFields: ['productStyle','border',itemBgcColoStyle]});
|
|
466
|
+
this.contStyleBorder = gCPVal(container, 'contBorder', [{color: '#eee',width: '2',style: 'solid'}], {isBorder: true, isBsWidth: true, bsOld:['is_border','is_border_w','is_border_c'], cusFields: ['productStyle','border',itemBgcColoStyle]});
|
|
467
|
+
|
|
468
|
+
console.log("this.z itemBgcColor", this.itemBgcColor)
|
|
469
|
+
console.log("this.z contBorder", this.contBorder)
|
|
470
|
+
console.log("this.z contStyleBorder", this.contStyleBorder)
|
|
471
|
+
|
|
472
|
+
this.itemPadding = gCPVal(container, 'itemPadding', [0], {sKey: "itemPaddingStatus", isPMR: true});
|
|
473
|
+
this.itemSpacing = gCPVal(container,'itemSpacing', [16,20], {sKey:'contStyleStatus',fields:['itemSpacing','contStyle']});
|
|
474
|
+
this.itemFontStyle = this.getFontAndBgcStyle(
|
|
475
|
+
gCPVal(container,'contStyle', {}, {sKey:'contStyleStatus',fields:['itemSpacing','contStyle']}),
|
|
476
|
+
{fontSize: '28rpx', color: '#333', fontWeight: 'normal'},
|
|
477
|
+
)
|
|
478
|
+
this.radius = gCPVal(container,'radius', [this.gStyleValue.radius,'0'], {sKey:'radiusStatus',fields:['radius']})||0;
|
|
479
|
+
this.imageRadius = gCPVal(container,'imageRadius', [this.gStyleValue.radius/2,'0'], {sKey:'imageRadiusStatus',fields:['imageRadius']})||0;
|
|
480
|
+
this.contShadow = gCPVal(container, 'contShadow', [this.gStyleValue.shadow,'none'], {isShadow:true});
|
|
481
|
+
this.columnSpacing = gCPVal(container,'columnSpacing', [16,20], {sKey:'columnRowStatus',fields:['columnSpacing']});
|
|
482
|
+
|
|
483
|
+
//导航
|
|
484
|
+
this.titleBgcColor = gCPVal(container,'titleBgcColor', '#f8f8f8', {sKey:'titleBgcColorStatus',fields:['titleBgcColor']});
|
|
485
|
+
this.titleStyle = gCPVal(
|
|
486
|
+
container,
|
|
487
|
+
"titleStyle",
|
|
488
|
+
[{
|
|
489
|
+
color: '#333333',
|
|
490
|
+
actColor: '#333333',
|
|
491
|
+
fontSize: '24',
|
|
492
|
+
actFontSize: '24', //'', 20 , 26 ,28,30, 36 默认值:''=>24
|
|
493
|
+
fontWeight: '400',
|
|
494
|
+
actFontWeight: '500',
|
|
495
|
+
actBgColor: "#FFFFFF",
|
|
496
|
+
bgColor: ""
|
|
497
|
+
}],
|
|
498
|
+
{sKey:'titleStyleStatus',fields:['titleStyle'],isMerge: true}
|
|
499
|
+
);
|
|
500
|
+
this.navStyle = gCPVal(container, 'navStyle', 'short');
|
|
501
|
+
this.isAddCart = gCPVal(container, 'isAddCart', 'Y');
|
|
502
|
+
this.cartStyle = gCPVal(container, 'cartStyle', 'btn_cartCFull')
|
|
503
|
+
this.cartName = gCPVal(container, 'cartName', '选规格');
|
|
504
|
+
console.log("this.z cartStyle", this.cartStyle)
|
|
505
|
+
|
|
506
|
+
//预览mock数据
|
|
507
|
+
if (this.$configProject['isPreview']) {
|
|
508
|
+
this.categoryList = [];
|
|
509
|
+
this.p_getFoodShopDetail();
|
|
510
|
+
}
|
|
511
|
+
|
|
315
512
|
},
|
|
316
513
|
handleCartNumChange(val, prod){
|
|
317
514
|
console.log("handleCartNumChange", val, prod)
|
|
@@ -348,17 +545,69 @@
|
|
|
348
545
|
this.p_getFoodCartList();
|
|
349
546
|
})
|
|
350
547
|
},
|
|
548
|
+
toSwitchShopPage(){
|
|
549
|
+
if(this.shopList.length===0){
|
|
550
|
+
this.p_getFoodShopList(false);
|
|
551
|
+
}
|
|
552
|
+
this.showTakeoutShop = true;
|
|
553
|
+
},
|
|
351
554
|
handleSwitchShop(){
|
|
352
|
-
|
|
353
|
-
|
|
555
|
+
//切换门店
|
|
556
|
+
let curPage = this.$xdUniHelper.getCurrentPages();
|
|
557
|
+
let query = {...curPage.query};
|
|
558
|
+
let callback= Base64.encode(curPage.path + '?' + this.$xdUniHelper.jsonToParams(query));
|
|
559
|
+
this.$xdUniHelper.redirectTo({
|
|
560
|
+
url: this.switchStorePath + '?brand_id=' + this.brand_id + '&callback=' + callback
|
|
561
|
+
})
|
|
562
|
+
// this.$xdUniHelper.navigateTo({
|
|
563
|
+
// url: this.switchStorePath + "?brand_id=" + this.brand_id + "&resource_shop_id=" + this.resource_shop_id,
|
|
564
|
+
// })
|
|
565
|
+
},
|
|
566
|
+
setCurShop(index){
|
|
567
|
+
if(this.curShopIndex !== index){
|
|
568
|
+
this.curShopIndex = index;
|
|
569
|
+
this.p_getFoodShopDetail();
|
|
570
|
+
}
|
|
571
|
+
this.showTakeoutShop = false;
|
|
572
|
+
},
|
|
573
|
+
p_getFoodShopList(loadFirstShop=true){
|
|
574
|
+
jfbRootExec("getFoodShopList", {
|
|
575
|
+
vm: this,
|
|
576
|
+
data: {
|
|
577
|
+
brand_id: this.brand_id,
|
|
578
|
+
latitude: this.stateLocation.latitude,
|
|
579
|
+
longitude: this.stateLocation.longitude,
|
|
580
|
+
city_code: this.stateCity.city_code,
|
|
581
|
+
page_token: 1,
|
|
582
|
+
page_size: 3,
|
|
583
|
+
consume_mode: this.consume_mode,
|
|
584
|
+
xnamespace: this.xnamespace
|
|
585
|
+
}
|
|
586
|
+
}).then(res => {
|
|
587
|
+
if(res.list && res.list.length > 0){
|
|
588
|
+
this.shopList = res.list;
|
|
589
|
+
if(loadFirstShop){
|
|
590
|
+
this.curShopIndex = 0;
|
|
591
|
+
this.p_getFoodShopDetail();
|
|
592
|
+
}else{
|
|
593
|
+
let findShopIndex = this.shopList.findIndex(item => item.resource_shop_id == this.resource_shop_id);
|
|
594
|
+
this.curShopIndex = findShopIndex;
|
|
595
|
+
}
|
|
596
|
+
if(!this.$configProject['isPreview']){
|
|
597
|
+
this.showTakeoutShop = true;
|
|
598
|
+
}
|
|
599
|
+
}else{
|
|
600
|
+
this.showEmptyShop = true;
|
|
601
|
+
}
|
|
354
602
|
})
|
|
355
603
|
},
|
|
356
|
-
p_getFoodShopDetail(){
|
|
604
|
+
p_getFoodShopDetail(resource_shop_id){
|
|
605
|
+
let curShop = this.shopList[this.curShopIndex]||{};
|
|
357
606
|
jfbRootExec("getFoodShopDetail", {
|
|
358
607
|
vm: this,
|
|
359
608
|
data: {
|
|
360
609
|
xnamespace: this.xnamespace,
|
|
361
|
-
resource_shop_id:
|
|
610
|
+
resource_shop_id: resource_shop_id || curShop.resource_shop_id,
|
|
362
611
|
consume_mode: this.consume_mode,
|
|
363
612
|
latitude: this.stateLocation.latitude,
|
|
364
613
|
longitude: this.stateLocation.longitude,
|
|
@@ -428,11 +677,28 @@
|
|
|
428
677
|
page_token: options.page_token || 1,
|
|
429
678
|
page_size: this.page_size,
|
|
430
679
|
category_id: options.category_id,
|
|
431
|
-
is_show_uprice: this.
|
|
680
|
+
is_show_uprice: this.showDiscount !== 'Y' ? 0 : this.multiply(this.differ),
|
|
432
681
|
...options,
|
|
433
682
|
}
|
|
434
683
|
}).then(res => {
|
|
435
|
-
let productList = res.lists
|
|
684
|
+
let productList = res.lists.map(item => {
|
|
685
|
+
if(this.$configProject['isPreview']){
|
|
686
|
+
if(this.showDiscount !== "Y"){
|
|
687
|
+
item.show_prices = item.show_prices.filter(p=>p.t!=='U')
|
|
688
|
+
}else{
|
|
689
|
+
//展示划线价
|
|
690
|
+
let sP = item.show_prices.find(p => p.t === 'S');
|
|
691
|
+
let uP = item.show_prices.find(p => p.t === 'U');
|
|
692
|
+
if(!uP) return item;
|
|
693
|
+
if(uP.p - sP.p >= this.multiply(this.differ)){
|
|
694
|
+
item.show_prices = [sP, uP];
|
|
695
|
+
}else{
|
|
696
|
+
item.show_prices = [sP];
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
return item;
|
|
701
|
+
});
|
|
436
702
|
this.categoryList = this.categoryList.map((item, index) => {
|
|
437
703
|
if(item.category_id === options.category_id){
|
|
438
704
|
let prodList = [];
|
|
@@ -690,15 +956,19 @@
|
|
|
690
956
|
return Promise.resolve();
|
|
691
957
|
},
|
|
692
958
|
|
|
693
|
-
|
|
959
|
+
handleChoseProduct(product){
|
|
694
960
|
if(product.has_choose){
|
|
695
|
-
this
|
|
696
|
-
url: this.foodDetailPath + `?product_id=${product.product_id}&shop_id=${this.shopInfo.shop_id}&category_id=${product.category_id}`
|
|
697
|
-
})
|
|
961
|
+
this.toProductDetail(product);
|
|
698
962
|
}else{
|
|
699
963
|
this.addProductCart(product);
|
|
700
964
|
}
|
|
701
965
|
},
|
|
966
|
+
toProductDetail(product){
|
|
967
|
+
if(this.$configProject['isPreview']) return;
|
|
968
|
+
this.$xdUniHelper.navigateTo({
|
|
969
|
+
url: this.foodDetailPath + `?product_id=${product.product_id}&shop_id=${this.shopInfo.shop_id}&category_id=${product.category_id}`
|
|
970
|
+
})
|
|
971
|
+
},
|
|
702
972
|
|
|
703
973
|
//加入购入车
|
|
704
974
|
addProductCart(product){
|
|
@@ -784,6 +1054,26 @@
|
|
|
784
1054
|
.jfb-food-product-list {
|
|
785
1055
|
&__body{
|
|
786
1056
|
background-color: #FFFFFF;
|
|
1057
|
+
::v-deep .xd-up-drawer__warper{
|
|
1058
|
+
border-radius: 24rpx 24rpx 0 0 !important;
|
|
1059
|
+
overflow: hidden;
|
|
1060
|
+
}
|
|
1061
|
+
.empty_shop{
|
|
1062
|
+
background-color: #FFFFFF;
|
|
1063
|
+
height: 100%;
|
|
1064
|
+
.empty_chose_btn{
|
|
1065
|
+
display: flex;
|
|
1066
|
+
justify-content: center;
|
|
1067
|
+
align-items: center;
|
|
1068
|
+
width: 250rpx;
|
|
1069
|
+
height: 64rpx;
|
|
1070
|
+
margin: 0 auto;
|
|
1071
|
+
font-size: 24rpx;
|
|
1072
|
+
color: #E5010E;
|
|
1073
|
+
border: 1px solid #E5010E;
|
|
1074
|
+
border-radius: 100px;
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
787
1077
|
|
|
788
1078
|
.cart_edg{
|
|
789
1079
|
position: absolute;
|
|
@@ -842,6 +1132,15 @@
|
|
|
842
1132
|
padding: 24rpx;
|
|
843
1133
|
text-align: center;
|
|
844
1134
|
position: relative;
|
|
1135
|
+
.nav_active_bar{
|
|
1136
|
+
position: absolute;
|
|
1137
|
+
left: 0;
|
|
1138
|
+
top: 28rpx;
|
|
1139
|
+
bottom: 28rpx;
|
|
1140
|
+
width: 12rpx;
|
|
1141
|
+
background-color: var(--main-color);
|
|
1142
|
+
border-radius: 0 4rpx 4rpx 0;
|
|
1143
|
+
}
|
|
845
1144
|
|
|
846
1145
|
.cate_num{
|
|
847
1146
|
position: absolute;
|
|
@@ -858,21 +1157,27 @@
|
|
|
858
1157
|
&.active{
|
|
859
1158
|
// color: var(--main-color);
|
|
860
1159
|
font-weight: 500;
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
1160
|
+
background-color: #FFFFFF;
|
|
1161
|
+
// &::after{
|
|
1162
|
+
// content: '';
|
|
1163
|
+
// position: absolute;
|
|
1164
|
+
// left: 0;
|
|
1165
|
+
// top: 28rpx;
|
|
1166
|
+
// bottom: 28rpx;
|
|
1167
|
+
// width: 12rpx;
|
|
1168
|
+
// background-color: var(--main-color);
|
|
1169
|
+
// border-radius: 0 4rpx 4rpx 0;
|
|
1170
|
+
// }
|
|
870
1171
|
}
|
|
871
1172
|
}
|
|
872
1173
|
}
|
|
873
1174
|
.right_product{
|
|
874
1175
|
flex: 1;
|
|
875
|
-
margin: 0;
|
|
1176
|
+
margin: 0 0rpx;
|
|
1177
|
+
.product_scroll_inner{
|
|
1178
|
+
padding: 0 32rpx;
|
|
1179
|
+
box-sizing: border-box;
|
|
1180
|
+
}
|
|
876
1181
|
|
|
877
1182
|
.product_group{
|
|
878
1183
|
.group_title{
|
|
@@ -884,7 +1189,6 @@
|
|
|
884
1189
|
height: 64rpx;
|
|
885
1190
|
line-height: 64rpx;
|
|
886
1191
|
border-radius: 16rpx;
|
|
887
|
-
padding-left: 32rpx;
|
|
888
1192
|
}
|
|
889
1193
|
.product_list{
|
|
890
1194
|
.product_loading{
|
|
@@ -898,7 +1202,6 @@
|
|
|
898
1202
|
.product_item{
|
|
899
1203
|
box-sizing: border-box;
|
|
900
1204
|
height: auto;
|
|
901
|
-
background: #FFFFFF;
|
|
902
1205
|
display: flex;
|
|
903
1206
|
|
|
904
1207
|
.chose_spu{
|
|
@@ -1063,7 +1366,7 @@
|
|
|
1063
1366
|
.prod_specs{
|
|
1064
1367
|
padding-top: unit(10, rpx);
|
|
1065
1368
|
display: block;
|
|
1066
|
-
font-size:
|
|
1369
|
+
font-size: 24rpx;
|
|
1067
1370
|
color: #999999;
|
|
1068
1371
|
line-height: unit(32, rpx);
|
|
1069
1372
|
}
|
|
@@ -1107,5 +1410,85 @@
|
|
|
1107
1410
|
}
|
|
1108
1411
|
}
|
|
1109
1412
|
}
|
|
1413
|
+
.take_shop_wrap{
|
|
1414
|
+
background-color: #f8f8f8;
|
|
1415
|
+
.take_title{
|
|
1416
|
+
background-color: #FFFFFF;
|
|
1417
|
+
padding: 24rpx 32rpx;
|
|
1418
|
+
font-size: 32rpx;
|
|
1419
|
+
color: #333333;
|
|
1420
|
+
font-weight: 500;
|
|
1421
|
+
}
|
|
1422
|
+
.chose_other{
|
|
1423
|
+
display: flex;
|
|
1424
|
+
align-items: center;
|
|
1425
|
+
justify-content: center;
|
|
1426
|
+
font-size: 24rpx;
|
|
1427
|
+
line-height: 48rpx;
|
|
1428
|
+
color: #666666;
|
|
1429
|
+
padding: 16rpx 0;
|
|
1430
|
+
}
|
|
1431
|
+
.take_shop_item{
|
|
1432
|
+
background-color: #FFFFFF;
|
|
1433
|
+
margin: 16rpx;
|
|
1434
|
+
padding: 32rpx;
|
|
1435
|
+
border-radius: 16rpx;
|
|
1436
|
+
border: 1px solid transparent;
|
|
1437
|
+
|
|
1438
|
+
&.active{
|
|
1439
|
+
border: 1px solid rgba(229, 1, 14, 0.1);
|
|
1440
|
+
background-color: rgba(229, 1, 14, 0.03);
|
|
1441
|
+
.shop_name_bar{
|
|
1442
|
+
.curr_active{
|
|
1443
|
+
display: inline-flex;
|
|
1444
|
+
}
|
|
1445
|
+
}
|
|
1446
|
+
}
|
|
1447
|
+
.shop_name_bar{
|
|
1448
|
+
display: flex;
|
|
1449
|
+
align-items: flex-start;
|
|
1450
|
+
justify-content: space-between;
|
|
1451
|
+
font-size: 32rpx;
|
|
1452
|
+
color: #333333;
|
|
1453
|
+
.shop_name{
|
|
1454
|
+
align-items: center;
|
|
1455
|
+
flex: 1;
|
|
1456
|
+
padding-right: 40rpx;
|
|
1457
|
+
}
|
|
1458
|
+
.curr_active{
|
|
1459
|
+
border: 1px solid rgba(229, 1, 14, 0.2);
|
|
1460
|
+
border-radius: 6rpx;
|
|
1461
|
+
color: #D11528;
|
|
1462
|
+
height: 42rpx;
|
|
1463
|
+
width: 128rpx;
|
|
1464
|
+
align-items: center;
|
|
1465
|
+
justify-content: center;
|
|
1466
|
+
font-size: 24rpx;
|
|
1467
|
+
// margin-left: 16rpx;
|
|
1468
|
+
display: none;
|
|
1469
|
+
}
|
|
1470
|
+
.more_r{
|
|
1471
|
+
display: flex;
|
|
1472
|
+
align-items: center;
|
|
1473
|
+
color: #999999;
|
|
1474
|
+
font-size: 24rpx;
|
|
1475
|
+
padding-top: 8rpx;
|
|
1476
|
+
}
|
|
1477
|
+
}
|
|
1478
|
+
.shop_addr_bar{
|
|
1479
|
+
display: flex;
|
|
1480
|
+
align-items: center;
|
|
1481
|
+
justify-content: space-between;
|
|
1482
|
+
margin-top: 16rpx;
|
|
1483
|
+
font-size: 24rpx;
|
|
1484
|
+
color: #999999;
|
|
1485
|
+
}
|
|
1486
|
+
.shop_time{
|
|
1487
|
+
font-size: 24rpx;
|
|
1488
|
+
color: #999999;
|
|
1489
|
+
margin-top: 16rpx;
|
|
1490
|
+
}
|
|
1491
|
+
}
|
|
1492
|
+
}
|
|
1110
1493
|
}
|
|
1111
1494
|
</style>
|