diff --git a/src/api/faceRecognition/index.js b/src/api/faceRecognition/index.js index 89b2e93..d469555 100644 --- a/src/api/faceRecognition/index.js +++ b/src/api/faceRecognition/index.js @@ -67,6 +67,22 @@ export function FetchSnapshotOperation(params) { }) } +// 自助注册初始化数据 +export function FetchInitReaderCheck(params) { + return request({ + url: 'api/person/initReaderCheck' + '?' + qs.stringify(params, { indices: false }), + method: 'get' + }) +} + +// 验证人员信息 +export function FetchCheckReader(params) { + return request({ + url: 'api/person/checkReader' + '?' + qs.stringify(params, { indices: false }), + method: 'get' + }) +} + export default { add, edit, @@ -75,5 +91,7 @@ export default { FetchChangePersonInfo, FetchFindPersonFace, FetchBatchSavePersonInfos, - FetchSnapshotOperation + FetchSnapshotOperation, + FetchInitReaderCheck, + FetchCheckReader } diff --git a/src/assets/images/faceH5/btnok.png b/src/assets/images/faceH5/btnok.png new file mode 100644 index 0000000..fd3eb12 Binary files /dev/null and b/src/assets/images/faceH5/btnok.png differ diff --git a/src/assets/images/faceH5/img1.png b/src/assets/images/faceH5/img1.png new file mode 100644 index 0000000..b0e8907 Binary files /dev/null and b/src/assets/images/faceH5/img1.png differ diff --git a/src/assets/images/faceH5/img2.png b/src/assets/images/faceH5/img2.png new file mode 100644 index 0000000..e038931 Binary files /dev/null and b/src/assets/images/faceH5/img2.png differ diff --git a/src/assets/images/faceH5/img3.png b/src/assets/images/faceH5/img3.png new file mode 100644 index 0000000..c2aa2ca Binary files /dev/null and b/src/assets/images/faceH5/img3.png differ diff --git a/src/assets/images/faceH5/top.jpg b/src/assets/images/faceH5/top.jpg new file mode 100644 index 0000000..e4c5463 Binary files /dev/null and b/src/assets/images/faceH5/top.jpg differ diff --git a/src/assets/styles/faceMobile.scss b/src/assets/styles/faceMobile.scss new file mode 100644 index 0000000..ab0b061 --- /dev/null +++ b/src/assets/styles/faceMobile.scss @@ -0,0 +1,168 @@ +.face-mobile{ + width: 100%; + height: 100%; + background: #F4F4F4; + overflow: hidden; + // overflow-y: scroll; +} +.face-mobile-bg{ + width: 100%; + height: 220px; + text-align: center; + color: #fff; + font-size: 18px; + line-height: 40px; + position: relative; + z-index: 99; + &::after{ + content: ''; + width: 120%; + height: 220px; + position: absolute; + left: -10%; + top: 0; + background: url("~@/assets/images/faceH5/top.jpg") no-repeat center center; + background-size: cover; + border-radius: 0 0 17% 17%; + + } +} + +.face-mobile-content{ + position: relative; + width: 92%; + margin: -20px auto 0 auto; + padding: 40px 3% 40px 0; + background: #fff; + border-radius: 15px; + text-align: left; + z-index: 999; + box-shadow: 0px 3px 60px 1px rgba(0,0,0,0.08); + ::v-deep .el-form-item { + display: flex !important; + justify-content: flex-start; + align-items: center; + .el-form-item__label{ + color: #0c0e1e; + } + .el-form-item__content{ + flex: 1; + .el-input__inner{ + height: 40px; + line-height: 40px; + } + } + } +} + +.submit-btn{ + width: 200px; + height: 80px; + margin: 60px auto 0 auto; + padding-top: 20px; + color: #fff; + font-size: 16px; + background: url("~@/assets/images/faceH5/btnok.png") no-repeat center center; + background-size: 100% 100%; + text-align: center; +} + + +.face-valid{ + display: flex; + flex-direction: column; + align-items: center; + width: 92%; + margin: 20px auto; + padding: 40px 0; + text-align: center; + background: #fff; + border-radius: 15px; + box-shadow: 0px 3px 60px 1px rgba(0,0,0,0.08); + overflow: hidden; + img{ + display: block; + width: 250px; + } + P{ + color: #909399; + } +} + +.return-btn{ + width: 120px; + height: 40px; + line-height: 40px; + margin-top: 20px; + font-size: 14px; + color: #fff; + background: #0348f3; + border-radius: 50px; + border: 1px solid #0348f3; +} +.reg-btn-group{ + display: flex; + justify-content: space-around; + margin-top: 20px; + & div{ + margin: 0 10px; + } + .other-return{ + color: #0348f3; + background-color: #fff; + border: 1px solid #0348f3; + } +} + +.register-valid{ + padding: 20px 3% 10px 0; + margin: 0 auto; +} + +.photo-container { + display: flex; + justify-content: space-between; + padding: 20px 6%; +} +.photo-preview{ + position: relative; +} +.photo-preview img { + width: 150px; + height: 200px; + object-fit: cover; + border-radius: 4px; +} + + +.photo-tips{ + padding-left: 4%; + p{ + margin: 5px 0; + } + span{ + display: block; + font-size: 12px; + line-height: 18px; + color: #909399; + } +} + +.clear-img-btn{ + display: inline-block; + padding: 4px 8px; + margin-top: 2px; + font-size: 12px; + color: #fff; + background: #0348f3; + border-radius: 5px; + border: 1px solid #0348f3; +} + + + +.register-mobile{ + .submit-btn{ + margin: 20px auto 0 auto; + } +} \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index 619dc0d..7a9efbb 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -9,7 +9,7 @@ import { filterAsyncRouter } from '@/store/modules/permission' NProgress.configure({ showSpinner: false })// NProgress Configuration -const whiteList = ['/login']// no redirect whitelist +const whiteList = ['/login', '/faceRegisterH5', '/faceError', '/faceSuccess', '/faceRegistered', '/faceSelfRegister']// no redirect whitelist router.beforeEach((to, from, next) => { if (to.meta.title) { diff --git a/src/router/routers.js b/src/router/routers.js index f8f2c6f..493be39 100644 --- a/src/router/routers.js +++ b/src/router/routers.js @@ -97,6 +97,31 @@ export const constantRouterMap = [ meta: { title: '架位总览', noCache: true, activeMenu: '/check/check/dataScreening' } } ] + }, + { path: '/faceRegisterH5', + meta: { title: '人脸信息自助采集', noCache: true }, + component: (resolve) => require(['@/views/faceRegisterH5/index'], resolve), + hidden: true + }, + { path: '/faceError', + meta: { title: '人脸信息自助采集', noCache: true }, + component: (resolve) => require(['@/views/faceRegisterH5/error'], resolve), + hidden: true + }, + { path: '/faceSuccess', + meta: { title: '人脸信息自助采集', noCache: true }, + component: (resolve) => require(['@/views/faceRegisterH5/success'], resolve), + hidden: true + }, + { path: '/faceRegistered', + meta: { title: '人脸信息自助采集', noCache: true }, + component: (resolve) => require(['@/views/faceRegisterH5/registered'], resolve), + hidden: true + }, + { path: '/faceSelfRegister', + meta: { title: '人脸信息自助采集', noCache: true }, + component: (resolve) => require(['@/views/faceRegisterH5/selfRegister'], resolve), + hidden: true } ] diff --git a/src/views/faceRecognition/module/selfRegister.vue b/src/views/faceRecognition/module/selfRegister.vue index d73b4b9..9012589 100644 --- a/src/views/faceRecognition/module/selfRegister.vue +++ b/src/views/faceRecognition/module/selfRegister.vue @@ -15,6 +15,7 @@ + + + diff --git a/src/views/faceRegisterH5/index.vue b/src/views/faceRegisterH5/index.vue new file mode 100644 index 0000000..8c6ddce --- /dev/null +++ b/src/views/faceRegisterH5/index.vue @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + 下一步 + + + + + + diff --git a/src/views/faceRegisterH5/registered.vue b/src/views/faceRegisterH5/registered.vue new file mode 100644 index 0000000..e310265 --- /dev/null +++ b/src/views/faceRegisterH5/registered.vue @@ -0,0 +1,38 @@ + + + + + + 读者您好,您已注册过人脸信息! + + 返回首页 + 重新注册 + + + + + + + + + diff --git a/src/views/faceRegisterH5/selfRegister.vue b/src/views/faceRegisterH5/selfRegister.vue new file mode 100644 index 0000000..2c7db92 --- /dev/null +++ b/src/views/faceRegisterH5/selfRegister.vue @@ -0,0 +1,111 @@ + + + + + + + + + + 注意事项: + 1.请提供正面清晰照,不要佩戴眼镜,头部位于照片中央,五官无遮挡。 + 2.照片背景干净,照片中只有注册者一人 + 3.不要使用美图类软件做过修饰的照片 + 4.照片像素 > 600x600 + 删除照片 + + + + + + + + + + + + + + + + + + + + + + 提交 + + + + + + + diff --git a/src/views/faceRegisterH5/success.vue b/src/views/faceRegisterH5/success.vue new file mode 100644 index 0000000..db0f5b8 --- /dev/null +++ b/src/views/faceRegisterH5/success.vue @@ -0,0 +1,31 @@ + + + + + 人脸注册成功! + 返回首页 + + + + + + + +
读者您好,您已注册过人脸信息!
注意事项:
人脸注册成功!