weapps-plugin-jingtong-verify 1.5.2 → 1.5.3

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/README.md CHANGED
@@ -1,2 +1,2 @@
1
1
  # SDK #
2
- 1.5.1
2
+ 1.5.3
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "weapps-plugin-jingtong-verify",
3
3
  "pluginName": "weapps-plugin-jingtong-verify",
4
4
  "pluginType": "mp",
5
- "version": "1.5.2",
5
+ "version": "1.5.3",
6
6
  "description": "",
7
7
  "main": "sdk.js",
8
8
  "author": "tongyirenzheng",
@@ -18,4 +18,4 @@
18
18
  "crypto-js": "^3.3.0",
19
19
  "miniprogram-sm-crypto": "^0.3.13"
20
20
  }
21
- }
21
+ }
@@ -351,6 +351,29 @@ const rules = {
351
351
  }
352
352
  },
353
353
  },
354
+ // 设置密码
355
+ bankCardSetPwdRules: {
356
+ bank_card_password: {
357
+ required: {
358
+ zh_CN: '请输入登录密码',
359
+ en: 'Please enter your login password'
360
+ },
361
+ validate: {
362
+ zh_CN: '请输入有效登录密码',
363
+ en: 'Please enter your login password'
364
+ }
365
+ },
366
+ bank_card_pwd_password: {
367
+ required: {
368
+ zh_CN: '请再次输入登录密码',
369
+ en: 'Please enter your login password again'
370
+ },
371
+ validate: {
372
+ zh_CN: '两次密码输入不一致',
373
+ en: 'Please enter your login password again'
374
+ }
375
+ },
376
+ },
354
377
  // 忘记密码设置新密码
355
378
  bankCardSetNewPwdRules: {
356
379
  bank_card_password: {
@@ -58,7 +58,7 @@ Page({
58
58
  bank_card_password: '',
59
59
  bank_card_pwd_password: ''
60
60
  },
61
- pwdRules: rulesConfig.bankCardSetPwdRules('zh_CN'),
61
+ pwdRules: rulesConfig.bankCardSetNewPwdRules('zh_CN'),
62
62
  validatePwdType: {
63
63
  bank_card_password(value) {
64
64
  return utils.validate.checkBankCardLoginPwd(value).data
@@ -132,8 +132,8 @@ Page({
132
132
  formData.cid_type = options.cid_type
133
133
  formData.verify_expire_time = options.verify_expire_time
134
134
  formSafeData.cid_type = options.cid_type
135
- formSafeData.id_card_number = options.idCardNumber
136
- formSafeData.strCid = options.strCid
135
+ // formSafeData.id_card_number = options.idCardNumber
136
+ // formSafeData.strCid = options.strCid
137
137
  this.setData({
138
138
  formData: formData,
139
139
  formSafeData: formSafeData
@@ -9,7 +9,7 @@
9
9
  <image src="../../images/Frame.png" mode="aspectFit" class="img"></image>
10
10
  </view>
11
11
  <view class="title">{{ language == 'zh_CN' ? '设置新登录密码' : 'Set new login password' }}</view>
12
- <view class="title_describe">{{ language == 'zh_CN' ? '保护您个人信息更安全' : 'Protect your personal information more securely' }}</view>
12
+ <view class="title_describe">{{ language == 'zh_CN' ? '新登录密码设置后原密码将会失效' : 'After setting the new login password, the original password will become invalid' }}</view>
13
13
  </view>
14
14
  <view class="content-box" wx:if="{{ language === 'zh_CN' }}">
15
15
  <!-- 完整配置 -->
@@ -53,8 +53,6 @@
53
53
  value="{{ formData.strCid || formData.id_card_number }}"
54
54
  clearable="{{ false }}"
55
55
  class="readonly-input"
56
- showQuestion="{{ true }}"
57
- bind:showQuestionTip="showQuestionTip"
58
56
  />
59
57
  </view>
60
58
  </g-form>
@@ -82,8 +80,7 @@
82
80
  label="身份证号码"
83
81
  placeholder="请输入本人证件号码"
84
82
  value="{{ formSafeData.strCid || formSafeData.id_card_number }}"
85
- clearable="{{ false }}"
86
- class="readonly-input"
83
+ clearable="{{ true }}"
87
84
  isOpen="{{ !formSafeData.strCid }}"
88
85
  showQuestion="{{ true }}"
89
86
  bind:showQuestionTip="showQuestionTip"
@@ -187,7 +187,7 @@
187
187
 
188
188
  .other-way-btn{
189
189
  width: 100%;
190
- height: 76rpx;
190
+ height: 96rpx;
191
191
  border: 1px solid #CE0022;
192
192
  display: flex;
193
193
  align-items: center;
@@ -307,7 +307,7 @@
307
307
  .not_get_verification_code{
308
308
  padding:40rpx; color: #ce0022;
309
309
  font-family: "PingFang SC";
310
- font-size: 34rpx;
310
+ font-size: 28rpx;
311
311
  font-style: normal;
312
312
  font-weight: 500;
313
313
  line-height: normal;
@@ -29,6 +29,7 @@ Page({
29
29
  return utils.validate.checkBankCardLoginPwd(value).data && utils.validate.checkConfirmPwd(value, formData.bank_card_password).data
30
30
  }, // 记录是否已经登录成功
31
31
  },
32
+ isShowPasswordStrength: false,// 是否显示密码强度
32
33
  passwordStrength: 0, // 密码强度等级 0-3
33
34
  passwordStrengthText: '弱',
34
35
  // 是否显示自定义校验提示
@@ -181,7 +182,8 @@ Page({
181
182
 
182
183
  this.setData({
183
184
  passwordStrength: strength, // 弱=1,中=2,强=3
184
- passwordStrengthText: strengthText
185
+ passwordStrengthText: strengthText,
186
+ isShowPasswordStrength: true
185
187
  })
186
188
  }
187
189
  })
@@ -26,7 +26,7 @@
26
26
  <view class="form-item-wrap">
27
27
  <view class="form-item-header">
28
28
  <text class="form-label">设置登录密码<text class="required-star">*</text></text>
29
- <view class="password-strength-indicator">
29
+ <view class="password-strength-indicator" wx:if="{{isShowPasswordStrength}}">
30
30
  <view class="strength-bar">
31
31
  <view class="strength-segment weak {{ passwordStrength >= 1 ? 'active' : '' }}"></view>
32
32
  <view class="strength-segment medium {{ passwordStrength >= 2 ? 'active' : '' }}"></view>
@@ -202,15 +202,15 @@
202
202
  }
203
203
 
204
204
  .strength-segment.weak.active {
205
- background-color: #ff4757;
205
+ background-color: #CE0022;
206
206
  }
207
207
 
208
208
  .strength-segment.medium.active {
209
- background-color: #ffa502;
209
+ background-color: #EE8610;
210
210
  }
211
211
 
212
212
  .strength-segment.strong.active {
213
- background-color: #2ed573;
213
+ background-color: #21C58A;
214
214
  }
215
215
 
216
216
  .strength-text {
@@ -104,6 +104,9 @@ Page({
104
104
  checkType: '', //// 1:无密码和手机号,2:无密码有手机号,3:无手机号有密码
105
105
  // 收不到验证码提示框
106
106
  showNotGetVerificationCodeTipModal: false,
107
+ submitMode: '',
108
+ // 防重复点击标记 - 基于接口返回状态
109
+ isSubmitting: false
107
110
  },
108
111
 
109
112
  /**
@@ -184,7 +187,52 @@ Page({
184
187
  },
185
188
  // 确认提交表单
186
189
  async handleFormSubmit(e) {
190
+ const isOther = this.data.submitMode === 'other'
187
191
  const formValid = e.detail.validStatus
192
+ if (isOther) {
193
+ const customValid = this.data.language !== 'en' ? { valid: true, msg: '' } : this.validateFullname()
194
+ if (!formValid || !customValid.valid) {
195
+ // 自定义校验字段有问题,获取表单错误列表
196
+ const formErrList = e.detail.value
197
+ // 如果表单校验有问题,自定义校验没问题,则显示表单校验错误提示
198
+ if (!formValid && customValid.valid) {
199
+ this.showCuntomErrTip(formErrList[0].message)
200
+ this.setData({
201
+ isSubmitting: false
202
+ })
203
+ return
204
+ }
205
+ // 如果表单校验没有问题,自定义校验有问题,则显示自定义校验错误提示
206
+ if (formValid && !customValid.valid) {
207
+ this.showCuntomErrTip(customValid.msg)
208
+ this.setData({
209
+ isSubmitting: false
210
+ })
211
+ return
212
+ }
213
+ // 如果两者都有问题,则判断显示谁
214
+ let lastMsg = ''
215
+ if (formErrList.some(i => ["id_card_number", "nation"].includes(i.name))) {
216
+ lastMsg = formErrList[0].message
217
+ } else {
218
+ lastMsg = customValid.msg
219
+ }
220
+ this.showCuntomErrTip(lastMsg)
221
+ this.data.submitMode = ''
222
+ this.data.isSubmitting = false
223
+ wx.hideLoading()
224
+ this.setData({
225
+ isSubmitting: false
226
+ })
227
+ return
228
+ }
229
+ this.setData({
230
+ formData: { ...this.data.formData, verification_code: tempCode },
231
+ submitMode: ''
232
+ })
233
+ this.sendVerificationCode()
234
+ return
235
+ }
188
236
  const customValid = this.data.language !== 'en' ? { valid: true, msg: '' } : this.validateFullname()
189
237
  if (!formValid || !customValid.valid) {
190
238
  // 自定义校验字段有问题,获取表单错误列表
@@ -557,6 +605,51 @@ Page({
557
605
  })
558
606
  },
559
607
 
608
+ // 发送验证码
609
+ async sendVerificationCodeVerify() {
610
+ // 检查是否正在处理中
611
+ if (this.data.isSubmitting) {
612
+ console.log('正在处理中,请勿重复点击')
613
+ wx.showToast({
614
+ title: '正在处理中,请稍候...',
615
+ icon: 'none',
616
+ duration: 1500
617
+ })
618
+ return
619
+ }
620
+ // 立即设置处理状态,防止重复点击
621
+ this.data.isSubmitting = true
622
+ try {
623
+ // 临时保存并移除 verification_code
624
+ const tempCode = this.data.formData.verification_code
625
+ const tempFormData = { ...this.data.formData }
626
+ delete tempFormData.verification_code
627
+
628
+ this.setData({
629
+ submitMode: 'other',
630
+ formData: tempFormData
631
+ })
632
+
633
+ const form = this.selectComponent('#form')
634
+ if (form && typeof form.handleSubmit === 'function') {
635
+ form.handleSubmit()
636
+ } else {
637
+ // 恢复 verification_code
638
+ this.setData({
639
+ formData: { ...this.data.formData, verification_code: tempCode },
640
+ submitMode: '',
641
+ isSubmitting: false
642
+ })
643
+ }
644
+ } catch (error) {
645
+ // 恢复 verification_code
646
+ this.setData({
647
+ formData: { ...this.data.formData, verification_code: tempCode },
648
+ submitMode: '',
649
+ isSubmitting: false
650
+ })
651
+ }
652
+ },
560
653
  // 发送验证码
561
654
  sendVerificationCode() {
562
655
  if (this.data.isCountingDown) {
@@ -53,9 +53,7 @@
53
53
  showEye="{{ formData.id_card_number }}"
54
54
  isOpen="{{ !formData.strCid }}"
55
55
  bind:change="handleChange"
56
- showQuestion="{{ true }}"
57
56
  class="readonly-input"
58
- bind:showQuestionTip="showQuestionTip"
59
57
  bind:openEye="openEye"
60
58
  />
61
59
  </view>
@@ -97,7 +95,7 @@
97
95
  <view
98
96
  slot="append"
99
97
  class="verification-btn {{ isCountingDown ? 'disabled' : '' }}"
100
- bind:tap="sendVerificationCode"
98
+ bind:tap="sendVerificationCodeVerify"
101
99
  >
102
100
  {{ verificationText }}
103
101
  </view>
@@ -220,7 +220,7 @@
220
220
  .not_get_verification_code{
221
221
  padding:40rpx; color: #ce0022;
222
222
  font-family: "PingFang SC";
223
- font-size: 34rpx;
223
+ font-size: 28rpx;
224
224
  font-style: normal;
225
225
  font-weight: 500;
226
226
  line-height: normal;
@@ -1688,18 +1688,18 @@ Page({
1688
1688
  })
1689
1689
  } else if(!isPhoneNumber && res.data.is_new){
1690
1690
  // isPhoneNumber 为true,即系没有手机号,res.data.is_new为true即系无密码
1691
- // 1:无密码和手机号,2:无密码有手机号,3:无手机号有密码
1692
- this.setData({
1693
- checkType: 2
1694
- })
1695
- wx.navigateTo({
1696
- url: '/weapps-plugin-jingtong-verify/pages/bank-card-verify/bank-card-verify?id_card_number='+ this.data.formData.id_card_number
1697
- + '&cid_type=' + this.data.formData.cid_type
1698
- + '&name=' + this.data.formData.name
1699
- + '&strCid=' + this.data.formData.strCid
1700
- + '&verify_expire_time=' + this.data.formData.verify_expire_time
1701
- + '&checkType=' + this.data.checkType
1702
- })
1691
+ // 1:无密码和手机号,2:无密码有手机号,3:无手机号有密码
1692
+ this.setData({
1693
+ checkType: 2
1694
+ })
1695
+ wx.navigateTo({
1696
+ url: '/weapps-plugin-jingtong-verify/pages/bank-card-verify/bank-card-verify?id_card_number='+ this.data.formData.id_card_number
1697
+ + '&cid_type=' + this.data.formData.cid_type
1698
+ + '&name=' + this.data.formData.name
1699
+ + '&strCid=' + this.data.formData.strCid
1700
+ + '&verify_expire_time=' + this.data.formData.verify_expire_time
1701
+ + '&checkType=' + this.data.checkType
1702
+ })
1703
1703
  } else {
1704
1704
  wx.navigateTo({
1705
1705
  url: '/weapps-plugin-jingtong-verify/pages/bank-card-login/bank-card-login?cardNumber='
@@ -144,7 +144,7 @@
144
144
 
145
145
  .other-way-btn{
146
146
  width: 100%;
147
- height: 76rpx;
147
+ height: 96rpx;
148
148
  border: 1px solid;
149
149
  display: flex;
150
150
  align-items: center;
@@ -316,6 +316,20 @@ const bankCardRules = (language) => {
316
316
 
317
317
  // 设置密码
318
318
  const bankCardSetPwdRules = (language) => {
319
+ const { bank_card_password, bank_card_pwd_password } = dict.rules.bankCardSetPwdRules
320
+ return {
321
+ bank_card_password: [
322
+ { type: 'required', message: `${bank_card_password.required[language]}` },
323
+ { type: 'bank_card_password', message: `${bank_card_password.validate[language]}` }
324
+ ],
325
+ bank_card_pwd_password: [
326
+ { type: 'required', message: `${bank_card_pwd_password.required[language]}` },
327
+ { type: 'bank_card_pwd_password', message: `${bank_card_pwd_password.validate[language]}` }
328
+ ]
329
+ }
330
+ }
331
+ // 设置新密码
332
+ const bankCardSetNewPwdRules = (language) => {
319
333
  const { bank_card_password, bank_card_pwd_password } = dict.rules.bankCardSetNewPwdRules
320
334
  return {
321
335
  bank_card_password: [
@@ -384,6 +398,7 @@ module.exports = {
384
398
  residenceRules,
385
399
  bankCardRules,
386
400
  bankCardSetPwdRules,
401
+ bankCardSetNewPwdRules,
387
402
  bankCardLoginPwdRules,
388
403
  setNewPwdInfoRules,
389
404
  safeVerificationInfoRules