jufubao-base 1.0.116-beta6 → 1.0.116-beta8

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.
@@ -0,0 +1,198 @@
1
+ <template>
2
+ <view
3
+ class="jfb-base-my-setting"
4
+ @click="handleEditxSelect"
5
+ :class="{ editx : isEditx && active }"
6
+ >
7
+ <!--#ifdef H5-->
8
+ <view
9
+ class="jfb-base-my-setting__edit"
10
+ :class="{ editx : isEditx && active }"
11
+ v-if="isEditx && active"
12
+ >
13
+ <view class="jfb-base-my-setting__edit-icon" @click="delEdit">删除</view>
14
+ </view>
15
+ <!-- #endif -->
16
+ <view class="jfb-base-my-setting__body" :style="{
17
+ minHeight: layoutInfo.bodyMinHeightRpx + 'rpx'
18
+ }">
19
+ <view class="setting_list">
20
+ <xd-list-item label="已绑实体卡是否失效" listIcon="icongongxiang" paddingLR="50rpx" paddingTB="32rpx">
21
+ <xd-switch :checked="cardChecked" size="small" @change="handleCardChecked"></xd-switch>
22
+ </xd-list-item>
23
+ <xd-list-item :showRight="!phone_number" label="绑定手机号" listIcon="iconshouji01"
24
+ paddingLR="50rpx" paddingTB="32rpx"
25
+ @click="handleToBind"
26
+ >
27
+ {{phone_number ? phone_number : "去绑定"}}
28
+ </xd-list-item>
29
+ </view>
30
+ <view class="fixed_bottom">
31
+ <xd-button type="primary" @click="handleLogout">退出登录</xd-button>
32
+ </view>
33
+ </view>
34
+ </view>
35
+ </template>
36
+
37
+ <script>
38
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
39
+ import XdListItem from "./XdListItem.vue";
40
+ import XdButton from "@/components/XdButton/XdButton";
41
+ import XdSwitch from "@/components/XdSwitch/XdSwitch"
42
+ import { jfbRootExec } from "@/utils/xd.event";
43
+ import JfbBaseMySettingMixin from "./JfbBaseMySettingMixin";
44
+ import { getContainerPropsValue } from "@/utils/xd.base";
45
+ import componentsMixins from "@/mixins/componentsMixins";
46
+ import extsMixins from "@/mixins/extsMixins";
47
+ import {mapState} from 'vuex';
48
+ import store from "@/store";
49
+ export default {
50
+ name: "JfbBaseMySetting",
51
+ components: {
52
+ XdFontIcon,
53
+ XdButton,
54
+ XdListItem,
55
+ XdSwitch
56
+ },
57
+ mixins: [
58
+ componentsMixins, extsMixins, JfbBaseMySettingMixin
59
+ ],
60
+ computed: {
61
+ ...mapState(['jfbAuthorize']),
62
+ },
63
+ data() {
64
+ return {
65
+ cardChecked: false,
66
+ phone_number: "",
67
+
68
+ //面板
69
+ bind_phone_url: "", //绑定手机号跳转地址
70
+ }
71
+ },
72
+ watch: {
73
+ container(value) {
74
+ this.init(value)
75
+ }
76
+ },
77
+ created() {
78
+ this.init(this.container);
79
+
80
+ //todo
81
+ },
82
+ methods: {
83
+ onJfbLoad(options) {
84
+ this.p_getUserInfo();
85
+ this.getCardConfig();
86
+ },
87
+ /**
88
+ * @description 监听事件变化
89
+ * @param container {object} 业务组件对象自己
90
+ */
91
+ init(container) {
92
+ this.bind_phone_url = getContainerPropsValue(container, 'content.bind_phone_url', {value: ""}).value;
93
+ },
94
+ handleToBind(){
95
+ if(!this.phone_number){
96
+ this.$xdUniHelper.navigateTo({
97
+ url: this.bind_phone_url + `?callback_url=${encodeURIComponent(location.href)}`,
98
+ });
99
+ }
100
+ },
101
+ handleCardChecked(flag){
102
+ jfbRootExec("setCardUserSetting", {
103
+ vm: this,
104
+ data: {
105
+ is_entity_card_invalid: flag ? "Y" : "N"
106
+ }
107
+ }).then(res => {
108
+
109
+ })
110
+ },
111
+ p_getUserInfo(){
112
+ jfbRootExec("getUserInfo", {
113
+ vm: this,
114
+ data: {
115
+
116
+ }
117
+ }).then(res => {
118
+ let phone_number = res.phone_number;
119
+ this.phone_number = phone_number;
120
+ })
121
+ },
122
+ getCardConfig(){
123
+ jfbRootExec("getCardUserSetting", {
124
+ vm: this,
125
+ data: {
126
+
127
+ }
128
+ }).then(res => {
129
+ let is_entity_card_invalid = res.is_entity_card_invalid; //Y失效 N: 有效
130
+ this.cardChecked = is_entity_card_invalid === "Y";
131
+ })
132
+ },
133
+ async handleLogout(){
134
+ // #ifdef H5
135
+ if (this.$configProject.isPreview) return;
136
+ // #endif
137
+
138
+ if (this.jfbAuthorize !== null) {
139
+ this.$xdShowLoading({});
140
+ store.dispatch('logout').then(res=>{
141
+ this.$xdHideLoading();
142
+ this.jfbAuthorize.removeToken('card');
143
+ this.jfbAuthorize.jumpToUserLogin(this, false);
144
+ }).catch(err=>{
145
+ console.error(err);
146
+ })
147
+ }
148
+ },
149
+ onJfbScroll(options) {
150
+ console.log('event.onJfbScroll', options)
151
+ },
152
+ onJfbReachBottom(options) {
153
+ console.log('event.onJfbReachBottom', options)
154
+ },
155
+ onJfbShow(options) {
156
+ console.log('event.onJfbShow', options)
157
+ },
158
+ onJfbHide(options) {
159
+ console.log('event.onJfbHide', options)
160
+ },
161
+ onJfbBack(options) {
162
+ console.log('event.onJfbBack', options)
163
+ },
164
+ onJfbUpdate(...data) {
165
+ console.log('event.onJfbUpdate', data)
166
+ },
167
+ onJfbCustomEvent(options) {
168
+ console.log('event.onJfbReachBottom', options)
169
+ },
170
+ }
171
+ }
172
+
173
+ </script>
174
+
175
+ <style scoped lang="less">
176
+ @import "./JfbBaseMySettingLess.less";
177
+
178
+ .jfb-base-my-setting {
179
+ &__body{
180
+ background: #DDD;
181
+ .setting_list{
182
+ padding: 20rpx 0;
183
+ /deep/ .xd-my-list-item{
184
+ background: #FFFFFF;
185
+ margin: 24rpx 20rpx;
186
+ border-radius: 20rpx;
187
+ }
188
+ }
189
+ .fixed_bottom{
190
+ position: absolute;
191
+ width: 600rpx;
192
+ bottom: 100rpx;
193
+ left: 50%;
194
+ transform: translateX(-50%);
195
+ }
196
+ }
197
+ }
198
+ </style>
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @desc 获取绝对路径完整地址
3
+ * @param @path
4
+ **/
5
+ //例如:https://image.jufubao.cn/20220501010108/image/bg/default_gonghui_bg.png
6
+ @basePath: 'business/';
7
+ @doMain: '//sandbox-img.jufubao.cn/';
8
+
9
+ .getBusinessImageUrl(@path, @size: 'size8') {
10
+ @url: "@{doMain}@{basePath}@{path}?x-oss-process=style/@{size}";
11
+ background-image: url(@url);
12
+ }
13
+
14
+ //start
15
+ .jfb-base-my-setting {
16
+ border: 1px dashed rgba(0, 0, 0, 0);
17
+ box-sizing: border-box;
18
+ min-height: unit(50, rpx);
19
+
20
+ &__body{
21
+ position: relative;
22
+ overflow: hidden;
23
+ z-index: 2
24
+ }
25
+
26
+ &.editx {
27
+ position: relative;
28
+ border: 1px dashed blue;
29
+ box-sizing: border-box;
30
+ z-index: 3
31
+
32
+ }
33
+
34
+ &:hover {
35
+ border: 1px dashed blue;
36
+ }
37
+
38
+ &.noBorder {
39
+ border-color: rgba(0,0,0,0);
40
+ border-width: 0;
41
+ }
42
+
43
+
44
+ &__edit {
45
+ cursor: pointer;
46
+ position: absolute;
47
+ right: unit(0, rpx);
48
+ top: unit(-52, rpx);
49
+ height: unit(50, rpx);
50
+ line-height: unit(50, rpx);
51
+ display: flex;
52
+ justify-content: center;
53
+ align-items: center;
54
+ background: rgba(0, 0, 0, .6);
55
+ border-radius: unit(10, rpx);
56
+ box-shadow: 0 0 10px rbga(0, 0, 0, 0.3);
57
+ color: #fff;
58
+ font-size: unit(22, rpx);
59
+
60
+ &-icon{
61
+ padding: 0 unit(20, rpx);
62
+ }
63
+
64
+ &.editx {
65
+ box-sizing: border-box;
66
+
67
+ }
68
+ }
69
+ }
70
+ //end
71
+
72
+
73
+ /**notPreview**/
74
+ .jfb-base-my-setting {
75
+ &:before {
76
+ content: " ";
77
+ display: table;
78
+ }
79
+ }
80
+ /**endNotPreview**/
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+
4
+ //@AttrImport
5
+ import Attr from "./Attr";
6
+ //@EndAttrImport
7
+
8
+
9
+ export default {
10
+ data() {
11
+ return {
12
+ //#ifdef H5
13
+
14
+ //@AttrData
15
+ Attr:{}, //对外开发编辑属性
16
+ //@EndAttrData
17
+
18
+ // #endif
19
+ cssRoot: 'jfb-base-my-setting'
20
+ }
21
+ },
22
+ created() {
23
+
24
+ //@AttrDataCreated
25
+ this.Attr = this.$xdUniHelper.customClone(Attr);
26
+ //@EndAttrDataCreated
27
+
28
+
29
+ },
30
+ }
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ aaaa: {}
5
+ }
@@ -0,0 +1,136 @@
1
+ <template>
2
+ <view class="xd-my-list-item"
3
+ :class="'size_'+size"
4
+ :style="{
5
+ borderTop: showBottom ? '1px solid #eee':'none',
6
+ marginTop: showBottom? paddingTB: 0,
7
+ paddingLeft: paddingLR,
8
+ paddingRight: paddingLR,
9
+ paddingTop: paddingTB,
10
+ paddingBottom: paddingTB,
11
+ }"
12
+ @click="$emit('click')">
13
+ <view v-if="listIcon" class="my-list_icon">
14
+ <!-- <image mode="widthFix" :src="listIcon" /> -->
15
+ <xd-font-icon :icon="listIcon"></xd-font-icon>
16
+ </view>
17
+ <view class="my-list_label" v-html="label"></view>
18
+ <view class="my-list_value">
19
+ <slot></slot>
20
+ <xd-font-icon
21
+ v-if="showRight"
22
+ :style="{
23
+ marginLeft: '10rpx',
24
+ color: '#B1B1B1'
25
+ }"
26
+ size="24"
27
+ icon="iconxiangyou_xian"
28
+ ></xd-font-icon>
29
+ </view>
30
+
31
+ </view>
32
+ </template>
33
+
34
+ <script>
35
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
36
+ export default {
37
+ components: {
38
+ XdFontIcon
39
+ },
40
+ data(){
41
+ return {
42
+
43
+ }
44
+ },
45
+ props: {
46
+ size: {
47
+ type: String,
48
+ default: "default"
49
+ },
50
+ paddingTB:{
51
+ type: String,
52
+ default: "24rpx"
53
+ },
54
+ paddingLR: {
55
+ type: String,
56
+ default: "0rpx"
57
+ },
58
+ //是否显示border-bottom
59
+ showBottom: {
60
+ type: Boolean,
61
+ default: false
62
+ },
63
+ //是否显示右箭头
64
+ showRight: {
65
+ type: Boolean,
66
+ default: false
67
+ },
68
+ //是否显示图标
69
+ listIcon: {
70
+ type: String,
71
+ default: ''
72
+ },
73
+ //label
74
+ label: {
75
+ type: String,
76
+ default: ''
77
+ }
78
+ }
79
+
80
+ }
81
+ </script>
82
+
83
+ <style lang="less" scoped>
84
+ .xd-my-list-item{
85
+ display: flex;
86
+ align-items: center;
87
+ padding: 30rpx 0;
88
+ font-size: 28rpx;
89
+ background: #FFFFFF;
90
+ color: #666666;
91
+
92
+ &.size_large{
93
+ .my-list_value,
94
+ .my-list_label{
95
+ font-size: 28rpx;
96
+ font-weight: 400;
97
+ }
98
+ }
99
+ &.size_default{
100
+ .my-list_value,
101
+ .my-list_label{
102
+ font-size: 28rpx;
103
+ font-weight: 400;
104
+ }
105
+ }
106
+ &.size_small{
107
+ .my-list_value,
108
+ .my-list_label{
109
+ font-size: 24rpx;
110
+ font-weight: 400;
111
+ }
112
+ }
113
+
114
+ .my-list_icon{
115
+ width: 32rpx;
116
+ margin-right: 24rpx;
117
+
118
+ image{
119
+ width: 32rpx;
120
+ }
121
+ }
122
+
123
+ .my-list_label{
124
+ // flex: 1;
125
+ }
126
+ .my-list_value{
127
+ flex: 1;
128
+ display: flex;
129
+ align-items: center;
130
+ justify-content: flex-end;
131
+ }
132
+ .arrow_right{
133
+ width: 44rpx;
134
+ }
135
+ }
136
+ </style>