jufubao-base 1.0.183 → 1.0.184-beta2

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 (47) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseAddress/Attr.js +50 -1
  3. package/src/components/JfbBaseAddress/JfbBaseAddress.vue +120 -68
  4. package/src/components/JfbBaseAddress/XdTfkItem.vue +117 -0
  5. package/src/components/JfbBaseCardDelay/Api.js +19 -30
  6. package/src/components/JfbBaseCardDelay/Attr.js +237 -35
  7. package/src/components/JfbBaseCardDelay/JfbBaseCardDelay.vue +279 -78
  8. package/src/components/JfbBaseCardDetailEntry/Attr.js +12 -0
  9. package/src/components/JfbBaseCardDetailEntry/JfbBaseCardDetailEntry.vue +14 -0
  10. package/src/components/JfbBaseCardDetailEntry/Mock.js +1 -1
  11. package/src/components/JfbBaseCardEntry/Attr.js +121 -0
  12. package/src/components/JfbBaseCardEntry/JfbBaseCardEntry.vue +206 -29
  13. package/src/components/JfbBaseCardGive/Api.js +18 -34
  14. package/src/components/JfbBaseCardGive/Attr.js +40 -32
  15. package/src/components/JfbBaseCardGive/JfbBaseCardGive.vue +502 -79
  16. package/src/components/JfbBaseCardGive/Mock.js +2 -9
  17. package/src/components/JfbBaseCardReceive/Api.js +10 -36
  18. package/src/components/JfbBaseCardReceive/Attr.js +9 -39
  19. package/src/components/JfbBaseCardReceive/JfbBaseCardReceive.vue +403 -80
  20. package/src/components/JfbBaseCardReceive/Mock.js +1 -7
  21. package/src/components/JfbBaseCardReceiveCover/Api.js +5 -43
  22. package/src/components/JfbBaseCardReceiveCover/Attr.js +119 -30
  23. package/src/components/JfbBaseCardReceiveCover/JfbBaseCardReceiveCover.vue +189 -82
  24. package/src/components/JfbBaseCardReceiveCover/Mock.js +1 -9
  25. package/src/components/JfbBaseFastLink/JfbBaseFastLink.vue +1 -1
  26. package/src/components/JfbBaseOrderDetail/Attr.js +18 -74
  27. package/src/components/JfbBaseOrderDetail/JfbBaseOrderDetail.vue +26 -22
  28. package/src/components/JfbBaseOrderList/Attr.js +23 -0
  29. package/src/components/JfbBaseOrderList/JfbBaseOrderList.vue +117 -86
  30. package/src/components/JfbBaseOrderList/XdTfkOrderItem.vue +246 -0
  31. package/src/components/JfbBasePay/Attr.js +12 -0
  32. package/src/components/JfbBasePay/JfbBasePay.vue +14 -8
  33. package/src/components/JfbBasePosterType/JfbBasePosterType.vue +0 -1
  34. package/src/components/JfbBaseRechargeOrder/Api.js +11 -0
  35. package/src/components/JfbBaseRechargeOrder/JfbBaseRechargeOrder.vue +46 -27
  36. package/src/components/JfbBaseRechargeOrderDetail/Api.js +11 -0
  37. package/src/components/JfbBaseRechargeOrderDetail/JfbBaseRechargeOrderDetail.vue +142 -13
  38. package/src/components/JfbBaseRechargeSuccess/Api.js +11 -0
  39. package/src/components/JfbBaseRechargeSuccess/Attr.js +1 -1
  40. package/src/components/JfbBaseRechargeSuccess/JfbBaseRechargeSuccess.vue +6 -3
  41. package/src/components/JfbBaseTfkCardLogin/JfbBaseTfkCardLogin.vue +0 -1
  42. package/src/components/JfbBaseUserCenter/Attr.js +240 -48
  43. package/src/components/JfbBaseUserCenter/JfbBaseUserCenter.vue +101 -30
  44. package/src/components/JfbBaseUserInfo/Attr.js +179 -30
  45. package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +80 -44
  46. package/src/components/JfbBaseWallet/Attr.js +340 -2
  47. package/src/components/JfbBaseWallet/JfbBaseWallet.vue +167 -49
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-base",
3
- "version": "1.0.183",
3
+ "version": "1.0.184-beta2",
4
4
  "private": false,
5
5
  "description": "聚福宝业务组件基础插件包",
6
6
  "main": "index.js",
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  import StyleForm from "@/utils/StyleForm";
3
+ import IConList from "@/ICONS"
3
4
  let styleForm = new StyleForm(
4
5
  {border: null, shadow: null, spacing: '', bgColor:'', margin: null},
5
6
  null,
@@ -11,6 +12,35 @@ export default {
11
12
  advanced: [],
12
13
  content: (data)=>{
13
14
  return [
15
+ {
16
+ label: "布局样式配置",
17
+ ele: "xd-radio",
18
+ valueKey: "layout_style",
19
+ value: data.layout_style || 'old',
20
+ list: [
21
+ {label: '布局1', value: 'old'},
22
+ {label: '布局2', value: 'tfk'},
23
+ ],
24
+ groupKey: "style",
25
+ },
26
+ {
27
+ label: "编辑图标",
28
+ ele: "xd-select-list",
29
+ valueKey: "edit_icon",
30
+ value: data.edit_icon || 'iconbianji-01',
31
+ list: IConList,
32
+ className: 'input80',
33
+ groupKey: "content",
34
+ },
35
+ {
36
+ label: "删除图标",
37
+ ele: "xd-select-list",
38
+ valueKey: "delete_icon",
39
+ value: data.delete_icon || 'iconshanchu-01',
40
+ list: IConList,
41
+ className: 'input80',
42
+ groupKey: "content",
43
+ },
14
44
  {
15
45
  label: '选取地区路径:',
16
46
  ele: 'xd-select-pages-path',
@@ -23,7 +53,26 @@ export default {
23
53
  },
24
54
  inline: false,
25
55
  },
26
- ...styleForm.getForm(data, '内容列表样式配置')
56
+ ...styleForm.getForm(data, '内容列表样式配置'),
57
+ {
58
+ label: "圆角设置",
59
+ ele: 'xd-site-select-list',
60
+ valueKey: 'cardRadius',
61
+ value: data['cardRadius'] || '',
62
+ groupKey:'style',
63
+ placeholder: '请选择内容圆角设置',
64
+ multiple: false,
65
+ className: 'input80',
66
+ handleCustom({ action, data }) {
67
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
68
+ .then(res => {
69
+ data.cb(res.list)
70
+ })
71
+ .catch(error => {
72
+ console.error(error);
73
+ });
74
+ },
75
+ }
27
76
  ].filter(i=>i)
28
77
  },
29
78
  }
@@ -26,81 +26,108 @@
26
26
  class="jfb-base-address__body-address"
27
27
  v-if="addressList && addressList.length > 0"
28
28
  >
29
- <view
30
- :style="{
31
- marginBottom: jfbListSpacing + 'rpx',
32
- boxShadow: jfbListShadowComputed,
33
- border: jfbListBorderComputed,
34
- backgroundColor: jfbListBgColor,
35
- }"
36
- class="jfb-base-address__body-address-item"
37
- v-for="(item, index) in addressList"
38
- @click="handleSelectAddress(item)"
39
- :key="index"
40
- >
41
- <view class="jfb-base-address__body-address-item-top">
42
- <view
43
- v-if="item.is_default === 'Y'"
44
- :style="{
45
- backgroundColor: mainColor,
46
- color: '#fff',
47
- fontSize: '24rpx',
48
- padding: '4rpx 10rpx',
49
- borderRadius: '4rpx',
50
- marginRight: '20rpx',
51
- }"
52
- >默认</view
53
- >
29
+ <template v-if="layout_style === 'old'">
30
+ <view
31
+ :style="{
32
+ marginBottom: jfbListSpacing + 'rpx',
33
+ boxShadow: jfbListShadowComputed,
34
+ border: jfbListBorderComputed,
35
+ backgroundColor: jfbListBgColor,
36
+ borderRadius: cardRadius + 'rpx'
37
+ }"
38
+ class="jfb-base-address__body-address-item"
39
+ v-for="(item, index) in addressList"
40
+ @click="handleSelectAddress(item)"
41
+ :key="index"
42
+ >
43
+ <view class="jfb-base-address__body-address-item-top">
44
+ <view
45
+ v-if="item.is_default === 'Y'"
46
+ :style="{
47
+ backgroundColor: mainColor,
48
+ color: '#fff',
49
+ fontSize: '24rpx',
50
+ padding: '4rpx 10rpx',
51
+ borderRadius: '4rpx',
52
+ marginRight: '20rpx',
53
+ }"
54
+ >默认</view
55
+ >
56
+ <view
57
+ :style="{
58
+ color: '#999999',
59
+ flex: 1,
60
+ paddingRight: item.is_valid === 'N' ? '40rpx' : '',
61
+ }"
62
+ >
63
+ <view>
64
+ {{ item | getCodeName }}
65
+ </view>
66
+ </view>
67
+ <view
68
+ style="position: absolute; right: 40rpx; width: 50rpx"
69
+ v-if="item.is_valid === 'N'"
70
+ >
71
+ <xd-font-icon
72
+ size="32"
73
+ :color="dangerColor"
74
+ icon="iconmingchengtubiao"
75
+ ></xd-font-icon>
76
+ </view>
77
+ </view>
78
+ <view class="jfb-base-address__body-address-item-middle">
79
+ {{ item.address_detail }} {{ item.house_number }}
80
+ </view>
54
81
  <view
55
82
  :style="{
56
- color: '#999999',
57
- flex: 1,
58
- paddingRight: item.is_valid === 'N' ? '40rpx' : '',
83
+ backgroundColor: item.is_select === 'Y' ? mainColor : '#CCC',
59
84
  }"
85
+ class="jfb-base-address__body-address-item-bottom"
60
86
  >
61
87
  <view>
62
- {{ item | getCodeName }}
88
+ <view style="margin-right: 40rpx">{{ item.name }}</view>
89
+ <view>{{ item.phone }}</view>
90
+ </view>
91
+ <view>
92
+ <xd-font-icon
93
+ @click.native.stop="handleEdit(item)"
94
+ style="margin-right: 40rpx"
95
+ icon="iconbianji-01"
96
+ size="32"
97
+ ></xd-font-icon>
98
+ <xd-font-icon
99
+ @click.native.stop="handleDel(item)"
100
+ icon="iconshanchu-01"
101
+ size="32"
102
+ ></xd-font-icon>
63
103
  </view>
64
104
  </view>
65
- <view
66
- style="position: absolute; right: 40rpx; width: 50rpx"
67
- v-if="item.is_valid === 'N'"
68
- >
69
- <xd-font-icon
70
- size="32"
71
- :color="dangerColor"
72
- icon="iconmingchengtubiao"
73
- ></xd-font-icon>
74
- </view>
75
- </view>
76
- <view class="jfb-base-address__body-address-item-middle">
77
- {{ item.address_detail }} {{ item.house_number }}
78
105
  </view>
106
+ </template>
107
+ <template v-else>
79
108
  <view
80
109
  :style="{
81
- backgroundColor: item.is_select === 'Y' ? mainColor : '#CCC',
110
+ marginBottom: jfbListSpacing + 'rpx',
111
+ boxShadow: jfbListShadowComputed,
112
+ border: jfbListBorderComputed,
113
+ backgroundColor: jfbListBgColor,
114
+ borderRadius: cardRadius + 'rpx'
82
115
  }"
83
- class="jfb-base-address__body-address-item-bottom"
116
+ v-for="(item, index) in addressList"
117
+ @click="handleSelectAddress(item)"
118
+ :key="index"
84
119
  >
85
- <view>
86
- <view style="margin-right: 40rpx">{{ item.name }}</view>
87
- <view>{{ item.phone }}</view>
88
- </view>
89
- <view>
90
- <xd-font-icon
91
- @click.native.stop="handleEdit(item)"
92
- style="margin-right: 40rpx"
93
- icon="iconbianji-01"
94
- size="32"
95
- ></xd-font-icon>
96
- <xd-font-icon
97
- @click.native.stop="handleDel(item)"
98
- icon="iconshanchu-01"
99
- size="32"
100
- ></xd-font-icon>
101
- </view>
120
+ <xd-tfk-item
121
+ :edit_icon="edit_icon"
122
+ :delete_icon="delete_icon"
123
+ :item="item"
124
+ :dangerColor="dangerColor"
125
+ @editAddress="handleEdit(item)"
126
+ @delAddress="handleDel(item)"
127
+ @setDefault="handleSetDefault(item)"
128
+ ></xd-tfk-item>
102
129
  </view>
103
- </view>
130
+ </template>
104
131
  </view>
105
132
  <view class="jfb-base-address__body-empty" v-else>
106
133
  <xd-font-icon icon="iconbianzu-01" size="120"></xd-font-icon>
@@ -150,6 +177,7 @@ import componentsMixins from "@/mixins/componentsMixins";
150
177
  import extsMixins from "@/mixins/extsMixins";
151
178
  import StyleForm from "@/utils/StyleForm";
152
179
  import { getContainerPropsValue } from "@/utils/xd.base";
180
+ import XdTfkItem from "./XdTfkItem"
153
181
  let styleForm = new StyleForm(
154
182
  {
155
183
  border: null,
@@ -174,6 +202,7 @@ export default {
174
202
  XdButton,
175
203
  XdDownDrawer,
176
204
  XdAddress,
205
+ XdTfkItem,
177
206
  },
178
207
  mixins: [componentsMixins, extsMixins, JfbBaseAddressMixin],
179
208
  data() {
@@ -184,7 +213,12 @@ export default {
184
213
  location_url: "",
185
214
  addressList: null,
186
215
  ...styleForm.getDataItem(),
187
- version: ''
216
+ version: '',
217
+
218
+ layout_style: "old",
219
+ edit_icon: "",
220
+ delete_icon: "",
221
+ cardRadius: 16,
188
222
  };
189
223
  },
190
224
  filters: {
@@ -236,6 +270,11 @@ export default {
236
270
  { value: "" }
237
271
  ).value;
238
272
  styleForm.getInitItem(this, value);
273
+ this.layout_style = getContainerPropsValue(value, "content.layout_style", "old");
274
+ this.edit_icon = getContainerPropsValue(value, "content.edit_icon", "iconbianji-01");
275
+ this.delete_icon = getContainerPropsValue(value, "content.delete_icon", "iconshanchu-01");
276
+ this.cardRadius = getContainerPropsValue(value, "content.cardRadius", 16);
277
+ console.log("edit_icon", this.edit_icon)
239
278
  },
240
279
  getList(callback) {
241
280
  this.$xdShowLoading({});
@@ -490,7 +529,8 @@ export default {
490
529
  })
491
530
  .catch(this.$xdLog.catch);
492
531
  },
493
- handleEdit(item) {
532
+ //接口数据接口映射到组件数据接口
533
+ apiDataMapCompData(item){
494
534
  let city_name = [
495
535
  item["province_name"],
496
536
  item["city_name"],
@@ -503,13 +543,15 @@ export default {
503
543
  item["area_code"],
504
544
  item["street_code"],
505
545
  ];
506
- this.defaultValue = {
546
+ return {
507
547
  receipt_username: item["name"],
508
548
  receipt_address: item["address_detail"],
509
549
  receipt_phone: item["phone"],
510
550
  receipt_default: item["is_default"] === "Y" ? true : false,
511
551
  city_name: city_name,
512
552
  city_code: city_code,
553
+ receipt_city_code: city_code,
554
+ receipt_city_name: city_name,
513
555
  receipt_region_name: city_name.join(" "),
514
556
  city_selected_data: city_name.map((item, index) => {
515
557
  return { label: item, value: city_code[index] };
@@ -518,11 +560,20 @@ export default {
518
560
  latitude: item["latitude"] || null,
519
561
  longitude: item["longitude"] || null,
520
562
  house_number: item["house_number"],
521
- };
563
+ }
564
+ },
565
+ handleEdit(item) {
566
+ this.defaultValue = this.apiDataMapCompData(item);
522
567
 
523
568
  console.log("handleEdit", item, this.defaultValue);
524
569
  this.showAddress = true;
525
570
  },
571
+ handleSetDefault(item){
572
+ let is_default = item.is_default === "Y" ? "N" : "Y";
573
+ this.$set(item, 'is_default', is_default);
574
+ let saveData = this.apiDataMapCompData({...item, is_default});
575
+ this.handleSave(saveData);
576
+ },
526
577
  handleDel(item) {
527
578
  console.log("handleDel", item);
528
579
  this.$xdConfirm({
@@ -670,9 +721,10 @@ export default {
670
721
 
671
722
  &-address {
672
723
  &-item {
673
- border-radius: unit(16, rpx);
724
+ // border-radius: unit(16, rpx);
674
725
  margin-bottom: unit(20, rpx);
675
726
  box-shadow: 0px 0px unit(20, rpx) 0px rgba(0, 0, 0, 0.1);
727
+ overflow: hidden;
676
728
 
677
729
  &-top {
678
730
  display: flex;
@@ -695,7 +747,7 @@ export default {
695
747
  padding: unit(20, rpx) unit(40, rpx);
696
748
  font-size: unit(28, rpx);
697
749
  color: #fff;
698
- border-radius: 0px 0px unit(16, rpx) unit(16, rpx);
750
+ // border-radius: 0px 0px unit(16, rpx) unit(16, rpx);
699
751
 
700
752
  & > view {
701
753
  display: flex;
@@ -0,0 +1,117 @@
1
+ <template>
2
+ <view class="xd-tfk-item" @click="handleSelectAddress">
3
+ <view class="item_top">
4
+ <view class="user_info">
5
+ {{ item.name }} <text style="margin-left: 20rpx;">{{ item.phone }}</text>
6
+ <view v-if="item.is_valid === 'N'"
7
+ style="position: absolute; right: 40rpx;top: 0;"
8
+ >
9
+ <xd-font-icon
10
+ size="32"
11
+ :color="dangerColor"
12
+ icon="iconmingchengtubiao"
13
+ ></xd-font-icon>
14
+ </view>
15
+ </view>
16
+ <view class="user_adr">{{item.province_name}}{{item.city_name}}{{item.area_name}}{{item.street_name}}{{ item.address_detail }} {{ item.house_number }}</view>
17
+ </view>
18
+ <view class="item_bottom">
19
+ <view class="is_default" @click.native.stop="setDefault">
20
+ <xd-radio :value="item.is_default === 'Y'" :width="52" :height="52" :iconSize="20"></xd-radio>
21
+ <view v-if="item.is_default === 'Y'">默认地址</view>
22
+ <view v-else>设为默认</view>
23
+ </view>
24
+ <view class="item_opera">
25
+ <view class="o_i" style="margin-right: 30rpx;" @click.native.stop="handleEdit">
26
+ <xd-font-icon class="icon" :icon="edit_icon" :size="26"></xd-font-icon> 编辑
27
+ </view>
28
+ <view class="o_i" @click.native.stop="handleDel">
29
+ <xd-font-icon class="icon" :icon="delete_icon" :size="26"></xd-font-icon> 删除
30
+ </view>
31
+ </view>
32
+ </view>
33
+ </view>
34
+ </template>
35
+ <script>
36
+ import XdRadio from "@/components/XdRadio/XdRadio"
37
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon"
38
+ export default{
39
+ name:"XdTfkItem",
40
+ components: {
41
+ XdRadio,
42
+ XdFontIcon,
43
+ },
44
+ props:{
45
+ edit_icon: String,
46
+ delete_icon: String,
47
+ item: Object,
48
+ dangerColor: String,
49
+ },
50
+ data(){
51
+ return{
52
+ }
53
+ },
54
+ created(){
55
+ },
56
+ methods:{
57
+ handleSelectAddress(){
58
+ this.$emit("selectAddress")
59
+ },
60
+ handleEdit(){
61
+ this.$emit("editAddress", this.item)
62
+ },
63
+ handleDel(){
64
+ this.$emit("delAddress", this.item)
65
+ },
66
+ setDefault(){
67
+ this.$emit("setDefault", this.item)
68
+ }
69
+ },
70
+ }
71
+ </script>
72
+ <style lang="less" scoped>
73
+ .xd-tfk-item{
74
+ .item_top{
75
+ padding: 30rpx;
76
+ }
77
+ .user_info{
78
+ color: #191a1b;
79
+ font-size: 30rpx;
80
+ position: relative;
81
+ }
82
+ .user_adr{
83
+ color: #797d82;
84
+ font-size: 26rpx;
85
+ margin-top: 6rpx;
86
+ overflow: hidden;
87
+ text-overflow: ellipsis;
88
+ white-space: nowrap;
89
+ }
90
+ .item_bottom{
91
+ display: flex;
92
+ justify-content: space-between;
93
+ padding: 20rpx;
94
+ border-top: 1px solid #ededed;
95
+ }
96
+ .item_opera{
97
+ display: flex;
98
+ color: #797d82;
99
+ align-items: center;
100
+ .o_i{
101
+ display: flex;
102
+ align-items: center;
103
+ font-size: 26rpx;
104
+
105
+ .icon{
106
+ margin-right: 10rpx;
107
+ }
108
+ }
109
+ }
110
+ .is_default{
111
+ display: flex;
112
+ align-items: center;
113
+ font-size: 26rpx;
114
+ color: #797d82;
115
+ }
116
+ }
117
+ </style>
@@ -6,51 +6,40 @@
6
6
  */
7
7
  module.exports = [
8
8
  {
9
- //设置方法名字当别忘记加上【模块名字】:Card
10
- mapFnName: 'getCardByIdFilmSquate',
11
- title: '获取电影广场列表',
12
- path: '/api/account/film/list-film-square',
9
+ mapFnName: 'getCardDelayContent', //自定义方法名字(必选)
10
+ title: '获取内容',
11
+ path: '/cms/v1/news-content',
13
12
  isRule: false,
14
13
  params: {
15
- last_key: ['当前页', 'Number', '必选'],
16
- page_size: ['每页数量', 'Number', '必选'],
14
+ scene: ['使用场景', 'String', '选填'],
15
+ container_id: ['插件ID', 'String', '必填'],
16
+ page_id: ['页面ID', 'String', '必填'],
17
+ page_size: ['记录条数', 'Number', '必填', 1],
18
+ code: ['业务线id', 'String', '选填'],
17
19
  },
18
20
  isConsole: true,
19
21
  disabled: true,
20
22
  },
21
23
  {
22
- //设置方法名字当别忘记加上【模块名字】:Card
23
- mapFnName: 'updateCardFilmPaiqiDate',
24
- title: '更新排期',
25
- path: '/api/account/film/paiqi-date',
24
+ mapFnName: 'getCardDelayPackageList', //自定义方法名字(必选)
25
+ title: '获取可用套餐',
26
+ path: '/card/v1/card-delay/list-avaliable-card-package',
26
27
  isRule: false,
27
28
  params: {
28
- film_id: ['电影id', 'Number', '必选'],
29
- cinema_id: ['影院id', 'Number', '必选'],
29
+ card_number: ['卡号', 'String', '选填'],
30
30
  },
31
31
  isConsole: true,
32
32
  disabled: true,
33
33
  },
34
34
  {
35
- //设置方法名字当别忘记加上【模块名字】:Card
36
- mapFnName: 'removeCardFilmAddress',
37
- title: '删除我的配送地址',
38
- path: '/api/account/film/paiqi-date',
35
+ mapFnName: 'confirmDelayOrder', //自定义方法名字(必选)
36
+ title: '提交订单',
37
+ path: '/card/v1/card-delay/create-order',
39
38
  isRule: false,
40
- params: {
41
- film_id: ['电影id', 'Number', '必选'],
42
- },
43
- isConsole: true,
44
- disabled: true,
45
- },
46
- {
47
- //设置方法名字当别忘记加上【模块名字】:Card
48
- mapFnName: 'addCardFilmcart',
49
- title: '添加购物车',
50
- path: '/api/account/film/paiqi-date',
51
- isRule: false,
52
- params: {
53
- film_id: ['电影id', 'Number', '必选'],
39
+ data: {
40
+ card_number: ['卡号', 'String', '必填'],
41
+ total_amount: [ '订单金额', 'Number', '必填'],
42
+ package_id: ['套餐ID', 'String', '必填'],
54
43
  },
55
44
  isConsole: true,
56
45
  disabled: true,