weapps-plugin-jingtong-verify 1.4.2 → 1.4.4

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.4
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.4",
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
  /**
@@ -418,6 +434,11 @@ Page({
418
434
  console.log('存在可回填的temp数据', formDataTemp[cid_type])
419
435
  let formData = Object.assign(formDataOld, formDataTemp[cid_type])
420
436
  Nation = formData.nation
437
+ // 国外护照,回填名字
438
+ if (cid_type === '700') {
439
+ formData.sur_name_en = formData.sur_name
440
+ formData.first_name_en = formData.first_name
441
+ }
421
442
  this.setData({
422
443
  formData
423
444
  })
@@ -521,6 +542,9 @@ Page({
521
542
  [`formData.${starId}`]: ''
522
543
  })
523
544
  }
545
+ if (['sur_name_en', 'first_name_en'].includes(formId)) {
546
+ this.validateFullname()
547
+ }
524
548
  }
525
549
  },
526
550
 
@@ -547,6 +571,8 @@ Page({
547
571
  nation_name: '',
548
572
  sur_name: '',
549
573
  first_name: '',
574
+ sur_name_en: '',
575
+ first_name_en: '',
550
576
  sex: '',
551
577
  birthday: '',
552
578
  cid_expire_date: '',
@@ -619,7 +645,9 @@ Page({
619
645
  nation,
620
646
  nation_name,
621
647
  sur_name,
648
+ sur_name_en: sur_name,
622
649
  first_name,
650
+ first_name_en: first_name,
623
651
  sex: sex ? sex : '',
624
652
  birthday,
625
653
  cid_expire_date,
@@ -663,33 +691,78 @@ Page({
663
691
  },
664
692
 
665
693
  async handleFormSubmit(e) {
666
- if (!e.detail.validStatus) {
694
+ // 自定义校验结果
695
+ const formValid = e.detail.validStatus
696
+ let customValid = this.data.language !== 'en' ? { valid: true, msg: '' } : this.validateFullname()
697
+ if (!formValid || !customValid.valid) {
698
+ // 如果自定义校验字段没问题,则跳过
699
+ if (customValid.valid) {
700
+ return
701
+ }
702
+ // 自定义校验字段有问题,获取表单错误列表
703
+ const formErrList = e.detail.value
704
+ // 计算是否单独弹出错误提示
705
+ let showCustomTips = false
706
+ if (formErrList && formErrList.length) {
707
+ showCustomTips = !formErrList.some(i => ["id_card_number", "nation"].includes(i.name))
708
+ } else {
709
+ showCustomTips = true
710
+ }
711
+ // 如果需要弹出,则弹出
712
+ if (showCustomTips) {
713
+ this.setData({
714
+ showCustomTips: true,
715
+ customTipsMsg: customValid.msg
716
+ }, () => {
717
+ // 3秒后关闭
718
+ setTimeout(() => {
719
+ this.setData({
720
+ showCustomTips: false,
721
+ customTipsMsg: ''
722
+ });
723
+ }, 3500);
724
+ })
725
+ }
667
726
  return
668
727
  }
669
728
  wx.showLoading({
670
729
  title: '加载中…',
671
730
  mask: true
672
731
  })
673
-
732
+ // 处理参数
674
733
  console.log('删除“姓名、证件号码、护照号码、手机号码”的前后空格')
675
734
  let { name, id_card_number, sur_name, first_name, passport_number, phone, cid_type } = this.data.formData
676
-
677
735
  this.setData({
678
736
  ['formData.name']: name.trim(),
679
- ['formData.sur_name']: sur_name.trim(),
680
- ['formData.first_name']: first_name.trim(),
681
737
  ['formData.passport_number']: passport_number.trim(),
682
- ['formData.phone']: phone.trim(),
683
- ['formData.id_card_number']: id_card_number.trim()
738
+ ['formData.phone']: phone.trim()
684
739
  })
685
-
686
740
  if (cid_type === '700') {
687
- console.log('删除“外国人护照号码”中间空格')
741
+ // 外国护照,sur_name和first_name需要特殊处理
742
+ let { sur_name_en, first_name_en } = this.data.formData
743
+ if (sur_name_en == null || sur_name_en === '') {
744
+ sur_name_en = ' '
745
+ } else {
746
+ sur_name = sur_name_en.trim()
747
+ }
748
+ if (first_name_en == null || first_name_en === '') {
749
+ first_name_en = ' '
750
+ } else {
751
+ first_name_en = first_name_en.trim()
752
+ }
753
+ this.setData({
754
+ ['formData.sur_name']: sur_name_en,
755
+ ['formData.first_name']: first_name_en,
756
+ // 删除“外国人护照号码”中间空格
757
+ ['formData.id_card_number']: id_card_number.replace(/\s+/g, '').trim()
758
+ })
759
+ } else {
688
760
  this.setData({
689
- ['formData.id_card_number']: id_card_number.replace(/\s+/g, '')
761
+ ['formData.sur_name']: sur_name.trim(),
762
+ ['formData.first_name']: first_name.trim(),
763
+ ['formData.id_card_number']: id_card_number.trim()
690
764
  })
691
765
  }
692
-
693
766
  console.log('入参', this.data.formData)
694
767
 
695
768
  let currentAuthType = this.data.currentAuthType
@@ -1379,5 +1452,90 @@ Page({
1379
1452
  this.setData({
1380
1453
  showForeignTip: false
1381
1454
  })
1382
- }
1455
+ },
1456
+
1457
+ // 验证sur_name和first_name
1458
+ validateFullname() {
1459
+ const {
1460
+ sur_name_en: sur_name,
1461
+ first_name_en: first_name
1462
+ } = this.data.formData
1463
+ // 两个都没填
1464
+ if ((sur_name == null || sur_name === '') && (first_name == null || first_name === '')) {
1465
+ const msgEmpty = 'Please fill in surname or given name';
1466
+ this.setData({
1467
+ sur_name_state: {
1468
+ valid: false,
1469
+ msg: msgEmpty
1470
+ },
1471
+ first_name_state: {
1472
+ valid: false,
1473
+ msg: msgEmpty
1474
+ }
1475
+ })
1476
+ return {
1477
+ valid: false,
1478
+ msg: msgEmpty
1479
+ }
1480
+ }
1481
+ this.setData({
1482
+ sur_name_state: {
1483
+ valid: true,
1484
+ msg: ''
1485
+ },
1486
+ first_name_state: {
1487
+ valid: false,
1488
+ msg: ''
1489
+ }
1490
+ })
1491
+ // 其中一个填了,或者两个都填了
1492
+ let sur_name_flag = true
1493
+ let msg = 'Please enter capital letters'
1494
+ if (sur_name != null && sur_name !== '') {
1495
+ const valid = utils.validate.checkName(sur_name, cidType)
1496
+ if (valid.data) {
1497
+ sur_name_flag = true
1498
+ } else {
1499
+ this.setData({
1500
+ sur_name_state: {
1501
+ valid: false,
1502
+ msg
1503
+ }
1504
+ })
1505
+ sur_name_flag = false
1506
+ }
1507
+ }
1508
+ let first_name_flag = true
1509
+ if (first_name != null && first_name !== '') {
1510
+ const valid = utils.validate.checkName(first_name, cidType)
1511
+ if (valid.data) {
1512
+ first_name_flag = true
1513
+ } else {
1514
+ this.setData({
1515
+ first_name_state: {
1516
+ valid: false,
1517
+ msg
1518
+ }
1519
+ })
1520
+ first_name_flag = false
1521
+ }
1522
+ }
1523
+ if (sur_name_flag && first_name_flag) {
1524
+ this.setData({
1525
+ sur_name_state: {
1526
+ valid: true,
1527
+ msg: ''
1528
+ },
1529
+ first_name_state: {
1530
+ valid: false,
1531
+ msg: ''
1532
+ }
1533
+ })
1534
+ }
1535
+ const valid = sur_name_flag && first_name_flag
1536
+ return {
1537
+ valid,
1538
+ msg: valid ? '' : msg
1539
+ }
1540
+ },
1383
1541
  })
@@ -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