| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292 |
- <template>
- <view class="container" :style="{'height':'100vh'}">
- <!-- 提示内容 -->
- <view class="h-title">
- <text>*请输选择1张服务对象人脸影像</text>
- </view>
- <view class="h-upload-wrap">
- <view class="h-item-row">
- <view @click="uploadImg()" class="h-item">
- <view v-if="!facePhotoUrl" class="h-content">
- <image src="/static/me/u01.png" mode="aspectFill"></image>
- <view class="h-text">
- <text>添加人脸影像</text>
- </view>
- </view>
- <view v-else class="h-upload-img">
- <image mode="aspectFit" class="imgBox" :src="facePhotoUrl"></image>
- </view>
- </view>
- </view>
- </view>
- <!-- 保存备案信息 -->
- <view class="uploadBox" @click="verifyFace()">
- <text>下一步</text>
- </view>
- <view class="btnTitle flex-row">
- <u-icon v-if="selectIcon" name="checkmark-circle-fill" color="#FFE52C" size="18" @click="selectChange"></u-icon>
- <u-icon v-else name="/static/order/ud9.png" color="#FFE52C" size="18" @click="selectChange"></u-icon>
- <text :style="{'margin-left':'10rpx'}">请阅读并同意</text>
- <text :style="{'color':'red'}" @click="goTermsOfService">《人脸识别服务协议》</text>
- </view>
- </view>
- </template>
- <script>
- export default {
- components: {
- },
- data() {
- return {
- selectIcon:false,
- ossId:'',
- facePhotoUrl:'',
- height:'',
- reqParm: {
- auth: true,
- facePath: '',
- businessId: ''
- },
- userInfo: {},
- }
- },
- onReady() {
- },
- onLoad(option) {
- },
- methods: {
- goTermsOfService(){
- uni.navigateTo({
- url:'/myPages/TermsOfService/index?name='+'人脸识别服务协议'+'&type=' + 6
- })
- },
- selectChange(){
- this.selectIcon = !this.selectIcon
- },
- // 连接已上传的图片地址
- verifyImgUpload(){
- if(!this.ossId){
- uni.showToast({
- title: "请上传人脸照片"
- })
- return false;
- }
- return true;
- },
- // 验证人象
- verifyFace(){
- let that = this;
- if(!this.selectIcon){
- uni.$u.toast('请阅读并同意《人脸识别服务协议》')
- return;
- }
- // 验证图片是否全上传
- if(!that.verifyImgUpload()){
- return;
- }
- uni.showLoading({
- title: '人脸识别中'
- })
- this.$api.verifyFace(that.reqParm).then((res)=>{
- uni.hideLoading();
- if(res.data.data.code == '500'){ //人脸不存在
- let serviceObject = {}
- serviceObject.facePhoto= this.ossId
- serviceObject.facePhotoUrl=this.facePhotoUrl
- console.log(JSON.stringify(serviceObject))
- uni.redirectTo({
- url: '/myPages/serviceObjectAllInfo/index?data='+ JSON.stringify(serviceObject),
- })
- } else { // 人脸存在
- let serviceObject = res.data.data
- serviceObject.opType = "1";
- serviceObject.facePhotoUrl = that.facePhotoUrl;
- serviceObject.facePhoto = that.reqParm.facePath;
- uni.redirectTo({
- url: '/myPages/serviceObjectInfo/index?data=' + JSON.stringify(serviceObject),
- })
- }
- }).catch(() =>{
- uni.showToast({
- title: "操作失败"
- })
- });
- },
- //头像上传
- uploadImg() {
- let that = this;
- uni.chooseImage({
- count: 1,
- success: (chooseImageRes) => {
- const tempFilePaths = chooseImageRes.tempFilePaths;
- uni.uploadFile({
- url: that.$baseUrl + '/resource/oss/upload', //仅为示例,非真实的接口地址
- filePath: tempFilePaths[0],
- name: 'file',
- header: {
- 'Authorization': 'Bearer ' + uni.getStorageInfo('accessToken'),
- },
- success: (uploadFileRes) => {
- console.log("uploadFileRes:"+uploadFileRes)
- let res = JSON.parse(uploadFileRes.data)
- that.ossId = res.data.ossId;
- that.facePhotoUrl = res.data.url.replace("http", "https");
- that.reqParm.facePath = res.data.ossId;
- }
- });
- }
- });
- }
- }
- }
- </script>
- <style scoped lang="scss">
- .container{
- padding: 12px;
- background: #F6F6F6;
- }
- .h-title{
- height: 22px;
- font-size: 14px;
- font-family: PingFangSC-Regular, PingFang SC;
- font-weight: 400;
- color: #333333;
- line-height: 22px;
- }
- // 弹窗
- .h-popo-content{
- height: 170px;
- padding: 12px;
- width: 300px;
- text-align: center;
- font-size: 14px;
- font-family: PingFangSC-Semibold, PingFang SC;
- .h-img{
- display: flex;
- justify-content: center;
- }
- .h-text{
- margin-top: 12px;
- font-weight: 400;
- color: #666666;
- }
- .text{
- margin-top: 6px;
- font-weight: 400;
- color: #666666;
- }
- .h-btn-wrap{
- display: flex;
- justify-content: space-between;
- color: #333333;
- text-align: center;
- margin-top: 20px;
- .h-left-btn{
- height: 32px;
- line-height: 30px;
- background: #EEEEEE;
- width: 100px;
- text-align: center;
- border-radius: 16px;
- margin: 0 auto;
- }
- .h-right-btn{
- height: 32px;
- line-height: 30px;
- background: #FFE05C;
- width: 100px;
- border-radius: 16px;
- margin: 0 auto;
- }
- }
- }
- .h-upload-wrap{
- .h-item-row{
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- margin-top: 12px;
- font-family: PingFangSC-Regular, PingFang SC;
- .h-item{
- background: #fff;
- width: 48%;
- text-align: center;
- height: 164px;
- display: flex;
- align-items: center;
- justify-content: center;
- border-radius: 6px;
- .h-content{
- image{
- height: 48px;
- width: 48px;
- }
- .h-text{
- margin-top: 10px;
- font-size: 12px;
- font-weight: 400;
- color: #999999;
- line-height: 20px;
- }
- }
- .h-upload-img{
- width: 100%;
- height: 164px;
- padding: 4px;
- .imgBox{
- width: 164px;
- height: 164px;
- }
- }
- }
- }
- }
- .uploadBox {
- width: 100%;
- margin-top: 30px;
- height: 42px;
- background: #FFE05C;
- border-radius: 27px;
- color: #333333;
- line-height: 42px;
- text-align: center;
- }
- .btnTitle{
- font-size: 24rpx;
- font-weight: 400;
- color: #333333;
- line-height: 50px;
- padding-left: 32rpx;
- }
- @import '/common/css/common.css';
- </style>
|