jufubao-base 1.0.289-beta2 → 1.0.290-beta1

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.
Files changed (28) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseFooter/Attr.js +155 -10
  3. package/src/components/JfbBaseFooter/JfbBaseFooter.vue +43 -96
  4. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetail.vue +14 -2
  5. package/src/components/JfbBaseTfkSearch/Api.js +0 -15
  6. package/src/components/JfbBaseTfkSearch/CustomList.vue +0 -10
  7. package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +7 -247
  8. package/src/components/JfbBaseUserInfo/Attr.js +0 -12
  9. package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +2 -8
  10. package/src/mixins/componentsMixins.js +55 -363
  11. package/src/mixins/posterMixins.js +199 -27
  12. package/src/components/CusCouponChose/CusCouponChose.vue +0 -1027
  13. package/src/components/CusCouponItem/CusCouponItem.vue +0 -298
  14. package/src/components/CusEnter/CusEnter.vue +0 -360
  15. package/src/components/CusPoster/CusPoster.vue +0 -212
  16. package/src/components/CusPoster/CusSwiperDot.vue +0 -234
  17. package/src/components/CusProduct/CusProduct.vue +0 -372
  18. package/src/components/CusShops/CusShops.vue +0 -518
  19. package/src/components/CusSwiperDot/CusSwiperDot.vue +0 -234
  20. package/src/components/CusTab/CusTab.vue +0 -411
  21. package/src/components/CusVideo/CusVideo.vue +0 -170
  22. package/src/components/JfbBaseFooter/cusAttr/advanced.js +0 -12
  23. package/src/components/JfbBaseFooter/cusAttr/content.js +0 -447
  24. package/src/components/JfbBaseFooter/cusAttr/style.js +0 -7
  25. package/src/components/JfbBaseFooter/cusAttr/tools.js +0 -17
  26. package/src/components/JfbBaseTfkSearch/XdQueryFilter.vue +0 -354
  27. package/src/components/JfbBaseTfkSearch/XdQuerySort.vue +0 -192
  28. package/src/mixins/productCompMixins.js +0 -252
@@ -1,170 +0,0 @@
1
- <template>
2
- <view class="video-box">
3
- <view class="thumb" :class="{noImageUrl: !imageUrl}" v-if="!playStatus">
4
- <image :src="imageUrl" v-if="imageUrl" />
5
- <view v-if="videoUrl" @click="handlePlay()">
6
- <xd-font-icon
7
- :icon="iconFont"
8
- size="100"
9
- color="#fff"
10
- ></xd-font-icon>
11
- </view>
12
- </view>
13
- <view
14
- class="video"
15
- :style="{borderRadius: radius + 'rpx'}"
16
- v-else
17
- >
18
- <video
19
- v-if="videoUrl"
20
- :src="videoUrl"
21
- :autoplay="autoplay === 'Y'"
22
- @ended="handleEnd()"
23
- @error="handleError"
24
- ></video>
25
- </view>
26
- </view>
27
- </template>
28
-
29
- <script>
30
- import getServiceUrl from '@/common/getServiceUrl'
31
- import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
32
-
33
- export default {
34
- name:'CusVideo',
35
- components:{
36
- XdFontIcon
37
- },
38
- props:{
39
- margin:{
40
- type: Object,
41
- default(){
42
- return {}
43
- }
44
- },
45
- poster:{
46
- type:Object,
47
- required: true
48
- },
49
- radius:{
50
- type: String|Number,
51
- default: 0
52
- },
53
- video:{
54
- type:Object,
55
- required: true
56
- },
57
- },
58
- data(){
59
- return {
60
- isPreview: false,
61
-
62
- //play
63
- imageUrl: '',
64
- videoUrl: '',
65
- playStatus: false,
66
- autoplay: 'N',
67
- }
68
- },
69
- computed: {
70
- iconFont(){
71
- if(this.autoplay === 'N') return 'iconplayright'
72
- if(this.autoplay === 'E') return 'iconshibai';
73
- if(this.autoplay === 'R') return 'iconplayreplay';
74
- },
75
- },
76
- watch:{
77
- poster(){
78
- this.init();
79
- }
80
- },
81
- created() {
82
- this.isPreview = this.$configProject.isPreview;
83
- this.init();
84
- },
85
- methods:{
86
- init(){
87
- if(this.poster.size) {
88
- this.width = Number(this.poster.size.width);
89
- this.height = Number(this.poster.size.height);
90
- }
91
-
92
- let {image_url, thumb} = this.video;
93
- if(image_url) this.videoUrl = getServiceUrl(image_url);
94
- if(thumb) this.imageUrl = getServiceUrl(thumb);
95
- },
96
- handlePlay(){
97
- if(this.autoplay === 'E') return;
98
- this.playStatus = !this.playStatus;
99
- this.autoplay = "Y";
100
- },
101
-
102
- handleEnd(){
103
- setTimeout(()=>{
104
- this.playStatus = !this.playStatus;
105
- this.autoplay = "R";
106
- }, 1000)
107
- },
108
-
109
- handleError(){
110
- this.$xdConfirm({
111
- title: '温馨提示',
112
- content:'当前视频资源无法播放',
113
- cancel: false,
114
- confirmText:'我知道了',
115
- zIndex:10000,
116
- success:()=>{
117
- this.playStatus = !this.playStatus;
118
- this.autoplay = "R";
119
- }
120
- })
121
-
122
- }
123
- }
124
- }
125
- </script>
126
-
127
-
128
-
129
- <style scoped lang="less">
130
- .video-box {
131
- width: 100%;
132
- height: 100%;
133
- box-sizing: border-box;
134
- view.noImageUrl {
135
- background: rgba(0,0,0,.6);
136
- }
137
- view.thumb {
138
- height: 100%;
139
- width: 100%;
140
- position: relative;
141
- overflow: hidden;
142
-
143
- & > view {
144
- width: 120rpx;
145
- height: 120rpx;
146
- position: absolute;
147
- top: 50%;
148
- left: 50%;
149
- margin-top: -60rpx;
150
- margin-left:-60rpx;
151
- }
152
-
153
- & > image {
154
- height: 100%;
155
- width: 100%;
156
- }
157
- }
158
-
159
- view.video {
160
- overflow: hidden;
161
- height: 100%;
162
- width: 100%;
163
-
164
- & video {
165
- height: 100%;
166
- width: 100%;
167
- }
168
- }
169
- }
170
- </style>
@@ -1,12 +0,0 @@
1
- 'use strict';
2
-
3
- import ICONS from "@/ICONS";
4
- import tools from "./tools";
5
-
6
- export default (data, gValue, gColor, oldData={})=>{
7
- const {footerSettingImage, footerSetting} = tools(data);
8
- return [
9
-
10
- ]
11
- }
12
-
@@ -1,447 +0,0 @@
1
- 'use strict';
2
-
3
- import tools from "./tools";
4
- import ICONS from "@/ICONS";
5
- import {
6
- dataVal,
7
- customVal,
8
- statusDataVal,
9
- statusShow
10
- } from "@/utils/AttrTools";
11
-
12
- export default function (data, gValue, gColor, oldData){
13
- const {footerSettingImage, footerSetting} = tools(data);
14
-
15
- let footerTpl = dataVal({data, key:'footerTpl', dValue:'normal', gValue});
16
-
17
-
18
- let iconStyle = {
19
- cusColor:{
20
- iconColor: '#333',
21
- color: '#333'
22
- },
23
- cusActColor:{
24
- iconColor: gColor.mainColor,
25
- color:gColor.mainColor
26
- }
27
- }
28
- if(data.color) {
29
- iconStyle['cusColor'] = {
30
- iconColor: data.color,
31
- color: data.color
32
- }
33
- }
34
- if(data.selectedColor) {
35
- iconStyle['cusActColor'] = {
36
- iconColor: data.selectedColor,
37
- color: data.selectedColor
38
- }
39
- }
40
- if(data.iconStyle !== undefined) iconStyle = data.iconStyle;
41
-
42
-
43
- return [
44
- {
45
- label: '',
46
- ele: 'slot',
47
- slot: 'is_reference_title',
48
- groupKey: 'content',
49
- labelInline:true,
50
- },
51
- {
52
- ele: 'title',
53
- label: '基础',
54
- size: 'small',
55
- groupKey:'content',
56
- },
57
- {
58
- label: "组件样式",
59
- ele: "xd-style-image",
60
- groupKey: 'content',
61
- valueKey: "footerTpl",
62
- value: dataVal({data, key:'footerTpl', dValue:'normal', gValue}),
63
- labelInline:true,
64
- className: 'input100',
65
- handleCustom(cusRes) {
66
- XdBus.getParentApi('getCompStylesOptions')({
67
- layout_ids: 'lynkWnvoDmMLIdOR1AhSt',
68
- key: Date.now()
69
- })
70
- .then(res => {
71
- cusRes.data.cb(res)
72
- })
73
- .catch(error => {
74
- console.error(error);
75
- });
76
- },
77
- },
78
-
79
- footerTpl === 'itemCenterBig'&&{ele: 'group_start'},
80
- {
81
- label: '中间图标',
82
- ele: 'xd-radio',
83
- groupKey: 'content',
84
- valueKey: 'iconCenterStatus',
85
- value: statusDataVal({data, key:'iconCenterStatus', fields:['centerColor','centerWidth'],gValue}),
86
- hidden: !(footerTpl === 'itemCenterBig'),
87
- labelInline:true,
88
- list: [
89
- {label: '默认', value: 'D'},
90
- {label: '自定义', value: 'C'},
91
- ]
92
- },
93
- {
94
- label: '边框大小',
95
- ele: 'el-input',
96
- type: 'number',
97
- groupKey: 'content',
98
- valueKey: 'centerWidth',
99
- cusStyle: {paddingLeft: '80px'},
100
- labelInline:true,
101
- value: dataVal({data, key:'centerWidth', dValue:12, gValue}),
102
- hidden:!(footerTpl === 'itemCenterBig') || !statusShow({data, key: 'iconCenterStatus', fields:['centerColor','centerWidth'], gValue}),
103
- className: 'input100',
104
- },
105
- {
106
- label: '边框颜色',
107
- ele: 'xd-color',
108
- valueKey: 'centerColor',
109
- groupKey:'content',
110
- labelInline:true,
111
- cusStyle: {paddingLeft: '80px'},
112
- value: dataVal({data, key:'centerColor', dValue:'', gValue}),
113
- hidden:!(footerTpl === 'itemCenterBig') || !statusShow({data, key: 'iconCenterStatus', fields:['centerColor','centerWidth'], gValue}),
114
- placeholder: '请选择边框颜色',
115
- setting: {
116
- showAlpha: true
117
- },
118
- className: 'input100',
119
- },
120
- footerTpl === 'itemCenterBig'&& {ele: 'group_end'},
121
-
122
- {
123
- label: "菜单名称",
124
- ele: "xd-radio",
125
- valueKey: "isShowTitle",
126
- labelInline:true,
127
- value: dataVal({data, key:'isShowTitle', dValue:'Y', gValue}),
128
- groupKey:'content',
129
- list: [
130
- {"label": "显示", "value": "Y"},
131
- {"label": "隐藏", "value": "N"},
132
- ],
133
- },
134
-
135
- {
136
- label: '图标配色',
137
- ele: 'xd-radio',
138
- groupKey: 'content',
139
- valueKey: 'iconStyleStatus',
140
- value: statusDataVal({data, key:'iconStyleStatus', fields:['iconStyle','color','selectedColor'],gValue}),
141
- labelInline:true,
142
- list: [
143
- {label: '默认', value: 'D'},
144
- {label: '自定义', value: 'C'},
145
- ]
146
- },
147
- {ele: 'group_start'},
148
- {
149
- label: '',
150
- ele: 'xd-text-and-bgc',
151
- groupKey:'content',
152
- valueKey: 'iconStyle',
153
- value: iconStyle,
154
- hidden: !statusShow({data, key: 'iconStyleStatus', fields:['iconStyle','color','selectedColor'], gValue}),
155
- labelInline:true,
156
- setting: {
157
- fontSize: false,
158
- weight:false,
159
- bgColor: false,
160
- selected:true,
161
- color: false,
162
- cusColor: [
163
- {label: '图标色', value: 'iconColor'},
164
- {label: '文字色', value: 'color'},
165
- ],
166
- default:{
167
- cusColor:{
168
- iconColor: '#333',
169
- color: '#333'
170
- },
171
- cusActColor:{
172
- color: gColor.mainColor,
173
- iconColor: gColor.mainColor
174
- }
175
- }
176
- },
177
- handleCustom({action, data}) {
178
- XdBus.getParentApi('getOptionsSettingList')({setting_id: 'edtix_style_font_size'})
179
- .then(res => {
180
- data.cb(res.list)
181
- })
182
- .catch(error => {
183
- console.error(error);
184
- data.cb([])
185
- });
186
- },
187
- },
188
- {ele: 'group_end'},
189
-
190
- {
191
- label: '导航样式',
192
- ele: 'xd-radio',
193
- groupKey: 'content',
194
- valueKey: 'navStatus',
195
- value: statusDataVal({data, key:'navStatus', fields:['backgroundImage','bgColor','borderColor'], gValue}),
196
- labelInline:true,
197
- list: [
198
- {label: '默认', value: 'D'},
199
- {label: '自定义', value: 'C'},
200
- ]
201
- },
202
- {ele: 'group_start'},
203
- {
204
- label: '背景色',
205
- ele: 'xd-color',
206
- valueKey: 'bgColor',
207
- groupKey:'content',
208
- value: dataVal({data, key:'bgColor', dValue:'', gValue}),
209
- hidden:!statusShow({data, key: 'navStatus', fields:['bgColor','backgroundImage','borderColor'], gValue}),
210
- labelInline:true,
211
- placeholder: '请选择背景颜色',
212
- setting: {
213
- showAlpha: true
214
- },
215
- classNmae: 'input800',
216
- },
217
- {
218
- label: '边框色:',
219
- ele: 'xd-color',
220
- valueKey: 'borderColor',
221
- groupKey:'content',
222
- value: dataVal({data, key:'borderColor', dValue:'', gValue}),
223
- hidden:!statusShow({data, key: 'navStatus', fields:['bgColor','backgroundImage','borderColor'], gValue}),
224
- placeholder: '请选择边框颜色',
225
- labelInline:true,
226
- setting: {
227
- showAlpha: true
228
- },
229
- classNmae: 'input800',
230
- },
231
- {
232
- label: '背景图',
233
- labelInline:true,
234
- ele: 'xd-upload',
235
- valueKey: 'backgroundImage',
236
- groupKey:'content',
237
- value: dataVal({data, key:'backgroundImage', dValue:{}, gValue}),
238
- hidden:!statusShow({data, key: 'navStatus', fields:['bgColor','backgroundImage','borderColor'], gValue}),
239
- defaultValue: dataVal({data, key:'backgroundImage', dValue:null, gValue}),
240
- slot: true,
241
- oneWidth: 260,
242
- oneHeight: 260*110/750,
243
- elinputClassName: 'input40',
244
- tipsformet: '<span style="font-size: 12px; color: #999">上传文件格式:@imageType@,不超过@size@MB。建议尺寸:<span style="color:red">750*110</span>像素</span>',
245
- type: ['jpg', 'png', 'jpeg'],
246
- styleType: 'one',
247
- uploadType: 'aliyun',
248
- size: .5,
249
- action: 'action',
250
- sort: true,
251
- maxlen: 1,
252
- },
253
- {ele: 'group_end'},
254
- //--弃用-----
255
- {
256
- label: '菜单图片配置:',
257
- ele: 'xd-footer-setting',
258
- valueKey: 'footerSettingImage',
259
- groupKey:'content',
260
- value: footerSettingImage,
261
- hidden: true,
262
- setting: {
263
- router: XdBus.getParentApi('getPagesTree'),
264
- hideAdd: true,
265
- showField: {
266
- path: true,
267
- icon: false,
268
- notice: false,
269
- image: true,
270
- actImage: true
271
- },
272
- disabel:{
273
- path: true,
274
- icon: true,
275
- notice: true,
276
- image: true,
277
- actImage: true
278
- },
279
- },
280
- handleCustom({action,data}){
281
- if(action === 'number') {
282
- XdBus.getParentApi('getOptionsNoticeNumber')()
283
- .then(res => {
284
- data.cb(res.list)
285
- })
286
- .catch();
287
- }
288
- },
289
- },
290
- {
291
- label: '选中',
292
- ele: 'xd-color',
293
- valueKey: 'selectedColor',
294
- groupKey:'content',
295
- labelInline:true,
296
- hidden: true,
297
- setting: {
298
- showAlpha: true
299
- },
300
- value: dataVal({data, key:'selectedColor', dValue:'', gValue}),
301
- placeholder: '请选择菜单文字选中颜色',
302
- classNmae: 'input100',
303
- },
304
- {
305
- label: '未选中',
306
- ele: 'xd-color',
307
- valueKey: 'color',
308
- groupKey:'content',
309
- value: dataVal({data, key:'color', dValue:'', gValue}),
310
- hidden: true,
311
- labelInline:true,
312
- setting: {
313
- showAlpha: true
314
- },
315
- placeholder: '请选择菜单文字颜色',
316
- classNmae: 'input100',
317
- },
318
- //--弃用-----
319
- {
320
- ele: 'title',
321
- label: '菜单内容',
322
- size: 'small',
323
- groupKey:'content',
324
- },
325
- {
326
- label: '',
327
- ele: 'xd-footer-new-setting',
328
- valueKey: 'footer-setting',
329
- groupKey:'content',
330
- value: footerSetting,
331
- labelInline:true,
332
- hidden: !(dataVal({data, key:'footerTpl', dValue:'normal', gValue}) === 'normal') ,
333
- cusStyle: {marginLeft: 0,paddingLeft:0,paddingRight:0},
334
- setting: {
335
- router: XdBus.getParentApi('getPagesTree'),
336
- icons:ICONS,
337
- mode: 'new',
338
- tplMode: footerTpl,
339
- iconColor:{
340
- color: data['iconStyleStatus'] === 'D'? '#333': iconStyle.cusColor.iconColor,
341
- actColor : data['iconStyleStatus'] === 'D'?gColor.mainColor: iconStyle.cusActColor.iconColor
342
- },
343
- showField: {
344
- path: true,
345
- icon: true,
346
- notice: true,
347
- }
348
- },
349
- handleCustom({action,data}){
350
- console.log(`handleCustom.${action}`, data);
351
- if(action === 'number') {
352
- XdBus.getParentApi('getOptionsNoticeNumber')()
353
- .then(res => {
354
- data.cb(res.list)
355
- })
356
- .catch();
357
- }
358
- },
359
- className: 'input100',
360
- rules: [
361
- {
362
- required: false,
363
- validator: (rule, value, callback) => {
364
- let setTpl = dataVal({data, key:'footerTpl', dValue:'normal', gValue});
365
- if(setTpl === 'normal') {
366
- if(value && value.length === 0) callback('请设置菜单');
367
- else callback();
368
- }
369
- else callback()
370
- },
371
- trigger: ['blur','change']
372
- }
373
- ],
374
- },
375
- {
376
- label: '',
377
- ele: 'xd-footer-new-setting',
378
- valueKey: 'footer-setting-center-big',
379
- groupKey:'content',
380
- value: dataVal({data, key:'footer-setting-center-big', dValue:[], gValue}),
381
- labelInline:true,
382
- cusStyle: {marginLeft: 0,paddingLeft:0},
383
- setting: {
384
- router: XdBus.getParentApi('getPagesTree'),
385
- icons:ICONS,
386
- mode: 'new',
387
- tplMode: footerTpl,
388
-
389
- showField: {
390
- path: true,
391
- icon: true,
392
- notice: true,
393
- }
394
- },
395
- handleCustom({action,data}){
396
- console.log(`handleCustom.${action}`, data);
397
- if(action === 'number') {
398
- XdBus.getParentApi('getOptionsNoticeNumber')()
399
- .then(res => {
400
- data.cb(res.list)
401
- })
402
- .catch();
403
- }
404
- },
405
- hidden: !(dataVal({data, key:'footerTpl', dValue:'normal', gValue}) === 'itemCenterBig'),
406
- rules: [
407
- {
408
- required: false,
409
- validator: (rule, value, callback) => {
410
- let setTpl = dataVal({data, key:'footerTpl', dValue:'normal', gValue});
411
- if(setTpl === 'itemCenterBig') {
412
- if(value && value.length === 0) callback('请设置菜单');
413
- else callback();
414
- }
415
- else callback()
416
- },
417
- trigger: 'blur'
418
- }
419
- ],
420
- className: 'input100',
421
- },
422
- {
423
- label: '版本号:',
424
- ele: 'el-input',
425
- type: 'text',
426
- groupKey: 'content',
427
- valueKey: 'version',
428
- value: 'v2.0',
429
- hidden: true,
430
- },
431
- {
432
- label: '引用过滤字段设置:',
433
- ele: 'el-input',
434
- type: 'text',
435
- groupKey: 'content',
436
- valueKey: 'refFilterContent',
437
- value: '[]',
438
- hidden: true,
439
- },
440
- {
441
- label: '',
442
- ele: 'slot',
443
- slot: 'is_reference',
444
- groupKey: 'content',
445
- },
446
- ].filter(i=>i)
447
- }
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- export default function (data, gValue,gColor,oldData){
4
- return [
5
- ].filter(i=>i)
6
- }
7
-
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- export default (data)=>{
4
- let footerSettingImage = [];
5
- let footerSetting = []
6
- if(data['footerSettingImage'] && data['footerSettingImage'].length > 0 ) {
7
- footerSettingImage = data['footerSettingImage'];
8
- }
9
- if(data['footer-setting'] && data['footer-setting'].length > 0){
10
- footerSetting = data['footer-setting'];
11
- footerSetting.map((item,index)=>{
12
- if(!footerSettingImage[index]) footerSettingImage[index] = {};
13
- footerSettingImage[index] = Object.assign({},JSON.parse(JSON.stringify(item)),footerSettingImage[index])
14
- })
15
- }
16
- return {footerSettingImage, footerSetting}
17
- }