jt360front/src/components/user/uploadphoto.vue
yindongqi 2103d3fcc1 fix: 将API域名从admins.jiangtang360.com更新为adminssl.jiangtang360.com
更新生产环境和开发环境的API配置,以及相关组件中的API调用地址,使用新的SSL安全域名
2025-08-08 17:54:59 +08:00

265 lines
7.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="file">
<back title="证件照上传"></back>
<div v-if="loginInfo.need_upload_photo == 1">
<!-- <h2>提示证件照后缀名必须为 ".jpg", ".jpeg", ".png"格式</h2>
<h2>上传证件照的像素底色不限</h2>
<h2 class="texttip"><b>不要</b>上传自己的身份证照片</h2> -->
<img src="../../../static/img/tip.png" width="100%" height="30%" />
<div class="imgreplace">
<label class="input-file-button" for="upload">选择证件照</label>
<!-- <input type="file" id="upload" /> -->
<input
type="file"
class="updata"
accept="image/*"
@change="change($event)"
ref="updata"
id="upload"
/>
<mt-button type="primary" size="small" @click="upload()" style="margin-top: 10px"
>上传证件照</mt-button
>
<!-- <mt-button type="primary" size="small">选择证件照</mt-button> -->
</div>
<!-- <p>您上传的文件为{{ filename }}</p> -->
<p v-if="filename != ''" padding-top="33px">您上传的证件照名{{ filename }}</p>
<img :src="imageUrl" alt="" class="img" title="预览" /><br />
<input type="hidden" :value="loginInfo.member_passport" ref="getValue" />
<input type="hidden" v-model="filename" />
<input type="hidden" v-model="photopath" id="" />
<!-- <input type="text" :value="ImgObj.src"> -->
<h2 style="padding-top: 1em; font-size: 2.3em">已上传的证件照</h2>
<h2>点击证件照预览</h2>
<img
:src="photopath"
alt=""
style="
width: 36%;
border: 1px solid;
box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.5);
"
@click="photoPreview()"
/>
<!-- <mt-button
type="primary"
size="small"
@click="photoPreview()"
style="margin-top: 10px"
>预览</mt-button
> -->
</div>
<div v-else-if="loginInfo.need_upload_photo != 1">
<h1>暂未规定上传证件照</h1>
</div>
</div>
</template>
<script>
import { mapState } from "vuex";
import Back from "../common/Back.vue";
import axios from "axios";
import { MessageBox, Toast } from "mint-ui";
import { getStore, setStore } from "@/utils/storage";
// import Qs from "qs";
export default {
data() {
return {
imageUrl: "",
file: null,
filename: "",
photopath: "",
ImgObj: new Image(),
};
},
components: {
Back,
},
methods: {
change(e) {
// console.log("e");
// console.log(e);
// console.log("e.target");
// console.log(e.target);
// console.log("e.target.files[0]");
// console.log(e.target.files[0]);
// console.log("file的名字" + e.target.files[0].name);
this.filename = e.target.files[0].name;
// 判断是不是规定格式
// 获取到第一张图片
this.file = e.target.files[0];
console.log("file文件" + this.file.type);
// 创建文件读取对象
var reader = new FileReader();
var that = this;
// 将文件读取为DataURL
reader.readAsDataURL(this.file);
// 读取成功调用方法
reader.onload = (e) => {
console.log("读取成功");
// e.target.result 获取 读取成功后的 文件DataURL
that.imageUrl = e.target.result;
// 如果要将图片上传服务器,就在这里调用后台方法
};
},
upload() {
console.log("证件号为:" + this.$refs.getValue.value);
//限制图片的类型
var fileTypes = [
"image/jpeg",
"image/JPEG",
"image/jpg",
"image/JPG",
"image/png",
"image/PNG",
];
var filePath = this.filename;
console.log("filepath:==" + filePath);
if (filePath) {
var isNext = false;
// var fileEnd = filePath.substring(filePath.indexOf("."));
for (var i = 0; i < fileTypes.length; i++) {
if (fileTypes[i] == this.file.type) {
isNext = true;
break;
}
}
if (!isNext) {
MessageBox.alert('证件照的后缀名必须为".jpg", ".png", ".jpeg",格式');
this.file = "";
this.filename = "";
return false;
} else {
MessageBox.confirm("确定上传该证件照吗?").then(
(action) => {
let formData = new FormData();
formData.append("file", this.file);
formData.append("filename", this.$refs.getValue.value + ".jpg");
formData.append("apitoken", getStore("token"));
const config = {
headers: {
// 'Content-Type': 'multipart/form-data',
// "Access-Control-Allow-Origin": "*",
// "Access-Control-Allow-Method": "POST,GET",
},
};
axios
.post(
// "/uploadcardimage",formData
"https://adminssl.jiangtang360.com/api/card/uploadcardimage",
formData,
config
// Qs.stringify(formData)
// {headers: {'Content-Type': 'multipart/form-data'}}
)
.then(
(res) => {
console.log(res);
// MessageBox.alert("上传成功").then((res) => {});
// this.$destroy();
Toast("上传成功");
location.reload();
},
(error) => {
Toast("上传失败,请刷新后再次尝试上传");
}
);
},
() => {}
);
}
} else {
MessageBox.alert("请重新选择符合要求的证件照");
}
},
photoPreview() {
this.$router.push({ path: "/photoPreview" });
},
},
created() {
// 获取默认显示的图片
// this.baseImg = require("../../../static/card/jianke_logo.png");
},
mounted() {
this.photopath =
"https://adminssl.jiangtang360.com/static/admin/cards/" +
this.$refs.getValue.value +
".jpg" +
"?ran=" +
Math.random();
this.ImgObj.src =
"https://adminssl.jiangtang360.com/static/admin/cards/" +
this.$refs.getValue.value +
".jpg" +
"?ran=" +
Math.random();
},
computed: {
...mapState(["loginInfo", "apitoken"]),
},
};
</script>
<style scoped>
.file {
padding-top: 5rem;
/* width: 100%;
height: 100%; */
/* display: flex; */
/* flex-direction: column;
justify-content: space-around; */
/* align-items: center; */
/* position: relative;
/* width: 200px; */
/* height: 100%; */
/* background-color: #ccc; */
}
/* .imgreplace {
/* display: flex; */
/* width: 10em;
height: 10em;
border: 0.1em solid red;
.updata {
position: absolute;
width: 10em;
height: 10em;
z-index: 200; */
/* font-size: 0;
padding-left: 30%;
} */
.texttip {
margin-bottom: 3%;
}
.img {
/* position: absolute;
top: 0;
left: 0; */
width: 36%;
/* height: 10%; */
}
.upload-button {
padding: 6px 25px;
background: #00bfff;
border-radius: 4px;
color: white;
cursor: pointer;
}
input {
display: none;
}
.input-file-button {
font-size: 15px;
color: white;
background-color: #26a2ff;
border-radius: 4px;
padding: 8.3px;
margin-bottom: 22px;
}
</style>