jufubao-base 1.0.169-beta12 → 1.0.169-beta13

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-base",
3
- "version": "1.0.169-beta12",
3
+ "version": "1.0.169-beta13",
4
4
  "private": false,
5
5
  "description": "聚福宝业务组件基础插件包",
6
6
  "main": "index.js",
@@ -333,7 +333,7 @@ export default {
333
333
  label: "票券高度",
334
334
  ele: "el-input",
335
335
  valueKey: 'cardHeight',
336
- value: data.cardHeight || 260,
336
+ value: data.cardHeight || 340,
337
337
  type: 'number',
338
338
  groupKey:'style',
339
339
  placeholder: "请输入票券高度",
@@ -147,7 +147,7 @@
147
147
  cardInfoMargin: {},
148
148
  cardInfoPadding: {},
149
149
  cardImageUrl: "",
150
- cardHeight: 260,
150
+ cardHeight: 340,
151
151
  cardRadius: 10,
152
152
  bussPadding: {},
153
153
  bussMargin: {},
@@ -346,7 +346,7 @@
346
346
  this.cardInfoMargin = getContainerPropsValue(value, 'content.cardInfoMargin', {top: 20, left: 20, right: 20, bottom: 20});
347
347
  this.cardInfoPadding = getContainerPropsValue(value, 'content.cardInfoPadding', {top: 20, left: 20, right: 20, bottom: 20});
348
348
  this.cardImageUrl = getContainerPropsValue(value, 'content.cardImageUrl', '');
349
- this.cardHeight = getContainerPropsValue(value, 'content.cardHeight', 260);
349
+ this.cardHeight = getContainerPropsValue(value, 'content.cardHeight', 340);
350
350
  this.cardRadius = getContainerPropsValue(value, 'content.cardRadius', 16);
351
351
  this.bussPadding = getContainerPropsValue(value, 'content.bussPadding', {top: 20, left: 20, right: 20, bottom: 20});
352
352
  this.bussMargin = getContainerPropsValue(value, 'content.bussMargin', {top: 20, left: 20, right: 20, bottom: 20});
@@ -572,6 +572,7 @@
572
572
  flex-direction: column;
573
573
  justify-content: space-between;
574
574
  font-size: 26rpx;
575
+ box-sizing: border-box;
575
576
  .card_top{
576
577
  display: flex;
577
578
  flex-direction: column;
@@ -5,7 +5,10 @@
5
5
  >
6
6
  <view class="module_title" :style="moduleItemTitleStyle">{{ parent.name }}</view>
7
7
  <view v-if="parent.type !== 'product'" class="module_cont">
8
- <view v-for="(item, i) in parent.items" :key="i">
8
+ <view v-for="(item, i) in parent.items" :key="item.key"
9
+ class="module_cont_inner"
10
+ :style="moduleItemContStyle"
11
+ >
9
12
  <content-cinema v-if="parent.type === 'cinema'"
10
13
  style="width: 100%; height: 100%"
11
14
  :keyword="keyword"
@@ -48,11 +51,11 @@
48
51
  </view>
49
52
  </view>
50
53
  <view v-else class="module_cont product_wrap">
51
- <view v-for="(item, i) in parent.items" :key="i"
52
- :style="{
53
- width: getProductCell(parent.tab) == 2 ? (outItemProduct + 'rpx'): '100%',
54
- marginBottom: $parentVm.outSpacing + 'rpx',
55
- }"
54
+ <view v-for="(item, i) in parent.items" :key="item.key"
55
+ class="module_cont_inner"
56
+ :style="[moduleItemContStyle, {
57
+ width: getProductCell(parent.tab) == 2 ? `calc(50% - ${$parentVm.allModuleItemContMargin/2}rpx)`: '100%',
58
+ }]"
56
59
  >
57
60
  <content-product v-if="parent.type === 'product'"
58
61
  style="width: 100%; height: 100%"
@@ -109,6 +112,7 @@
109
112
  return str
110
113
  },
111
114
  moduleItemStyle(){
115
+ const { allModuleRadius } = this.$parentVm;
112
116
  let padding = `${this.$parentVm.checkValue(this.$parentVm.allModulePadding.top, 20)}rpx`;
113
117
  padding = `${padding} ${this.$parentVm.checkValue(this.$parentVm.allModulePadding.right, 20)}rpx`;
114
118
  padding = `${padding} ${this.$parentVm.checkValue(this.$parentVm.allModulePadding.bottom, 20)}rpx`;
@@ -117,7 +121,8 @@
117
121
  return this.styleObjectToString({
118
122
  background: this.$parentVm.allListBgColor,
119
123
  padding: padding,
120
- marginBottom: this.$parentVm.allModuleMargin + 'rpx'
124
+ marginBottom: this.$parentVm.allModuleMargin + 'rpx',
125
+ borderRadius: allModuleRadius + 'rpx',
121
126
  })
122
127
  },
123
128
  moduleItemTitleStyle(){
@@ -136,6 +141,35 @@
136
141
 
137
142
  return this.styleObjectToString(style);
138
143
  },
144
+ moduleItemContStyle(){
145
+ let {
146
+ allModuleItemContBorder, allModuleItemContShadow, allModuleItemContPadding, allModuleItemContMargin,
147
+ allModuleItemContRadius, allModuleItemContBgColor
148
+ } = this.$parentVm;
149
+ let border = "none";
150
+ let boxShadow = "none";
151
+ if(allModuleItemContBorder && allModuleItemContBorder.type === 'Y'){
152
+ let { width, color } = allModuleItemContBorder.value;
153
+ border = `${width}rpx solid ${color}`;
154
+ }
155
+ if(allModuleItemContShadow && allModuleItemContShadow.type === 'Y'){
156
+ let { width, color } = allModuleItemContShadow.value;
157
+ boxShadow = `0 0 ${width}rpx ${color}`;
158
+ }
159
+ let padding = `${this.$parentVm.checkValue(allModuleItemContPadding.top, 20)}rpx`;
160
+ padding = `${padding} ${this.$parentVm.checkValue(allModuleItemContPadding.right, 20)}rpx`;
161
+ padding = `${padding} ${this.$parentVm.checkValue(allModuleItemContPadding.bottom, 20)}rpx`;
162
+ padding = `${padding} ${this.$parentVm.checkValue(allModuleItemContPadding.left, 20)}rpx`;
163
+ console.log("allModuleItemContShadow", allModuleItemContShadow)
164
+ return this.styleObjectToString({
165
+ padding: padding,
166
+ border: border,
167
+ borderRadius: allModuleItemContRadius + 'rpx',
168
+ boxShadow: boxShadow,
169
+ marginBottom: allModuleItemContMargin + 'rpx',
170
+ background: allModuleItemContBgColor,
171
+ })
172
+ },
139
173
  moduleMoreStyle(){
140
174
  let allModuleMoreStyle = this.$parentVm.allModuleMoreStyle;
141
175
  let style = {};
@@ -150,6 +184,7 @@
150
184
  },
151
185
  outItemProduct(){
152
186
  //获取每列元素最大宽度
187
+ // return 300;
153
188
  let num = (750 - 3 * Number(this.$parentVm.outSpacing))/2;
154
189
  num = num - this.$parentVm.checkValue(this.$parentVm.contMargin.right, 20) - this.$parentVm.checkValue(this.$parentVm.contMargin.left, 20);
155
190
  return num - this.$parentVm.contBorderWidth * 2
@@ -178,7 +213,7 @@
178
213
  this.getList();
179
214
  },
180
215
  methods: {
181
- getProductCell(str){
216
+ getProductCell(str = ''){
182
217
  let cellNum = str.split("@")[3] || 1;
183
218
  return Number(cellNum);
184
219
  },
@@ -207,7 +242,13 @@
207
242
  this.$emit('on-list', {
208
243
  params: params,
209
244
  cb:(list)=>{
210
- this.list = list || [];
245
+ this.list = (list || []).map(parent => {
246
+ parent.items = parent.items.map(item => {
247
+ item['key'] = item.product_id || item.resource_shop_id || item.cinema_id || item.film_id;
248
+ return item;
249
+ })
250
+ return parent;
251
+ });
211
252
  this.$xdHideLoading();
212
253
  }
213
254
  })
@@ -237,6 +278,10 @@
237
278
  justify-content: space-between;
238
279
  flex-wrap: wrap;
239
280
  }
281
+
282
+ .module_cont_inner{
283
+ box-sizing: border-box;
284
+ }
240
285
  }
241
286
  .module_more{
242
287
  display: flex;
@@ -249,7 +294,7 @@
249
294
  display: flex;
250
295
  justify-content: center;
251
296
  align-items: center;
252
- height: 80rpx;
297
+ height: 70rpx;
253
298
  width: 200rpx;
254
299
  border-radius: 80rpx;
255
300
  }
@@ -141,13 +141,13 @@ export default {
141
141
  notice: '设置内边距,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">20</span>像素',
142
142
  },
143
143
  {
144
- label: "全部-列表样式配置",
144
+ label: "全部-业务板块样式配置",
145
145
  ele: "title",
146
146
  groupKey:'style',
147
147
  size: "small",
148
148
  },
149
149
  {
150
- label: "列表背景色",
150
+ label: "业务板块背景色",
151
151
  ele: "xd-color",
152
152
  valueKey: 'allListBgColor',
153
153
  value: data['allListBgColor'] || '#FFFFFF',
@@ -167,6 +167,25 @@ export default {
167
167
  inline: false,
168
168
  notice: '设置内边距,<span style="color: red">单位:像素</span>。',
169
169
  },
170
+ {
171
+ label: "业务板块圆角",
172
+ ele: 'xd-site-select-list',
173
+ valueKey: 'allModuleRadius',
174
+ value: data['allModuleRadius'] || 0,
175
+ groupKey:'style',
176
+ placeholder: '请选择内容圆角设置',
177
+ multiple: false,
178
+ className: 'input80',
179
+ handleCustom({ action, data }) {
180
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
181
+ .then(res => {
182
+ data.cb(res.list)
183
+ })
184
+ .catch(error => {
185
+ console.error(error);
186
+ });
187
+ },
188
+ },
170
189
  {
171
190
  label: "业务板块标题样式",
172
191
  ele: "xd-radio",
@@ -220,9 +239,107 @@ export default {
220
239
  groupKey: "style",
221
240
  type: "number",
222
241
  },
223
-
242
+ {
243
+ label: "全部 - 列表单个样式配置",
244
+ ele: "title",
245
+ groupKey:'style',
246
+ size: "small",
247
+ },
248
+ {
249
+ label: "业务板块列表单个背景色",
250
+ ele: "xd-color",
251
+ valueKey: 'allModuleItemContBgColor',
252
+ value: data['allModuleItemContBgColor'] || '#FFFFFF',
253
+ groupKey:'style',
254
+ },
255
+ {
256
+ label: "业务板块列表单个间距",
257
+ ele: "el-input",
258
+ valueKey: "allModuleItemContMargin",
259
+ value: data.allModuleItemContMargin || 20,
260
+ groupKey:'style',
261
+ type: "number",
262
+ },
263
+ {
264
+ label: "业务板块列表单个边框",
265
+ ele: "xd-border",
266
+ valueKey: 'allModuleItemContBorder',
267
+ value: data['allModuleItemContBorder'] || null,
268
+ groupKey:'style',
269
+ },
270
+ {
271
+ label: "业务板块列表单个阴影",
272
+ ele: "xd-shadow",
273
+ groupKey:'style',
274
+ valueKey: 'allModuleItemContShadow',
275
+ value: data['allModuleItemContShadow'] || null,
276
+ handleCustom({action, data}) {
277
+ XdBus.getParentApi('getOptionsSettingList')({setting_id: 'edtix_style_radius'})
278
+ .then(res => {
279
+ data.cb(res.list)
280
+ })
281
+ .catch(error => {
282
+ console.error(error);
283
+ data.cb([])
284
+ });
285
+ },
286
+ },
287
+ {
288
+ label: "业务板块列表单个内边距",
289
+ ele: "xd-margin-padding",
290
+ valueKey: "allModuleItemContPadding",
291
+ value: data['allModuleItemContPadding'] || null,
292
+ groupKey:'style',
293
+ setting: {
294
+ type: 'padding',
295
+ },
296
+ placeholder: '请设置内边距',
297
+ inline: false,
298
+ notice: '设置内边距,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">20</span>像素',
299
+ },
300
+ {
301
+ label: "业务板块列表单个圆角",
302
+ ele: 'xd-site-select-list',
303
+ valueKey: 'allModuleItemContRadius',
304
+ value: data.allModuleItemContRadius || 16,
305
+ groupKey:'style',
306
+ placeholder: '请选择内容圆角设置',
307
+ multiple: false,
308
+ className: 'input80',
309
+ handleCustom({ action, data }) {
310
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
311
+ .then(res => {
312
+ data.cb(res.list)
313
+ })
314
+ .catch(error => {
315
+ console.error(error);
316
+ });
317
+ },
318
+ },
224
319
 
225
320
  {
321
+ label: '选择综合入口类型:',
322
+ ele: 'xd-site-select-list',
323
+ valueKey: 'entryGroupId',
324
+ value: data.entryGroupId || 'default',
325
+ placeholder: '请选择综合入口类型',
326
+ multiple: false,
327
+ groupKey:'content',
328
+ className: 'input50',
329
+ rules: [
330
+ {required: true, message: '请选择综合入口类型', trigger: ['blur', 'change']}
331
+ ],
332
+ handleCustom({action, data}) {
333
+ XdBus.getParentApi('getEntryGroupOption')({key: Date.now()})
334
+ .then(res => {
335
+ data.cb(res.list)
336
+ })
337
+ .catch(error => {
338
+ console.error(error);
339
+ });
340
+ },
341
+ },
342
+ data.entryGroupId && {
226
343
  label: "搜索范围",
227
344
  ele: "xd-search-setting-options",
228
345
  valueKey: 'searchScope',
@@ -231,8 +348,11 @@ export default {
231
348
  placeholder: '请选择内容圆角设置',
232
349
  multiple: false,
233
350
  className: 'input80',
351
+ setting: {
352
+ group_id: data.entryGroupId || 'default',
353
+ },
234
354
  handleCustom({ action, data }) {
235
- XdBus.getParentApi('getSearchSettingOptions')()
355
+ XdBus.getParentApi('getSearchSettingOptions')({group_id: 'default', ...data.params})
236
356
  .then(res => {
237
357
  data.cb(res.list)
238
358
  })
@@ -100,12 +100,10 @@
100
100
  },
101
101
  methods:{
102
102
  handleDetail(item){
103
- console.log('handleDetail.item',item,item.id);
104
- this.$emit('on-film-detail',item.id);
103
+ this.$emit('on-film-detail',item);
105
104
  },
106
105
  handleBuy(item){
107
- console.log('handleDetail.item',item,item.id);
108
- this.$emit('on-buy',item.id);
106
+ this.$emit('on-buy',item);
109
107
  }
110
108
  }
111
109
  }
@@ -162,7 +162,9 @@ export default {
162
162
  },
163
163
  methods:{
164
164
  handleDetail(){
165
- this.$emit('on-product-detail', this.item);
165
+ if(this.item.status === 'ok') {
166
+ this.$emit('on-product-detail', this.item);
167
+ }
166
168
  }
167
169
  }
168
170
  }
@@ -34,15 +34,15 @@
34
34
  v-for="item in dataList"
35
35
  :key="item.id"
36
36
  :style="{
37
- marginBottom:$parentVm.outSpacing + 'rpx',
38
- padding:contMarginComp,
39
- borderRadius:$parentVm.contRradius+ 'rpx',
40
- border: $parentVm.contBorder,
41
- boxShadow:$parentVm.contShadow,
42
- width: (type_code === 'product' && type_other === 2) ? (outItemProduct + 'rpx'): 'auto',
43
- height: heightRpx,
44
- backgroundColor: $parentVm.contBgColor
45
- }">
37
+ marginBottom:$parentVm.outSpacing + 'rpx',
38
+ padding:contMarginComp,
39
+ borderRadius:$parentVm.contRradius+ 'rpx',
40
+ border: $parentVm.contBorder,
41
+ boxShadow:$parentVm.contShadow,
42
+ width: (type_code === 'product' && type_other === 2) ? (outItemProduct + 'rpx'): 'auto',
43
+ height: heightRpx,
44
+ backgroundColor: $parentVm.contBgColor
45
+ }">
46
46
  <content-film
47
47
  type="hot"
48
48
  v-if="type_code === 'film'"
@@ -52,8 +52,8 @@
52
52
  :out-spacing="$parentVm.outSpacing"
53
53
  :color="$parentVm.mainColor"
54
54
  :border-radius="$parentVm.imgRradius"
55
- @on-film-detail="(film_id)=>{$parentVm.handleFilmDetail(film_id, dataConfig)}"
56
- @on-buy="(film_id)=>{$parentVm.handleBuy(film_id, dataConfig)}"
55
+ @on-film-detail="(film)=>{$parentVm.handleFilmDetail(film, dataConfig)}"
56
+ @on-buy="(film)=>{$parentVm.handleBuy(film, dataConfig)}"
57
57
  ></content-film>
58
58
  <content-cinema
59
59
  v-if="type_code === 'cinema'"
@@ -225,7 +225,7 @@ export default {
225
225
  hasNoData: false,
226
226
 
227
227
  page_token:'1',
228
- page_size: 20,
228
+ page_size: 100,
229
229
 
230
230
  //参数
231
231
  type_code:'',
@@ -325,20 +325,20 @@ export default {
325
325
 
326
326
 
327
327
  getList(){
328
+
328
329
  //无关键字不搜索
329
330
  if(this.keyword === '') {
330
331
  return;
331
332
  }
332
- //this.$xdShowLoading({});
333
+ this.$xdShowLoading({});
333
334
  this.$emit('on-list', {
334
335
  params:this.getParams,
335
336
  cb:(res)=>{
336
-
337
337
  //无数据处理
338
338
  if(res === null){
339
339
  this.hasNoData = true;
340
340
  this.dataList = [];
341
- this.page_token = ''
341
+ this.page_token = '1'
342
342
  this.$xdHideLoading();
343
343
  return
344
344
  }
@@ -349,7 +349,7 @@ export default {
349
349
  //整理为统一ID
350
350
  res.items = res.items.map((item,index)=>{
351
351
  if(!item.id){
352
- item.id = item.product_id || item.resource_shop_id || item.cinema_id
352
+ item.id = item.product_id || item.resource_shop_id || item.cinema_id || item.film_id
353
353
  }
354
354
  //item.list_title = `${index} - ${ item.list_title}`
355
355
  return item;
@@ -74,7 +74,6 @@
74
74
  import extsMixins from "@/mixins/extsMixins";
75
75
  import listMixins from "./listMixins";
76
76
  import CustomList from "./CustomList.vue";
77
- import search from './search';
78
77
  import AllList from "./AllList.vue";
79
78
 
80
79
  export default {
@@ -110,11 +109,19 @@
110
109
  searchScope: [],
111
110
  allListBgColor: "",
112
111
  allModulePadding: {},
112
+ allModuleRadius: 0,
113
113
  allModuleTitleBgColor: {},
114
114
  allModuleTitlePadding: {},
115
115
  allModuleMoreStyle: "",
116
116
  allModuleMargin: 20,
117
117
  allModuleTitleStyle: "",
118
+ allModuleItemContBorder: {},
119
+ allModuleItemContMargin: 20,
120
+ allModuleItemContShadow: {},
121
+ allModuleItemContPadding: {},
122
+ allModuleItemContRadius: 16,
123
+ allModuleItemContBgColor: "#FFFFFF",
124
+
118
125
  }
119
126
  },
120
127
  computed: {
@@ -212,6 +219,9 @@
212
219
  }
213
220
  cb(res.list)
214
221
  }else{
222
+ if(this.isPreview){
223
+ return cb(res.list.find(item => item.type === this.tabId.split("@")[1]))
224
+ }
215
225
  if(res.list.length > 0) cb(res.list[0])
216
226
  else cb(null)
217
227
  }
@@ -239,11 +249,18 @@
239
249
  this.searchScope = getContainerPropsValue(container, 'content.searchScope', []);
240
250
  this.allListBgColor = getContainerPropsValue(container, 'content.allListBgColor', '');
241
251
  this.allModulePadding = getContainerPropsValue(container, 'content.allModulePadding', {});
252
+ this.allModuleRadius = getContainerPropsValue(container, 'content.allModuleRadius', 0);
242
253
  this.allModuleTitleBgColor = getContainerPropsValue(container, 'content.allModuleTitleBgColor', '');
243
254
  this.allModuleTitlePadding = getContainerPropsValue(container, 'content.allModuleTitlePadding', {});
244
255
  this.allModuleMoreStyle = getContainerPropsValue(container, 'content.allModuleMoreStyle', "");
245
256
  this.allModuleMargin = getContainerPropsValue(container, 'content.allModuleMargin', 20);
246
257
  this.allModuleTitleStyle = getContainerPropsValue(container, 'content.allModuleTitleStyle', "");
258
+ this.allModuleItemContBorder = getContainerPropsValue(container, 'content.allModuleItemContBorder', {});
259
+ this.allModuleItemContMargin = getContainerPropsValue(container, 'content.allModuleItemContMargin', 20);
260
+ this.allModuleItemContShadow = getContainerPropsValue(container, 'content.allModuleItemContShadow', {});
261
+ this.allModuleItemContPadding = getContainerPropsValue(container, 'content.allModuleItemContPadding', {});
262
+ this.allModuleItemContRadius = getContainerPropsValue(container, 'content.allModuleItemContRadius', 16);
263
+ this.allModuleItemContBgColor = getContainerPropsValue(container, 'content.allModuleItemContBgColor', '#FFFFFF');
247
264
 
248
265
  if(this.$configProject['isPreview']){
249
266
  this.menuList = this.searchScope;