196 lines
3.9 KiB
Vue
196 lines
3.9 KiB
Vue
<template>
|
||
<div>
|
||
<view class="Rboy-box">
|
||
<view class="Rboy-obverse">
|
||
<image class="obverseimg" :src="obverseUrl ? obverseUrl : obverse" @click="obverse_btn" mode="">
|
||
</image>
|
||
<image class="del_btn" :src="del" mode="" v-if="obverseUrl" @click="del_btn('obverse')"></image>
|
||
<view class="bottom">
|
||
<text>身份证正面照</text>
|
||
</view>
|
||
</view>
|
||
<view class="Rboy-reverse">
|
||
<image class="reverseimg" :src="reverseUrl ? reverseUrl : reverse" @click="reverse_btn" mode="">
|
||
</image>
|
||
<image class="del_btn" :src="del" mode="" v-if="reverseUrl" @click="del_btn('reverse')"></image>
|
||
<view class="bottom">
|
||
<text>身份证反面照</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import RboyUploadSfz from "@/components/Rboy-upload-sfz/Rboy-upload-sfz.vue"
|
||
export default {
|
||
name: "Rboy-upload-sfz",
|
||
components: {
|
||
RboyUploadSfz,
|
||
},
|
||
props: {
|
||
// 正面
|
||
obverseUrl: {
|
||
type: String,
|
||
default: ""
|
||
},
|
||
// 反面
|
||
reverseUrl: {
|
||
type: String,
|
||
default: ""
|
||
},
|
||
// album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
|
||
sourceType: {
|
||
type: Array || Object,
|
||
default: () => {
|
||
return ['album', 'camera']
|
||
}
|
||
}
|
||
},
|
||
data() {
|
||
return {
|
||
obverse: file.obverse,
|
||
reverse: file.reverse,
|
||
del: file.del,
|
||
}
|
||
},
|
||
created() {
|
||
|
||
},
|
||
methods: {
|
||
obverse_btn() {
|
||
if (this.obverseUrl) {
|
||
// 预览
|
||
this.previewImage(this.obverseUrl)
|
||
} else {
|
||
// 上传
|
||
this.select_change("obverse")
|
||
}
|
||
},
|
||
reverse_btn() {
|
||
if (this.reverseUrl) {
|
||
// 预览
|
||
this.previewImage(this.reverseUrl)
|
||
} else {
|
||
// 上传
|
||
this.select_change("reverse")
|
||
}
|
||
},
|
||
// 上传
|
||
select_change(name) {
|
||
uni.chooseImage({
|
||
count: 1, //默认9
|
||
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
||
sourceType: this.sourceType, // 从相册选择
|
||
success: (res) => {
|
||
this.$emit("selectChange", {
|
||
msg: `${name}Image:ok`,
|
||
name,
|
||
tempFilePath: res.tempFilePaths[0],
|
||
tempFile: res.tempFiles[0]
|
||
})
|
||
}
|
||
});
|
||
},
|
||
// 预览
|
||
previewImage(current = 0) {
|
||
uni.previewImage({
|
||
current,
|
||
urls: [this.obverseUrl, this.reverseUrl],
|
||
});
|
||
},
|
||
// 删除
|
||
del_btn(name) {
|
||
console.log(name)
|
||
this.$emit("del", {
|
||
name,
|
||
})
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="less">
|
||
@imgWidth: 345rpx;
|
||
@imgheight: 220rpx;
|
||
@boxheight: 280rpx;
|
||
|
||
.Rboy-box {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
// align-items: center;
|
||
|
||
.Rboy-obverse {
|
||
border-radius: 10rpx;
|
||
width: @imgWidth;
|
||
height: @boxheight;
|
||
overflow: hidden;
|
||
display: flex;
|
||
flex-direction: column;
|
||
position: relative;
|
||
|
||
.obverseimg {
|
||
width: @imgWidth;
|
||
height: @imgheight;
|
||
}
|
||
|
||
.bottom {
|
||
text-align: center;
|
||
height: calc(@boxheight - @imgheight);
|
||
background-color: #B7D7FF;
|
||
color: #3B5FD2;
|
||
font-size: 28rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
.del_btn {
|
||
position: absolute;
|
||
top: 5rpx;
|
||
right: 5rpx;
|
||
width: 50rpx;
|
||
height: 50rpx;
|
||
border-radius: 50%;
|
||
z-index: 20;
|
||
}
|
||
}
|
||
|
||
.Rboy-reverse {
|
||
border-radius: 10rpx;
|
||
width: @imgWidth;
|
||
height: @boxheight;
|
||
overflow: hidden;
|
||
display: flex;
|
||
flex-direction: column;
|
||
position: relative;
|
||
|
||
.reverseimg {
|
||
width: @imgWidth;
|
||
height: @imgheight;
|
||
}
|
||
|
||
.bottom {
|
||
text-align: center;
|
||
height: calc(@boxheight - @imgheight);
|
||
background-color: #B7D7FF;
|
||
color: #3B5FD2;
|
||
font-size: 28rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
.del_btn {
|
||
position: absolute;
|
||
top: 5rpx;
|
||
right: 5rpx;
|
||
width: 50rpx;
|
||
height: 50rpx;
|
||
border-radius: 50%;
|
||
z-index: 20;
|
||
}
|
||
}
|
||
}
|
||
</style>
|