jufubao-base 1.0.145-beta11 → 1.0.145-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 +1 -1
- package/src/common/ICB.SDK.js +78 -0
- package/src/components/JfbBaseAfterOrderList/JfbBaseAfterOrderList.vue +1 -1
- package/src/components/JfbBaseCard/JfbBaseCard.vue +6 -6
- package/src/components/JfbBaseCardBindV2/JfbBaseCardBindV2.vue +4 -2
- package/src/components/JfbBaseCardEntry/JfbBaseCardEntry.vue +4 -4
- package/src/components/JfbBaseCardInfo/JfbBaseCardInfo.vue +2 -1
- package/src/components/JfbBaseLogin/Api.js +12 -0
- package/src/components/JfbBaseLogin/Attr.js +13 -1
- package/src/components/JfbBaseLogin/JfbBaseLogin.vue +94 -38
- package/src/components/JfbBaseOrderDetail/JfbBaseOrderDetail.vue +6 -6
- package/src/components/JfbBaseOrderList/JfbBaseOrderList.vue +8 -3
- package/src/components/JfbBasePosterType/JfbBasePosterType.vue +1 -1
- package/src/components/JfbBaseSearch/JfbBaseSearch.vue +11 -1
- package/src/components/JfbBaseWxAuthorize/Api.js +13 -0
- package/src/components/JfbBaseWxAuthorize/Attr.js +20 -0
- package/src/components/JfbBaseWxAuthorize/JfbBaseWxAuthorize.vue +60 -5
package/package.json
CHANGED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const ICB_SDK = require('@/common/paysdk/ICB.SDK');
|
|
4
|
+
|
|
5
|
+
class ICB {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.ICB_APP = ICB_SDK;
|
|
8
|
+
this.fail(false)
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @description 获取版本号
|
|
13
|
+
* @return {*}
|
|
14
|
+
*/
|
|
15
|
+
version(){
|
|
16
|
+
return this.ICB_APP.elifeVer()
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
fail(notExc=true){
|
|
20
|
+
// if(typeof window.WebViewJavascriptBridge === "undefined"){
|
|
21
|
+
// console.warn('初始化工商银行e生活SDK失败');
|
|
22
|
+
// if(notExc) throw new Error('初始化工商银行e生活SDK失败');
|
|
23
|
+
// }
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @description 获取用户登录方式
|
|
28
|
+
* @param callback {Function} 成功回调函数
|
|
29
|
+
*/
|
|
30
|
+
login(callback){
|
|
31
|
+
this.fail();
|
|
32
|
+
|
|
33
|
+
this.ICB_APP.merLogin(callback)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @description 第三方显示或隐藏tabBar
|
|
38
|
+
* @param show 默认值:true
|
|
39
|
+
*/
|
|
40
|
+
showBar(show = true){
|
|
41
|
+
this.fail();
|
|
42
|
+
this.ICB_APP.showToolBar(show);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @description 第三方返回APP
|
|
47
|
+
*/
|
|
48
|
+
back(){
|
|
49
|
+
this.fail();
|
|
50
|
+
this.ICB_APP.back();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @description 拨打电话
|
|
55
|
+
* @param tel 电话号码
|
|
56
|
+
*/
|
|
57
|
+
callPhone(tel){
|
|
58
|
+
if(!tel){
|
|
59
|
+
console.warn(`拨打电话号码不能为空,电话号码:${tel}`);
|
|
60
|
+
throw new Error('拨打电话号码不能为空');
|
|
61
|
+
}
|
|
62
|
+
this.fail();
|
|
63
|
+
this.ICB_APP.callPhoneNumber(tel);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @description 是否隐藏第三方的头
|
|
68
|
+
* @param show
|
|
69
|
+
*/
|
|
70
|
+
showThirdNavigation(show = true){
|
|
71
|
+
this.fail();
|
|
72
|
+
if(show) this.ICB_APP.showThirdWebviewNavigation()
|
|
73
|
+
else this.ICB_APP.hideThirdWebviewNavigation()
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
module.exports = new ICB();
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<!-- #endif -->
|
|
19
19
|
<view class="jfb-base-card__body">
|
|
20
20
|
<view class="jfb-base-card__body-cut">
|
|
21
|
-
<template v-if="
|
|
21
|
+
<template v-if="isQrCode">
|
|
22
22
|
<view
|
|
23
23
|
class="jfb-base-card__body-cut-item"
|
|
24
24
|
@click="handleScan"
|
|
@@ -226,10 +226,11 @@ import JfbBaseCardMixin from "./JfbBaseCardMixin";
|
|
|
226
226
|
import componentsMixins from "@/mixins/componentsMixins";
|
|
227
227
|
import extsMixins from "@/mixins/extsMixins";
|
|
228
228
|
import { mapState, mapActions } from "vuex";
|
|
229
|
-
import { getContainerPropsValue, isWechat } from "@/utils/xd.base";
|
|
229
|
+
import { getContainerPropsValue, isWechat,isQrCode } from "@/utils/xd.base";
|
|
230
230
|
import XdNoticeBar from "@/components/XdNoticeBar/XdNoticeBar";
|
|
231
231
|
import { Base64 } from "js-base64";
|
|
232
232
|
const Color = require("color");
|
|
233
|
+
|
|
233
234
|
export default {
|
|
234
235
|
name: "JfbBaseCard",
|
|
235
236
|
components: {
|
|
@@ -293,7 +294,7 @@ export default {
|
|
|
293
294
|
isPreview: false,
|
|
294
295
|
noticeStatus: false,
|
|
295
296
|
|
|
296
|
-
|
|
297
|
+
isQrCode: true,
|
|
297
298
|
cutIndex: 1,
|
|
298
299
|
tabIndex: 1,
|
|
299
300
|
offsetIndex:0,//第几页
|
|
@@ -340,10 +341,9 @@ export default {
|
|
|
340
341
|
this.init(this.container);
|
|
341
342
|
this.noticeBackgroundColor = Color(this.warningColor).alpha(0.2).toString();
|
|
342
343
|
this.isPreview = this.$configProject.isPreview;
|
|
344
|
+
this.isQrCode = isQrCode(this);
|
|
343
345
|
|
|
344
346
|
//#ifdef H5
|
|
345
|
-
this.isWx = this.isPreview || isWechat();
|
|
346
|
-
|
|
347
347
|
if (!this.$configProject.isPreview) {
|
|
348
348
|
jfbRootExec("getH5WxAuthorize", {
|
|
349
349
|
vm: this,
|
|
@@ -442,7 +442,7 @@ export default {
|
|
|
442
442
|
uni.scanCode({
|
|
443
443
|
scanType: ["qrCode"],
|
|
444
444
|
success: (res) => {
|
|
445
|
-
let path = this.getUrlCallback(`${this.confirmUrl}?qrcode=${encodeURIComponent(res.
|
|
445
|
+
let path = this.getUrlCallback(`${this.confirmUrl}?qrcode=${encodeURIComponent(res.result)}`)
|
|
446
446
|
this.$xdUniHelper.navigateTo({
|
|
447
447
|
url: path,
|
|
448
448
|
});
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
<view
|
|
22
22
|
class="scan_icon"
|
|
23
23
|
@click="doScanCode"
|
|
24
|
+
v-if="isQrCode"
|
|
24
25
|
>
|
|
25
26
|
<xd-font-icon icon="iconsaoma1"></xd-font-icon>
|
|
26
27
|
</view>
|
|
@@ -58,7 +59,7 @@
|
|
|
58
59
|
import XdButton from "@/components/XdButton/XdButton"
|
|
59
60
|
import { jfbRootExec } from "@/utils/xd.event";
|
|
60
61
|
import JfbBaseCardBindV2Mixin from "./JfbBaseCardBindV2Mixin";
|
|
61
|
-
import { getContainerPropsValue } from "@/utils/xd.base";
|
|
62
|
+
import { getContainerPropsValue,isQrCode } from "@/utils/xd.base";
|
|
62
63
|
import componentsMixins from "@/mixins/componentsMixins";
|
|
63
64
|
import extsMixins from "@/mixins/extsMixins";
|
|
64
65
|
import { mapState } from "vuex"
|
|
@@ -91,6 +92,7 @@
|
|
|
91
92
|
validImageAPIUrl: "",
|
|
92
93
|
backUrl: "",
|
|
93
94
|
inCallbackUrlOrg:'',//是否带有回调地址
|
|
95
|
+
isQrCode: false,
|
|
94
96
|
}
|
|
95
97
|
},
|
|
96
98
|
watch: {
|
|
@@ -99,6 +101,7 @@
|
|
|
99
101
|
}
|
|
100
102
|
},
|
|
101
103
|
created() {
|
|
104
|
+
this.isQrCode = isQrCode(this)
|
|
102
105
|
this.init(this.container);
|
|
103
106
|
this.validImageAPIUrl = this.brandInfo['api_host'] + '/common/v1/valid_code/image/show'
|
|
104
107
|
|
|
@@ -176,7 +179,6 @@
|
|
|
176
179
|
success: res => {
|
|
177
180
|
let result = res.resultStr;
|
|
178
181
|
this.cardForm.card_qrcode = result;
|
|
179
|
-
|
|
180
182
|
jfbRootExec("qrCardBind", {
|
|
181
183
|
vm: this,
|
|
182
184
|
data: {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<!-- #endif -->
|
|
19
19
|
<view class="jfb-base-card-entry__body">
|
|
20
20
|
<view class="jfb-base-card-entry__body-cut">
|
|
21
|
-
<template v-if="
|
|
21
|
+
<template v-if="isQrCode">
|
|
22
22
|
<view
|
|
23
23
|
class="jfb-base-card-entry__body-cut-item"
|
|
24
24
|
@click="handleScan"
|
|
@@ -383,7 +383,7 @@ import extsMixins from "@/mixins/extsMixins";
|
|
|
383
383
|
import colorCardMixins from "@/mixins/colorCardMixins";
|
|
384
384
|
import cardListMixins from "@/mixins/cardListMixins";
|
|
385
385
|
import { mapState, mapActions } from "vuex";
|
|
386
|
-
import { getContainerPropsValue, isWechat } from "@/utils/xd.base";
|
|
386
|
+
import { getContainerPropsValue, isWechat,isQrCode } from "@/utils/xd.base";
|
|
387
387
|
import XdNoticeBar from "@/components/XdNoticeBar/XdNoticeBar";
|
|
388
388
|
import { Base64 } from "js-base64";
|
|
389
389
|
const Color = require("color");
|
|
@@ -434,7 +434,6 @@ export default {
|
|
|
434
434
|
noticeStatus: false,
|
|
435
435
|
loadingCardList: true,
|
|
436
436
|
|
|
437
|
-
isWx: true,
|
|
438
437
|
cutIndex: 1,
|
|
439
438
|
tabIndex: 1,
|
|
440
439
|
isBack: null, //是否使用返回键
|
|
@@ -454,6 +453,7 @@ export default {
|
|
|
454
453
|
showDisabled: 'Y',
|
|
455
454
|
showCardList: false,
|
|
456
455
|
showIndex:false,
|
|
456
|
+
isQrCode: false,
|
|
457
457
|
|
|
458
458
|
//活动
|
|
459
459
|
dialogEvent: false,
|
|
@@ -466,7 +466,7 @@ export default {
|
|
|
466
466
|
this.isPreview = this.$configProject.isPreview;
|
|
467
467
|
|
|
468
468
|
//#ifdef H5
|
|
469
|
-
this.
|
|
469
|
+
this.isQrCode = isQrCode(this);
|
|
470
470
|
if (!this.$configProject.isPreview) {
|
|
471
471
|
jfbRootExec("getH5WxAuthorize", {
|
|
472
472
|
vm: this,
|
|
@@ -171,7 +171,7 @@ export default {
|
|
|
171
171
|
return this.fixedStyle({ height: 0, zIndex: 111 });
|
|
172
172
|
},
|
|
173
173
|
isShowBalance(){
|
|
174
|
-
if(this.info.is_expired === "Y"){
|
|
174
|
+
if(this.info && this.info.is_expired === "Y"){
|
|
175
175
|
return this.is_show_balance === "Y";
|
|
176
176
|
}
|
|
177
177
|
return true;
|
|
@@ -492,6 +492,7 @@ export default {
|
|
|
492
492
|
height: unit(320, rpx);
|
|
493
493
|
display: flex;
|
|
494
494
|
align-items: center;
|
|
495
|
+
justify-content: center;
|
|
495
496
|
}
|
|
496
497
|
}
|
|
497
498
|
}
|
|
@@ -23,6 +23,18 @@ module.exports = [
|
|
|
23
23
|
phone_number_collect_url: ['收集手机号地址', 'String', '是'],
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
|
+
{
|
|
27
|
+
mapFnName: 'userBaseLoginIcb',
|
|
28
|
+
title: '工行e生活登录',
|
|
29
|
+
path: '/passport/v1/user/login-icbc',
|
|
30
|
+
isRule: false,
|
|
31
|
+
data: {
|
|
32
|
+
encrypted_params: ['用户登录信息', 'String', '必选'],
|
|
33
|
+
provider_id: ['登录方式id', 'Number', '必选'],
|
|
34
|
+
},
|
|
35
|
+
isConsole: true,
|
|
36
|
+
disabled: true,
|
|
37
|
+
},
|
|
26
38
|
{
|
|
27
39
|
mapFnName: 'phoneLogin',
|
|
28
40
|
title: "手机号登录",
|
|
@@ -539,6 +539,18 @@ export default {
|
|
|
539
539
|
},
|
|
540
540
|
inline: false,
|
|
541
541
|
},
|
|
542
|
-
|
|
542
|
+
{
|
|
543
|
+
label: '小程序手机号授权登录地址:', //label
|
|
544
|
+
ele: 'xd-select-pages-path', //package 名称
|
|
545
|
+
valueKey: 'mpAuthPhoneUrl', //form[valueKey]
|
|
546
|
+
groupKey: 'advanced',
|
|
547
|
+
placeholder: '请选择跳转地址',
|
|
548
|
+
value: null,
|
|
549
|
+
setting: {
|
|
550
|
+
router: XdBus.getParentApi('getPagesTree'),
|
|
551
|
+
},
|
|
552
|
+
notice: "首次快捷登录,将自动跳转至该地址",
|
|
553
|
+
inline: false,
|
|
554
|
+
},
|
|
543
555
|
]
|
|
544
556
|
}
|
|
@@ -30,8 +30,7 @@
|
|
|
30
30
|
type="primary"
|
|
31
31
|
radius="20rpx"
|
|
32
32
|
@click="doLoginAuth"
|
|
33
|
-
|
|
34
|
-
>
|
|
33
|
+
>{{h5FastLoginName}}</xd-button>
|
|
35
34
|
<!-- #endif -->
|
|
36
35
|
<!--#ifdef MP-->
|
|
37
36
|
<xd-button
|
|
@@ -50,8 +49,7 @@
|
|
|
50
49
|
type="primary"
|
|
51
50
|
radius="20rpx"
|
|
52
51
|
@click="doLoginAccount"
|
|
53
|
-
|
|
54
|
-
</xd-button>
|
|
52
|
+
>账号登录</xd-button>
|
|
55
53
|
</view>
|
|
56
54
|
|
|
57
55
|
<view class="protocol">
|
|
@@ -98,7 +96,7 @@
|
|
|
98
96
|
:border="true"
|
|
99
97
|
paddingBetween="40"
|
|
100
98
|
>
|
|
101
|
-
<xd-form-item class="form-item" label="手机号" content-align="left">
|
|
99
|
+
<xd-form-item class="form-item" label="手机号" :labelWidth="160" content-align="left">
|
|
102
100
|
<xd-form-input
|
|
103
101
|
v-model="accountForm.phone_number"
|
|
104
102
|
placeholder="请输入11位手机号"
|
|
@@ -107,6 +105,7 @@
|
|
|
107
105
|
<xd-form-item
|
|
108
106
|
v-if="accountLoginType === 'phone'"
|
|
109
107
|
label="验证码"
|
|
108
|
+
:labelWidth="160"
|
|
110
109
|
content-align="left"
|
|
111
110
|
>
|
|
112
111
|
<view class="flex align-center">
|
|
@@ -125,6 +124,7 @@
|
|
|
125
124
|
<xd-form-item
|
|
126
125
|
v-if="accountLoginType === 'pwd'"
|
|
127
126
|
label="密码"
|
|
127
|
+
:labelWidth="160"
|
|
128
128
|
content-align="left"
|
|
129
129
|
>
|
|
130
130
|
<xd-form-input
|
|
@@ -217,6 +217,7 @@ import {
|
|
|
217
217
|
getAllPath,
|
|
218
218
|
getDomainAllPath,
|
|
219
219
|
getLocalJumpOutSiteCallbackUrl,
|
|
220
|
+
isThirdLogin
|
|
220
221
|
} from "@/utils/xd.base";
|
|
221
222
|
|
|
222
223
|
export default {
|
|
@@ -236,6 +237,7 @@ export default {
|
|
|
236
237
|
//体验模式
|
|
237
238
|
dialogPreview: false,
|
|
238
239
|
previewAccout: '',
|
|
240
|
+
h5FastLoginName:'快捷登录',
|
|
239
241
|
|
|
240
242
|
showStep: 1,
|
|
241
243
|
panel_1_checked: "",
|
|
@@ -283,10 +285,11 @@ export default {
|
|
|
283
285
|
isDebugPreview: false,
|
|
284
286
|
|
|
285
287
|
isFastLoginStatus: false,
|
|
288
|
+
mpAuthPhoneUrl: "",
|
|
286
289
|
};
|
|
287
290
|
},
|
|
288
291
|
computed: {
|
|
289
|
-
...mapState(["jfbAuthorize","siteInfo"]),
|
|
292
|
+
...mapState(["jfbAuthorize","siteInfo",'loginParams']),
|
|
290
293
|
panelIsChecked() {
|
|
291
294
|
return this.panel_1_checked.includes(1);
|
|
292
295
|
},
|
|
@@ -316,7 +319,7 @@ export default {
|
|
|
316
319
|
this.init(this.container);
|
|
317
320
|
this.base = this.jfbAuthorize.getBasePath(this);
|
|
318
321
|
this.site_logo = getServiceUrl(this.projectAttr["site_logo"]);
|
|
319
|
-
this.$xdLog.setProject('JfbBaseLogin', 'JfbBaseLogin.create.done')
|
|
322
|
+
this.$xdLog.setProject('JfbBaseLogin', 'JfbBaseLogin.create.done');
|
|
320
323
|
},
|
|
321
324
|
|
|
322
325
|
methods: {
|
|
@@ -362,35 +365,20 @@ export default {
|
|
|
362
365
|
|
|
363
366
|
|
|
364
367
|
onJfbLoad(options) {
|
|
368
|
+
this.$xdLog.setProject('JfbBaseLogin', 'JfbBaseLogin.onJfbLoad.start')
|
|
365
369
|
this.redirect_url = options.redirect_url ? Base64.decode(options.redirect_url): '';
|
|
366
370
|
this.isDebugPreview = options['x-test'] === 'jfb-tiyan';
|
|
367
371
|
// #ifdef MP-WEIXIN
|
|
368
372
|
this.authWxMpListProviders();
|
|
369
373
|
// #endif
|
|
370
|
-
|
|
374
|
+
|
|
371
375
|
// #ifdef H5
|
|
372
|
-
try{
|
|
373
|
-
|
|
374
|
-
}catch (error) {
|
|
376
|
+
try{ this.authH5ListProviders();}
|
|
377
|
+
catch (error) {
|
|
375
378
|
this.$xdLog.setProject('JfbBaseLogin', 'JfbBaseLogin.onJfbLoad.error');
|
|
376
379
|
this.$xdLog.setARMSError(error);
|
|
377
380
|
}
|
|
378
381
|
//#endif
|
|
379
|
-
|
|
380
|
-
// if (options.isDebug === "1") {
|
|
381
|
-
// getAllPath(this, "main/play/index");
|
|
382
|
-
// getDomainAllPath(this, "main/play/index");
|
|
383
|
-
// getLocalJumpOutSiteCallbackUrl(
|
|
384
|
-
// this,
|
|
385
|
-
// { customParams: 1 },
|
|
386
|
-
// false,
|
|
387
|
-
// "main/play/index"
|
|
388
|
-
// );
|
|
389
|
-
//
|
|
390
|
-
// getAllPath(this);
|
|
391
|
-
// getDomainAllPath(this);
|
|
392
|
-
// getLocalJumpOutSiteCallbackUrl(this, { customParams: 1 }, false);
|
|
393
|
-
// }
|
|
394
382
|
},
|
|
395
383
|
|
|
396
384
|
/**
|
|
@@ -415,6 +403,7 @@ export default {
|
|
|
415
403
|
this.phone_number_collect_url = getContainerPropsValue(value, "content.phone_number_collect_url", {value: ''}).value;
|
|
416
404
|
this.forget_pwd_url = getContainerPropsValue(value, "content.forget_pwd_url", {value: ''}).value;
|
|
417
405
|
this.error_callback_url = getContainerPropsValue(value, "content.error_url", {value: ''}).value;
|
|
406
|
+
this.mpAuthPhoneUrl = getContainerPropsValue(value, "content.mpAuthPhoneUrl", {value: '/system/login/wxauthorize'}).value;
|
|
418
407
|
this.isPreview = getContainerPropsValue(value, "content.isPreview", 'N');
|
|
419
408
|
},
|
|
420
409
|
|
|
@@ -425,6 +414,11 @@ export default {
|
|
|
425
414
|
if (res.quick_enabled) {
|
|
426
415
|
this.hasAuthLogin = true;
|
|
427
416
|
this.quickLogin = res.quick;
|
|
417
|
+
|
|
418
|
+
//工行处理
|
|
419
|
+
if(this.quickLogin.login_platform_code === 'icbc') {
|
|
420
|
+
this.h5FastLoginName = '工银e生活登录'
|
|
421
|
+
}
|
|
428
422
|
}
|
|
429
423
|
if (res.others.length > 0) {
|
|
430
424
|
this.hasAccountLogin = true;
|
|
@@ -482,23 +476,31 @@ export default {
|
|
|
482
476
|
},
|
|
483
477
|
})
|
|
484
478
|
.then((res) => {
|
|
479
|
+
let { redirect_url, callback_url } = this;
|
|
480
|
+
if (redirect_url)
|
|
481
|
+
redirect_url = redirect_url;
|
|
482
|
+
let url = Base64.encodeURI(
|
|
483
|
+
redirect_url || callback_url || this.settings.index
|
|
484
|
+
);
|
|
485
485
|
//需要授权操作
|
|
486
486
|
if (res.auth_code) {
|
|
487
|
-
let { redirect_url, callback_url } = this;
|
|
488
|
-
if (redirect_url)
|
|
489
|
-
redirect_url = redirect_url;
|
|
490
|
-
let url = Base64.encodeURI(
|
|
491
|
-
redirect_url || callback_url || this.settings.index
|
|
492
|
-
);
|
|
493
487
|
this.$xdUniHelper.navigateTo({
|
|
494
|
-
url:
|
|
488
|
+
url: `${this.mpAuthPhoneUrl}?auth_code=${res.auth_code}&provider_id=${this.quickLogin.provider_id}&url=${url}`,
|
|
495
489
|
});
|
|
496
490
|
}
|
|
497
491
|
//无需授权直接进行登录
|
|
498
492
|
else {
|
|
493
|
+
|
|
499
494
|
if (this.jfbAuthorize !== null) {
|
|
500
495
|
this.jfbAuthorize.setAllToken(res["login_info"], () => {
|
|
501
|
-
|
|
496
|
+
//需要收集手机号码
|
|
497
|
+
if(res.is_collect_phone_number === 'Y'){
|
|
498
|
+
this.$xdUniHelper.navigateTo({
|
|
499
|
+
url: `${this.mpAuthPhoneUrl}?provider_id=${this.quickLogin.provider_id}&url=${url}`,
|
|
500
|
+
});
|
|
501
|
+
}else{
|
|
502
|
+
this.toHomeAfterLogin();
|
|
503
|
+
}
|
|
502
504
|
});
|
|
503
505
|
}
|
|
504
506
|
}
|
|
@@ -550,12 +552,12 @@ export default {
|
|
|
550
552
|
};
|
|
551
553
|
|
|
552
554
|
this.$xdLog.setProject('JfbBaseLogin', 'JfbBaseLogin.onJfbLoad.loading..');
|
|
553
|
-
|
|
554
555
|
jfbRootExec("listSiteProvider", {
|
|
555
556
|
vm: this,
|
|
556
557
|
data: params,
|
|
557
558
|
})
|
|
558
559
|
.then((res) => {
|
|
560
|
+
console.log('listSiteProvider',res)
|
|
559
561
|
this.handleAuthResult(res);
|
|
560
562
|
})
|
|
561
563
|
.catch((error) => {
|
|
@@ -603,12 +605,59 @@ export default {
|
|
|
603
605
|
setAccountLoginType(type) {
|
|
604
606
|
this.accountLoginType = type;
|
|
605
607
|
},
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* @description 工行e生活处理
|
|
611
|
+
*/
|
|
612
|
+
icbcLogin(){
|
|
613
|
+
//无三方用户登录信息
|
|
614
|
+
if(!this.loginParams) {
|
|
615
|
+
this.status = false;
|
|
616
|
+
console.warn(`无三方用户登录信息`);
|
|
617
|
+
throw new Error('无三方用户登录信息');
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
console.warn(`LoginParams.use: ${this.loginParams}`)
|
|
621
|
+
this.$xdShowLoading({});
|
|
622
|
+
jfbRootExec("userBaseLoginIcb", {
|
|
623
|
+
vm: this,
|
|
624
|
+
data:{
|
|
625
|
+
encrypted_params: this.loginParams,
|
|
626
|
+
provider_id: this.quickLogin.provider_id
|
|
627
|
+
},
|
|
628
|
+
})
|
|
629
|
+
.then(res=>{
|
|
630
|
+
this.$xdHideLoading();
|
|
631
|
+
this.$xdUniHelper.redirectTo({
|
|
632
|
+
url: this.redirect_url || this.$settings.index,
|
|
633
|
+
},false, true);
|
|
634
|
+
})
|
|
635
|
+
.catch(err=>{
|
|
636
|
+
this.$xdHideLoading();
|
|
637
|
+
console.error(err);
|
|
638
|
+
})
|
|
639
|
+
},
|
|
640
|
+
|
|
606
641
|
//h5授权登录
|
|
607
642
|
doLoginAuth() {
|
|
608
643
|
if(this.isFastLoginStatus) return;
|
|
609
644
|
this.isFastLoginStatus = true;
|
|
610
|
-
|
|
611
|
-
|
|
645
|
+
|
|
646
|
+
//工行处理
|
|
647
|
+
if(this.quickLogin && this.quickLogin.login_platform_code === 'icbc'){
|
|
648
|
+
window['ICBC_SDK']['merLogin']((res)=>{
|
|
649
|
+
console.log('ICBC_SDK',res);
|
|
650
|
+
this.icbcLogin(res)
|
|
651
|
+
})
|
|
652
|
+
return;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
//跳转到第三方进行授权
|
|
656
|
+
if(this.quickLogin.is_redirect === 'Y') {
|
|
657
|
+
const { redirect_url } = this.quickLogin;
|
|
658
|
+
location.href = redirect_url;
|
|
659
|
+
}
|
|
660
|
+
|
|
612
661
|
},
|
|
613
662
|
|
|
614
663
|
//小程序授权登录
|
|
@@ -707,6 +756,7 @@ export default {
|
|
|
707
756
|
});
|
|
708
757
|
}
|
|
709
758
|
},
|
|
759
|
+
|
|
710
760
|
toHomeAfterLogin() {
|
|
711
761
|
let { redirect_url, callback_url } = this;
|
|
712
762
|
if (redirect_url) redirect_url = redirect_url;
|
|
@@ -767,7 +817,7 @@ export default {
|
|
|
767
817
|
padding: 40rpx 70rpx;
|
|
768
818
|
}
|
|
769
819
|
.form-item {
|
|
770
|
-
|
|
820
|
+
::v-deep .uni-forms-item {
|
|
771
821
|
padding-left: unit(30rpx) !important;
|
|
772
822
|
}
|
|
773
823
|
}
|
|
@@ -777,6 +827,12 @@ export default {
|
|
|
777
827
|
margin-right: unit(20,rpx);
|
|
778
828
|
}
|
|
779
829
|
.panel-login-auth {
|
|
830
|
+
/deep/ .uni-forms-item__label {
|
|
831
|
+
.label-text {
|
|
832
|
+
font-size: 26rpx;
|
|
833
|
+
color: #a6a6a6;
|
|
834
|
+
}
|
|
835
|
+
}
|
|
780
836
|
.logo-wrap {
|
|
781
837
|
text-align: center;
|
|
782
838
|
margin: unit(165,rpx) 0;
|
|
@@ -239,8 +239,8 @@
|
|
|
239
239
|
:key="Dindex"
|
|
240
240
|
class="jfb-base-order-detail__body-delivery-bottom-item"
|
|
241
241
|
>
|
|
242
|
-
<view
|
|
243
|
-
<
|
|
242
|
+
<view style="width: 130rpx;display: flex;">
|
|
243
|
+
<view v-html="Ditem.label"></view>
|
|
244
244
|
<text v-if="Ditem.label">:</text>
|
|
245
245
|
</view>
|
|
246
246
|
<view v-html="Ditem.value"></view>
|
|
@@ -563,10 +563,10 @@
|
|
|
563
563
|
class="jfb-base-order-detail__body-order"
|
|
564
564
|
>
|
|
565
565
|
<view :style="{ fontWeight: item.style }">
|
|
566
|
-
<view
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
>
|
|
566
|
+
<view style="display: flex;">
|
|
567
|
+
<view v-html="item.label"></view>
|
|
568
|
+
<text v-if="item.label">:</text>
|
|
569
|
+
</view>
|
|
570
570
|
<view v-html="item.value"></view>
|
|
571
571
|
</view>
|
|
572
572
|
<view
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
<view
|
|
97
97
|
class="jfb-base-order-list__body-order-item-content"
|
|
98
98
|
v-for="(Sitem, Sindex) in item.products"
|
|
99
|
-
:key="
|
|
99
|
+
:key="Sitem.key"
|
|
100
100
|
v-if="(item['isOpen'] === false && Sindex < showLen) || item['isOpen']">
|
|
101
101
|
<image
|
|
102
102
|
:src="Sitem.product_thumb"
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
class="jfb-base-order-list__body-order-item-pay"
|
|
176
176
|
v-if="item.buttons.length"
|
|
177
177
|
>
|
|
178
|
-
<view v-for="(btn,index) in item.buttons" :key="btn.
|
|
178
|
+
<view v-for="(btn,index) in item.buttons" :key="btn.key">
|
|
179
179
|
<xd-button
|
|
180
180
|
:type="getBtnType(btn.action)"
|
|
181
181
|
size="mini"
|
|
@@ -457,12 +457,17 @@ export default {
|
|
|
457
457
|
console.log(res.list, "list");
|
|
458
458
|
let list = res.list.map((item) => {
|
|
459
459
|
item["isOpen"] = false;
|
|
460
|
-
item.products = item.products.map((prod) => {
|
|
460
|
+
item.products = item.products.map((prod, i) => {
|
|
461
|
+
prod['key'] = prod.product_id + i;
|
|
461
462
|
prod["product_thumb"] = prod.product_thumb
|
|
462
463
|
? getServiceUrl(prod.product_thumb)
|
|
463
464
|
: "";
|
|
464
465
|
return prod;
|
|
465
466
|
});
|
|
467
|
+
item.buttons = item.buttons.map((btn, i) => {
|
|
468
|
+
btn["key"] = btn.action + i;
|
|
469
|
+
return btn;
|
|
470
|
+
})
|
|
466
471
|
item["created_time_text"] = this.$xdUniHelper.getDate(
|
|
467
472
|
item["created_time"] * 1000
|
|
468
473
|
).fullTime;
|
|
@@ -17,16 +17,24 @@
|
|
|
17
17
|
</view>
|
|
18
18
|
<!-- #endif -->
|
|
19
19
|
<view class="jfb-base-search__body" :style="{height:layoutInfo.bodyMinHeightRpx+'rpx'}" v-if="layoutInfo!==null">
|
|
20
|
+
<!--#ifdef H5-->
|
|
20
21
|
<xd-baidu-search
|
|
21
22
|
@onSelect="handleSelect"
|
|
22
23
|
></xd-baidu-search>
|
|
24
|
+
<!-- #endif -->
|
|
25
|
+
|
|
26
|
+
<!-- #ifdef MP-WEIXIN -->
|
|
27
|
+
base Search
|
|
28
|
+
<!-- #endif -->
|
|
23
29
|
</view>
|
|
24
30
|
</view>
|
|
25
31
|
</template>
|
|
26
32
|
|
|
27
33
|
<script>
|
|
28
34
|
import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
|
|
35
|
+
// #ifdef H5
|
|
29
36
|
import XdBaiduSearch from "./XdBaiduSearch";
|
|
37
|
+
// #endif
|
|
30
38
|
import {jfbRootExec} from "@/utils/xd.event";
|
|
31
39
|
import JfbBaseSearchMixin from "./JfbBaseSearchMixin";
|
|
32
40
|
import componentsMixins from "@/mixins/componentsMixins";
|
|
@@ -37,7 +45,9 @@
|
|
|
37
45
|
name: "JfbBaseSearch",
|
|
38
46
|
components: {
|
|
39
47
|
XdFontIcon,
|
|
40
|
-
|
|
48
|
+
// #ifdef H5
|
|
49
|
+
XdBaiduSearch,
|
|
50
|
+
// #endif
|
|
41
51
|
},
|
|
42
52
|
mixins: [componentsMixins,extsMixins,JfbBaseSearchMixin],
|
|
43
53
|
data() {
|
|
@@ -18,6 +18,19 @@ module.exports = [
|
|
|
18
18
|
isConsole: true,
|
|
19
19
|
disable: true,
|
|
20
20
|
},
|
|
21
|
+
{
|
|
22
|
+
mapFnName: 'userPhoneCollect',
|
|
23
|
+
title: "收集手机号",
|
|
24
|
+
path: "/passport/v1/user/collect-phone-number",
|
|
25
|
+
isRule: false,
|
|
26
|
+
data: {
|
|
27
|
+
phone_number: ['手机号', 'String', null], //手机号
|
|
28
|
+
verification_code: ['手机验证码', 'String', null],
|
|
29
|
+
provider_id: ['登录方式id', 'Number', '必选'],
|
|
30
|
+
},
|
|
31
|
+
isConsole: true,
|
|
32
|
+
disable: true,
|
|
33
|
+
},
|
|
21
34
|
{
|
|
22
35
|
mapFnName: "getContentInfo",
|
|
23
36
|
title: "获取内容列表",
|
|
@@ -19,6 +19,26 @@ export default {
|
|
|
19
19
|
placeholder: '请选择文字颜色',
|
|
20
20
|
classNmae: 'input80',
|
|
21
21
|
},
|
|
22
|
+
{
|
|
23
|
+
abel: '授权收集手机号按钮文案:',
|
|
24
|
+
ele: 'el-input',
|
|
25
|
+
type: 'text',
|
|
26
|
+
valueKey: 'btnCollectPhoneText',
|
|
27
|
+
groupKey:'content',
|
|
28
|
+
value: data.btnCollectPhoneText || "授权手机号",
|
|
29
|
+
placeholder: '请输入授权收集手机号按钮文案',
|
|
30
|
+
className: 'input80',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
abel: '授权登录按钮文案:',
|
|
34
|
+
ele: 'el-input',
|
|
35
|
+
type: 'text',
|
|
36
|
+
valueKey: 'btnLoginText',
|
|
37
|
+
groupKey:'content',
|
|
38
|
+
value: data.btnLoginText || "微信授权登录",
|
|
39
|
+
placeholder: '请输入授权按钮文案',
|
|
40
|
+
className: 'input80',
|
|
41
|
+
},
|
|
22
42
|
{
|
|
23
43
|
label: '授权按钮下面文案:',
|
|
24
44
|
ele: 'el-input',
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
}"
|
|
25
25
|
>
|
|
26
26
|
</view>
|
|
27
|
+
<view v-if="!auth_code" class="app-body__jump" @click="doJump">跳过</view>
|
|
27
28
|
<view class="app-body__bottom">
|
|
28
29
|
<view class="app-body__bottom-btn">
|
|
29
30
|
<button
|
|
@@ -35,7 +36,7 @@
|
|
|
35
36
|
boxShadow: '0 5rpx 10rpx ' + mainColor
|
|
36
37
|
}"
|
|
37
38
|
@getphonenumber="decryptPhoneNumber"
|
|
38
|
-
|
|
39
|
+
>{{ authBtnText }}</button>
|
|
39
40
|
<button
|
|
40
41
|
v-else
|
|
41
42
|
@click="decryptPhoneNumber()"
|
|
@@ -43,7 +44,7 @@
|
|
|
43
44
|
background: mainColor,
|
|
44
45
|
boxShadow: '0 5rpx 10rpx ' + mainColor
|
|
45
46
|
}"
|
|
46
|
-
|
|
47
|
+
>{{ authBtnText }}</button>
|
|
47
48
|
</view>
|
|
48
49
|
<view class="app-body__bottom-tips" v-if="notice" v-html="notice" :style="{color: textColor}"></view>
|
|
49
50
|
<view class="app-body__bottom-policy">
|
|
@@ -87,7 +88,7 @@
|
|
|
87
88
|
return {
|
|
88
89
|
isPreview: false,
|
|
89
90
|
selectPolicy: false,
|
|
90
|
-
auth_code: null,
|
|
91
|
+
auth_code: null, //有值说明未关联
|
|
91
92
|
provider_id:null,
|
|
92
93
|
nextUrl: null,
|
|
93
94
|
showDialog: false,
|
|
@@ -98,11 +99,16 @@
|
|
|
98
99
|
//面板
|
|
99
100
|
bgImage: '', //背景图片
|
|
100
101
|
notice: '', //授权按钮下面文案
|
|
101
|
-
textColor: '#fff'
|
|
102
|
+
textColor: '#fff',
|
|
103
|
+
btnLoginText: "", //授权按钮文案
|
|
104
|
+
btnCollectPhoneText: "", //授权收集手机号按钮文案
|
|
102
105
|
}
|
|
103
106
|
},
|
|
104
107
|
computed:{
|
|
105
108
|
...mapState(['jfbAuthorize']),
|
|
109
|
+
authBtnText(){
|
|
110
|
+
return this.auth_code ? this.btnLoginText : this.btnCollectPhoneText;
|
|
111
|
+
}
|
|
106
112
|
},
|
|
107
113
|
watch: {
|
|
108
114
|
container(value) {
|
|
@@ -127,6 +133,14 @@
|
|
|
127
133
|
this.selectPolicy = !this.selectPolicy;
|
|
128
134
|
},
|
|
129
135
|
|
|
136
|
+
doJump(){
|
|
137
|
+
if(!this.auth_code){
|
|
138
|
+
this.$xdUniHelper.redirectTo({
|
|
139
|
+
url: this.nextUrl
|
|
140
|
+
})
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
|
|
130
144
|
decryptPhoneNumber(e) {
|
|
131
145
|
if (e === undefined) {
|
|
132
146
|
this.$xdConfirm({
|
|
@@ -146,6 +160,18 @@
|
|
|
146
160
|
let {iv, encryptedData} = e.detail;
|
|
147
161
|
let raw_data = JSON.stringify({iv, encryptedData});
|
|
148
162
|
|
|
163
|
+
//auth_code 临时授权码,走授权登录。 否则走授权收集手机号
|
|
164
|
+
if(this.auth_code){
|
|
165
|
+
this.p_userPhoneWxLogin(raw_data)
|
|
166
|
+
}else{
|
|
167
|
+
this.p_userPhoneCollect(raw_data)
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* @description 授权登录
|
|
173
|
+
*/
|
|
174
|
+
p_userPhoneWxLogin(raw_data){
|
|
149
175
|
jfbRootExec("userPhoneWxLogin", {
|
|
150
176
|
vm: this,
|
|
151
177
|
data: {
|
|
@@ -183,9 +209,30 @@
|
|
|
183
209
|
zIndex: this.isPreview ? 2000 : 1400
|
|
184
210
|
});
|
|
185
211
|
})
|
|
186
|
-
|
|
187
212
|
},
|
|
188
213
|
|
|
214
|
+
/**
|
|
215
|
+
* @description 授权收集手机号
|
|
216
|
+
*/
|
|
217
|
+
p_userPhoneCollect(raw_data){
|
|
218
|
+
uni.login({
|
|
219
|
+
provider: "weixin",
|
|
220
|
+
success: (loginRes) => {
|
|
221
|
+
jfbRootExec("userPhoneCollect", {
|
|
222
|
+
vm: this,
|
|
223
|
+
data: {
|
|
224
|
+
raw_data,
|
|
225
|
+
third_auth_code: loginRes.code,
|
|
226
|
+
provider_id: this.provider_id,
|
|
227
|
+
}
|
|
228
|
+
}).then(res => {
|
|
229
|
+
this.$xdUniHelper.redirectTo({
|
|
230
|
+
url: this.nextUrl
|
|
231
|
+
})
|
|
232
|
+
})
|
|
233
|
+
}
|
|
234
|
+
})
|
|
235
|
+
},
|
|
189
236
|
|
|
190
237
|
/**
|
|
191
238
|
* @description 监听事件变化
|
|
@@ -195,6 +242,8 @@
|
|
|
195
242
|
let bgImage = getContainerPropsValue(container, 'content.bgImage', {});
|
|
196
243
|
if(bgImage.url) this.bgImage = getServiceUrl(bgImage.url);
|
|
197
244
|
this.notice = getContainerPropsValue(container, 'content.notice', '');
|
|
245
|
+
this.btnLoginText = getContainerPropsValue(container, 'content.btnLoginText', '微信授权登录');
|
|
246
|
+
this.btnCollectPhoneText = getContainerPropsValue(container, 'content.btnCollectPhoneText', '获取手机号');
|
|
198
247
|
this.textColor = getContainerPropsValue(container, 'content.textColor', '#fff');
|
|
199
248
|
},
|
|
200
249
|
|
|
@@ -242,6 +291,12 @@
|
|
|
242
291
|
|
|
243
292
|
}
|
|
244
293
|
|
|
294
|
+
&__jump {
|
|
295
|
+
position: absolute;
|
|
296
|
+
top: 40rpx;
|
|
297
|
+
right: 40rpx;
|
|
298
|
+
}
|
|
299
|
+
|
|
245
300
|
&__bottom {
|
|
246
301
|
position: absolute;
|
|
247
302
|
bottom: unit(80, rpx);
|