jufubao-base 1.0.232-beta3 → 1.0.232-beta5

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 (41) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseBalance/Api.js +58 -0
  3. package/src/components/JfbBaseBalance/Attr.js +48 -0
  4. package/src/components/JfbBaseBalance/JfbBaseBalance.vue +111 -0
  5. package/src/components/JfbBaseBalance/JfbBaseBalanceLess.less +79 -0
  6. package/src/components/JfbBaseBalance/JfbBaseBalanceMixin.js +30 -0
  7. package/src/components/JfbBaseBalance/Mock.js +13 -0
  8. package/src/components/JfbBaseCardDelay/JfbBaseCardDelay.vue +30 -29
  9. package/src/components/JfbBaseCodeOpenVip/Attr.js +229 -27
  10. package/src/components/JfbBaseCodeOpenVip/JfbBaseCodeOpenVip.vue +111 -9
  11. package/src/components/JfbBaseConsumpCode/Attr.js +22 -22
  12. package/src/components/JfbBaseConsumpCode/JfbBaseConsumpCode.vue +580 -34
  13. package/src/components/JfbBaseLogin/JfbBaseLogin.vue +16 -7
  14. package/src/components/JfbBaseOpenVip/Attr.js +229 -27
  15. package/src/components/JfbBaseOpenVip/JfbBaseOpenVip.vue +259 -7
  16. package/src/components/JfbBaseOpenVip/XdVipList.vue +81 -0
  17. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetail.vue +33 -4
  18. package/src/components/JfbBasePersonalData/JfbBasePersonalData.vue +98 -33
  19. package/src/components/JfbBasePointsCard/Attr.js +199 -24
  20. package/src/components/JfbBasePointsCard/JfbBasePointsCard.vue +209 -29
  21. package/src/components/JfbBasePointsDetail/Api.js +8 -43
  22. package/src/components/JfbBasePointsDetail/Attr.js +282 -26
  23. package/src/components/JfbBasePointsDetail/JfbBasePointsDetail.vue +139 -29
  24. package/src/components/JfbBaseRechargeOrder/Api.js +3 -13
  25. package/src/components/JfbBaseRechargeOrder/JfbBaseRechargeOrder.vue +16 -34
  26. package/src/components/JfbBaseShare/JfbBaseShare.vue +108 -2
  27. package/src/components/JfbBaseTfkSearch/Attr.js +8 -82
  28. package/src/components/JfbBaseUserInfo/Attr.js +102 -10
  29. package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +301 -114
  30. package/src/components/JfbBaseWithDrawAgain/Api.js +58 -0
  31. package/src/components/JfbBaseWithDrawAgain/Attr.js +48 -0
  32. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgain.vue +111 -0
  33. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgainLess.less +79 -0
  34. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgainMixin.js +30 -0
  35. package/src/components/JfbBaseWithDrawAgain/Mock.js +13 -0
  36. package/src/components/JfbBaseWithDrawRecord/Api.js +58 -0
  37. package/src/components/JfbBaseWithDrawRecord/Attr.js +48 -0
  38. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecord.vue +111 -0
  39. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecordLess.less +79 -0
  40. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecordMixin.js +30 -0
  41. package/src/components/JfbBaseWithDrawRecord/Mock.js +13 -0
@@ -0,0 +1,81 @@
1
+ <template>
2
+ <view class="xd_vip_wrap">
3
+ <view class="vip_list">
4
+ <view class="vip_item" :class="{active: i==1}" v-for="i in 6" :key="i">
5
+ <view class="vip_name">1日体验</view>
6
+ <view class="vip_price">10.00</view>
7
+ </view>
8
+ </view>
9
+ <view class="vip_pay">
10
+ <xd-button type="primary" width="600rpx">立即支付¥148/年</xd-button>
11
+ <view class="vip_tip">开通视为同意<text @click.stop="handlePrivacy('privacy_service')">《共享PLUS会员用户协议》</text></view>
12
+ </view>
13
+ </view>
14
+ </template>
15
+
16
+ <script>
17
+ import XdButton from "@/components/XdButton/XdButton.vue"
18
+ export default {
19
+ components: {
20
+ XdButton
21
+ },
22
+ data(){
23
+ return {
24
+
25
+ }
26
+ },
27
+ methods: {
28
+ handlePrivacy(type){
29
+ this.$emit('handlePrivacy', type)
30
+ }
31
+ }
32
+ }
33
+ </script>
34
+
35
+ <style lang="less" scoped>
36
+ .xd_vip_wrap{
37
+ background: #FFFFFF;
38
+ .vip_list{
39
+ width: 100%;
40
+ overflow: auto;
41
+ white-space: nowrap;
42
+ padding: 32rpx 16rpx;
43
+ .vip_item{
44
+ display: inline-block;
45
+ width: 160rpx;
46
+ height: 112rpx;
47
+ border-radius: 24rpx;
48
+ text-align: center;
49
+ color: #999999;
50
+ border: 4rpx solid #EEEEEE;
51
+ background-color: #EEEEEE;
52
+ box-sizing: border-box;
53
+ margin: 0 16rpx;
54
+ padding: 20rpx 0;
55
+ line-height: 1;
56
+ font-weight: 500;
57
+ &.active{
58
+ border-color: #AB6900;
59
+ background-color: #FFF2DE;
60
+ color: #AB6900;
61
+ }
62
+ .vip_name{
63
+ font-size: 24rpx;
64
+ margin-bottom: 12rpx;
65
+ }
66
+ .vip_price{
67
+ font-size: 36rpx;
68
+ }
69
+ }
70
+ }
71
+ .vip_pay{
72
+ padding: 24rpx 0 50rpx;
73
+ }
74
+ .vip_tip{
75
+ text-align: center;
76
+ font-size: 22rpx;
77
+ color: #999999;
78
+ margin-top: 24rpx;
79
+ }
80
+ }
81
+ </style>
@@ -14,13 +14,24 @@
14
14
  </view>
15
15
  <!-- #endif -->
16
16
  <view class="jfb-base-open-vip-detail__body">
17
- <view>测试插件( {{containerId}} )</view>
17
+ <view class="combo_section">
18
+ <view class="combo_section-title">套餐名称:年卡会员</view>
19
+ <xd-list-item label="套餐金额" paddingLR="40rpx">¥125.00</xd-list-item>
20
+ <xd-list-item label="套餐期限" paddingLR="40rpx">30天</xd-list-item>
21
+ </view>
22
+
23
+ <view class="combo_section">
24
+ <xd-list-item label="套餐金额" paddingLR="40rpx">¥125.00</xd-list-item>
25
+ <xd-list-item label="平台优惠" paddingLR="40rpx">-¥125.00</xd-list-item>
26
+ </view>
27
+
18
28
  </view>
19
29
  </view>
20
30
  </template>
21
31
 
22
32
  <script>
23
33
  import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
34
+ import XdListItem from "@/components/CusListItem/CusListItem"
24
35
  import { jfbRootExec } from "@/utils/xd.event";
25
36
  import JfbBaseOpenVipDetailMixin from "./JfbBaseOpenVipDetailMixin";
26
37
  import { getContainerPropsValue } from "@/utils/xd.base";
@@ -29,14 +40,15 @@
29
40
  export default {
30
41
  name: "JfbBaseOpenVipDetail",
31
42
  components: {
32
- XdFontIcon
43
+ XdFontIcon,
44
+ XdListItem
33
45
  },
34
46
  mixins: [
35
47
  componentsMixins, extsMixins, JfbBaseOpenVipDetailMixin
36
48
  ],
37
49
  data() {
38
50
  return {
39
-
51
+ closeMask: true,
40
52
  //todo
41
53
  }
42
54
  },
@@ -105,7 +117,24 @@
105
117
 
106
118
  .jfb-base-open-vip-detail {
107
119
  &__body{
108
-
120
+ .combo_section{
121
+ border-radius: 24rpx;
122
+ overflow: hidden;
123
+ margin: 20rpx;
124
+ background-color: #FFFFFF;
125
+ &-title{
126
+ height: 72rpx;
127
+ line-height: 72rpx;
128
+ text-align: center;
129
+ background: linear-gradient(90deg, #FCD083 0%, #FFDEAD 100%);
130
+ font-size: 28rpx;
131
+ color: #915714;
132
+ font-weight: 500;
133
+ }
134
+ ::v-deep .my-list_value{
135
+ color: #999999;
136
+ }
137
+ }
109
138
  }
110
139
  }
111
140
  </style>
@@ -1,26 +1,52 @@
1
1
  <template>
2
- <view
3
- class="jfb-base-personal-data"
4
- @click="handleEditxSelect"
5
- :class="{ editx : isEditx && active }"
6
- >
2
+ <view class="jfb-base-personal-data" @click="handleEditxSelect" :class="{ editx : isEditx && active }">
7
3
  <!--#ifdef H5-->
8
- <view
9
- class="jfb-base-personal-data__edit"
10
- :class="{ editx : isEditx && active }"
11
- v-if="isEditx && active"
12
- >
4
+ <view class="jfb-base-personal-data__edit" :class="{ editx : isEditx && active }" v-if="isEditx && active">
13
5
  <view class="jfb-base-personal-data__edit-icon" @click="delEdit">删除</view>
14
6
  </view>
15
7
  <!-- #endif -->
16
8
  <view class="jfb-base-personal-data__body">
17
- <view>测试插件( {{containerId}} )</view>
9
+ <view class="jfb-base-personal-data__body-item">
10
+ <view class="jfb-base-personal-data__body-item-label">头像</view>
11
+ <image class="profile" :src="data.profile"  ></image>
12
+ </view>
13
+ <view class="jfb-base-personal-data__body-item">
14
+ <view class="jfb-base-personal-data__body-item-label">账号</view>
15
+ <view class="jfb-base-personal-data__body-item-value">{{data.account}}</view>
16
+ </view>
17
+ <view class="jfb-base-personal-data__body-item">
18
+ <view class="jfb-base-personal-data__body-item-label">名称</view>
19
+ <input class="jfb-base-personal-data__body-item-value" v-model="data.name" type="text">
20
+ </view>
21
+ <view class="jfb-base-personal-data__body-item">
22
+ <view class="jfb-base-personal-data__body-item-label">性别</view>
23
+ <XdSelect padding="0" color="#999" class="select" :defaultValue="data.sex" v-model="data.sex" :list="sexList">
24
+ <template>
25
+ <view class="jfb-base-personal-data__body-item-value">
26
+ <XdFontIcon class="icon" color="#999999" size="24" icon="iconxiangyou_xian"></XdFontIcon>
27
+ </view>
28
+ </template>
29
+
30
+ </XdSelect>
31
+ </view>
32
+ <view class="jfb-base-personal-data__body-item">
33
+ <view class="jfb-base-personal-data__body-item-label">生日</view>
34
+ <view style="display: flex;align-items: center" @click="showDate=true">
35
+ <view class="jfb-base-personal-data__body-item-value">{{data.birthday}}</view>
36
+ <XdFontIcon class="icon" color="#999999" size="24" icon="iconxiangyou_xian"></XdFontIcon>
37
+ </view>
38
+ </view>
39
+ <XdDate ref="calendar" :selectType="false" :main-color="mainColor" :current-is-show-other-month="false" :show.sync="showDate"
40
+ :clear-date="true" :insert="false" :lunar="false" :selected-circle="false" :date="data.birthday"
41
+ @confirm="confirmDate" @close="closeDate"></XdDate>
18
42
  </view>
19
43
  </view>
20
44
  </template>
21
45
 
22
46
  <script>
23
47
  import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
48
+ import XdDate from '@/components/XdDate/XdDate.vue'
49
+ import XdSelect from "@/components/XdSelect/XdSelect";
24
50
  import { jfbRootExec } from "@/utils/xd.event";
25
51
  import JfbBasePersonalDataMixin from "./JfbBasePersonalDataMixin";
26
52
  import { getContainerPropsValue } from "@/utils/xd.base";
@@ -29,15 +55,35 @@
29
55
  export default {
30
56
  name: "JfbBasePersonalData",
31
57
  components: {
32
- XdFontIcon
58
+ XdFontIcon,
59
+ XdSelect,
60
+ XdDate
33
61
  },
34
62
  mixins: [
35
63
  componentsMixins, extsMixins, JfbBasePersonalDataMixin
36
64
  ],
37
65
  data() {
38
66
  return {
39
-
40
- //todo
67
+ single: '',
68
+ showDate: false,
69
+ birthday: '',
70
+ sexList: [
71
+ {
72
+ label: '男',
73
+ value: 1
74
+ },
75
+ {
76
+ label: '女',
77
+ value: 2
78
+ }
79
+ ],
80
+ data: {
81
+ sex: 1,
82
+ profile: 'https://img.js.design/assets/smartFill/img316164da746310.jpg',
83
+ account: 5455645545,
84
+ name: '张三',
85
+ birthday: '2025-04-09'
86
+ }
41
87
  }
42
88
  },
43
89
  watch: {
@@ -48,31 +94,21 @@
48
94
  },
49
95
  created() {
50
96
  this.init(this.container);
51
-
52
- //todo
53
97
  },
54
98
  methods: {
55
- onJfbLoad(options) {
56
-
57
- // jfbRootExec('baiduUserLogin', {
58
-
59
- // vm: this,// data: {
60
-
61
- // account: 'gaoshiyong',// password: '123456789',// type: 3,// ...options
62
-
63
- // }
64
-
65
- // }).then().catch()
66
- },
99
+ onJfbLoad(options) { },
67
100
  /**
68
101
  * @description 监听事件变化
69
102
  * @param container {object} 业务组件对象自己
70
103
  */
71
104
  init(container) {
105
+ },
106
+ confirmDate(e) {
107
+ console.log(e, 'confirmDate');
108
+ this.data.birthday = e.fulldate
109
+ },
110
+ closeDate() {
72
111
 
73
- //this.bgcolor = getContainerPropsValue(container, 'content.bgcolor', '#fff');
74
-
75
- //this.height = getContainerPropsValue(container, 'content.height', 10);
76
112
  },
77
113
  onJfbScroll(options) {
78
114
  console.log('event.onJfbScroll', options)
@@ -104,8 +140,37 @@
104
140
  @import "./JfbBasePersonalDataLess.less";
105
141
 
106
142
  .jfb-base-personal-data {
107
- &__body{
143
+ &__body {
144
+ .icon {
145
+ margin-left: 8rpx;
146
+ }
108
147
 
148
+ &-item {
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: space-between;
152
+ border-radius: 20rpx;
153
+ background: #FFFFFF;
154
+ padding: 32rpx 46rpx;
155
+ margin: 20rpx;
156
+
157
+ &-label {
158
+ color: #333;
159
+ font-size: 28rpx;
160
+ }
161
+
162
+ &-value {
163
+ color: #999999;
164
+ font-size: 28rpx;
165
+ text-align: right;
166
+ }
167
+
168
+ .profile {
169
+ width: 80rpx;
170
+ height: 80rpx;
171
+ border-radius: 50%;
172
+ }
173
+ }
109
174
  }
110
175
  }
111
- </style>
176
+ </style>
@@ -8,41 +8,216 @@ export default {
8
8
  content: (data) => {
9
9
  return [
10
10
  {
11
- label: '背景颜色:',
12
- ele: 'xd-color',
13
- valueKey: 'bgColor',
14
- value: data.bgColor || '',
15
- placeholder: '请输入占位框背景颜色',
16
- groupKey:'content',
11
+ label: '预览plus样式:',
12
+ ele: 'xd-radio',
13
+ valueKey: 'is_plus_preview',
14
+ value: data['is_plus_preview'] || 'Y',
15
+ groupKey: 'content',
16
+ placeholder: '请选择预览plus样式',
17
+ multiple: false,
18
+ className: 'input80',
19
+ list: [
20
+ { label: 'plus用户样式', value: 'Y' },
21
+ { label: '普通用户样式', value: 'N' },
22
+ ]
17
23
  },
18
24
  {
19
- label: '选中路径:',
20
- groupKey:'advanced',
21
- className: 'input100',
22
- ele: 'xd-select-pages-path',
23
- valueKey: 'select-pages-path',
24
- value: data['select-pages-path'] || null,
25
+ label: '是否展示积分入口:',
26
+ labelInline: true,
27
+ ele: 'xd-radio',
28
+ valueKey: 'isPoints',
29
+ groupKey: 'content',
30
+ value: data['isPoints'] || 'Y',
31
+ list: [
32
+ { "label": "展示", "value": 'Y' },
33
+ { "label": "隐藏", "value": 'N' },
34
+ ]
35
+ },
36
+ {
37
+ label: '是否展示余额入口:',
38
+ labelInline: true,
39
+ ele: 'xd-radio',
40
+ valueKey: 'isYue',
41
+ groupKey: 'content',
42
+ value: data['isYue'] || 'Y',
43
+ list: [
44
+ { "label": "展示", "value": 'Y' },
45
+ { "label": "隐藏", "value": 'N' },
46
+ ]
47
+ },
48
+ {
49
+ label: '是否展示优惠券入口:',
50
+ labelInline: true,
51
+ ele: 'xd-radio',
52
+ valueKey: 'isConpon',
53
+ groupKey: 'content',
54
+ value: data['isConpon'] || 'Y',
55
+ list: [
56
+ { "label": "展示", "value": 'Y' },
57
+ { "label": "隐藏", "value": 'N' },
58
+ ]
59
+ },
60
+ {
61
+ label: '外边距:',
62
+ ele: 'xd-margin-padding',
63
+ valueKey: 'bodyMargin',
64
+ groupKey: 'style',
65
+ value: data['bodyMargin'] || null,
66
+ setting: {
67
+ type: 'margin',
68
+ },
69
+ placeholder: '请设置外边距',
70
+ inline: false,
71
+ notice: '设置外边距,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">0</span>像素',
72
+ },
73
+ {
74
+ label: '外填充:',
75
+ ele: 'xd-margin-padding',
76
+ valueKey: 'bodyPadding',
77
+ groupKey: 'style',
78
+ value: data['bodyPadding'] || null,
25
79
  setting: {
26
- router: XdBus.getParentApi('getPagesTree')
80
+ type: 'padding',
27
81
  },
82
+ placeholder: '请设置外填充',
83
+ inline: false,
84
+ notice: '设置填充值,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">20</span>像素',
28
85
  },
29
- data.bgColor && {
30
- label: '高度:',
86
+ {
87
+ ele: 'title',
88
+ label: '主体设置',
89
+ size: 'small',
90
+ groupKey: 'style',
91
+ },
92
+ {
93
+ label: '主体圆角设置:',
94
+ ele: 'xd-site-select-list',
95
+ valueKey: 'radius',
96
+ value: data['radius'] || '20',
97
+ labelInline: true,
98
+ groupKey: 'style',
99
+ placeholder: '请选择圆角设置',
100
+ multiple: false,
101
+ className: 'input60',
102
+ handleCustom({ action, data }) {
103
+ XdBus.getParentApi('getOptionsSettingList')({
104
+ setting_id: 'edtix_style_radius',
105
+ key: Date.now()
106
+ })
107
+ .then(res => {
108
+ data.cb(res.list)
109
+ })
110
+ .catch(error => {
111
+ console.error(error);
112
+ });
113
+ },
114
+ },
115
+ {
116
+ label: 'plus用户主体背景颜色:',
117
+ ele: 'el-input',
118
+ valueKey: 'plusBodyBgColor',
119
+ groupKey: 'style',
120
+ value: data['plusBodyBgColor'] || null,
121
+ placeholder: '请选择背景颜色',
122
+ labelInline: true,
123
+ classNmae: 'input80',
124
+ },
125
+ {
126
+ label: '普通用户主体背景颜色:',
31
127
  ele: 'el-input',
32
- groupKey:'style',
33
- type: 'number',
34
- valueKey: 'height',
35
- value: data.height || 100,
36
- placeholder: '请输入占位框高度,单位像素,默认:10px',
128
+ valueKey: 'normalBodyBgColor',
129
+ groupKey: 'style',
130
+ value: data['normalBodyBgColor'] || null,
131
+ placeholder: '请选择背景颜色',
132
+ labelInline: true,
133
+ classNmae: 'input80',
134
+ },
135
+ {
136
+ ele: 'title',
137
+ label: '入口设置',
138
+ size: 'small',
139
+ groupKey: 'style',
140
+ },
141
+ {
142
+ label: '入口圆角设置:',
143
+ ele: 'xd-site-select-list',
144
+ valueKey: 'itemRadius',
145
+ value: data['itemRadius'] || '16',
146
+ labelInline: true,
147
+ groupKey: 'style',
148
+ placeholder: '请选择圆角设置',
149
+ multiple: false,
37
150
  className: 'input60',
151
+ handleCustom({ action, data }) {
152
+ XdBus.getParentApi('getOptionsSettingList')({
153
+ setting_id: 'edtix_style_radius',
154
+ key: Date.now()
155
+ })
156
+ .then(res => {
157
+ data.cb(res.list)
158
+ })
159
+ .catch(error => {
160
+ console.error(error);
161
+ });
162
+ },
163
+ },
164
+ {
165
+ label: 'plus用户入口背景颜色:',
166
+ ele: 'el-input',
167
+ valueKey: 'plusItemBgColor',
168
+ groupKey: 'style',
169
+ value: data['plusItemBgColor'] || null,
170
+ placeholder: '请选择背景颜色',
171
+ labelInline: true,
172
+ classNmae: 'input80',
173
+ },
174
+ {
175
+ label: '普通用户入口背景颜色:',
176
+ ele: 'el-input',
177
+ valueKey: 'normalItemBgColor',
178
+ groupKey: 'style',
179
+ value: data['normalItemBgColor'] || null,
180
+ placeholder: '请选择背景颜色',
181
+ labelInline: true,
182
+ classNmae: 'input80',
183
+ },
184
+ {
185
+ label: '积分兑换地址路径:',
186
+ ele: 'xd-select-pages-path',
187
+ valueKey: 'pointsPath',
188
+ groupKey:'advanced',
189
+ placeholder: '请选择积分兑换地址路径',
190
+ value: data['addressUrl'] || null,
191
+ setting: {
192
+ router: XdBus.getParentApi('getPagesTree'),
193
+ },
194
+ inline: false,
195
+ },
196
+ {
197
+ label: '余额提现路径:',
198
+ ele: 'xd-select-pages-path',
199
+ valueKey: 'withdrawPath',
200
+ groupKey:'advanced',
201
+ placeholder: '请选择余额提现路径',
202
+ value: data['withdrawPath'] || null,
203
+ setting: {
204
+ router: XdBus.getParentApi('getPagesTree'),
205
+ },
206
+ inline: false,
38
207
  },
39
208
  {
40
- label: '', //label
209
+ label: '优惠券路径:',
210
+ ele: 'xd-select-pages-path',
211
+ valueKey: 'couponPath',
41
212
  groupKey:'advanced',
42
- ele: 'slot', //package 名称
43
- slot: 'is_reference',
213
+ placeholder: '请选择余额提现路径',
214
+ value: data['couponPath'] || null,
215
+ setting: {
216
+ router: XdBus.getParentApi('getPagesTree'),
217
+ },
218
+ inline: false,
44
219
  },
45
- ].filter(i=>i)
220
+ ].filter(i => i)
46
221
  },
47
222
  advanced: [],
48
223
  };