| | |
| | | <template> |
| | | <view class="full-page"> |
| | | <view class="content"> |
| | | <up-form labelPosition="left" :model="model1" :rules="rules" ref="form1" labelWidth='90'> |
| | | <up-form-item label="身份证正面" prop="userInfo.sex" required borderBottom @click="showSex = true; hideKeyboard()" |
| | | <up-form labelPosition="left" :model="userInfo" :rules="rules" ref="form1" labelWidth='90'> |
| | | <up-form-item label="身份证正面" prop="userInfo.sex" required borderBottom @click="uploadIdCard('FRONT')" |
| | | ref="item1"> |
| | | <tem-upload src="/static/positive.png" /> |
| | | <fui-upload immediate :url="`${apiBaseUrl}api/UpFile/UploadIdCord?PageName=FRONT`" ref="uploadF" |
| | | max='1' background='#fff' @success="success" @error="error" @complete="complete" width="300" |
| | | height="150"> |
| | | <image src="/static/positive.png" mode="widthFix" style="width: 300rpx;height: 150rpx;"></image> |
| | | </fui-upload> |
| | | <!-- <template #right> |
| | | <up-icon name="arrow-right"></up-icon> |
| | | </template> --> |
| | | </up-form-item> |
| | | <up-form-item label="身份证反面" prop="userInfo.sex" required borderBottom @click="showSex = true; hideKeyboard()" |
| | | ref="item1"> |
| | | <tem-upload src="/static/negative.png"/> |
| | | |
| | | <up-form-item label="身份证反面" prop="userInfo.sex" required borderBottom ref="item1"> |
| | | <fui-upload immediate :url="`${apiBaseUrl}api/UpFile/UploadIdCord?PageName=Back`" ref="uploadB" |
| | | max='1' background='#fff' @success="success" @error="error" @complete="complete" width="300" |
| | | height="150"> |
| | | <image src="/static/negative.png" mode="widthFix" style="width: 300rpx;height: 150rpx;"></image> |
| | | </fui-upload> |
| | | </up-form-item> |
| | | <up-form-item label="姓名" required prop="userInfo.name" borderBottom ref="item1"> |
| | | <up-input v-model="state.model1.userInfo.name" border="none" placeholder="请输入姓名"></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="性别" required prop="Gender" borderBottom ref="item2"> |
| | | <up-radio-group v-model="userInfo.Gender"> |
| | | <up-radio :customStyle="{marginRight: '16px'}" v-for="(item, index) in radiolist1" :key="index" |
| | | :label="item.name" :name="item.name"> |
| | | </up-radio> |
| | | </up-radio-group> |
| | | </up-form-item> |
| | | <up-form-item label="联系电话" required prop="userInfo.name" borderBottom ref="item1"> |
| | | <up-input v-model="state.model1.userInfo.name" border="none" placeholder="请输入联系电话"></up-input> |
| | |
| | | <up-input v-model="state.model1.userInfo.name" border="none" placeholder="请输入身份证号"></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="简历描述" required prop="userInfo.name" borderBottom ref="item1"> |
| | | <up-textarea v-model="state.model1.userInfo.name" placeholder="请输入简历描述" ></up-textarea> |
| | | <up-textarea v-model="state.model1.userInfo.name" placeholder="请输入简历描述"></up-textarea> |
| | | </up-form-item> |
| | | |
| | | <view class="tabbtns"> |
| | | <up-button color='#fece01' class="text-69" text="保存"></up-button> |
| | | <up-button color='#fece01' class="text-69" text="人脸识别" @click='IaiAddPerso'></up-button> |
| | | </view> |
| | | <!-- <view class="tabbtns"> |
| | | <up-button color='#fece01' class="text-69" text="保存"></up-button> |
| | | </view> --> |
| | | </up-form> |
| | | </view> |
| | | |
| | |
| | | |
| | | <script setup> |
| | | import { |
| | | apiBaseUrl |
| | | } from '@/common/setting/constVarsHelper.js'; |
| | | import { |
| | | getCurrentInstance |
| | | } from 'vue' |
| | | const { |
| | | $upload, |
| | | $api |
| | | } = getCurrentInstance().appContext.config.globalProperties |
| | | import { |
| | | ref, |
| | | reactive |
| | | } from 'vue'; |
| | | |
| | | let radiolist1 = [{ |
| | | name: '男', |
| | | }, |
| | | { |
| | | name: '女', |
| | | } |
| | | ] |
| | | const userInfo = reactive({ |
| | | CordId: '430621198204264616', |
| | | Name: '邹大志', |
| | | Gender: 1 |
| | | }) |
| | | // 使用 reactive 创建响应式状态 |
| | | const state = reactive({ |
| | | showSex: false, |
| | |
| | | name: '保密' |
| | | }, |
| | | ], |
| | | |
| | | |
| | | radio: '', |
| | | switchVal: false, |
| | | }); |
| | | |
| | | // 使用 ref 创建响应式引用 |
| | | const formRef = ref(null); |
| | | |
| | | const session = wx.createVKSession({ |
| | | track: { |
| | | face: {mode: 2} |
| | | }, |
| | | version: 'v1', |
| | | }) |
| | | // 逐帧分析 |
| | | const onFrame = timestamp => { |
| | | // 开发者可以自己控制帧率 |
| | | const frame = session.getVKFrame(canvasWidth, canvasHeight) |
| | | if (frame) { |
| | | // 分析完毕,可以拿到帧对象 |
| | | doRender(frame) |
| | | } |
| | | |
| | | session.requestAnimationFrame(onFrame) |
| | | } |
| | | session.start(err => { |
| | | if (!err) session.requestAnimationFrame(onFrame) |
| | | }) |
| | | |
| | | // 渲染函数 |
| | | const doRender = frame => { |
| | | // ... |
| | | } |
| | | const IaiAddPerso = (e) => { |
| | | onFrame() |
| | | // $api.IaiAddPerso({}, userInfo).then(res => { |
| | | // console.log(res, '人脸识别'); |
| | | // }) |
| | | } |
| | | // 定义方法 |
| | | function sexSelect(e) { |
| | | state.model1.userInfo.sex = e.name; |
| | |
| | | formRef.value.validateField('userInfo.sex'); |
| | | } |
| | | } |
| | | |
| | | //上传图片Base64 |
| | | const uploadFilesFByBase64s = (el) => { |
| | | $api.UpdateFileBase64({ |
| | | fileBase64: el |
| | | }).then(res => { |
| | | |
| | | // if (res.code == 1) { |
| | | |
| | | uni.hideLoading(); |
| | | console.log(res.data.src); |
| | | // } else { |
| | | |
| | | // } |
| | | }); |
| | | } |
| | | const uploadIdCard = (msg, event) => { |
| | | |
| | | // getBase64(msg.file.url).then(res => { |
| | | // console.log(res); |
| | | // // uploadFilesFByBase64s(res) |
| | | // }) |
| | | // $api.UpdateFileBase64().then(res=>{ |
| | | // console.log(res,'UpdateFileBase64'); |
| | | // }) |
| | | $api.UploadIdCord(msg.file.url, { |
| | | PageName: 'Back' |
| | | }).then(res => { |
| | | console.log(res); |
| | | }) |
| | | uni.showLoading({ |
| | | title: '上传中...' |
| | | }); |
| | | // uni.getFileSystemManager().readFile({ |
| | | // filePath: msg.file.url, // 替换为你的文件路径 |
| | | // encoding: 'base64', |
| | | // success: res => { |
| | | // uploadFilesFByBase64s(res.data) |
| | | // console.log('文件内容的base64:', res.data); |
| | | // }, |
| | | // fail: err => { |
| | | // console.error('读取文件失败:', err); |
| | | // } |
| | | // }); |
| | | |
| | | } |
| | | //上传成功时触发 |
| | | const success = (e) => { |
| | | console.log(e) |
| | | //e.res 为服务器返回数据 |
| | | //上传成功回调,处理服务器返回数据【此处根据实际返回数据进行处理】 |
| | | let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}") |
| | | |
| | | if (res.data.url) { |
| | | userInfo.CordId = res.data.info.idNum |
| | | userInfo.name = res.data.info.name |
| | | userInfo.Gender = res.data.info.sex |
| | | //处理结果返回给组件 |
| | | //res.data.url为上传成功后返回的图片地址 |
| | | //e.index为图片索引值 |
| | | // this.$refs.upload.result(res.data.url, e.index) |
| | | } |
| | | } |
| | | //上传失败时触发 |
| | | const error = (e) => {} |
| | | //选择图片或上传完成时触发 |
| | | const complete = (e) => { |
| | | if (e.action == 'delete') { |
| | | // 删除处理 |
| | | } |
| | | console.log(e, '删除') |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .content{ |
| | | .content { |
| | | background-color: #fff; |
| | | padding: 0 20rpx; |
| | | } |
| | | |
| | | .fui-upload__item { |
| | | margin-top: 20rpx !important; |
| | | } |
| | | </style> |