Files
xiuhuwangqiu/bundle/combo/face-list.vue
wangxiaowei 5edfca8ff2 完善功能
2026-04-13 01:53:05 +08:00

257 lines
11 KiB
Vue

<template>
<view>
<!-- 青年卡 -->
<view v-if="id == 1"
@click="handleTakePhoto('youth')"
class="photo-item" style="display: flex; align-items: center; justify-content: space-between; padding: 30rpx; background-color: #ffffff; border-radius: 12rpx; margin: 20rpx;">
<view style="display: flex; align-items: center;">
<image src="https://xh.stnav.com/uploads/sport/face2.png" style="width: 90rpx; height: 90rpx; margin-right: 20rpx;"></image>
<view>人脸录入</view>
</view>
<view style="display: flex; align-items: center;">
<text style="color: #666; font-size: 28rpx; margin-right: 10rpx;">{{ youthFace ? '已录入' : '去录入' }}</text>
<image src="/static/icon/right.png" style="width: 32rpx; height: 32rpx;"></image>
</view>
</view>
<!-- 成人卡 -->
<view v-if="id == 2"
@click="handleTakePhoto('adult')"
class="photo-item" style="display: flex; align-items: center; justify-content: space-between; padding: 30rpx; background-color: #ffffff; border-radius: 12rpx; margin: 20rpx;">
<view style="display: flex; align-items: center;">
<image src="https://xh.stnav.com/uploads/sport/face2.png" style="width: 90rpx; height: 90rpx; margin-right: 20rpx;"></image>
<view>人脸录入</view>
</view>
<view style="display: flex; align-items: center;">
<text style="color: #666; font-size: 28rpx; margin-right: 10rpx;">{{ adultFace ? '已录入' : '去录入' }}</text>
<image src="/static/icon/right.png" style="width: 32rpx; height: 32rpx;"></image>
</view>
</view>
<!-- 子女1 -->
<view v-if="id == 3 || id == 4"
@click="handleTakePhoto('child1')"
class="photo-item" style="display: flex; align-items: center; justify-content: space-between; padding: 30rpx; background-color: #ffffff; border-radius: 12rpx; margin: 20rpx;">
<view style="display: flex; align-items: center;">
<image src="https://xh.stnav.com/uploads/sport/face2.png" style="width: 90rpx; height: 90rpx; margin-right: 20rpx;"></image>
<view>子女1录入</view>
</view>
<view style="display: flex; align-items: center;">
<text style="color: #666; font-size: 28rpx; margin-right: 10rpx;">{{ child1Face ? '已录入' : '去录入' }}</text>
<image src="/static/icon/right.png" style="width: 32rpx; height: 32rpx;"></image>
</view>
</view>
<!-- 子女2 -->
<view v-if="id == 4"
@click="handleTakePhoto('child2')"
class="photo-item" style="display: flex; align-items: center; justify-content: space-between; padding: 30rpx; background-color: #ffffff; border-radius: 12rpx; margin: 20rpx;">
<view style="display: flex; align-items: center;">
<image src="https://xh.stnav.com/uploads/sport/face2.png" style="width: 90rpx; height: 90rpx; margin-right: 20rpx;"></image>
<view>子女2录入</view>
</view>
<view style="display: flex; align-items: center;">
<text style="color: #666; font-size: 28rpx; margin-right: 10rpx;">{{ child2Face ? '已录入' : '去录入' }}</text>
<image src="/static/icon/right.png" style="width: 32rpx; height: 32rpx;"></image>
</view>
</view>
<!-- 亲子卡1 -->
<view v-if="id == 3 || id == 4"
@click="handleTakePhoto('parent1')"
class="photo-item" style="display: flex; align-items: center; justify-content: space-between; padding: 30rpx; background-color: #ffffff; border-radius: 12rpx; margin: 20rpx;">
<view style="display: flex; align-items: center;">
<image src="https://xh.stnav.com/uploads/sport/face2.png" style="width: 90rpx; height: 90rpx; margin-right: 20rpx;"></image>
<view>家长1录入</view>
</view>
<view style="display: flex; align-items: center;">
<text style="color: #666; font-size: 28rpx; margin-right: 10rpx;">{{ parent1Face ? '已录入' : '去录入' }}</text>
<image src="/static/icon/right.png" style="width: 32rpx; height: 32rpx;"></image>
</view>
</view>
<!-- 亲子卡2 -->
<view v-if="id == 3 || id == 4"
@click="handleTakePhoto('parent2')"
class="photo-item" style="display: flex; align-items: center; justify-content: space-between; padding: 30rpx; background-color: #ffffff; border-radius: 12rpx; margin: 20rpx;">
<view style="display: flex; align-items: center;">
<image src="https://xh.stnav.com/uploads/sport/face2.png" style="width: 90rpx; height: 90rpx; margin-right: 20rpx;"></image>
<view>家长2录入</view>
</view>
<view style="display: flex; align-items: center;">
<text style="color: #666; font-size: 28rpx; margin-right: 10rpx;">{{ parent2Face ? '已录入' : '去录入' }}</text>
<image src="/static/icon/right.png" style="width: 32rpx; height: 32rpx;"></image>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
id: 0,
order_id: 0,
youthFace: '',
adultFace: '',
child1Face: '',
child2Face: '',
parent1Face: '',
parent2Face: '',
}
},
onLoad(args) {
this.id = args.id
this.order_id = args.order_id
this.handleGetGroupData()
},
methods: {
/*获取开通会员信息*/
handleGetGroupData() {
let self = this;
self._post(
'ground.group/getGroupData',
{group_id: self.id},
result => {
if (result.data && result.data.face_url) {
self.youthFace = result.data.face_url;
self.adultFace = result.data.face_url;
}
if (result.data && result.data.face_url) {
self.child1Face = result.data.face_url;
}
if (result.data && result.data.face_url1) {
self.child2Face = result.data.face_url1;
}
if (result.data && result.data.parent.length > 0) {
self.parent1Face = result.data.parent[0].face_url;
if (result.data.parent.length > 1) {
self.parent2Face = result.data.parent[1].face_url;
}
}
},
false,
() => {
}
);
},
/*去拍照*/
handleTakePhoto(type) {
if (type === 'youth' && this.youthFace) {
uni.previewImage({
urls: [this.youthFace]
});
return false;
}
if (type === 'adult' && this.adultFace) {
uni.previewImage({
urls: [this.adultFace]
});
return false;
}
if (type === 'child1' && this.child1Face) {
uni.previewImage({
urls: [this.child1Face]
});
return false;
}
if (type === 'child2' && this.child2Face) {
uni.previewImage({
urls: [this.child2Face]
});
return false;
}
if (type === 'parent1' && this.parent1Face) {
uni.previewImage({
urls: [this.parent1Face]
});
return false;
}
if (type === 'parent2' && this.parent2Face) {
uni.previewImage({
urls: [this.parent2Face]
});
return false;
}
let self = this
uni.navigateTo({
url: `/bundle/combo/face-photo?type=${type}`,
events:{
data: (e) => {
self.uploadFile(e.path, e.type)
}
}
});
},
/*上传图片*/
uploadFile: function(filePath, type) {
console.log("🚀 ~ filePath:", filePath)
let self = this;
let params = {
token: uni.getStorageSync('token'),
app_id: self.getAppId()
};
uni.showLoading({
title: '图片上传中'
});
uni.uploadFile({
url: self.websiteUrl + '/index.php?s=/api/file.upload/image',
filePath: filePath,
name: 'iFile',
formData: params,
success: function(res) {
uni.hideLoading();
let result = typeof res.data === 'object' ? res.data : JSON.parse(res.data);
if (result.code === 1) {
setTimeout(() => {
uni.showLoading({
title: '人脸录入中...'
});
}, 100);
self._post(
'ground.group/hikCreate',
{
app_id: self.getAppId(),
face_url: result.data.file_path,
order_id: self.order_id,
group_id: self.id,
},
function(res) {
console.log("🚀 ~ res:", res)
uni.hideLoading();
setTimeout(() => {
self.handleGetGroupData()
uni.showToast({
title: '操作成功',
duration: 1500,
icon: 'success'
});
}, 100);
}
);
} else {
}
},
complete: function() {
uni.hideLoading();
}
});
},
}
}
</script>