jufubao-mall 2.0.86-beta4 → 2.0.86

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.
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * @description 第三方库
5
+ * @param threePackagePath {String} 第三方库所在项目路径存放路径路
6
+ * @param packname {String} 包名字
7
+ * @returns {string|*}
8
+ */
9
+ const getPackagePath = (threePackagePath, packname = 'gxd-commands-bussiness')=>{
10
+ if(packname === 'gxd-commands-bussiness') {
11
+ return `/Users/shiyonggao/Desktop/code/BASE/UNIAPP/xd-commands-bussiness/${threePackagePath}`;
12
+ }
13
+
14
+ if (packname === 'gxd-uni-library-editx') {
15
+ return `/Users/shiyonggao/Desktop/code/BASE/UNIAPP/xd-uni-library-editx/${threePackagePath}`;
16
+ }
17
+
18
+ };
19
+
20
+ module.exports = {
21
+ getPackagePath
22
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-mall",
3
- "version": "2.0.86-beta4",
3
+ "version": "2.0.86",
4
4
  "private": false,
5
5
  "description": "聚福宝商城业务组件插件包",
6
6
  "main": "index.js",
@@ -1,12 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(git checkout *)",
5
- "Bash(npx lessc *)",
6
- "Bash(python3 *)",
7
- "Bash(sips -g pixelWidth -g pixelHeight \"/Users/zxd/Workspaces/jufubao-mall/temp_screenshot.jpg\")",
8
- "Bash(identify \"/Users/zxd/Workspaces/jufubao-mall/temp_screenshot.jpg\")",
9
- "Bash(sips *)"
10
- ]
11
- }
12
- }
@@ -1,40 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * @description API模型
5
- * 建议:Ffff=>模块 Xxxx=>自定义名字
6
- * 获取单记录(getByIdFfffXxxx)
7
- * 获取列表记录(getByListFfffXxxx)
8
- * 添加列表记录(addFfffXxxxx)
9
- * 删除列表记录(removeFfffXxxxx|deleteFfffXxxx)
10
- * 更新列表记录(updateFfffXxxxx)
11
- * @type {*[]}
12
- */
13
- module.exports = [
14
- {
15
- mapFnName: 'getMallCategoryTree',
16
- title: '分类 - 树列表',
17
- path: '/product/v1/:xnamespace/category/index',
18
- isRule: false,
19
- params: {
20
- xnamespace: ['xnamespace', 'String', '必选'],
21
- group_id: ['分组ID', 'Number', '必选'],
22
- need_tag: ['分类', 'Number', '必选'],
23
- },
24
- isConsole: true,
25
- disabled: true,
26
- },
27
- {
28
- mapFnName: 'getMallCategoryChildren',
29
- title: '分类 - 获取子级',
30
- path: '/product/v1/:xnamespace/category/children',
31
- isRule: false,
32
- params: {
33
- xnamespace: ['xnamespace', 'String', '必选'],
34
- group_id: ['分组ID', 'Number', '必选'],
35
- parent_id: ['父级ID 0时只获取第一级', 'Number', '必选'],
36
- },
37
- isConsole: true,
38
- disabled: true,
39
- },
40
- ];
@@ -1,20 +0,0 @@
1
- 'use strict';
2
- import style from "./cusAttr/style";
3
- import advanced from "./cusAttr/advanced";
4
- import content from "./cusAttr/content";
5
-
6
- /**
7
- * @description 当表单组件中有联动操作时候,使用方法进行返回
8
- */
9
- export default {
10
- style: [],
11
- advanced: [],
12
- content: (data, gValue, gColor, oldData={})=>{
13
-
14
- return [
15
- ...content(data, gValue,gColor,oldData),
16
- ...style(data, gValue,gColor,oldData),
17
- ...advanced(data),
18
- ].filter(i=>i)
19
- },
20
- };
@@ -1,383 +0,0 @@
1
- <template>
2
- <view
3
- class="jfb-mall-category-all"
4
- @click="handleEditxSelect"
5
- :class="{ editx : isEditx && active }"
6
- >
7
- <!--#ifdef H5-->
8
- <view
9
- class="jfb-mall-category-all__edit"
10
- :class="{ editx : isEditx && active }"
11
- v-if="isEditx && active"
12
- >
13
- <view class="jfb-mall-category-all__edit-icon" @click.stop="delEdit">
14
- <xd-font-icon icon="iconshanchu-01" color="#fff" size="30"></xd-font-icon>
15
- </view>
16
- </view>
17
- <!-- #endif -->
18
- <view class="jfb-mall-category-all__body">
19
- <view v-if="loadingList" class="skeleton-wrap">
20
- <view class="type-left">
21
- <view v-for="i in 10" :key="i">
22
- <view class="cate-item"></view>
23
- </view>
24
- </view>
25
- <view class="type-right">
26
- <view v-for="i in 10" :key="i">
27
- <view class="type_title"><view></view></view>
28
- <view class="type_list">
29
- <view v-for="ii in 3" :key="ii" class="type_item">
30
- <view></view>
31
- <view></view>
32
- </view>
33
- </view>
34
- </view>
35
- </view>
36
- </view>
37
- <xd-store-product-type
38
- :key="navKey"
39
- v-if="onLoadStatus"
40
- :layout-info="layoutInfo"
41
- :color="mainColor"
42
- :default-index="0"
43
- :style-config="styleConfig"
44
- :layout-style="layoutStyle"
45
- @onNavList="handleNavList"
46
- @onToDetail="handleToDetail"
47
- ></xd-store-product-type>
48
- </view>
49
- </view>
50
- </template>
51
-
52
- <script>
53
- import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
54
- import XdStoreProductType from "./XdStoreProductType";
55
- import {jfbRootExec} from "@/utils/xd.event";
56
- import JfbMallCategoryAllMixin from "./JfbMallCategoryAllMixin";
57
- import componentsMixins from "@/mixins/componentsMixins";
58
- import extsMixins from "@/mixins/extsMixins";
59
- import { getContainerPropsValue, gCPVal } from "@/utils/xd.base";
60
- import getServiceUrl from "@/common/getServiceUrl";
61
- import Color from "color";
62
-
63
- export default {
64
- name: "JfbMallCategoryAll",
65
- components: {
66
- XdFontIcon,
67
- XdStoreProductType
68
- },
69
- mixins: [componentsMixins, extsMixins, JfbMallCategoryAllMixin],
70
- data() {
71
- return {
72
- closeMask: true,
73
- isPreview: false,
74
- allNavList: [],
75
- loadingList: true,
76
- xnamespace: "",
77
- listPath: "",
78
- selfMask: true,
79
- onLoadStatus: false,
80
- need_tag: null,
81
- navKey: "navKey",
82
-
83
- // content 属性
84
- showRecommend: 'Y',
85
- categoryParentType: 'root',
86
- categoryParent: '',
87
- recommendName: '',
88
- layoutStyle: '1',
89
-
90
- // 左侧导航样式
91
- leftNavName: {},
92
- leftNavItemSpacing: 0,
93
- leftNavBgColor: '#F7F7F7',
94
- leftNavBorder: '',
95
- leftNavRadius: '0',
96
- leftNavShadow: '',
97
- leftNavPadding: {top:0, bottom:0, left:0, right:0},
98
- // 右侧导航样式
99
- rightNavMargin: [0],
100
- rightNavPadding: {top:0, bottom:0, left:0, right:0},
101
- rightNavBgColor: '#fff',
102
- rightNavIconSize: 120,
103
- rightNavIconPadding: 0,
104
- rightNavIconTextColor: '#666',
105
- rightNavIconTextSize: '12',
106
- rightNavIconRadius: 'small',
107
- rightNavIconBorder: '',
108
- rightNavIconShadow: '',
109
- rightNavIconBgColor: '',
110
- rightNavIconTextGap: 0,
111
- }
112
- },
113
- computed: {
114
- styleConfig() {
115
- return {
116
- // content
117
- xnamespace: this.xnamespace,
118
- showRecommend: this.showRecommend,
119
- need_tag: this.need_tag,
120
- categoryParentType: this.categoryParentType,
121
- categoryParent: this.categoryParent,
122
- recommendName: this.recommendName,
123
- layoutStyle: this.layoutStyle,
124
- listPath: this.listPath,
125
- // 左侧导航
126
- leftNavName: this.leftNavName,
127
- leftNavItemSpacing: this.leftNavItemSpacing,
128
- leftNavBgColor: this.leftNavBgColor,
129
- leftNavBorder: this.leftNavBorder,
130
- leftNavRadius: this.leftNavRadius,
131
- leftNavShadow: this.leftNavShadow,
132
- leftNavPadding: this.getMarginAndPadding(this.leftNavPadding, 0),
133
- // 右侧导航
134
- rightNavMargin: this.getMarginAndPadding(this.rightNavMargin, 0),
135
- rightNavPadding: this.getMarginAndPadding(this.rightNavPadding, 0),
136
- rightNavBgColor: this.rightNavBgColor,
137
- rightNavIconSize: this.rightNavIconSize,
138
- rightNavIconPadding: this.rightNavIconPadding,
139
- rightNavIconTextColor: this.rightNavIconTextColor,
140
- rightNavIconTextSize: this.rightNavIconTextSize,
141
- rightNavIconRadius: this.rightNavIconRadius,
142
- rightNavIconBorder: this.rightNavIconBorder,
143
- rightNavIconShadow: this.rightNavIconShadow,
144
- rightNavIconBgColor: this.rightNavIconBgColor,
145
- rightNavIconTextGap: this.rightNavIconTextGap,
146
- }
147
- }
148
- },
149
- watch: {
150
- container(value, oldValue) {
151
- if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
152
- if (this.$configProject['isPreview']) this.init(value)
153
- },
154
- need_tag: {
155
- deep: true,
156
- handler(n, o) {
157
- this.navKey = new Date().getTime()
158
- }
159
- },
160
- recommendName: {
161
- handler(n) {
162
- if(this.isPreview && n && this.allNavList.length > 0) {
163
- this.allNavList[0].category_name = n
164
- }
165
- }
166
- },
167
- },
168
- created() {
169
- this.init(this.container);
170
- this.isPreview = this.$configProject.isPreview;
171
- },
172
- methods: {
173
- onJfbLoad(options) {
174
- this.setNameSpace(options);
175
- this.onLoadStatus = true;
176
- },
177
- init(container) {
178
- this.listPath = getContainerPropsValue(container, 'content.listPath', {value: ""}).value;
179
- this.xnamespace = getContainerPropsValue(container, 'content.xnamespace', this.projectAttr.business_code);
180
- this.showRecommend = gCPVal(container, 'showRecommend', 'Y');
181
- this.need_tag = getContainerPropsValue(container, 'content.need_tag', null);
182
- this.categoryParentType = gCPVal(container, 'categoryParentType', 'root');
183
- this.categoryParent = gCPVal(container, 'categoryParent', '');
184
- this.recommendName = gCPVal(container, 'recommendName', '推荐');
185
- this.layoutStyle = gCPVal(container, 'layoutStyle', '1');
186
-
187
- // ===== 左侧导航样式 =====
188
- this.leftNavName = gCPVal(container, 'leftNavName', {
189
- color: '#333',
190
- actColor: this.mainColor,
191
- fontSize: '24rpx',
192
- actFontSize: '24rpx',
193
- fontWeight: 'normal',
194
- bgColor: '',
195
- borderStyle: 'solid'
196
- });
197
- this.leftNavItemSpacing = gCPVal(container, 'leftNavItemSpacing', 0);
198
- this.leftNavBgColor = gCPVal(container, 'leftNavBgColor', '#FFFFFF');
199
- this.leftNavBorder = gCPVal(container, 'leftNavBorder', 'none', {isBorder: true});
200
- this.leftNavRadius = gCPVal(container, 'leftNavRadius', '0', {sKey: "leftNavRadiusStatus"}) || 0;
201
- this.leftNavShadow = gCPVal(container, 'leftNavShadow', {width:20, color:'rgba(0,0,0,0)'}, {isShadow: true});
202
- this.leftNavPadding = gCPVal(container, 'leftNavPadding', {top:0, bottom:0, left:0, right:0}, {isPM: true, isCPM: true});
203
-
204
- // ===== 右侧导航样式 =====
205
- this.rightNavMargin = gCPVal(container, 'rightNavMargin', {top:24, bottom:24, left:24, right:24}, {sKey: "rightNavMarginStatus", isPMR: true});
206
- this.rightNavPadding = gCPVal(container, 'rightNavPadding', {top:0, bottom:0, left:0, right:0}, {isPM: true, isCPM: true});
207
- this.rightNavBgColor = gCPVal(container, 'rightNavBgColor', '#f8f8f8');
208
- this.rightNavIconSize = gCPVal(container, 'rightNavIconSize', 120, {sKey: "rightNavIconSizeStatus"});
209
- this.rightNavIconPadding = gCPVal(container, 'rightNavIconPadding', [12], {sKey: "rightNavIconPaddingStatus"});
210
- this.rightNavIconTextColor = gCPVal(container, 'rightNavIconTextColor', '#666');
211
- this.rightNavIconTextSize = gCPVal(container, 'rightNavIconTextSize', '24');
212
- this.rightNavIconRadius = gCPVal(container, 'rightNavIconRadius', '16', {sKey: "rightNavIconRadiusStatus"});
213
- this.rightNavIconBorder = gCPVal(container, 'rightNavIconBorder', {}, {isBorder: true});
214
- this.rightNavIconShadow = gCPVal(container, 'rightNavIconShadow', [{color: 'rgba(0,0,0,.15)', width: '10'},'none'], { isShadow: true});
215
- this.rightNavIconBgColor = gCPVal(container, 'rightNavIconBgColor', '');
216
- this.rightNavIconTextGap = gCPVal(container, 'rightNavIconTextGap', 10);
217
- console.log('rightNavIconShadow', this.rightNavIconShadow)
218
- },
219
- handleNavList(resolve) {
220
- try {
221
- jfbRootExec("getMallCategoryTree", {
222
- vm: this,
223
- data: {
224
- xnamespace: this.xnamespace,
225
- need_tag: this.need_tag,
226
- group_id: 'default',
227
- root_category_id: this.categoryParent || 0,
228
- }
229
- }).then(res => {
230
- this.loadingList = false;
231
- if(this.isPreview && !this.need_tag) {
232
- this.allNavList = this.allNavList.filter(item => {
233
- return item.category_id !== 5555
234
- })
235
- }
236
- if(this.isPreview && this.need_tag) {
237
- res.items.unshift({
238
- category_name: this.recommendName,
239
- category_id: 5555,
240
- category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/43cc2cb3c71edb6415ec8cb662693471.webp.jpg',
241
- parent_id: 2,
242
- tag: 'rec',
243
- children: [
244
- {
245
- category_name: '儿童车安全椅',
246
- category_id: 4337,
247
- category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/7a93387dedfc29f61745da6fc51517f4.jpg',
248
- parent_id: 4360,
249
- tag: 'rec',
250
- children: []
251
- },
252
- {
253
- category_name: '纸尿裤拉拉裤',
254
- category_id: 4338,
255
- category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/e3dc107d6c5fe5cce55a36f3631386da.png',
256
- parent_id: 4360,
257
- tag: '',
258
- children: []
259
- },
260
- {
261
- category_name: '营养辅食奶粉',
262
- category_id: 4339,
263
- category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/6a2edc1bf28f44671bdac27b73a0e0a5.jpg',
264
- parent_id: 4360,
265
- tag: '',
266
- children: []
267
- },
268
- {
269
- category_name: '孕产妇用品',
270
- category_id: 4340,
271
- category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/20c4d05eff9cb34757b42de770536c26.webp.jpg',
272
- parent_id: 4360,
273
- tag: '',
274
- children: []
275
- },
276
- {
277
- category_name: '婴童用品',
278
- category_id: 4342,
279
- category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/b8ec88d8b68a2cb50537a792820c6960.webp.jpg',
280
- parent_id: 4360,
281
- tag: '',
282
- children: []
283
- }
284
- ]
285
- })
286
- }
287
- let items = res.items.map(item => {
288
- //category_id === 0 时,认为是推荐分类
289
- if(item.category_id === 0) item.category_name = this.recommendName;
290
- item['category_icon'] = getServiceUrl(item['category_icon'], 'size3');
291
- item.children = item.children.map(child => {
292
- child['category_icon'] = getServiceUrl(child['category_icon'], 'size3');
293
- return child;
294
- });
295
- return item;
296
- });
297
- this.allNavList = items;
298
- resolve(items)
299
- }).catch(err => {
300
- this.$xdLog.catch(err);
301
- resolve([])
302
- })
303
- } catch (error) {
304
- this.$xdLog.catch(error);
305
- }
306
- },
307
- handleToDetail(item) {
308
- let params = `pid=${item.pid}&need_tag=${this.need_tag}`;
309
- if (item.cateId) {
310
- params += `&cateId=${item.cateId}`;
311
- }
312
- this.$xdUniHelper.navigateTo({
313
- url: `${this.listPath}?${params}`
314
- })
315
- },
316
- onJfbBack(options) {
317
- this.$xdUniHelper.navigateBack()
318
- },
319
- }
320
- }
321
- </script>
322
-
323
- <style scoped lang="less">
324
- @import "./JfbMallCategoryAllLess.less";
325
-
326
- .jfb-mall-category-all {
327
- &__body {
328
- position: relative;
329
- overflow: hidden;
330
- z-index: 2;
331
-
332
- .skeleton-wrap {
333
- display: flex;
334
- .type-left {
335
- width: 200rpx;
336
- display: flex;
337
- flex-direction: column;
338
- align-items: center;
339
-
340
- & > view {
341
- height: 110rpx;
342
- display: flex;
343
- align-items: center;
344
- }
345
- .cate-item {
346
- .skeleton-item(100rpx);
347
- }
348
- }
349
- .type-right {
350
- flex: 1;
351
- width: 100%;
352
- padding: 20rpx;
353
- .type_title {
354
- height: 100rpx;
355
- display: flex;
356
- align-items: center;
357
- & > view {
358
- .skeleton-item(150rpx);
359
- }
360
- margin-bottom: 20rpx;
361
- }
362
- .type_list {
363
- display: flex;
364
- justify-content: space-around;
365
- margin-bottom: 60rpx;
366
- .type_item {
367
- display: flex;
368
- flex-direction: column;
369
- align-items: center;
370
- & > view:first-child {
371
- .skeleton-item(120rpx, 120rpx, 50%);
372
- }
373
- & > view:last-child {
374
- .skeleton-item(100rpx, 24rpx);
375
- margin-top: 10rpx;
376
- }
377
- }
378
- }
379
- }
380
- }
381
- }
382
- }
383
- </style>
@@ -1,80 +0,0 @@
1
- /**
2
- * @desc 获取绝对路径完整地址
3
- * @param @path
4
- **/
5
- //例如:https://image.jufubao.cn/20220501010108/image/bg/default_gonghui_bg.png
6
- @basePath: 'business/';
7
- @doMain: '//sandbox-img.jufubao.cn/';
8
-
9
- .getBusinessImageUrl(@path, @size: 'size8') {
10
- @url: "@{doMain}@{basePath}@{path}?x-oss-process=style/@{size}";
11
- background-image: url(@url);
12
- }
13
-
14
- //start
15
- .jfb-mall-category-all {
16
- box-sizing: border-box;
17
-
18
- &__body{
19
- position: relative;
20
- overflow: hidden;
21
- z-index: 2
22
- }
23
-
24
- &.editx,&.editx:hover {
25
- position: relative;
26
- min-height: unit(100, rpx);
27
- z-index: 3;
28
- &::after {
29
- border: 2rpx dashed blue;
30
- content: " ";
31
- position: absolute;
32
- top:0;
33
- left:0;
34
- bottom:0;
35
- right:0;
36
- z-index: var(--preview-z-index);
37
- cursor: pointer;
38
- }
39
-
40
- }
41
-
42
-
43
- &__edit {
44
- cursor: pointer;
45
- position: absolute;
46
- right: unit(0, rpx);
47
- top: unit(0, rpx);
48
- height: unit(50, rpx);
49
- z-index: 100;
50
- display: flex;
51
- justify-content: center;
52
- align-items: center;
53
- background: rgba(0, 0, 0, .4);
54
- border-radius: 0 0 0 20rpx;
55
- box-shadow: 0 0 10px rbga(0, 0, 0, 0.3);
56
- color: #fff;
57
- font-size: unit(22, rpx);
58
- padding: 0 6rpx 0 6px;
59
-
60
- &-icon{
61
- padding: 0 unit(20, rpx);
62
- }
63
-
64
- &.editx {
65
- box-sizing: border-box;
66
-
67
- }
68
- }
69
- }
70
- //end
71
-
72
-
73
- /**notPreview**/
74
- .jfb-mall-category-all {
75
- //&:before {
76
- //content: " ";
77
- //display: table;
78
- //}
79
- }
80
- /**endNotPreview**/
@@ -1,30 +0,0 @@
1
- 'use strict';
2
-
3
-
4
- //@AttrImport
5
- import Attr from "./Attr";
6
- //@EndAttrImport
7
-
8
-
9
- export default {
10
- data() {
11
- return {
12
- //#ifdef H5
13
-
14
- //@AttrData
15
- Attr:{}, //对外开发编辑属性
16
- //@EndAttrData
17
-
18
- // #endif
19
- cssRoot: 'jfb-mall-category-all'
20
- }
21
- },
22
- created() {
23
-
24
- //@AttrDataCreated
25
- this.Attr = this.$xdUniHelper.customClone(Attr);
26
- //@EndAttrDataCreated
27
-
28
-
29
- },
30
- }