From 1bd03f5c2e7b9fa9cc80c4e673e18132da411333 Mon Sep 17 00:00:00 2001
From: jhzh <1628036192@qq.com>
Date: Wed, 12 Nov 2025 16:21:06 +0800
Subject: [PATCH] 1
---
src/page/authentication/index.vue | 123 +++++++++++++++++++++++++++++++++-------
1 files changed, 101 insertions(+), 22 deletions(-)
diff --git a/src/page/authentication/index.vue b/src/page/authentication/index.vue
index 3b768aa..92c7008 100644
--- a/src/page/authentication/index.vue
+++ b/src/page/authentication/index.vue
@@ -6,6 +6,10 @@
<div style="width: 100%; height: .25em; background-color: #777"></div>
+ <div class="shjj" v-if="$store.state.userInfo.isActive == 3">
+ {{ $t('shjj') }}: {{ $store.state.userInfo.authMsg }}
+ </div>
+
<div class="form-group" :class="{ 'disabled': isSubmitting || isActive }">
<label class="required-label">{{ $t('hj195') }}</label>
<input type="text" v-model="form.name" class="form-input" :disabled="isActive" />
@@ -14,9 +18,7 @@
<div class="form-group" :class="{ 'disabled': isSubmitting || isActive }">
<label class="required-label">{{ $t('it1') }}</label>
<van-radio-group v-model="auRadio" direction="horizontal" disabled style="font-size: 3.5vw;margin-top: 1em;">
- <van-radio name="1">{{ $t('dl1') }}</van-radio>
- <van-radio name="2">{{ $t('pa1') }}</van-radio>
- <van-radio name="3">{{ $t('ot1') }}</van-radio>
+ <van-radio name="1">{{ $t('hj196') }}</van-radio>
</van-radio-group>
</div>
@@ -35,7 +37,7 @@
<div class="form-group flex-between" :class="{ 'disabled': isSubmitting || isActive }">
<label class="required-label">{{ $t('fsi1') }}</label>
- <el-upload :with-credentials="true" class="avatar-uploader" :action="admin + 'user/upload.do'"
+ <el-upload :with-credentials="true" class="avatar-uploader" :action="admin + '/user/upload.do'"
list-type="picture-card" name="upload_file" :show-file-list="false" :on-success="handleAvatarSuccess"
:on-error="handleError" :before-upload="beforeAvatarUpload" :disabled="isActive">
<img v-if="form.img1key" :src="form.img1key" class="id-img avatar" style="width: 100%; height: 100%" />
@@ -46,7 +48,7 @@
<div class="form-group flex-between" :class="{ 'disabled': isSubmitting || isActive }">
<label class="required-label">{{ $t('bsi1') }}</label>
- <el-upload :with-credentials="true" class="avatar-uploader" :action="admin + 'user/upload.do'"
+ <el-upload :with-credentials="true" class="avatar-uploader" :action="admin + '/user/upload.do'"
list-type="picture-card" name="upload_file" :show-file-list="false" :on-success="handleAvatarSuccess2"
:on-error="handleError2" :before-upload="beforeAvatarUpload2" :disabled="isActive">
<img v-if="form.img2key" :src="form.img2key" class="id-img avatar" style="width: 100%; height: 100%" />
@@ -57,7 +59,9 @@
<div style="width: 100%; height: .25em; background-color: #777"></div>
<div class="submit-button" :class="{ 'disabled': isSubmitting || isActive }" @click="toSure">
- <span>{{ $t("uv1") }}</span>
+ <span>
+ {{ isSubmitting || isActive ? $store.state.userInfo.isActive == 2 ? $t('sptg') : $t("uv1") : $t('hj161') }}
+ </span>
</div>
</div>
</template>
@@ -85,6 +89,9 @@
img2key: "",
},
imgStatus: false,
+ imgStatus2: false,
+ previousImg1key: '',
+ previousImg2key: '',
admin: apiUrl.baseURL,
}
},
@@ -116,6 +123,15 @@
} else if (!this.form.img2key) {
Toast(this.$t("hj209"));
} else {
+ // 验证图片地址是否为有效的网络地址
+ if (this.form.img1key && this.form.img1key.startsWith('blob:')) {
+ Toast('请等待图片上传完成');
+ return;
+ }
+ if (this.form.img2key && this.form.img2key.startsWith('blob:')) {
+ Toast('请等待图片上传完成');
+ return;
+ }
// 显示确认弹窗
this.toAuthentication();
}
@@ -148,17 +164,13 @@
this.$store.commit("dialogVisible", false);
this.$store.state.userInfo = data.data;
this.userInfo = data.data;
- if (
- this.$store.state.userInfo.isActive === 1 ||
- this.$store.state.userInfo.isActive === 2
- ) {
- this.form.idCard = this.$store.state.userInfo.idCard;
- this.form.vaildNumber = this.$store.state.userInfo.vaildNumber;
- this.form.name = this.$store.state.userInfo.realName;
- this.form.img1key = this.$store.state.userInfo.img1Key;
- this.form.img2key = this.$store.state.userInfo.img2Key;
- this.showBtn = false;
- }
+ // 回填数据
+ this.form.idCard = this.$store.state.userInfo.idCard;
+ this.form.vaildNumber = this.$store.state.userInfo.vaildNumber;
+ this.form.name = this.$store.state.userInfo.realName;
+ this.form.img1key = this.$store.state.userInfo.img1Key;
+ this.form.img2key = this.$store.state.userInfo.img2Key;
+ this.showBtn = false;
} else {
//this.$store.commit('dialogVisible',true);
//跳转到login
@@ -167,31 +179,92 @@
},
handleAvatarSuccess(res, file) {
this.imgStatus = false;
- this.form.img1key = res.data.url;
+ // 确保返回的是有效的网络图片地址,而不是临时 blob URL
+ if (res && res.data && res.data.url) {
+ // 验证 URL 是否为网络地址(不是 blob URL)
+ if (res.data.url.startsWith('http://') || res.data.url.startsWith('https://')) {
+ this.form.img1key = res.data.url;
+ } else {
+ // 如果返回的不是完整 URL,可能是相对路径,需要拼接 baseURL
+ this.form.img1key = this.admin.replace(/\/$/, '') + '/' + res.data.url.replace(/^\//, '');
+ }
+ } else {
+ // 如果响应格式不正确,恢复之前的值
+ if (this.previousImg1key) {
+ this.form.img1key = this.previousImg1key;
+ }
+ Toast(this.$t("hj209") || '图片上传失败,请重试');
+ }
},
beforeAvatarUpload(file) {
this.imgStatus = true;
+ // 保存之前的图片地址,如果上传失败可以恢复
+ this.previousImg1key = this.form.img1key;
+ return true;
},
handleError() {
this.imgStatus = false;
+ // 上传失败时,恢复之前的图片地址(如果有)
+ if (this.previousImg1key) {
+ this.form.img1key = this.previousImg1key;
+ } else {
+ // 如果没有之前的地址,清空并清理可能的临时 URL
+ if (this.form.img1key && this.form.img1key.startsWith('blob:')) {
+ URL.revokeObjectURL(this.form.img1key);
+ this.form.img1key = '';
+ }
+ }
+ Toast(this.$t("hj209") || '图片上传失败,请重试');
},
handleAvatarSuccess2(res, file) {
this.imgStatus2 = false;
- this.form.img2key = res.data.url; // URL.createObjectURL(file.raw);
+ // 确保返回的是有效的网络图片地址,而不是临时 blob URL
+ if (res && res.data && res.data.url) {
+ // 验证 URL 是否为网络地址(不是 blob URL)
+ if (res.data.url.startsWith('http://') || res.data.url.startsWith('https://')) {
+ this.form.img2key = res.data.url;
+ } else {
+ // 如果返回的不是完整 URL,可能是相对路径,需要拼接 baseURL
+ this.form.img2key = this.admin.replace(/\/$/, '') + '/' + res.data.url.replace(/^\//, '');
+ }
+ } else {
+ // 如果响应格式不正确,恢复之前的值
+ if (this.previousImg2key) {
+ this.form.img2key = this.previousImg2key;
+ }
+ Toast(this.$t("hj209") || '图片上传失败,请重试');
+ }
},
beforeAvatarUpload2(file) {
this.imgStatus2 = true;
const isLt10M = file.size / 1024 / 1024 < 10;
if (!isLt10M) {
this.$message.error(this.$t("hj205"));
+ this.imgStatus2 = false;
return false;
- } else {
- this.form.img2key = URL.createObjectURL(file);
- compress(file, function (val) { });
}
+ // 保存之前的图片地址,如果上传失败可以恢复
+ this.previousImg2key = this.form.img2key;
+ // 不再设置临时 blob URL,等待上传成功后再设置
+ compress(file, function (val) { });
+ return true;
},
handleError2() {
this.imgStatus2 = false;
+ // 上传失败时,恢复之前的图片地址(如果有)
+ if (this.previousImg2key) {
+ this.form.img2key = this.previousImg2key;
+ } else {
+ // 如果没有之前的地址,清空并清理可能的临时 URL
+ if (this.form.img2key && this.form.img2key.startsWith('blob:')) {
+ URL.revokeObjectURL(this.form.img2key);
+ this.form.img2key = '';
+ }
+ }
+ Toast(this.$t("hj209") || '图片上传失败,请重试');
+ },
+ goBack() {
+ this.$router.go(-1);
},
}
}
@@ -221,6 +294,12 @@
display: none;
}
+.shjj {
+ font-size: .4rem;
+ color: red;
+ padding: .2rem;
+}
+
.authentication-container {
/* padding: 20px; */
// background-color: #ffffff;
--
Gitblit v1.9.3