|
|
|
|
@ -14,7 +14,9 @@ |
|
|
|
|
</div> |
|
|
|
|
<div class="tips">头像采集</div> |
|
|
|
|
<div class="tip_txt">上传近期半身本人照片</div> |
|
|
|
|
<div class="btn" @click="chooseAvatar">上传照片</div> |
|
|
|
|
<!-- <div class="btn" @click="chooseAvatar">上传照片</div> --> |
|
|
|
|
<div v-if="avatar == ''" class="btn" @click="chooseAvatar">上传照片</div> |
|
|
|
|
<div v-else class="btn" @click="doRead">去预约</div> |
|
|
|
|
</div> |
|
|
|
|
<div class="close_box" @click="isShowAvatar = false"><img src="~@/assets/image/close.png" alt=""></div> |
|
|
|
|
</van-overlay> |
|
|
|
|
@ -85,12 +87,8 @@ export default { |
|
|
|
|
this.$toast('头像只能选择一张'); |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
// if (this.calcBaseSze(data.picPath[0]) > 1024) { |
|
|
|
|
|
|
|
|
|
// } else { |
|
|
|
|
// this.avatar = 'data:image/jpg;base64,' + data.picPath[0]; |
|
|
|
|
// } |
|
|
|
|
//保存采集头像 |
|
|
|
|
// this.compress(data.picPath[0]); |
|
|
|
|
// //保存采集头像 |
|
|
|
|
let avatar = 'data:image/jpg;base64,' + data.picPath[0]; |
|
|
|
|
this.saveCupImg(avatar); |
|
|
|
|
} |
|
|
|
|
@ -114,7 +112,7 @@ export default { |
|
|
|
|
let retData = JSON.parse(value); |
|
|
|
|
if (retData.code == 200) { |
|
|
|
|
this.$toast('采集成功'); |
|
|
|
|
this.avatar = avatar; |
|
|
|
|
this.avatar = vatar; |
|
|
|
|
} else { |
|
|
|
|
this.$toast(retData.msg); |
|
|
|
|
} |
|
|
|
|
@ -139,11 +137,34 @@ export default { |
|
|
|
|
this.$toast.clear(); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
//计算base64图形大小 |
|
|
|
|
calcBaseSze(base64) { |
|
|
|
|
const kb = Math.ceil(parseInt(base64.length - (base64.length / 8) * 2) / 1024); |
|
|
|
|
console.log('chooseimage', base64.length / 1024, kb); |
|
|
|
|
return kb; |
|
|
|
|
//图片压缩 |
|
|
|
|
compress(base64) { |
|
|
|
|
var newImage = new Image(); |
|
|
|
|
var quality = 0.6; //压缩系数0-1之间 |
|
|
|
|
newImage.src = 'data:image/jpg;base64,' + base64; |
|
|
|
|
newImage.setAttribute("crossOrigin", 'Anonymous'); //url为外域时需要 |
|
|
|
|
newImage.onload = () => { |
|
|
|
|
var canvas = document.createElement("canvas"); |
|
|
|
|
var ctx = canvas.getContext("2d"); |
|
|
|
|
canvas.width = 700; |
|
|
|
|
canvas.height = 920; |
|
|
|
|
quality = 0.7; |
|
|
|
|
ctx.clearRect(0, 0, canvas.width, canvas.height); |
|
|
|
|
ctx.drawImage(newImage, 0, 0, canvas.width, canvas.height); |
|
|
|
|
var compressBase64 = canvas.toDataURL("image/jpeg", quality); //压缩语句 |
|
|
|
|
// 如想确保图片压缩到自己想要的尺寸,如要求在50-150kb之间,请加以下语句,quality初始值根据情况自定 |
|
|
|
|
// while (base64.length / 1024 > 150) { |
|
|
|
|
// quality -= 0.01; |
|
|
|
|
// base64 = canvas.toDataURL("image/jpeg", quality); |
|
|
|
|
// } |
|
|
|
|
// 防止最后一次压缩低于最低尺寸,只要quality递减合理,无需考虑 |
|
|
|
|
// while (base64.length / 1024 < 50) { |
|
|
|
|
// quality += 0.001; |
|
|
|
|
// base64 = canvas.toDataURL("image/jpeg", quality); |
|
|
|
|
// } |
|
|
|
|
//保存采集头像 |
|
|
|
|
this.saveCupImg(compressBase64); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
//须知详情 |
|
|
|
|
queryAticle(id) { |
|
|
|
|
@ -185,10 +206,13 @@ export default { |
|
|
|
|
}, |
|
|
|
|
//已阅读 |
|
|
|
|
doRead() { |
|
|
|
|
// this.isShowAvatar = true; |
|
|
|
|
// return; |
|
|
|
|
//校验是否已采集头像 |
|
|
|
|
if (this.avatar == '') { |
|
|
|
|
this.isShowAvatar = true; |
|
|
|
|
} else { |
|
|
|
|
this.isShowAvatar = false; |
|
|
|
|
this.$router.replace({ name: 'examination', query: { id: this.$route.query.deptId } }); |
|
|
|
|
} |
|
|
|
|
// let readBox = this.$refs.scrollView; |
|
|
|
|
@ -304,7 +328,7 @@ export default { |
|
|
|
|
|
|
|
|
|
img { |
|
|
|
|
width: 2.4rem; |
|
|
|
|
height: 2.4rem; |
|
|
|
|
height: 2.7rem; |
|
|
|
|
margin-top: 0.6rem; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|