jufubao-movie 1.0.67 → 1.0.68-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.
@@ -13,17 +13,21 @@
13
13
  :class="{ editx: isEditx && active }"
14
14
  v-if="isEditx && active && !noBorder"
15
15
  >
16
- <view class="jfb-movie-line-cinema__edit-icon"@click.stop="delEdit">
17
- <xd-font-icon icon="iconshanchu-01" color="#fff" size="30"></xd-font-icon>
16
+ <view class="jfb-movie-line-cinema__edit-icon" @click.stop="delEdit">
17
+ <xd-font-icon
18
+ icon="iconshanchu-01"
19
+ color="#fff"
20
+ size="30"
21
+ ></xd-font-icon>
18
22
  </view>
19
23
  </view>
20
24
  <!-- #endif -->
21
25
  <view
22
26
  class="jfb-movie-line-cinema__body"
23
- :style="{minHeight: layoutInfo.bodyMinHeight}"
27
+ :style="{ minHeight: layoutInfo.bodyMinHeight }"
24
28
  v-if="loading"
25
29
  >
26
- <view class="cinema_header" :style="{top: layoutInfo.top + 'rpx'}">
30
+ <view class="cinema_header" :style="{ top: layoutInfo.top + 'rpx' }">
27
31
  <view class="addr_point">
28
32
  <xd-city-show
29
33
  city-location-type="baidu"
@@ -83,66 +87,40 @@
83
87
  <view>
84
88
  <view class="item_addr"></view>
85
89
  </view>
86
- <view style="display: flex;justify-content: space-between; align-items: center; margin-top: 24rpx;">
90
+ <view
91
+ style="
92
+ display: flex;
93
+ justify-content: space-between;
94
+ align-items: center;
95
+ margin-top: 24rpx;
96
+ "
97
+ >
87
98
  <view class="item_dist"></view>
88
- <view style="display: flex;">
99
+ <view style="display: flex">
89
100
  <view class="cinema_item-btn"></view>
90
101
  </view>
91
102
  </view>
92
103
  </view>
93
104
  </view>
94
105
  <template v-else>
95
- <view v-if="filterCinemaList.length" class="cinema_list">
96
- <view
97
- class="cinema_item"
98
- v-for="item in filterCinemaList"
99
- :key="item.cinema_id"
100
- @click="toChooseSchedule(item)"
101
- >
102
- <view class="item_main">
103
- <view class="item_name">{{ item.cinema_name }}</view>
104
- </view>
105
- <view>
106
- <view class="item_addr">{{ item.address }}</view>
107
- </view>
108
- <view
109
- style="
110
- display: flex;
111
- justify-content: space-between;
112
- align-items: center;
113
- margin-top: 24rpx;
114
- "
115
- >
116
- <view class="item_dist">
117
- <xd-font-icon icon="icondizhi" size="32" style="margin-right: 30rpx;"></xd-font-icon>
118
- {{ item.distance }}</view
119
- >
120
- <!-- seat_index code_index -->
121
- <view style="display: flex;">
122
- <view
123
- v-if="is_show_sell === 'Y' && item.sell_index > -1"
124
- :style="{background: mainColor}"
125
- class="cinema_item-btn"
126
- @click.stop="toSellPath(item)">{{ sellName }}</view>
127
- <view
128
- v-if="item.code_index > -1"
129
- :style="{background: mainColor, marginLeft: '20rpx'}"
130
- class="cinema_item-btn"
131
- @click.stop="toCodePath(item)">电子码</view>
132
- <view
133
- v-if="item.seat_index > -1"
134
- :style="{background: mainColor, marginLeft: '20rpx'}"
135
- class="cinema_item-btn"
136
- @click.stop="toSchedulePath(item)">在线选座</view>
137
- </view>
138
- </view>
139
- </view>
140
- </view>
141
- <view v-else class="cinema_list">
142
- <view class="empty_cinema">暂无影院数据</view>
106
+ <view v-if="initAttr" :style="[contStyleComp]">
107
+ <cus-shops
108
+ :layout="shopListStyle"
109
+ :select-id="selectIds"
110
+ :is-show-btn="fastEntryStatus"
111
+ :content="cusContent"
112
+ :cus-style="cusStyle"
113
+ :list="filterCinemaList"
114
+ :main-color="mainColor"
115
+ :sub-main-color="subMainColor"
116
+ :names="cusNames"
117
+ :entry="cusEntry"
118
+ :is-auto-jump="isAutoJump"
119
+ :mapKeys="mapKeys"
120
+ @on-event="handleToEvent"
121
+ ></cus-shops>
143
122
  </view>
144
123
  </template>
145
-
146
124
  </view>
147
125
  </view>
148
126
  </template>
@@ -156,8 +134,9 @@ import JfbMovieLineCinemaMixin from "./JfbMovieLineCinemaMixin";
156
134
  import componentsMixins from "@/mixins/componentsMixins";
157
135
  import extsMixins from "@/mixins/extsMixins";
158
136
  import XdCityShow from "@/components/XdCityShowApi/XdCityShowApi";
159
- import { getContainerPropsValue } from "@/utils/xd.base";
137
+ import { getContainerPropsValue, gCPVal } from "@/utils/xd.base";
160
138
  import { mapState } from "vuex";
139
+ import CusShops from "@/components/CusShops/CusShops.vue";
161
140
  export default {
162
141
  name: "JfbMovieLineCinema",
163
142
  components: {
@@ -165,6 +144,7 @@ export default {
165
144
  XdFormInput,
166
145
  XdSwiper,
167
146
  XdCityShow,
147
+ CusShops,
168
148
  },
169
149
  mixins: [componentsMixins, extsMixins, JfbMovieLineCinemaMixin],
170
150
  data() {
@@ -184,14 +164,35 @@ export default {
184
164
  loadingList: true,
185
165
 
186
166
  //面板
187
- is_show_sell: "",
188
- sellName: "",
189
- sellPath: "",
190
- scheduleChoosePath: "",
167
+ scanPath: "", //扫一扫
168
+ jhdPath: "", //聚好兑
169
+ qpPath: "", //快捷码 scheduleChoosePath: "",
191
170
  codeChoosePath: "",
192
171
  choseCityPath: "",
193
- sort_consume_mode: '',
172
+ sort_consume_mode: "",
194
173
  loading: false, //是否已经加载完成
174
+
175
+ shopListStyle: "v3", //门店风格
176
+ cusContent: [], //显示内容
177
+ fastEntryStatus: false,
178
+ cusNames: {}, //按钮名称
179
+ cusEntry: {}, //入口状态
180
+ isAutoJump: [],
181
+ mapKeys: {
182
+ id: "cinema_id",
183
+ brand_id: "brand_id", //品牌ID
184
+ shop_id: "cinema_id", //整理前的门店ID
185
+ name: "cinema_name", //店铺名字
186
+ distance: "distance", //距离
187
+ address: "address", //店铺地址
188
+ image: "shop_icon", //店铺图片
189
+ mode: "cinema_type", //标签类型[]
190
+ },
191
+ //style
192
+ bodyPadding: {},
193
+ contentBgColor: "rgba(0,0,0,0)",
194
+ cusStyle: {}, //门店样式设置
195
+ initAttr: false, //状态完成
195
196
  };
196
197
  },
197
198
  computed: {
@@ -199,27 +200,50 @@ export default {
199
200
  stateCity: (state) => state.cityLocation.city,
200
201
  stateLocation: (state) => state.cityLocation.location || {},
201
202
  }),
202
- filterCinemaList(){
203
- let keywordFilterList = this.cinema_name ? this.cinemaList.filter(item => item.cinema_name.indexOf(this.cinema_name) > -1) : this.cinemaList;
204
- if(this.subIndex == 0){
203
+ filterCinemaList() {
204
+ let keywordFilterList = this.cinema_name
205
+ ? this.cinemaList.filter(
206
+ (item) => item.cinema_name.indexOf(this.cinema_name) > -1
207
+ )
208
+ : this.cinemaList;
209
+ if (this.subIndex == 0) {
205
210
  return keywordFilterList;
206
- }else{
211
+ } else {
207
212
  let area_code = this.citySubs[this.subIndex].value;
208
- return keywordFilterList.filter(item => item.area_code == area_code)
213
+ return keywordFilterList.filter((item) => item.area_code == area_code);
209
214
  }
210
215
  // return this.cinemaList.filter(item => item.cinema_name.indexOf(this.cinema_name) > -1 || item.address.indexOf(this.cinema_name) > -1)
211
216
  },
212
217
  listMarginTop() {
213
218
  return {
214
219
  // marginTop: (this.layoutInfo.top + 20) + "rpx"
215
- marginTop: '100rpx'
216
- }
220
+ marginTop: "100rpx",
221
+ };
222
+ },
223
+ selectIds() {
224
+ let id = "";
225
+ if (!id && this.resource_shop_id) id = this.cinema_id;
226
+ if (!id && this.brand_id) id = this.brand_id;
227
+ if (!id && this.shop_id) id = this.cinema_id;
228
+ return id;
229
+ },
230
+ contStyleComp() {
231
+ let height = this.layoutInfo.bodyMinHeightRpx - 80;
232
+ //大于一个标签显示标签
233
+ //if(this.titleList.length > 1) height = height - 100;
234
+ //if(this.mapIsExtend) height = height - 400;
235
+ height = height - this.getPMValue(this.bodyPadding, "TB", 0);
236
+ return {
237
+ minHeight: height + "rpx",
238
+ padding: this.getMarginAndPadding(this.bodyPadding, 0),
239
+ backgroundColor: this.contentBgColor,
240
+ };
217
241
  },
218
242
  },
219
243
  watch: {
220
- container(value,oldValue) {
221
- if(JSON.stringify(value) === JSON.stringify(oldValue)) return;
222
- if (this.$configProject['isPreview']) this.init(value)
244
+ container(value, oldValue) {
245
+ if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
246
+ if (this.$configProject["isPreview"]) this.init(value);
223
247
  },
224
248
  stateCity(n, o) {
225
249
  if (n && JSON.stringify(n) != JSON.stringify(o)) {
@@ -228,8 +252,7 @@ export default {
228
252
  this.getList();
229
253
  }
230
254
  },
231
- cinemaList(n){
232
- }
255
+ cinemaList(n) {},
233
256
  },
234
257
  created() {
235
258
  this.init(this.container);
@@ -244,49 +267,219 @@ export default {
244
267
  * @param container {object} 业务组件对象自己
245
268
  */
246
269
  init(container) {
247
- this.scheduleChoosePath = getContainerPropsValue(
270
+ //content
271
+ this.sort_consume_mode = gCPVal(container, "sort_consume_mode", "");
272
+ //内容显示
273
+ let cusContent = [];
274
+ if (gCPVal(container, "showStoreAddress", "Y") === "Y")
275
+ cusContent.push("address"); //门店地址
276
+ if (gCPVal(container, "showStoreDistance", "Y") === "Y")
277
+ cusContent.push("distance"); //地址
278
+ this.cusContent = cusContent;
279
+ this.fastEntryStatus = gCPVal(container, "fastEntryStatus", "N") === "Y";
280
+ let cusNames = {},
281
+ cusEntry = {};
282
+ let fastEntry = gCPVal(container, "fastEntry", []).filter((item) => {
283
+ return item.check === true;
284
+ });
285
+ if (this.fastEntryStatus) {
286
+ for (let i = 0; i < fastEntry.length; i++) {
287
+ if (fastEntry[i].input)
288
+ cusNames[fastEntry[i].value] = fastEntry[i].input;
289
+ cusEntry[fastEntry[i].value] = fastEntry[i].check;
290
+ }
291
+ }
292
+ this.cusNames = cusNames;
293
+ this.cusEntry = cusEntry;
294
+ //style
295
+ this.shopListStyle = gCPVal(container, "shopListStyle", "v3");
296
+ let sValue = `{"cardItemSpace":16,"margin":{"bottom":16,"left":0,"right":0,"top":16},"backgroundColor":"rgba(245, 245, 245, 1)"}`;
297
+ let shopStyle = this.getRelationStatus(container,'shopStyle', { cardItemSpaceStatus:['cardItemSpace'],bodyPaddingStatus:['bodyPadding']}, sValue);
298
+ this.bodyPadding = gCPVal(container,'bodyPadding', [{ bottom:0,left:16, right:16,top:16}], {sKey:'bodyPaddingStatus',fields:['bodyPadding'],cusFields: ['shopStyle','margin',shopStyle],isPMR: true});
299
+ this.contentBgColor = gCPVal(container, "contentBgColor", "#f8f8f8", {
300
+ sKey: "contentBgColorStatus",
301
+ fields: ["contentBgColor"],
302
+ });
303
+ let cardItemSpace = gCPVal(container, "cardItemSpace", [16, 20], {
304
+ sKey: "cardItemSpaceStatus",
305
+ fields: ["cardItemSpace"],
306
+ cusFields: ["shopStyle", "cardItemSpace", shopStyle],
307
+ });
308
+ let cardItemRadius =
309
+ gCPVal(
310
+ container,
311
+ "cardItemRadius",
312
+ [sValue === shopStyle ? 0 : this.gStyleValue.radius, 0],
313
+ { sKey: "cardItemRadiusStatus", fields: ["listItemRadius"] }
314
+ ) || 0;
315
+ let cardItemShadow = gCPVal(
248
316
  container,
249
- "content.schedule_choose_path",
250
- { value: "" }
251
- ).value;
252
- this.codeChoosePath = getContainerPropsValue(
317
+ "cardItemShadow",
318
+ [this.gStyleValue.shadow, { color: "", width: "0" }],
319
+ { isShadow: true }
320
+ );
321
+ let cardItemBorder = gCPVal(
253
322
  container,
254
- "content.codeChoosePath",
255
- { value: "" }
256
- ).value;
257
- this.choseCityPath = getContainerPropsValue(
323
+ "cardItemBorder",
324
+ [
325
+ { color: "#f8f8f8", width: 0, style: "solid" },
326
+ { color: "#f8f8f8", width: 0, style: "solid" },
327
+ ],
328
+ { isBorder: true }
329
+ );
330
+ let distanceColor = gCPVal(container, "distanceColor", "#999", {
331
+ sKey: "distanceColorStatus",
332
+ fields: ["distanceColor"],
333
+ });
334
+ let cardItemBgColor = gCPVal(container, "cardItemBgColor", "", {
335
+ sKey: "cardItemBgColorStatus",
336
+ fields: ["cardItemBgColor"],
337
+ });
338
+ let itemPadding = gCPVal(
258
339
  container,
259
- "content.choseCityPath",
260
- { value: "" }
261
- ).value;
262
- this.sellPath = getContainerPropsValue(container, "content.sellPath", {value: ""}).value;
263
- this.sort_consume_mode = getContainerPropsValue(container, 'content.sort_consume_mode', '');
264
- this.is_show_sell = getContainerPropsValue(container, 'content.is_show_sell', '');
265
- this.sellName = getContainerPropsValue(container, 'content.sellName', '到店使用');
340
+ "itemPadding",
341
+ [{ top: 16, left: 16, right: 16, bottom: 16 }, 20],
342
+ { sKey: "itemPaddingStatus", fields: ["itemPadding"], isPMR: true }
343
+ );
344
+ this.cusStyle = {
345
+ item: {
346
+ "margin-bottom": `${cardItemSpace}rpx`,
347
+ "border-radius": cardItemRadius + "rpx",
348
+ "box-shadow": cardItemShadow,
349
+ border: cardItemBorder,
350
+ backgroundColor: cardItemBgColor,
351
+ padding: this.getMarginAndPadding(itemPadding, 0),
352
+ },
353
+ distance: {
354
+ color: distanceColor,
355
+ },
356
+ };
357
+
358
+ this.scheduleChoosePath = gCPVal(container, "scheduleChoosePath", {
359
+ value: "",
360
+ }).value;
361
+ this.codeChoosePath = gCPVal(container, "codeChoosePath", {
362
+ value: "",
363
+ }).value;
364
+ this.choseCityPath = gCPVal(container, "choseCityPath", {
365
+ value: "",
366
+ }).value;
367
+ this.scanPath = gCPVal(container, "cscanPath", { value: "" }).value;
368
+ this.jhdPath = gCPVal(container, "jhdPath", { value: "" }).value;
369
+ this.qpPath = gCPVal(container, "qpPath", { value: "" }).value;
370
+ this.initAttr = true;
266
371
  },
267
372
  toChooseSchedule(item) {
268
- if(item.seat_index > -1) this.toSchedulePath(item);
269
- else if(item.code_index > -1) this.toCodePath(item);
373
+ if (item.seat_index > -1) this.toSchedulePath(item);
374
+ else if (item.code_index > -1) this.toCodePath(item);
270
375
  },
271
- toCodePath(item){
376
+ toCodePath(item) {
272
377
  this.$xdUniHelper.navigateTo({
273
378
  url: this.codeChoosePath + `?cinema_id=${item.cinema_id}`,
274
379
  });
275
380
  },
276
- toSellPath(item){
381
+ toSellPath(item) {
277
382
  let params = {
278
- 'x-params': Base64.encodeURI(`shop_id:${item.cinema_id}`),
279
- }
383
+ "x-params": Base64.encodeURI(`shop_id:${item.cinema_id}`),
384
+ };
280
385
  let options = this.$xdUniHelper.jsonToParams(params);
281
386
  this.$xdUniHelper.navigateTo({
282
387
  url: this.sellPath + `?${options}`,
283
388
  });
284
389
  },
285
- toSchedulePath(item){
390
+ toSchedulePath(item) {
286
391
  this.$xdUniHelper.navigateTo({
287
392
  url: this.scheduleChoosePath + `?cinema_id=${item.cinema_id}`,
288
393
  });
289
394
  },
395
+ //==evnet===
396
+ handleToEvent({ item, type }) {
397
+ let url = "";
398
+ let parmas = [];
399
+
400
+ //扫一扫
401
+ if (type === "WB") url = this.scanPath;
402
+ //聚好兑
403
+ if (type === "JHD") url = this.jhdPath;
404
+ //快捷码
405
+ if (type === "QP") url = this.qpPath;
406
+ //在线选择
407
+ if (type === "SEAT") {
408
+ if (this.seatPath) url = this.seatPath;
409
+ else {
410
+ type = "DL";
411
+ url = this.shopInfoPath;
412
+ }
413
+ }
414
+ //小时达
415
+ if (type === "HDSELF") {
416
+ if (this.hdSelfPath) url = this.hdSelfPath;
417
+ else {
418
+ type = "DL";
419
+ url = this.shopInfoPath;
420
+ }
421
+ }
422
+ //旅游购票
423
+ if (type === "TRAVEL") {
424
+ if (this.travelfPath) url = this.travelfPath;
425
+ else {
426
+ type = "DL";
427
+ url = this.shopInfoPath;
428
+ }
429
+ }
430
+
431
+ if (item.resource_shop_id)
432
+ parmas.push(`resource_shop_id=${item.resource_shop_id}`);
433
+ if (item.brand_id) parmas.push(`brand_id=${item.brand_id}`);
434
+ if (item.consume_mode)
435
+ parmas.push(`consume_mode=${item.consume_mode.join(",")}`);
436
+ if (item.shop_id) parmas.push(`shop_id=${item.shop_id}`);
437
+
438
+ //详情增加扩张参数
439
+ if (item.exts_params) parmas.push(`exts_params=${item.exts_params}`);
440
+
441
+ //详情增加扩张参数
442
+ if (["DL", "JHD", "QP"].includes(type)) {
443
+ parmas.push(
444
+ `resource_shop=${Base64.encodeURI(
445
+ JSON.stringify({
446
+ shop_id: item.shop_id,
447
+ resource_shop_id: item.resource_shop_id,
448
+ })
449
+ )}`
450
+ );
451
+ }
452
+
453
+ //在线选择,电子码传惨处理
454
+ if (["SEAT", "CODE"].includes(type))
455
+ parmas = [`cinema_id=${item.resource_shop_id}`];
456
+ if (["TRAVEL"].includes(type))
457
+ parmas = [`shop_id=${item.resource_shop_id}`];
458
+ if (["WB"].includes(type))
459
+ parmas = [`x-params=${Base64.encodeURI(`shop_id:${item.shop_id}`)}`];
460
+ if (["JHD"].includes(type)) {
461
+ parmas.push(`x-jfb-os=jhd`);
462
+ parmas.push(this.$xdUniHelper.jsonToParams(this.options));
463
+ }
464
+ if (["JHD", "QP"].includes(type)) {
465
+ parmas.push(`xnamespace=${this.xnamespace}`);
466
+ parmas.push(`x-params=${Base64.encodeURI(`shop_id:${item.shop_id}`)}`);
467
+ }
468
+
469
+ //预览模式
470
+ if (this.$configProject["isPreview"]) {
471
+ console.warn(`uri=>${url}?${parmas.join("&")}`);
472
+ return;
473
+ }
474
+
475
+ if (!url) throw new Error(`${type} => 未设置访问地址`);
476
+
477
+ //普通跳转
478
+ this.$xdUniHelper.navigateTo({
479
+ url: `${url}?${parmas.join("&")}`,
480
+ });
481
+ },
482
+ //==evnet===
290
483
 
291
484
  getList() {
292
485
  const { city, location, citySubs, subIndex, cinema_name } = this;
@@ -307,24 +500,18 @@ export default {
307
500
  this.$xdHideLoading();
308
501
  const { list, next_page_token, area_list } = res;
309
502
 
310
- this.cinemaList = list.map(item => {
311
- let sell_index = item.cinema_type.findIndex(ii => ii == 'SELL'); //线下核销
312
- let seat_index = item.cinema_type.findIndex(ii => ii == 'SEAT'); //在线选座
313
- let code_index = item.cinema_type.findIndex(ii => ii == 'CODE'); //电子码
314
- item['sell_index'] = sell_index;
315
- item['code_index'] = code_index;
316
- item['seat_index'] = seat_index;
317
- return item;
318
- });
503
+ this.cinemaList = list;
319
504
  this.page_token = next_page_token;
320
- let citySubs = area_list.map(item => {
505
+ let citySubs = area_list.map((item) => {
321
506
  return {
322
507
  label: item.area_name,
323
508
  value: item.area_code,
324
- count: item.cinema_count
325
- }
326
- })
327
- this.citySubs = [{ label: "全城", value: "", count: "" }].concat(citySubs);
509
+ count: item.cinema_count,
510
+ };
511
+ });
512
+ this.citySubs = [{ label: "全城", value: "", count: "" }].concat(
513
+ citySubs
514
+ );
328
515
  });
329
516
  },
330
517
  /**城市定位**********************/
@@ -381,11 +568,13 @@ export default {
381
568
  this.subIndex = i;
382
569
  },
383
570
 
384
-
385
571
  handleCityChange() {
386
- this.$xdUniHelper.navigateTo({
387
- url: this.choseCityPath,
388
- }, true);
572
+ this.$xdUniHelper.navigateTo(
573
+ {
574
+ url: this.choseCityPath,
575
+ },
576
+ true
577
+ );
389
578
  },
390
579
 
391
580
  handleGetCitySub(city_code) {
@@ -423,7 +612,7 @@ export default {
423
612
  flex-direction: column;
424
613
  .cinema_header {
425
614
  &-mask {
426
- height: unit(108, rpx)
615
+ height: unit(108, rpx);
427
616
  }
428
617
  display: flex;
429
618
  align-items: center;
@@ -504,18 +693,18 @@ export default {
504
693
  padding: unit(24, rpx);
505
694
  flex: 1;
506
695
  overflow: auto;
507
- &.skeleton-wrap{
508
- .cinema_item{
509
- .item_name{
696
+ &.skeleton-wrap {
697
+ .cinema_item {
698
+ .item_name {
510
699
  .skeleton-item(100%, 62rpx);
511
700
  }
512
- .item_addr{
701
+ .item_addr {
513
702
  .skeleton-item(300rpx);
514
703
  }
515
- .item_dist{
704
+ .item_dist {
516
705
  .skeleton-item(100rpx);
517
706
  }
518
- .cinema_item-btn{
707
+ .cinema_item-btn {
519
708
  .skeleton-item(160rpx, 50rpx, 50rpx);
520
709
  }
521
710
  }
@@ -22,7 +22,20 @@ module.exports = {
22
22
  show_cinema_type_name: "在线选座",
23
23
  brand_name: "",
24
24
  area_code: "2809",
25
- area_name: "通州区"
25
+ area_name: "通州区",
26
+ "consume_options": [{
27
+ "consume_mode": "CODE",
28
+ "desc": "电子码",
29
+ "icon": "iconduihuan"
30
+ }, {
31
+ "consume_mode": "SEAT",
32
+ "desc": "在线选座",
33
+ "icon": "iconxuanze"
34
+ }, {
35
+ "consume_mode": "SELL",
36
+ "desc": "线下核销",
37
+ "icon": "iconduihuan"
38
+ }]
26
39
  },
27
40
  {
28
41
  cinema_id: 6785091,
@@ -43,7 +56,20 @@ module.exports = {
43
56
  show_cinema_type_name: "在线选座",
44
57
  brand_name: "",
45
58
  area_code: "2810",
46
- area_name: "大兴区"
59
+ area_name: "大兴区",
60
+ "consume_options": [{
61
+ "consume_mode": "CODE",
62
+ "desc": "电子码",
63
+ "icon": "iconduihuan"
64
+ }, {
65
+ "consume_mode": "SEAT",
66
+ "desc": "在线选座",
67
+ "icon": "iconxuanze"
68
+ }, {
69
+ "consume_mode": "SELL",
70
+ "desc": "线下核销",
71
+ "icon": "iconduihuan"
72
+ }]
47
73
  },
48
74
  {
49
75
  cinema_id: 6771491,