weapps-plugin-jingtong-verify 1.4.2 → 1.4.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.4.1-dev
2
+ 1.4.2
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.4.2",
5
+ "version": "1.4.3",
6
6
  "description": "",
7
7
  "main": "sdk.js",
8
8
  "author": "tongyirenzheng",
@@ -25,6 +25,8 @@ Page({
25
25
  nation_name: '中国',
26
26
  sur_name: '', // 姓
27
27
  first_name: '', // 名
28
+ sur_name_en: '', // 姓(国外护照)
29
+ first_name_en: '', // 名(国外护照)
28
30
  sex: '', // 性别
29
31
  birthday: '', // 出生日期
30
32
  cid_expire_date: '', // 护照有效期
@@ -122,7 +124,7 @@ Page({
122
124
  },
123
125
  '700': {
124
126
  currentAuthType: 'ForeignPassortAuth',
125
- rules: rulesConfig.ForeignPassortRulesFace('en')
127
+ rules: rulesConfig.ForeignPassortRules('en')
126
128
  }
127
129
  },
128
130
  rules: rulesConfig.chinaRules('zh_CN'),
@@ -172,7 +174,21 @@ Page({
172
174
  // 标记港澳居民来往内地通行证存在回显的session信息
173
175
  // exitHmSession: false,
174
176
  // HmSession: {}
175
- showForeignTip: false
177
+ showForeignTip: false,
178
+ // (国外)surname自定义校验状态,傻逼数广傻逼组件逼的
179
+ sur_name_state: {
180
+ valid: true,
181
+ msg: ''
182
+ },
183
+ // (国外)givenName自定义校验状态,傻逼数广傻逼组件逼的
184
+ first_name_state: {
185
+ valid: true,
186
+ msg: ''
187
+ },
188
+ // 是否显示自定义校验提示
189
+ showCustomTips: false,
190
+ // 自定义校验提示文本
191
+ customTipsMsg: ''
176
192
  },
177
193
 
178
194
  /**
@@ -521,6 +537,9 @@ Page({
521
537
  [`formData.${starId}`]: ''
522
538
  })
523
539
  }
540
+ if (['sur_name_en', 'first_name_en'].includes(formId)) {
541
+ this.validateFullname()
542
+ }
524
543
  }
525
544
  },
526
545
 
@@ -547,6 +566,8 @@ Page({
547
566
  nation_name: '',
548
567
  sur_name: '',
549
568
  first_name: '',
569
+ sur_name_en: '',
570
+ first_name_en: '',
550
571
  sex: '',
551
572
  birthday: '',
552
573
  cid_expire_date: '',
@@ -663,33 +684,78 @@ Page({
663
684
  },
664
685
 
665
686
  async handleFormSubmit(e) {
666
- if (!e.detail.validStatus) {
687
+ // 自定义校验结果
688
+ const formValid = e.detail.validStatus
689
+ let customValid = this.data.language !== 'en' ? { valid: true, msg: '' } : this.validateFullname()
690
+ if (!formValid || !customValid.valid) {
691
+ // 如果自定义校验字段没问题,则跳过
692
+ if (customValid.valid) {
693
+ return
694
+ }
695
+ // 自定义校验字段有问题,获取表单错误列表
696
+ const formErrList = e.detail.value
697
+ // 计算是否单独弹出错误提示
698
+ let showCustomTips = false
699
+ if (formErrList && formErrList.length) {
700
+ showCustomTips = !formErrList.some(i => ["id_card_number", "nation"].includes(i.name))
701
+ } else {
702
+ showCustomTips = true
703
+ }
704
+ // 如果需要弹出,则弹出
705
+ if (showCustomTips) {
706
+ this.setData({
707
+ showCustomTips: true,
708
+ customTipsMsg: customValid.msg
709
+ }, () => {
710
+ // 3秒后关闭
711
+ setTimeout(() => {
712
+ this.setData({
713
+ showCustomTips: false,
714
+ customTipsMsg: ''
715
+ });
716
+ }, 3500);
717
+ })
718
+ }
667
719
  return
668
720
  }
669
721
  wx.showLoading({
670
722
  title: '加载中…',
671
723
  mask: true
672
724
  })
673
-
725
+ // 处理参数
674
726
  console.log('删除“姓名、证件号码、护照号码、手机号码”的前后空格')
675
727
  let { name, id_card_number, sur_name, first_name, passport_number, phone, cid_type } = this.data.formData
676
-
677
728
  this.setData({
678
729
  ['formData.name']: name.trim(),
679
- ['formData.sur_name']: sur_name.trim(),
680
- ['formData.first_name']: first_name.trim(),
681
730
  ['formData.passport_number']: passport_number.trim(),
682
- ['formData.phone']: phone.trim(),
683
- ['formData.id_card_number']: id_card_number.trim()
731
+ ['formData.phone']: phone.trim()
684
732
  })
685
-
686
733
  if (cid_type === '700') {
687
- console.log('删除“外国人护照号码”中间空格')
734
+ // 外国护照,sur_name和first_name需要特殊处理
735
+ let { sur_name_en, first_name_en } = this.data.formData
736
+ if (sur_name_en == null || sur_name_en === '') {
737
+ sur_name_en = ' '
738
+ } else {
739
+ sur_name = sur_name_en.trim()
740
+ }
741
+ if (first_name_en == null || first_name_en === '') {
742
+ first_name_en = ' '
743
+ } else {
744
+ first_name_en = first_name_en.trim()
745
+ }
688
746
  this.setData({
689
- ['formData.id_card_number']: id_card_number.replace(/\s+/g, '')
747
+ ['formData.sur_name']: sur_name_en,
748
+ ['formData.first_name']: first_name_en,
749
+ // 删除“外国人护照号码”中间空格
750
+ ['formData.id_card_number']: id_card_number.replace(/\s+/g, '').trim()
751
+ })
752
+ } else {
753
+ this.setData({
754
+ ['formData.sur_name']: sur_name.trim(),
755
+ ['formData.first_name']: first_name.trim(),
756
+ ['formData.id_card_number']: id_card_number.trim()
690
757
  })
691
758
  }
692
-
693
759
  console.log('入参', this.data.formData)
694
760
 
695
761
  let currentAuthType = this.data.currentAuthType
@@ -1379,5 +1445,90 @@ Page({
1379
1445
  this.setData({
1380
1446
  showForeignTip: false
1381
1447
  })
1382
- }
1448
+ },
1449
+
1450
+ // 验证sur_name和first_name
1451
+ validateFullname() {
1452
+ const {
1453
+ sur_name_en: sur_name,
1454
+ first_name_en: first_name
1455
+ } = this.data.formData
1456
+ // 两个都没填
1457
+ if ((sur_name == null || sur_name === '') && (first_name == null || first_name === '')) {
1458
+ const msgEmpty = 'Please fill in surname or given name';
1459
+ this.setData({
1460
+ sur_name_state: {
1461
+ valid: false,
1462
+ msg: msgEmpty
1463
+ },
1464
+ first_name_state: {
1465
+ valid: false,
1466
+ msg: msgEmpty
1467
+ }
1468
+ })
1469
+ return {
1470
+ valid: false,
1471
+ msg: msgEmpty
1472
+ }
1473
+ }
1474
+ this.setData({
1475
+ sur_name_state: {
1476
+ valid: true,
1477
+ msg: ''
1478
+ },
1479
+ first_name_state: {
1480
+ valid: false,
1481
+ msg: ''
1482
+ }
1483
+ })
1484
+ // 其中一个填了,或者两个都填了
1485
+ let sur_name_flag = true
1486
+ let msg = 'Please enter capital letters'
1487
+ if (sur_name != null && sur_name !== '') {
1488
+ const valid = utils.validate.checkName(sur_name, cidType)
1489
+ if (valid.data) {
1490
+ sur_name_flag = true
1491
+ } else {
1492
+ this.setData({
1493
+ sur_name_state: {
1494
+ valid: false,
1495
+ msg
1496
+ }
1497
+ })
1498
+ sur_name_flag = false
1499
+ }
1500
+ }
1501
+ let first_name_flag = true
1502
+ if (first_name != null && first_name !== '') {
1503
+ const valid = utils.validate.checkName(first_name, cidType)
1504
+ if (valid.data) {
1505
+ first_name_flag = true
1506
+ } else {
1507
+ this.setData({
1508
+ first_name_state: {
1509
+ valid: false,
1510
+ msg
1511
+ }
1512
+ })
1513
+ first_name_flag = false
1514
+ }
1515
+ }
1516
+ if (sur_name_flag && first_name_flag) {
1517
+ this.setData({
1518
+ sur_name_state: {
1519
+ valid: true,
1520
+ msg: ''
1521
+ },
1522
+ first_name_state: {
1523
+ valid: false,
1524
+ msg: ''
1525
+ }
1526
+ })
1527
+ }
1528
+ const valid = sur_name_flag && first_name_flag
1529
+ return {
1530
+ valid,
1531
+ msg: valid ? '' : msg
1532
+ }
1533
+ },
1383
1534
  })
@@ -11,7 +11,8 @@
11
11
  "card-modal": "../../components/card-modal/card-modal",
12
12
  "tip-modal": "../../components/tip-modal/tip-modal",
13
13
  "face-error-modal": "../../components/face-error-modal/face-error-modal",
14
- "g-switch": "../../components/gsd-ui/g-switch/index"
14
+ "g-switch": "../../components/gsd-ui/g-switch/index",
15
+ "g-tips": "../../components/gsd-ui/g-tips/index"
15
16
  },
16
17
  "navigationBarTitleText": "身份验证"
17
18
  }
@@ -1,3 +1,8 @@
1
+ <view wx:if="showCustomTips" class="custom-tips">
2
+ <g-tips position="fixed" is-show="{{showCustomTips}}" status="warn" closeable catch:close="handleTipsClose">
3
+ {{customTipsMsg}}
4
+ </g-tips>
5
+ </view>
1
6
  <view class="{{ language == 'en' ? 'en-page' : ''}}">
2
7
  <view class="top-box">
3
8
  <view class="img-box">
@@ -363,25 +368,29 @@
363
368
  <!-- 姓 -->
364
369
  <view class="form-item-wrap">
365
370
  <g-input
366
- id="sur_name"
371
+ id="sur_name_en"
367
372
  label="Surname"
368
373
  placeholder=""
369
- value="{{ formData.sur_name }}"
374
+ value="{{ formData.sur_name_en }}"
370
375
  clearable="true"
376
+ _required="{{ false }}"
371
377
  bind:change="handleChange"
372
378
  />
379
+ <view wx:if="!sur_name_state.valid" class="form-item__status-message--warn">{{ sur_name_state.msg }}</view>
373
380
  </view>
374
381
 
375
382
  <!-- 名 -->
376
383
  <view class="form-item-wrap">
377
384
  <g-input
378
- id="first_name"
385
+ id="first_name_en"
379
386
  label="Given names"
380
387
  placeholder=""
381
- value="{{ formData.first_name }}"
388
+ value="{{ formData.first_name_en }}"
382
389
  clearable="true"
390
+ _required="{{ false }}"
383
391
  bind:change="handleChange"
384
392
  />
393
+ <view wx:if="!first_name_state.valid" class="form-item__status-message--warn">{{ first_name_state.msg }}</view>
385
394
  </view>
386
395
 
387
396
  <!-- 性别 -->
@@ -114,4 +114,21 @@
114
114
  width: 40rpx;
115
115
  height: 40rpx;
116
116
  flex-shrink: 0;
117
+ }
118
+
119
+ .form-item__status-message--warn {
120
+ color: #f13939;
121
+ font-size: 30rpx;
122
+ line-height: 40rpx;
123
+ margin-top: 10rpx;
124
+ padding-left: 40rpx;
125
+ padding-right: 40rpx;
126
+ }
127
+
128
+ .custom-tips {
129
+ position: fixed;
130
+ z-index: 905;
131
+ box-sizing: border-box;
132
+ top: 0rpx;
133
+ width: 100%;
117
134
  }
@@ -420,7 +420,7 @@ Page({
420
420
  if (vid1.valid) {
421
421
  return
422
422
  }
423
- // 自定义校验字段没问题,获取表单错误列表
423
+ // 自定义校验字段有问题,获取表单错误列表
424
424
  const formErrList = e.detail.value
425
425
  // 计算是否单独弹出错误提示
426
426
  let showCustomTips = false
@@ -246,48 +246,48 @@ const ForeignPassortRules = (language) => {
246
246
  }
247
247
  }
248
248
 
249
- // 外国人护照(人脸识别用)
250
- const ForeignPassortRulesFace = (language) => {
251
- const rules = dict.rules.foreignerRulesFace
252
- const { id_card_number, sur_name, first_name } = rules
253
- return {
254
- id_card_number: [
255
- { type: 'required', message: `${id_card_number.required[language]}` },
256
- { type: 'id_card_number', message: `${id_card_number.validate[language]}` }
257
- ],
258
- nation: [
259
- { type: 'required', message: `${rules.nation.required[language]}` }
260
- ],
261
- sur_name: [
262
- { type: 'required', message: `${sur_name.required[language]}` },
263
- { type: 'sur_name', message: `${sur_name.validate[language]}` }
264
- ],
265
- first_name: [
266
- { type: 'required', message: `${first_name.required[language]}` },
267
- { type: 'first_name', message: `${first_name.validate[language]}` }
268
- ],
269
- sex: [
270
- { type: 'required', message: `${rules.sex[language]}` }
271
- ],
272
- birthday: [
273
- { type: 'required', message: `${rules.birthday[language]}` }
274
- ],
275
- cid_expire_date: [
276
- { type: 'required', message: `${rules.cid_expire_date[language]}` }
277
- ],
278
- phone: [
279
- { type: 'required', message: `${rules.phone.required[language]}` }
280
- ],
281
- verify_expire_time: [
282
- { type: 'required', message: `${verify_expire_time.required[language]}` },
283
- { type: 'verify_expire_time', message: `${verify_expire_time.required[language]}` }
284
- ],
285
- agree: [
286
- { type: 'required', message: `${agree.required[language]}` },
287
- { type: 'agree', message: `${agree.required[language]}` }
288
- ]
289
- }
290
- }
249
+ // 外国人护照(旧逻辑)
250
+ // const ForeignPassortRulesFace = (language) => {
251
+ // const rules = dict.rules.foreignerRulesFace
252
+ // const { id_card_number, sur_name, first_name } = rules
253
+ // return {
254
+ // id_card_number: [
255
+ // { type: 'required', message: `${id_card_number.required[language]}` },
256
+ // { type: 'id_card_number', message: `${id_card_number.validate[language]}` }
257
+ // ],
258
+ // nation: [
259
+ // { type: 'required', message: `${rules.nation.required[language]}` }
260
+ // ],
261
+ // sur_name: [
262
+ // { type: 'required', message: `${sur_name.required[language]}` },
263
+ // { type: 'sur_name', message: `${sur_name.validate[language]}` }
264
+ // ],
265
+ // first_name: [
266
+ // { type: 'required', message: `${first_name.required[language]}` },
267
+ // { type: 'first_name', message: `${first_name.validate[language]}` }
268
+ // ],
269
+ // sex: [
270
+ // { type: 'required', message: `${rules.sex[language]}` }
271
+ // ],
272
+ // birthday: [
273
+ // { type: 'required', message: `${rules.birthday[language]}` }
274
+ // ],
275
+ // cid_expire_date: [
276
+ // { type: 'required', message: `${rules.cid_expire_date[language]}` }
277
+ // ],
278
+ // phone: [
279
+ // { type: 'required', message: `${rules.phone.required[language]}` }
280
+ // ],
281
+ // verify_expire_time: [
282
+ // { type: 'required', message: `${verify_expire_time.required[language]}` },
283
+ // { type: 'verify_expire_time', message: `${verify_expire_time.required[language]}` }
284
+ // ],
285
+ // agree: [
286
+ // { type: 'required', message: `${agree.required[language]}` },
287
+ // { type: 'agree', message: `${agree.required[language]}` }
288
+ // ]
289
+ // }
290
+ // }
291
291
 
292
292
  module.exports = {
293
293
  chinaRules,
@@ -295,7 +295,6 @@ module.exports = {
295
295
  residenceAuthRules,
296
296
  cardRules,
297
297
  ForeignPassortRules,
298
- ForeignPassortRulesFace,
299
298
  HMPassRulesForeign,
300
299
  HMORulesMore,
301
300
  residenceRules