jufubao-mall 2.0.32 → 2.0.34
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/CusCouponChose/CusCouponChose.vue +10 -13
- package/src/components/CusEnter/CusEnter.vue +9 -1
- package/src/components/CusListItem/CusListItem.vue +141 -0
- package/src/components/CusPoster/CusPoster.vue +17 -62
- package/src/components/CusPrice/CusPrice.vue +391 -0
- package/src/components/CusProduct/CusProduct.vue +576 -184
- package/src/components/CusShops/CusShops.vue +409 -209
- package/src/components/CusTab/CusTab.vue +159 -22
- package/src/components/CusVipList/CusVipList.vue +169 -0
- package/src/components/JfbMallConfirm/Api.js +1 -1
- package/src/components/JfbMallConfirm/Attr.js +167 -453
- package/src/components/JfbMallConfirm/JfbMallConfirm.vue +362 -162
- package/src/components/JfbMallConfirm/Mock.js +61 -43
- package/src/components/JfbMallConfirm/XdAddrDefault.vue +26 -13
- package/src/components/JfbMallConfirm/XdAddrOld.vue +9 -7
- package/src/components/JfbMallConfirm/XdListItem.vue +10 -2
- package/src/components/JfbMallConfirm/cusAttr/advanced.js +91 -0
- package/src/components/JfbMallConfirm/cusAttr/content.js +355 -0
- package/src/components/JfbMallConfirm/cusAttr/style.js +628 -0
- package/src/components/JfbMallConfirm/shopList.vue +84 -42
- package/src/components/JfbMallNetworkMedia/Api.js +94 -0
- package/src/components/JfbMallNetworkMedia/Attr.js +20 -0
- package/src/components/JfbMallNetworkMedia/JfbMallNetworkMedia.vue +1167 -0
- package/src/components/JfbMallNetworkMedia/JfbMallNetworkMediaLess.less +80 -0
- package/src/components/JfbMallNetworkMedia/JfbMallNetworkMediaMixin.js +30 -0
- package/src/components/JfbMallNetworkMedia/Mock.js +372 -0
- package/src/components/JfbMallNetworkMedia/cusAttr/advanced.js +60 -0
- package/src/components/JfbMallNetworkMedia/cusAttr/content.js +230 -0
- package/src/components/JfbMallNetworkMedia/cusAttr/font.js +123 -0
- package/src/components/JfbMallNetworkMedia/cusAttr/icon.js +257 -0
- package/src/components/JfbMallNetworkMedia/cusAttr/style.js +12 -0
- package/src/components/JfbMallProductInfo/cusAttr/content.js +2 -0
- package/src/components/JfbMallProductList/JfbMallProductList.vue +7 -1
- package/src/components/JfbMallProductList/XdCateV1.vue +0 -1
- package/src/components/JfbMallShop/JfbMallShop.vue +1 -1
- package/src/components/JfbMallShop/cusAttr/content.js +1 -1
- package/src/components/SkeProduct/SkeProduct.vue +88 -3
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<view class="chose_shop_list">
|
|
3
|
-
<view class="
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
<view>
|
|
12
|
-
<
|
|
3
|
+
<view class="shop_header">
|
|
4
|
+
<view style="display: flex;align-items: center;">
|
|
5
|
+
<xd-city-show
|
|
6
|
+
city-location-type="baidu"
|
|
7
|
+
@done="handleCityDone"
|
|
8
|
+
@onChange="handleCityChange"
|
|
9
|
+
color="#333"></xd-city-show>
|
|
10
|
+
</view>
|
|
11
|
+
<view class="shop-search">
|
|
12
|
+
<input
|
|
13
|
+
class="uni-input"
|
|
14
|
+
placeholder="输入门店名称"
|
|
15
|
+
:value="keyword"
|
|
16
|
+
@input="handleInput"
|
|
17
|
+
@confirm="handleInput"
|
|
18
|
+
/>
|
|
19
|
+
<view>
|
|
20
|
+
<xd-font-icon icon="iconsousuo_mian" color="#999999" size="28"></xd-font-icon>
|
|
21
|
+
</view>
|
|
13
22
|
</view>
|
|
14
23
|
</view>
|
|
15
|
-
|
|
16
|
-
<xd-city-show
|
|
17
|
-
city-location-type="baidu"
|
|
18
|
-
@done="handleCityDone"
|
|
19
|
-
@onChange="handleCityChange"
|
|
20
|
-
color="#333"></xd-city-show>
|
|
21
|
-
<view class="switch_city" @click="handleCityChange">切换城市 <xd-font-icon size="28" icon="iconxiangyou_xian"></xd-font-icon> </view>
|
|
22
|
-
</view>
|
|
24
|
+
|
|
23
25
|
<view class="shop_list" v-if="list && list.length">
|
|
24
26
|
<view
|
|
25
27
|
class="shop_item"
|
|
@@ -33,31 +35,38 @@
|
|
|
33
35
|
<view class="shop_info">
|
|
34
36
|
<view class="shop_name">
|
|
35
37
|
<view class="_name">{{item.resource_shop_name}}</view>
|
|
36
|
-
<view class="distance" v-if="item.distance">{{item.distance}}</view>
|
|
38
|
+
<!-- <view class="distance" v-if="item.distance">{{item.distance}}</view> -->
|
|
37
39
|
</view>
|
|
38
40
|
<view>
|
|
39
41
|
<view class="shop_sub">
|
|
40
|
-
<view class="_icon"><xd-font-icon size="32" icon="icondizhitubiao"></xd-font-icon></view>
|
|
41
|
-
<view>{{item.address}}</view>
|
|
42
|
+
<!-- <view class="_icon"><xd-font-icon size="32" icon="icondizhitubiao"></xd-font-icon></view> -->
|
|
43
|
+
<view class="addr_text">{{item.address}}</view>
|
|
44
|
+
<view v-if="item.distance">{{item.distance}}</view>
|
|
42
45
|
</view>
|
|
43
46
|
<view class="shop_sub">
|
|
44
|
-
<view class="_icon"><xd-font-icon size="
|
|
47
|
+
<view class="_icon"><xd-font-icon size="24" icon="icondianhuatubiao"></xd-font-icon></view>
|
|
45
48
|
<view>{{item.phone}}</view>
|
|
46
49
|
</view>
|
|
47
50
|
</view>
|
|
48
51
|
</view>
|
|
49
52
|
</view>
|
|
50
53
|
</view>
|
|
51
|
-
<view v-else class="empty_data"
|
|
54
|
+
<view v-else class="empty_data">
|
|
55
|
+
<xd-no-data :scaleSize="3" iconType="shop">
|
|
56
|
+
<view style="margin-top: -100rpx;">该地区暂无可选门店</view>
|
|
57
|
+
</xd-no-data>
|
|
58
|
+
</view>
|
|
52
59
|
</view>
|
|
53
60
|
</template>
|
|
54
61
|
<script>
|
|
55
62
|
import XdCityShow from "@/components/XdCityShowApi/XdCityShowApi"
|
|
56
63
|
import XdFontIcon from "@/components/XdFontIcon/XdFontIcon"
|
|
64
|
+
import XdNoData from "@/components/XdNoData/XdNoData"
|
|
57
65
|
export default {
|
|
58
66
|
components: {
|
|
59
67
|
XdCityShow,
|
|
60
|
-
XdFontIcon
|
|
68
|
+
XdFontIcon,
|
|
69
|
+
XdNoData
|
|
61
70
|
},
|
|
62
71
|
props: {
|
|
63
72
|
getCityInfoByLocation: {
|
|
@@ -102,26 +111,49 @@ export default {
|
|
|
102
111
|
<style lang="less" scoped>
|
|
103
112
|
.chose_shop_list{
|
|
104
113
|
background: #F7F7F7;
|
|
105
|
-
padding:
|
|
114
|
+
padding: 0 16rpx 16rpx;
|
|
106
115
|
position: relative;
|
|
107
|
-
height:
|
|
116
|
+
height: 45vh;
|
|
108
117
|
}
|
|
109
|
-
|
|
110
|
-
.shop-search {
|
|
118
|
+
.shop_header{
|
|
111
119
|
position: absolute;
|
|
112
|
-
border:1px solid #eee;
|
|
113
120
|
top: -80rpx;
|
|
114
|
-
left:
|
|
115
|
-
|
|
116
|
-
|
|
121
|
+
left: 8rpx;
|
|
122
|
+
display: flex;
|
|
123
|
+
::v-deep .xd-city__name-title{
|
|
124
|
+
color: #999999 !important;
|
|
125
|
+
font-size: 24rpx !important;
|
|
126
|
+
}
|
|
127
|
+
::v-deep .xd-city__name-icon{
|
|
128
|
+
color: #999999 !important;
|
|
129
|
+
|
|
130
|
+
.xd-iconfont {
|
|
131
|
+
font-size: 24rpx !important;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
.shop-search {
|
|
136
|
+
border:1px solid #f8f8f8;
|
|
137
|
+
width: 420rpx;
|
|
138
|
+
padding: 16rpx 32rpx;
|
|
117
139
|
border-radius: 40rpx;
|
|
118
140
|
background-color: #f8f8f8;
|
|
119
141
|
display: flex;
|
|
120
142
|
justify-content: flex-start;
|
|
121
143
|
align-items: center;
|
|
144
|
+
margin-left: 8rpx;
|
|
145
|
+
|
|
146
|
+
// #ifdef MP-WEIXIN
|
|
147
|
+
padding: 8rpx 32rpx;
|
|
148
|
+
// #endif
|
|
149
|
+
|
|
150
|
+
::v-deep .uni-input-placeholder{
|
|
151
|
+
color: #999999;
|
|
152
|
+
}
|
|
153
|
+
|
|
122
154
|
|
|
123
155
|
& .uni-input {
|
|
124
|
-
font-size:
|
|
156
|
+
font-size: 24rpx;
|
|
125
157
|
flex: 1;
|
|
126
158
|
color: #333;
|
|
127
159
|
line-height: 36rpx;
|
|
@@ -155,23 +187,25 @@ export default {
|
|
|
155
187
|
font-size: 28rpx;
|
|
156
188
|
}
|
|
157
189
|
.empty_data{
|
|
158
|
-
line-height: 300rpx;
|
|
159
190
|
text-align: center;
|
|
160
191
|
font-size: 28rpx;
|
|
161
192
|
color: #999999;
|
|
193
|
+
height: 100%;
|
|
162
194
|
}
|
|
163
195
|
.shop_list{
|
|
164
|
-
height:
|
|
196
|
+
height: 100%;
|
|
165
197
|
overflow-y: auto;
|
|
198
|
+
padding-top: 16rpx;
|
|
166
199
|
.shop_item{
|
|
167
200
|
display: flex;
|
|
168
201
|
background: #FFFFFF;
|
|
169
|
-
padding:
|
|
202
|
+
padding: 16rpx;
|
|
170
203
|
margin-bottom: 20rpx;
|
|
204
|
+
border-radius: 16rpx;
|
|
171
205
|
}
|
|
172
206
|
.shop_image{
|
|
173
|
-
width:
|
|
174
|
-
height:
|
|
207
|
+
width: 160rpx;
|
|
208
|
+
height: 160rpx;
|
|
175
209
|
border: 1px solid #DDD;
|
|
176
210
|
image{
|
|
177
211
|
width: 100%;
|
|
@@ -183,15 +217,22 @@ export default {
|
|
|
183
217
|
flex-direction: column;
|
|
184
218
|
width: 200rpx;
|
|
185
219
|
flex: 1;
|
|
186
|
-
margin-left:
|
|
187
|
-
|
|
220
|
+
margin-left: 16rpx;
|
|
221
|
+
|
|
222
|
+
.addr_text{
|
|
223
|
+
width: 420rpx;
|
|
224
|
+
padding-right: 20rpx;
|
|
225
|
+
overflow: hidden;
|
|
226
|
+
text-overflow: ellipsis;
|
|
227
|
+
white-space: nowrap;
|
|
228
|
+
}
|
|
188
229
|
}
|
|
189
230
|
.shop_name{
|
|
190
231
|
display: flex;
|
|
191
232
|
align-items: flex-start;
|
|
192
233
|
justify-content: space-between;
|
|
193
234
|
font-size: 32rpx;
|
|
194
|
-
color: #
|
|
235
|
+
color: #333333;
|
|
195
236
|
._name{
|
|
196
237
|
flex: 1;
|
|
197
238
|
width: 200rpx;
|
|
@@ -207,9 +248,10 @@ export default {
|
|
|
207
248
|
}
|
|
208
249
|
.shop_sub{
|
|
209
250
|
display: flex;
|
|
251
|
+
align-items: center;
|
|
210
252
|
color: #999999;
|
|
211
253
|
font-size: 24rpx;
|
|
212
|
-
margin-top:
|
|
254
|
+
margin-top: 16rpx;
|
|
213
255
|
line-height: 1.6;
|
|
214
256
|
._icon{
|
|
215
257
|
width: 40rpx;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
/**
|
|
3
|
+
* @description 接口配置,
|
|
4
|
+
* 在设置方法名字当时候,别忘记加上【模块名字】:Network
|
|
5
|
+
* @type {*[]}
|
|
6
|
+
*/
|
|
7
|
+
module.exports = [
|
|
8
|
+
{
|
|
9
|
+
mapFnName: "getMallMediaProductContent",
|
|
10
|
+
title: "获取商品内容",
|
|
11
|
+
path: "/product/v1/:xnamespace/product/item/:product_id/content",
|
|
12
|
+
isRule: false,
|
|
13
|
+
params: {
|
|
14
|
+
xnamespace: ['xnamespace', 'string', '必选'],
|
|
15
|
+
product_id: ['product_id', 'string', '必选'],
|
|
16
|
+
},
|
|
17
|
+
isConsole: true,
|
|
18
|
+
disabled: true,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
mapFnName: "getMallMediaProductBuyButton",
|
|
22
|
+
title: "获取商品下单按钮",
|
|
23
|
+
path: "/product/v1/:xnamespace/product/item/:product_id/buy-button",
|
|
24
|
+
isRule: false,
|
|
25
|
+
params: {
|
|
26
|
+
xnamespace: ['xnamespace', 'string', '必选'],
|
|
27
|
+
product_id: ['product_id', 'string', '必选'],
|
|
28
|
+
},
|
|
29
|
+
isConsole: true,
|
|
30
|
+
disabled: true,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
mapFnName: "getMallMediaProductForm",
|
|
34
|
+
title: "单个表单数据",
|
|
35
|
+
path: "/product/v1/:xnamespace/product/item/:product_id/form-data",
|
|
36
|
+
isRule: false,
|
|
37
|
+
params: {
|
|
38
|
+
xnamespace: ['xnamespace', 'string', '必选'],
|
|
39
|
+
product_id: ['product_id', 'string', '必选'],
|
|
40
|
+
},
|
|
41
|
+
isConsole: true,
|
|
42
|
+
disabled: true,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
mapFnName: 'getMallMediaProductList',
|
|
46
|
+
title: '获取商品列表',
|
|
47
|
+
path: '/product/v1/:xnamespace/product/search',
|
|
48
|
+
isRule: false,
|
|
49
|
+
params: {
|
|
50
|
+
xnamespace: ['path', "xnamespace", "必选"],
|
|
51
|
+
sort: ['排序', 'string', '必选'],
|
|
52
|
+
keyword: ['关键词', 'string', '必选'],
|
|
53
|
+
brand_ids: ['品牌ID,多个小写逗号隔开', 'string', '必选'],
|
|
54
|
+
filter_keys: ['过滤KEY,多个逗号隔开', 'string', '必选'],
|
|
55
|
+
city_code: ['城市CODE', 'string', '必选'],
|
|
56
|
+
custom_category_id: ['自定义分类ID', 'string', '必选'],
|
|
57
|
+
market_tags: ['营销标签 rec=推荐, hot=爆款, new=新品 多个逗号隔开', 'string', '必选'],
|
|
58
|
+
random_score_seed: ['随机排序因子, 分页时保证一样', 'string', '必选'],
|
|
59
|
+
page_size: ['page_size', 'string', '必选'],
|
|
60
|
+
page_token: ['page_token', 'string', '必选'],
|
|
61
|
+
},
|
|
62
|
+
isConsole: true,
|
|
63
|
+
disabled: true,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
mapFnName: 'getMallMediaCategoryTree',
|
|
67
|
+
title: '分类 - 树列表',
|
|
68
|
+
path: '/product/v1/:xnamespace/category/tree',
|
|
69
|
+
isRule: false,
|
|
70
|
+
params: {
|
|
71
|
+
xnamespace: ['xnamespace', 'String', '必选'],
|
|
72
|
+
level: ['获取几层数据,默认:2', 'Number', '必选', 2],
|
|
73
|
+
root_category_id: ['父级分类,默认:0', 'Number', '必选', 0],
|
|
74
|
+
tag: ['分类标签', 'String', '选填']
|
|
75
|
+
},
|
|
76
|
+
isConsole: true,
|
|
77
|
+
disabled: true,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
mapFnName: "nowMallMediaBuyPay",
|
|
81
|
+
title: "立即购买",
|
|
82
|
+
path: "/cart/v1/buy",
|
|
83
|
+
isRule: false,
|
|
84
|
+
data: {
|
|
85
|
+
namespace: ['namespace', 'String', '必选'],
|
|
86
|
+
product: {
|
|
87
|
+
product_id: ['商品Id', 'Number', true],
|
|
88
|
+
num: ['数量', 'Number', true, 1]
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
isConsole: true,
|
|
92
|
+
disabled: true
|
|
93
|
+
},
|
|
94
|
+
];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import content from "./cusAttr/content";
|
|
4
|
+
import style from "./cusAttr/style";
|
|
5
|
+
import advanced from "./cusAttr/advanced";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @description 当表单组件中有联动操作时候,使用方法进行返回
|
|
9
|
+
*/
|
|
10
|
+
export default {
|
|
11
|
+
style: [],
|
|
12
|
+
content: (data, gValue, gColor, oldData={}) => {
|
|
13
|
+
return [
|
|
14
|
+
...content(data, gValue, gColor, oldData),
|
|
15
|
+
...style(data, gValue, gColor, oldData),
|
|
16
|
+
...advanced(data)
|
|
17
|
+
].filter(i=>i)
|
|
18
|
+
},
|
|
19
|
+
advanced: [],
|
|
20
|
+
};
|