瀏覽代碼

master:老人自助注册

XhuiCoder 10 月之前
父節點
當前提交
824c0d3b93
共有 1 個文件被更改,包括 270 次插入15 次删除
  1. 270 15
      pages/createInfo/createInfo.vue

+ 270 - 15
pages/createInfo/createInfo.vue

@@ -42,7 +42,7 @@
           </uni-forms-item>
           <uni-forms-item label="所属社区" required>
             <uni-data-picker ref="lrhjdz" v-model="baseFormData.lrHjdz" :localdata="lrhjdzList" popup-title="请选择社区" @change="lrhjdzChange"
-              @nodeclick="lrhjdzNodeClick" :readonly="lrhjdzList.length === 0"></uni-data-picker>
+              @nodeclick="lrhjdzNodeClick" :readonly="lrhjdzList.length === 0" :class="{'readonly':lrhjdzList.length === 0}"></uni-data-picker>
           </uni-forms-item>
           <uni-forms-item label="住址" required name="jzdz">
             <uni-easyinput type="text" v-model="baseFormData.jzdz" :disabled="disabled" placeholder="请输入住址" :inputBorder="true"></uni-easyinput>
@@ -124,7 +124,7 @@
         mchntList: [],
         lrhjdzList: [],
         level: 3,
-        
+
         diqu: '',
         tkzmList: [],
         dbzmList: [],
@@ -264,25 +264,69 @@
           this.mchntList.push({ text: item.name, value: item.mchnt })
         })
       })
+
+      getAccessToken(this.callbackToken)
+      window.addEventListener("message", e => {
+        if (e.data.data && e.data.data.arg.base64) {
+          setTimeout(() => {
+            uni.showLoading({
+              title: '正在识别中...'
+            })
+            this.faceBase64 = ''
+            this.cardType = uni.getStorageSync("cardType")
+            // if (this.cardType == 'front') e.data.data.arg.base64 = jl.front
+            // if (this.cardType == 'back') e.data.data.arg.base64 = jl.back
+            // 压缩	
+            translateAll(base64ToUrl(e.data.data.arg.base64), (base64, blobUrl) => {
+              idcard(base64, this.token, this.cardType, this.callbackIdcard)
+            })
+            uni.removeStorageSync('cardType')
+          }, 1000);
+        }
+
+        if (e.data.data && e.data.data.arg.faceBase64) {
+          setTimeout(() => {
+            uni.showLoading({
+              title: '正在识别中...'
+            })
+            this.faceBase64 = e.data.data.arg.faceBase64
+            // 压缩
+            translateAll(base64ToUrl(this.faceBase64), (base64, blobUrl) => {
+              this.src = this.faceBase64
+              match(this.token, base64.split(",")[1], this.idcardFace, this.callbackFace)
+            })
+          }, 1000);
+        }
+      }, false)
     },
-    methods: {
-      mchntChange(mchnt) {
-        if (mchnt) {
-          getChildListByMchnt({ mchnt }).then(res => {
-            if (res.code !== 200) return
-            const { data } = res
+    watch: {
+      'baseFormData.mchnt': {
+        immediate:true,
+        handler(newVal, oldVal) {
+          if (newVal) {
+            getChildListByMchnt({ mchnt: newVal }).then(res => {
+              if (res.code !== 200) return
+              const { data } = res
+              this.lrhjdzList = []
+              let str1 = JSON.stringify(data).replaceAll('code', 'value').replaceAll('label', 'text').replaceAll('null', '')
+              this.lrhjdzList = JSON.parse(str1)
+            })
+          } else {
             this.lrhjdzList = []
-            let str1 = JSON.stringify(data).replaceAll('code', 'value').replaceAll('label', 'text').replaceAll('null', '')
-            this.lrhjdzList = JSON.parse(str1)
-          })
-        } else {
-          this.lrhjdzList = []
-          this.baseFormData.lrHjdz = ''
+            this.baseFormData.lrHjdz = ''
+          }
         }
+      }
+    },
+    methods: {
+      mchntChange(mchnt) {
+        // console.log(mchnt);
       },
       lrhjdzChange(e) {
         const { value } = e.detail
-        this.baseFormData.lrHjdz = value[value.length - 1].value
+        if (value.length > 0) {
+          this.baseFormData.lrHjdz = value[value.length - 1].value
+        }
       },
       lrhjdzNodeClick(e) {
         // console.log(e);
@@ -298,6 +342,209 @@
         this.zczmList = e
       },
 
+      callbackFace(res) {
+        uni.hideLoading()
+        if (res.data.error_msg == 'SUCCESS') {
+          this.score = res.data.result.score;
+
+          this.baseFormData.lrTxdb = JSON.stringify({
+            "lrJmzjhm": this.idcardMD5,
+            "xsfs": this.score
+          })
+          if (this.score >= config.score) {
+            this.show = false
+            // this.baseFormData.lzzt = 3
+            this.baseFormData.lzzt = 0
+            // this.baseFormData.lrSpyj = '同意'
+            this.baseFormData.lrSpyj = ''
+          } else {
+            // 低于80选项是否人工审核,是的话进记录表
+            // 身份证头像保存后端
+            // 人脸库注册人脸、身份证md5
+            // 修改的时候去人脸库搜索,搜索不到不允许修改
+            // 修改成功替换原始人脸库照片
+            // 首次修改搜索身份证
+            // 后端没入库,人脸库相应删除
+            // ocr失败身份证原版入库,ocr成功人脸入库
+            // showConfirm('人像与身份证不符,请重新上传')
+
+            // this.baseFormData.lzzt = 1
+            // this.baseFormData.lrSpyj = ''
+            this.baseFormData.lzzt = 0
+            this.baseFormData.lrSpyj = ''
+            this.show = true
+          }
+          // this.baseFormData.prelrZjz = this.zjcaijianSrc
+
+        } else {
+          showConfirm(res.data.error_msg)
+          this.faceBase64 = ''
+        }
+      },
+      callbackToken(e) {
+        this.token = e
+      },
+      callbackIdcard(words) {
+        uni.hideLoading()
+        if (!this.cardType) {
+          this.cardType = uni.getStorageSync("cardType")
+        }
+        if (this.cardType == 'front') {
+          if (!words) {
+            showConfirm('请上传正确的身份证人像面')
+            return
+          }
+          if (words.image_status == "other_type_card") {
+            showConfirm('请上传正确的身份证人像面')
+            return
+          }
+
+          let id = words.words_result['公民身份号码'].words
+          let csrq = words.words_result['出生'].words
+          let sex = words.words_result['性别'].words
+          let zz = words.words_result['住址'].words
+          let info = idCardNoUtil.getIdCardInfo(id)
+          if (!idCardNoUtil.checkIdCardNo(id)) {
+            showConfirm('身份证号识别有误,请重新上传')
+            return
+          }
+          if (info.birthday != csrq) {
+            showConfirm('身份证出生日期识别有误,请重新上传')
+            return
+          }
+          if (info.gender != sex) {
+            showConfirm('身份证性别识别有误,请重新上传')
+            return
+          }
+          if (words.image_status == "reversed_side") {
+            showConfirm('请上传身份证人像面')
+            return
+          }
+          if (words.risk_type != "normal") {
+            // normal-正常身份证;copy-复印件;temporary-临时身份证;screen-翻拍;unknown-其他未知情况
+            showConfirm('请上传正确的身份证人像面')
+            return
+          }
+          // todo 根据身份证号查询此人信息是否可修改。this.isCheck = true
+
+
+
+          this.frontBase64 = words.card_image
+          this.zjcaijianSrc = 'data:image/jpeg;base64,' + words.card_image
+          this.disabled = false
+
+          // this.baseFormData.lrXb = getDictInfo(this.dicts.C0007, words.words_result['性别'].words)[0].value
+          // this.baseFormData.lrMz = getDictInfo(this.dicts.C0009, words.words_result['民族'].words)[0].value
+
+          this.baseFormData.lrXb = sex
+          this.baseFormData.lrMz = words.words_result['民族'].words
+
+
+          this.idcardFace = words.photo
+          this.idcardFaceUrl = base64ToUrl(words.photo);
+          this.baseFormData.lrZjhm = id
+          this.baseFormData.lrCsrq = csrq
+          this.idcardMD5 = CryptoJS.MD5(this.baseFormData.lrZjhm).toString()
+          this.baseFormData.lrXm = words.words_result['姓名'].words
+          this.baseFormData.lrHjbcxx = zz
+          this.ocrXm = words.words_result['姓名'].words
+
+
+
+          if (this.userInfo.userType != '07') {
+            GetLrByZjhm({
+              lrJmzjhm: this.idcardMD5
+            }).then(res => {
+              if (res.data) this.baseFormData = decryptData_ECB(res.data, ["lrZjhm", "lrXm",
+      					"lrHjbcxx",
+      					"lrXjdzBcxx",
+      					"lrCydh", "lrPoxm", "lrPoZjmh", "jhrXm", "jhrSjhm", "zlrXm", "zlrDh",
+      					"cjzh",
+      					"yhzh", "khmc", "jhrxm", "jhrlxdh"
+      				], [2, 1, 4, 4, 3, 1, 2, 1, 2, 1, 3, 5, 5, 5]);
+
+
+              if (this.baseFormData.lrTx) this.src = config.baseUrl + this.baseFormData.lrTx
+              if (this.baseFormData.lrHjdz) {
+                this.jiedaoData.forEach(e => {
+                  if (e.children.length > 0) {
+                    e.children.forEach(ee => {
+                      if (ee) {
+                        if (ee.code == this.baseFormData.lrHjdz) {
+                          this.shequValue = ee
+                          this.jiedaoValue = e
+                          this.diqu = this.jiedaoValue
+                            .label +
+                            '/' + this.shequValue.label
+                        }
+                      } else {
+                        if (e.code == this.baseFormData.lrHjdz) {
+                          this.jiedaoValue = e
+                          this.diqu = this.jiedaoValue.label
+                        }
+                      }
+
+                    })
+                  }
+                })
+              } else {
+                // 地区回显
+                this.getAddressList()
+              }
+              if (res.data && res.data.sfzzpb) this.zjcaijianSrcFan = res.data.sfzzpb
+              if (res.data && res.data.tkzm) this.tkzmList = [res.data.tkzm]
+              if (res.data && res.data.dbzm) this.dbzmList = [res.data.dbzm]
+              if (res.data && res.data.zczm) this.zczmList = [res.data.zczm]
+              if (res.data) this.updateFlag = true
+
+            })
+          }
+
+          // if (id) {
+          // 	GetLrByZjhm({
+          // 		lrJmzjhm: this.idcardMD5
+          // 	}).then(res => {
+          // 		if (res.data) {
+          // 			showConfirm('该信息已存在,请登录').then(res => {
+          // 				if (res.confirm == true) {
+          // 					uni.reLaunch({
+          // 						url: '/pages/login/index'
+          // 					})
+          // 				}
+          // 			})
+          // 		} else {
+          // 			this.disabled = false
+          // 		}
+          // 	})
+          // }
+        } else if (this.cardType == 'back') {
+          if (!words) {
+            showConfirm('请上传正确的身份证国徽面')
+            return
+          }
+          if (words.image_status == "other_type_card") {
+            showConfirm('请上传正确的身份证国徽面')
+            return
+          }
+          if (words.risk_type != "normal") {
+            // normal-正常身份证;copy-复印件;temporary-临时身份证;screen-翻拍;unknown-其他未知情况
+            showConfirm('请上传正确的身份证国徽面')
+            return
+          }
+          // words.words_result['失效日期'].words
+          // words.words_result['签发日期'].words
+          // words.words_result['签发机关'].words
+          if (words && words.words_result) {
+            this.baseFormData.sfzqfjg = words.words_result['签发机关'].words
+            this.baseFormData.sfzyxqxs = words.words_result['签发日期'].words
+            this.baseFormData.sfzyxqxz = words.words_result['失效日期'].words
+            this.backBase64 = words.card_image
+            this.zjcaijianSrcFan = 'data:image/jpeg;base64,' + words.card_image
+          }
+
+        }
+      },
+
       paizhao(type) {
         this.type = type
         if (this.type == 'back' && !this.ocrXm) {
@@ -527,6 +774,14 @@
     margin-top: 5px !important;
   }
 
+  .readonly {
+    background-color: #f7f6f6;
+
+    ::v-deep .placeholder {
+      color: #d5d5d5;
+    }
+  }
+
 
 
   .content {