<template>
|
<view class="full-page-fff">
|
<view class="content">
|
<up-form labelPosition="left" :model="userInfo" :rules="rules" ref="form1" labelWidth='80'>
|
<up-form-item label="身份证正面" prop="userInfo.idCardFace" required>
|
<fui-upload immediate :url="`${apiBaseUrl}api/UpFile/UploadIdCord?PageName=FRONT`" ref="uploadF"
|
max='1' background='#fff' @success="success('FRONT',$event)" @error="error" @complete="complete"
|
width="300" height="150">
|
<image :src="userInfo.idCardFace?userInfo.idCardFace:'/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.idCardBack" required>
|
<fui-upload immediate :url="`${apiBaseUrl}api/UpFile/UploadIdCord?PageName=Back`" ref="uploadB"
|
max='1' background='#fff' @success="success('Back',$event)" @error="error" @complete="complete"
|
width="300" height="150">
|
<image :src="userInfo.idCardBack?userInfo.idCardBack:'/static/negative.png'" mode="widthFix"
|
style="width: 300rpx;height: 150rpx;"></image>
|
</fui-upload>
|
</up-form-item>
|
<up-form-item label="姓名" required prop="userInfo.name" ref="item1">
|
<up-input v-model="userInfo.name" border="none" placeholder="请输入姓名" readonly></up-input>
|
</up-form-item>
|
<up-form-item label="联系电话" required prop="userInfo.phone" ref="item1">
|
<up-input v-model="userInfo.phone" border="none" placeholder="请输入联系电话"></up-input>
|
</up-form-item>
|
<up-form-item label="身份证号" required prop="userInfo.idCode" ref="item1">
|
<up-input v-model="userInfo.idCode" border="none" placeholder="请输入身份证号" readonly></up-input>
|
</up-form-item>
|
<up-form-item label="联系地址" required prop="userInfo.address" ref="item1">
|
<up-input v-model="userInfo.address" border="none" placeholder="请输入联系地址"></up-input>
|
</up-form-item>
|
<up-form-item label="简历描述" required prop="userInfo.resume" ref="item1">
|
|
</up-form-item>
|
<up-textarea v-model="userInfo.resume" placeholder="请输入简历描述"></up-textarea>
|
<!-- <up-form-item label="性别" required prop="Gender" 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> -->
|
<!-- <view class="text-area">
|
<camera device-position="front" style="width: 100%; height: 600rpx;"></camera>
|
</view> -->
|
<!-- <view class="tabbtns">
|
<up-button color='#fece01' class="text-69" text="人脸识别" @click='IaiAddPerso'></up-button>
|
</view> -->
|
|
|
<!-- <up-popup :show="show" @close="close" @open="open"> -->
|
<!-- <tem-session/> -->
|
<!-- </up-popup> -->
|
<view class="tabbtns">
|
<up-button color='#fece01' class="text-69" text="保存" @click='saveUserWorker'></up-button>
|
</view>
|
</up-form>
|
</view>
|
|
</view>
|
</template>
|
|
<script setup>
|
import {
|
onLoad,
|
onShow
|
} from "@dcloudio/uni-app";
|
|
import {
|
apiBaseUrl
|
} from '@/common/setting/constVarsHelper.js';
|
import {
|
getCurrentInstance
|
} from 'vue'
|
const {
|
$upload,
|
$api,
|
$util,
|
$db
|
} = getCurrentInstance().appContext.config.globalProperties
|
import {
|
ref,
|
reactive
|
} from 'vue';
|
|
// let webgl = ref()
|
onLoad(() => {
|
let data = JSON.parse($db.get('userInfo'))
|
if (data) {
|
userInfo.idCardFace = data.userWorker.idCardFace //身份证正面路径
|
userInfo.idCardBack = data.userWorker.idCardBack //身份证反面路径
|
userInfo.name = data.userWorker.name //姓名
|
userInfo.phone = data.userWorker.phone //电话号码
|
userInfo.idCode = data.userWorker.idCode //身份证号
|
userInfo.address = data.userWorker.address //联系地址
|
userInfo.resume = data.userWorker.resume //简历描述
|
userInfo.id = data.userWorker.id
|
}
|
// let cameraEngine = wx.createCameraContext()
|
// // 3、获取 Camera 实时帧数据
|
// const listener = cameraEngine.onCameraFrame((frame) => {
|
// // console.log(frame)
|
// if (!status.value) {
|
// return
|
// }
|
// jiance(frame)
|
// })
|
// // 5、开始监听帧数据
|
// listener.start()
|
})
|
|
let status = ref(false)
|
let form1 = ref()
|
let radiolist1 = [{
|
name: '男',
|
},
|
{
|
name: '女',
|
}
|
]
|
const userInfo = reactive({
|
idCardFace: '', //身份证正面路径
|
idCardBack: '', //身份证反面路径
|
name: '', //姓名
|
phone: '', //电话号码
|
idCode: '', //身份证号
|
address: '', //联系地址
|
resume: '', //简历描述
|
id: 0
|
})
|
// 使用 reactive 创建响应式状态
|
const state = reactive({
|
showSex: false,
|
model1: {
|
userInfo: {
|
name: '',
|
sex: '',
|
},
|
},
|
actions: [{
|
name: '男'
|
},
|
{
|
name: '女'
|
},
|
{
|
name: '保密'
|
},
|
],
|
|
radio: '',
|
switchVal: false,
|
});
|
|
// 使用 ref 创建响应式引用
|
const formRef = ref(null);
|
|
|
|
const IaiAddPerso = (e) => {
|
|
}
|
|
const saveUserWorker = (e) => {
|
$api.saveUserWorker(userInfo).then(res => {
|
if (res.code == 1) {
|
$util.showToast({
|
title: "保存成功!",
|
icon: "success"
|
})
|
}
|
})
|
console.log(userInfo, form1);
|
}
|
//上传图片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 = (text, e) => {
|
//e.res 为服务器返回数据
|
//上传成功回调,处理服务器返回数据【此处根据实际返回数据进行处理】
|
let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}")
|
if (res.data.url && text == 'FRONT') {
|
userInfo.idCardFace = res.data.url //身份证正面路径
|
userInfo.idCode = res.data.info.idNum //身份证号
|
userInfo.name = res.data.info.name
|
userInfo.address = res.data.info.address
|
} else {
|
userInfo.idCardBack = res.data.url //身份证反面路径
|
}
|
}
|
//上传失败时触发
|
const error = (e) => {}
|
//选择图片或上传完成时触发
|
const complete = (e) => {
|
if (e.action == 'delete') {
|
// 删除处理
|
|
}
|
console.log(e, '删除')
|
|
}
|
const jiance = (imgbuffer) => {
|
// var frameBuffer =
|
const session = wx.createVKSession({
|
track: {
|
face: {
|
mode: 2
|
} // mode: 1 - 使用摄像头;2 - 手动传入图像
|
},
|
version: 'v1'
|
|
})
|
const onFrame = timestamp => {
|
console.log(webgl, 'webgl');
|
const frame = session.getVKFrame(webgl.width, webgl.height)
|
if (frame) {
|
console.log(frame);
|
// renderFrame(frame)
|
}
|
|
session.requestAnimationFrame(onFrame)
|
}
|
session.start(errno => {
|
if (errno) {
|
// 如果失败,将返回 errno
|
} else {
|
// 否则,返回null,表示成功
|
session.detectFace({
|
frameBuffer: imgbuffer.data, // 图片 ArrayBuffer 数据。人脸图像像素点数据,每四项表示一个像素点的 RGBA
|
width: imgbuffer.width, // 图像宽度
|
height: imgbuffer.height,
|
scoreThreshold: 0.8, // 评分阈值
|
sourceType: 1,
|
modelMode: 0,
|
})
|
}
|
|
session.requestAnimationFrame(onFrame)
|
})
|
|
session.on('updateAnchors', anchors => {
|
console.log("检测到人脸", anchors)
|
|
anchors.forEach(anchor => {
|
console.log('anchor.points', anchor.points)
|
console.log('anchor.origin', anchor.origin)
|
console.log('anchor.size', anchor.size)
|
console.log('anchor.angle', anchor.angle)
|
})
|
})
|
session.on('removeAnchors', () => {
|
console.log("人脸消失", "removeAnchors")
|
})
|
}
|
</script>
|
|
<style>
|
.content {
|
background-color: #fff;
|
padding: 0 20rpx;
|
}
|
|
.fui-upload__item {
|
margin-top: 20rpx !important;
|
}
|
</style>
|