From 50efd60096b91c9038ac5ca56a432f89337bec62 Mon Sep 17 00:00:00 2001 From: mk <2403457699@qq.com> Date: Thu, 29 May 2025 18:50:09 +0800 Subject: [PATCH] =?UTF-8?q?OCR=E8=BA=AB=E4=BB=BD=E8=AF=81=E8=AF=86?= =?UTF-8?q?=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 8 +- images/back.png | Bin 0 -> 364 bytes ocr.js | 36 +++ pages/index/index.js | 6 + pages/index/index.wxml | 4 +- project.config.json | 2 +- project.private.config.json | 9 +- subpages/OCRCard/image/ScanCode_Cam@3x.png | Bin 0 -> 6928 bytes subpages/OCRCard/image/ScanCode_Close@3x.png | Bin 0 -> 1254 bytes subpages/OCRCard/image/ScanCode_Flash@3x.png | Bin 0 -> 1037 bytes .../OCRCard/image/ScanCode_FlashClose@3x.png | Bin 0 -> 1163 bytes subpages/OCRCard/image/ScanCode_Frame.png | Bin 0 -> 233 bytes subpages/OCRCard/image/ScanCode_Pic@3x.png | Bin 0 -> 1670 bytes subpages/OCRCard/pages/OCR/OCR.js | 212 +++++++++++++++++ subpages/OCRCard/pages/OCR/OCR.json | 3 + subpages/OCRCard/pages/OCR/OCR.wxml | 113 +++++++++ subpages/OCRCard/pages/OCR/OCR.wxss | 214 ++++++++++++++++++ subpages/OCRCard/pages/index/index.json | 1 - subpages/OCRCard/pages/index/index.wxml | 4 +- 19 files changed, 599 insertions(+), 13 deletions(-) create mode 100644 images/back.png create mode 100644 ocr.js create mode 100644 subpages/OCRCard/image/ScanCode_Cam@3x.png create mode 100644 subpages/OCRCard/image/ScanCode_Close@3x.png create mode 100644 subpages/OCRCard/image/ScanCode_Flash@3x.png create mode 100644 subpages/OCRCard/image/ScanCode_FlashClose@3x.png create mode 100644 subpages/OCRCard/image/ScanCode_Frame.png create mode 100644 subpages/OCRCard/image/ScanCode_Pic@3x.png create mode 100644 subpages/OCRCard/pages/OCR/OCR.js create mode 100644 subpages/OCRCard/pages/OCR/OCR.json create mode 100644 subpages/OCRCard/pages/OCR/OCR.wxml create mode 100644 subpages/OCRCard/pages/OCR/OCR.wxss diff --git a/app.json b/app.json index f204f24..51c7a01 100644 --- a/app.json +++ b/app.json @@ -14,8 +14,8 @@ "pages": [ "pages/index/index", "pages/confirm/confirm", - "pages/deposit/deposit" - + "pages/deposit/deposit", + "pages/OCR/OCR" ] }, { @@ -86,9 +86,5 @@ "chooseLocation" ], "plugins": { - "ocr-plugin": { - "version": "3.1.3", - "provider": "wx4418e3e031e551be" - } } } \ No newline at end of file diff --git a/images/back.png b/images/back.png new file mode 100644 index 0000000000000000000000000000000000000000..42722cac3f04a35b33ddeff160d553aa4c1091ea GIT binary patch literal 364 zcmV-y0h9iTP)Px$CP_p=R9Hvd*TD^fKoAAcS!e_gl5If4Q98j&z)CDdjszP3JV+(1t|B333B%3+ zQLjq=dzXa`*B6jRKn*7W4B@qKoFk_8{#dLU;0m{DfHQnDfIEB= zU?5x{HPpr%I*zFCfGHfaWX5&?ssY;#hY7a>D3uD=)yIug{RfB|f$#6*=LeJSt{4$0 zfDWDufd&{60DAk8PQoNW4-x6#{B|TH#AEZ4QNx%bBxXmGbNR)v90000< KMNUMnLSTZ5p^pFn literal 0 HcmV?d00001 diff --git a/ocr.js b/ocr.js new file mode 100644 index 0000000..0022360 --- /dev/null +++ b/ocr.js @@ -0,0 +1,36 @@ + + +export const ocrAction = async (filePath) => { + wx.showLoading({ + title: '正在处理', + }) + + // TODO 将 tempFilePath 上传到 CDN 得到 url + let img_url = 'http://192.168.1.144:9000/mzjzf/身份反.jpg' + // 实现上传到 cdn 的代码, 将得到的 url 写到 img_url 中 + + // 调用服务市场接口 https://fuwu.weixin.qq.com/service/detail/000ce4cec24ca026d37900ed551415 + try { + await wx.serviceMarket.invokeService({ + api: 'OcrAllInOne', + service: 'wx79ac3de8be320b71', + data: { + img_url, + data_type: 3, + ocr_type: 1, // 详细见文档 + } + }) + wx.hideLoading() + } catch (e) { + wx.hideLoading() + throw e + } +} + +export const takePhoto = async (tempFilePath) => { + if(tempFilePath){ + return ocrAction(tempFilePath) + } + const filePath = await chooseImage() + return ocrAction(filePath) +} diff --git a/pages/index/index.js b/pages/index/index.js index 04ab3b4..46c2623 100644 --- a/pages/index/index.js +++ b/pages/index/index.js @@ -20,6 +20,7 @@ Page({ }, { name: "入住办理", + url:'/subpages/OCRCard/pages/index/index' }, { name: "退房确认", @@ -49,6 +50,11 @@ Page({ * 生命周期函数--监听页面加载 */ onLoad(options) { + wx.login({ + success: (res) => { + console.log('微信CODE::::',res); + }, + }) this.setData({ statusHeight: app.globalData.deviceInfo.statusHeight, }); diff --git a/pages/index/index.wxml b/pages/index/index.wxml index aa9c225..08a1e3c 100644 --- a/pages/index/index.wxml +++ b/pages/index/index.wxml @@ -1,7 +1,7 @@ - + diff --git a/project.config.json b/project.config.json index b3405bc..a1914da 100644 --- a/project.config.json +++ b/project.config.json @@ -20,7 +20,7 @@ "ignore": [], "include": [] }, - "appid": "wxaf87b420b87e2d79", + "appid": "wx00dbd91a119d3b91", "editorSetting": { "tabIndent": "insertSpaces", "tabSize": 4 diff --git a/project.private.config.json b/project.private.config.json index 44cd6ff..e65d7b6 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -1,5 +1,5 @@ { - "libVersion": "development", + "libVersion": "3.8.6", "projectname": "epmet-apartment-mp", "setting": { "urlCheck": false, @@ -14,6 +14,13 @@ "condition": { "miniprogram": { "list": [ + { + "name": "OCR", + "pathName": "subpages/OCRCard/pages/OCR/OCR", + "query": "", + "scene": null, + "launchMode": "default" + }, { "name": "subpages/index/checkOutConfirm/index/index", "pathName": "subpages/index/checkOutConfirm/index/index", diff --git a/subpages/OCRCard/image/ScanCode_Cam@3x.png b/subpages/OCRCard/image/ScanCode_Cam@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7778f47948ba03ad169a482e8c048e0bee4a0a GIT binary patch literal 6928 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 Iol`;+0D0mqvH$=8 literal 0 HcmV?d00001 diff --git a/subpages/OCRCard/image/ScanCode_Flash@3x.png b/subpages/OCRCard/image/ScanCode_Flash@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..19a7c23badec1b0bb96d3f6535ba3f3a700ff043 GIT binary patch literal 1037 zcmV+o1oHcdP)Px&$4Nv%RCodHn$L?)Q5eVPW#q@87$uppBSo?CW3aJ8HZ~X`8{#iOvl7u*D~nlJ zu`qsy!b%o23#Ke6Nm6JMqLCkw*XNm;TW4SP)?4a8UM4xO%;~1hDomi=O^tBOG~*I78q+Wff60J-BV#HV~BKNA0jdn=R=m3 zb1N(`WXF0MgY%E;MQ$mvkS!2o$GRGWBbP%KmUAy8AWkK~5m%pkY7A!#ggqKK;$CTZ zIk&&CJSOO(FUbj+B%ip#`K|WjE#Aawf+|u~#?*>i>HXJ=Fn)BxRlSohq4B4@+ zX`n>zFErW{rq|zv@Y4~6l=H>MQ>6jIvvW7Au5S=u%a2q{&_mc1~eQh&C0;K+`3BjssH>gvu2(*0qmKa)ft#W(D} z>Wm72urCFKuIog`@YaVlY_5R%9^ya1rsrJeI^*BuoD(1Z700vsQ+M57*=*MRLv%_JUdoV9ZB=w@TFc2vRW_ycbX$NMfCalABMQJU8z#;}4jIV@QkHFg%GXa=ye~F@AyB zEGirgu>&~(ePZm=3d=E@8e%)K9~lA3hOp6W1{IHn;J%D-y55LK`Cgz3Mh=}MO4G`7+jEgxo)~|d_gkM%k zB(&v!lb^qj7U9^R1SpYfl*a1H-(_0~B0jA=BBhIMw$`qET*S-o5kF(Pqnf3QvdBW^ zh>i^Yvt{K`$#noAUnaiL02-A3N+w=bQUKVZf%6Ez?$>5zrPum(fN(bfkYA+>-E9EO za!fvOs)t{t3mqKsL*=|mhPIS0Hl@w+rVkMFuX z9U#C=!(?msw{)R{6ZwHNGirx(AP@)y0)apv5C{YU6(H~*Q`QU1(1;-Y00000NkvXX Hu0mjfHZIp3 literal 0 HcmV?d00001 diff --git a/subpages/OCRCard/image/ScanCode_FlashClose@3x.png b/subpages/OCRCard/image/ScanCode_FlashClose@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f2f0c706516054f87adfa8d7e95fd4dfe9d6e719 GIT binary patch literal 1163 zcmV;61a$j}P)Px(MM*?KRCodHn>%O}K^Vt#F~$U97x57hv=A+#@zKR-BZ7s34}72^*l44z5)9ZW zK`bmq#DF4VAy%a}1l^?CsuubGPe$@ONhCX1>QS zx3{}MCB-(}sQMYEo`0ql~NNffz*Nm5lZ;~vaXGrV^Qh|iu73d=}Hk?QS zE}W3@DI|YUvBV+avjx2n=ayY`QCng$NL&pPzVBOLOm|~q$-8o-0STX%4H2syb5&E~ zagv0DuY<^3u`E8t>xn1s(qR&i@UaE`w5eGAoi6K9iA6E7Ka*Iy5`D6O*xd;Z7O5od z+9`!ZhQu1VVvV368*p8RYCNip1c~_%g2Tip6l*2GtX-WdO?bJ>3}Jih{0KWjb`u)iQr4u_@9EX+LA*Hidw`yt_J_Bw6bq z6zYZaCIE^({Ib@0JB=R$QlHZV>mgV~NSo^+XD2xTro4|_A*2sZ603(G0NIA*F`~=l zQvsx#W^TQ-1&u@iu?oMVNZJXsyHF^+rfm>NGB>;{Y z)`lcEna31MjPIJnj-aq-ECHnn=~Da(6jxI8b|ha9S85uNZYh=+-!()!(C13YSo4yE z^c25M@vBf=Nn%4*(NVieK$7RXrHUn1=bGeRMWy1IUkxPL9avpm1q-jP`bLoin+dTF zh50HjkjgYScH`!Cd@gh|X{Jrn=`lB;W-zlYP|l-DZzlgTcW-84cnhQ0X7m+Rdb*wU z`pEP#U```rVUVt78irqSknw)dhe1;L>5X4*H6H`cF7wv$v^gaC>j34k2aJ9Ae?x-A zS~O!5@#(*1O!kiEjJ|iPB)g{@#oq7%Vh_pI#SR0as68yR~?r#*C0!V`$ugX#~C)JbA;I*G}DFIb;&?df(0kTpmy z<+63rlkRF1vIj~(lC6v53hvYG5-3gRJL*k$B}&-?Mt)GWN6CHeHYbo1$O+^GasoMl doIo`M{sB8qz8hH;tWW>|002ovPDHLkV1o6i7FqxR literal 0 HcmV?d00001 diff --git a/subpages/OCRCard/image/ScanCode_Frame.png b/subpages/OCRCard/image/ScanCode_Frame.png new file mode 100644 index 0000000000000000000000000000000000000000..ec72874374367d6bee5b0606e0b7ef7620c4b206 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}i#=T&Lo!(3 zPTI)JtSEBSN#y0RU7>kf)=b(M6uTruZ=!~dO7LE$iiH1#HS2zF{8*Lu=iC3wzZ-H5 zm?a}rE^z2F#n}Cuwew;1zT;=?lKqua0@BmjJPx0bG+43On0ZO!6CQ~xH)k?lGALr> zdG+QDL#Bi!Gh1m{T7yZ?9L8oVYhwo~w{s1SbLUDb@G7StSa9wf&xE###tBHqd}f!j WV@b+NdSVK6E`z75pUXO@geCyGR8|E5 literal 0 HcmV?d00001 diff --git a/subpages/OCRCard/image/ScanCode_Pic@3x.png b/subpages/OCRCard/image/ScanCode_Pic@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5cf53b71179c7a1e45bc00fc9e7b9f88a17e94c1 GIT binary patch literal 1670 zcmb7_YdF&j0LK6O&xS3UvXaXEw3tYRX{BM&+%L^FS&ioM$dF4er;S`%rf~?llvB1u zh|tiiCxsFnrNpB43^|dxg)pb{Jm-7Q`S8BK5AXASecvmt&UQ)&bp!waN~9A+_n)Nv zD+TyZ7Z=9iegYEhZf6bD^zNDj062j}v^p6NnJyWwB9m30e+(sY{T+4k46(T^Rp-rP z4n(i|TN(*>=TQqN647!NI5Jrr~Xe}&x9ZB zS0lwS<2MRSzxzhdBxh5Faqn(Wvu9uN1rNR@&K#s=7wJ#l3-rXoe930?(9pjF z#b(Tx!g>P>J9>{s)4Ee#`9SEj!z9NL5F0ZCG2Uf54YCl#6t^*5XX@s7jCyowQ|$`M zdFv?8QPiAr{x73YGJ+nI_vA1YaSHu4Phh~iWz&I1nvzz-NM=}lx^h_>Z03x!)jT46 z-QYd&KK6@GcGjlLKL*j*#<6Ed@#wJi9jbL;Ac|}g0(*ToU;7<`V|7xg0!_H>neL4x zz}-yqJOQ@vj+)d|l7&}={ zarTH5hnrHiUPTSc*`CEzx?7CjlbtxwjjRk~s{;Lh2>p!sy!8VDYVOwEOkljyNa*_A zXitm!V@q((sWs2vMTnOeI>CB7WX$b=b_C(BVqL%PpjDFm5!qE~IA+PvWi%^RsT#;M z-+m;;*O*B?dapaqz!+Y@cq}wkxddh-KW6)UJeTV45dhV~DYuPpK@aIn>HBN@9D^o# zd@-(Z?tfIX6L0S@ULk<%O$3PMdRy)Rl4?-fByEmFe~4E}au6m8X;B#$GKvpQnMJGL z2ltnU34j08aEU&mv6U@@eYzMB)w!hhQt}>4rK+xe@|7=x;)R}dD$C9V&mN8(esJ3Z z*b{BcIXXZ~jC`?T8Pd@xylt7AJp;Rr%q8XkbJyf+W0ytGuHoL<_9yyxD76EQXSL&1 zE<2W87^@mK(48=o1~3-<*D&`K@J}T74;xdm9YQs6(C)E-AL~3ukKH9BTvjFIP}Br9~yIZ;=?0%g!>Bx=wQi zLBO4MgmI*K3RFnbZf`sA0VU=|;9!(bc;=M05PrNbry#pYn$Ub z1C#aRk8Qz51UW>&rEDla==+DSxWx9%Gs*j56fJ&yTJO{P&Le<*MzB{Fw;*d#OQC40 zaw1g|ghV~8zV_;h3@g0JT$^4VE4Ty2gEERRmD%03;x%$wS){hK4K?Ip!&A9 zD3*vfu+kzCvpa^WWygpB#j6@6=JYWn^nh%P5X&)Wx_T=bIoVAX_sP|lS`M@4G0nQ9 z8wk20bUJ)_H34PMuAQc7M78Ab-WNK()^C@26-yu&$!^_mp^p^NwmC~Ci@&obm3%{6e$!ApOxBDWKs7sEeE*V;{p-$+4+!R z8(w_wdieD@O^Z=-g4j`+W5TfLm3PVGjn0d_Xz|{@gkHd^>gj0j;{KOu+}e5CboT;D zm}H*vx|E|DJOs^;RhyeZ%!cvpXHl)(9|SHDrzgMDMA^Ez&u`N2BrQ}jDrevPBnCIk z=d_sVB3=D55poLT7QB5$zQ$t@#do9CpeN(p;>iXd$lF}gVhSwS)5WwHP1xttp!kd6 zw`0v?vqQ4*pctQlji!2gh#+XKp{nnR4ib^nxuN7w4leMlDoJU|ukUdqLsl>&ZdFlo zCBV}O!g|`!m#&8Pd74?Ishu$5fs>O4q;x};4ACoQu4Q!@)-Zw}!m=tluD$WD{lzr@ ex86P5U^4k>4VE`w^Bn8vu>hpw&cqsPO3FV4WC7v; literal 0 HcmV?d00001 diff --git a/subpages/OCRCard/pages/OCR/OCR.js b/subpages/OCRCard/pages/OCR/OCR.js new file mode 100644 index 0000000..79b81de --- /dev/null +++ b/subpages/OCRCard/pages/OCR/OCR.js @@ -0,0 +1,212 @@ +import { + ocrAction, + } from '../../../../ocr.js' + + const chooseImage = async () => { + return new Promise((resolve, reject) => { + wx.chooseMedia({ + count: 1, + sizeType: ['original','compressed'], + sourceType: ['album'], + mediaType:['image'], + success: (res) => { + console.log(res); + resolve(res.tempFiles[0].tempFilePath) + }, + fail: (res) => { + reject(new Error(`选择图片失败: ${res.errMsg}`)) + } + }) + }) + } + + Page({ + data: { + title: '身份证识别', + skipphotoStatus: "0", + flash: true, + bottom: 125, + windowWidth: 300, + touchPadding: 36, + windowHeight: 200, + isShowImage: true, + showCamera: false, + path: '', + cameraAuth: true, + top: 386, + left: 24, + width: 666, + height: 464 + }, + onLoad(opt) { + wx.setNavigationBarTitle({ + title: this.data.title + }) + this.initData() + }, + showTool() { + this.setData({ + showCamera: true + }) + }, + error(e) { + console.log('camera加载失败') + this.setData({ + cameraAuth: false + }) + }, + handleSetting() { + // 对用户的设置进行判断,如果没有授权,即使用户返回到保存页面,显示的也是“去授权”按钮;同意授权之后才显示保存按钮 + if (!e.detail.authSetting['scope.camera']) { + wx.showModal({ + title: '', + content: '若不打开授权,则无法拍照!', + showCancel: false + }) + } else { + this.setData({ + cameraAuth: true + }) + } + }, + initData() { + wx.getSystemInfo({ + success: res => { + const ios = !!(res.system.toLowerCase().search('ios') + 1) + const model = res.model >= 'iPhone X' + let rate = res.windowHeight < 800 ? (res.windowHeight - 110) / 698 : 1 + let bottom = this.data.bottom * rate + let globalStatusBarHeight = res.statusBarHeight ? res.statusBarHeight * 2 : 0 + let top = (this.data.top + globalStatusBarHeight) + let temp = ((top - globalStatusBarHeight) * rate - 88 - 48 - 60) + if (temp < 20) { + top = (60 + 20 + 88 + 48) / rate + globalStatusBarHeight + bottom = bottom - (20 - temp) * rate + } + this.setData({ + globalStatusBarHeight: globalStatusBarHeight, + globalIos: true, + bottom: bottom, + touchPadding: this.data.touchPadding * rate, + top: top * rate, + height: (this.data.height * rate / 4) * 4, + windowWidth: res.windowWidth, + windowHeight: res.windowHeight, + }) + }, + }) + }, + + //改变是是否闪光 + changeFlash() { + this.setData({ + flash: !this.data.flash + }) + }, + goPre() { + wx.navigateBack({ + delta: 1 + }) + }, + async chooseImg(e) { + chooseImage() + .then(ocrAction) + .catch(e => { + console.error(e) + console.error('因为没有真的上传图片,所以走到出错的逻辑里了') + wx.showToast({ + title: '出错啦...', + icon: 'error' + }) + }) + }, + takePhotoAction(e) { + this.setData({ + isShowImage: true, + }) + const ctx = wx.createCameraContext() + ctx.takePhoto({ + quality: 'high', //高质量 + success: (res) => { + this.loadTempImagePath(res.tempImagePath); + }, + }) + }, + cancel() { + wx.navigateBack() + if (this._cb) { + this._cb(this._callbackId, 'cancel') + } + }, + loadTempImagePath(filePath) { + let that = this + let { + windowWidth, + windowHeight + } = this.data + let rate = windowWidth / 375 + let image_x = (that.data.left / 2) * rate; + let image_y = ((that.data.top / 2)) * rate; + let image_width = (375 - 2 * that.data.left / 2) * rate; + let image_height = (that.data.height / 2) * rate; + // (image_height < 700) && (image_height > 380) && (image_height = 380) + wx.getImageInfo({ + src: filePath, + success(res) { + that.canvas = wx.createCanvasContext("image-canvas", that) + //过渡页面中,图片的路径座标和大小 + that.canvas.drawImage(filePath, 0, 0, that.data.windowWidth, that.data.windowHeight) + wx.showLoading({ + title: '数据处理中...', + icon: 'loading', + duration: 10000 + }) + // 这里有一些很神奇的操作,总结就是MD拍出来的照片规格居然不是统一的过渡页面中,对裁剪框的设定 + that.canvas.setStrokeStyle('rgba(0, 0, 0, 0)') + that.canvas.strokeRect(image_x, image_y, image_width, image_height) + that.canvas.draw() + setTimeout(function () { + wx.canvasToTempFilePath({ //裁剪对参数 + canvasId: "image-canvas", + x: image_x, //画布x轴起点 + y: image_y, //画布y轴起点 + width: image_width, //画布宽度 + height: image_height, //画布高度 + destWidth: image_width, //输出图片宽度 + destHeight: image_height, //输出图片高度 + success: function (res) { + that.setData({ + image: res.tempFilePath, + isShowImage: false + }) + wx.hideLoading() + ocrAction(res.tempFilePath) + .then((result) => { + that.success(result) + }) + .catch((e) => { + that.setData({ + isShowImage: true + }) + console.error('因为没有真的上传图片,所以走到出错的逻辑里了') + wx.showToast({ + title: '出错啦...', + icon: 'loading' + }) + }) + }, + fail: function (e) { + wx.showToast({ + title: '出错啦...', + icon: 'loading' + }) + } + }); + }, 1000); + } + }) + }, + success(e) { + console.error('success', e) + }, + }) \ No newline at end of file diff --git a/subpages/OCRCard/pages/OCR/OCR.json b/subpages/OCRCard/pages/OCR/OCR.json new file mode 100644 index 0000000..34bbf75 --- /dev/null +++ b/subpages/OCRCard/pages/OCR/OCR.json @@ -0,0 +1,3 @@ +{ + "navigationStyle": "custom" + } \ No newline at end of file diff --git a/subpages/OCRCard/pages/OCR/OCR.wxml b/subpages/OCRCard/pages/OCR/OCR.wxml new file mode 100644 index 0000000..38190ae --- /dev/null +++ b/subpages/OCRCard/pages/OCR/OCR.wxml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + {{title}} + + + + + + + + + + + + + + + + 暂无权限访问摄像头,请去小程序设置中授权打开摄像头 + + + + + + 拍摄要求:清晰完整,避免缺边、模糊、反光。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{title}} + + + 暂无权限访问摄像头,请点击下方按钮设置权限 + + + + + + + + + + + + + + + + + + + + diff --git a/subpages/OCRCard/pages/OCR/OCR.wxss b/subpages/OCRCard/pages/OCR/OCR.wxss new file mode 100644 index 0000000..e6a96bb --- /dev/null +++ b/subpages/OCRCard/pages/OCR/OCR.wxss @@ -0,0 +1,214 @@ +.bg { + display: flex; + /* position: fixed; */ + top: 0; + height: 100vh; + } + + .bg-cover { + background-color: #000; + opacity: 0.3; + } + + .title { + width: 750rpx; + height: 88rpx; + line-height: 70rpx; + color: #fff; + font-size: 34rpx; + text-align: center; + } + + .flash { + width: 24px; + height: 24px; + margin-left: 24px; + } + + /** flex布局 **/ + .main-container { + display: flex; + } + + .footer { + display: flex; + flex-direction: column; + align-items: flex-end; + flex: 1; + } + + .container-center { + display: flex; + flex-wrap: wrap; + align-content: space-between; + flex: 1; + } + + .no-authwording { + display: flex; + flex-wrap: wrap; + align-content: center; + flex: 1; + } + + .container-left, + .container-right { + flex: 0 0 12px; + } + + .container-left { + order: -1; + } + + .column { + flex-basis: 100%; + display: flex; + justify-content: space-between; + } + + .bottom-column { + flex-basis: 100%; + display: flex; + align-items: flex-end; + justify-content: space-between; + } + + .close { + justify-content: flex-start; + } + + .pic { + justify-content: flex-end; + } + + .tool-icon { + align-items: center; + } + + .cam { + justify-content: center; + } + + .frame { + display: inline-block; + width: 32rpx; + height: 32rpx; + } + + .right-frame { + float: right; + } + + .bottom-tool { + /* width: 100%; */ + padding: 0rpx 42rpx; + position: fixed; + bottom: 225rpx; + display: flex; + flex-direction: row; + margin-top: 6rpx; + justify-content: center; + align-items: center; + } + + .tool-container { + flex-basis: 100%; + display: flex; + justify-content: flex-end; + flex-direction: column; + align-items: center; + width: 750rpx; + height: 130px; + line-height: 74px; + } + + .img-container { + display: flex; + justify-content: flex-end; + flex-direction: row; + align-items: center; + width: 750rpx; + height: 74px; + line-height: 74px; + } + + .frame-wording { + justify-content: flex-start; + width: 750rpx; + padding-top: 15px; + text-align: center; + opacity: 0.5; + font-family: PingFangSC-Regular; + height: 20px; + line-height: 20px; + font-size: 14px; + color: #FFFFFF; + } + + .tool-blank { + width: 750rpx; + } + + .cam-container { + width: 538rpx; + text-align: center; + } + + .close { + padding-left: 66px; + width: 32px; + height: 32px; + } + + .cam { + margin: 0 auto; + width: 74px; + height: 74px; + } + + .pic { + padding-right: 66px; + width: 32px; + height: 32px; + } + + .touch-wording { + width: 750rpx; + text-align: center; + font-size: 14px; + /* padding-bottom: 36px; */ + color: rgba(255, 255, 255, 0.90); + } + + .show-img { + position: fixed; + top: 0; + background-color: #000; + width: 750rpx; + height: 750vh; + } + + .photo { + width: 100%; + height: 100%; + } + + .btn-click:active { + opacity: 0.5; + } + + .choose-img-container { + position: fixed; + top: 0; + background-color: #000; + width: 750rpx; + height: 750vh; + line-height: 100%; + } + + .choose-img { + margin: auto 0; + width: 750rpx; + height: auto; + vertical-align: middle; + } \ No newline at end of file diff --git a/subpages/OCRCard/pages/index/index.json b/subpages/OCRCard/pages/index/index.json index 626db24..1b93185 100644 --- a/subpages/OCRCard/pages/index/index.json +++ b/subpages/OCRCard/pages/index/index.json @@ -1,6 +1,5 @@ { "usingComponents": { - "ocr-navigator": "plugin://ocr-plugin/ocr-navigator" }, "navigationStyle": "custom" diff --git a/subpages/OCRCard/pages/index/index.wxml b/subpages/OCRCard/pages/index/index.wxml index df57875..48db3ed 100644 --- a/subpages/OCRCard/pages/index/index.wxml +++ b/subpages/OCRCard/pages/index/index.wxml @@ -18,7 +18,7 @@ 温馨提示:请先拍照或上传身份证照片进行身份识别。 - + - + \ No newline at end of file