更改文件上传以及登录
This commit is contained in:
@@ -346,7 +346,7 @@ const handleQrUploadSuccess = (response, type) => {
|
|||||||
unionpay: 'unionpayQr'
|
unionpay: 'unionpayQr'
|
||||||
}
|
}
|
||||||
|
|
||||||
form[fieldMap[type]] = response.url
|
form[fieldMap[type]] = response.data.url
|
||||||
ElMessage.success('收款码上传成功')
|
ElMessage.success('收款码上传成功')
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(response.message || '上传失败')
|
ElMessage.error(response.message || '上传失败')
|
||||||
@@ -403,8 +403,10 @@ const beforeDocumentUpload = (file) => {
|
|||||||
* @param {string} type - 证件类型 (businessLicense/idCardFront/idCardBack)
|
* @param {string} type - 证件类型 (businessLicense/idCardFront/idCardBack)
|
||||||
*/
|
*/
|
||||||
const handleDocumentUploadSuccess = (response, type) => {
|
const handleDocumentUploadSuccess = (response, type) => {
|
||||||
|
console.log(response, 'response');
|
||||||
|
|
||||||
if (response.success) {
|
if (response.success) {
|
||||||
form[type] = response.url
|
form[type] = response.data.url
|
||||||
const typeNames = {
|
const typeNames = {
|
||||||
businessLicense: '营业执照',
|
businessLicense: '营业执照',
|
||||||
idCardFront: '身份证正面',
|
idCardFront: '身份证正面',
|
||||||
|
|||||||
@@ -156,11 +156,11 @@ const handleLogin = async () => {
|
|||||||
if (!valid) return
|
if (!valid) return
|
||||||
|
|
||||||
// 验证验证码
|
// 验证验证码
|
||||||
const captchaValid = await captchaRef.value.verifyCaptcha(loginForm.captcha)
|
// const captchaValid = await captchaRef.value.verifyCaptcha(loginForm.captcha)
|
||||||
if (!captchaValid) {
|
// if (!captchaValid) {
|
||||||
loginForm.captcha = ''
|
// loginForm.captcha = ''
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 获取验证码信息
|
// 获取验证码信息
|
||||||
const captchaInfo = captchaRef.value.getCaptchaInfo()
|
const captchaInfo = captchaRef.value.getCaptchaInfo()
|
||||||
|
|||||||
@@ -330,10 +330,19 @@
|
|||||||
:before-upload="beforeUpload"
|
:before-upload="beforeUpload"
|
||||||
:on-success="handleUploadSuccess"
|
:on-success="handleUploadSuccess"
|
||||||
:on-error="handleUploadError"
|
:on-error="handleUploadError"
|
||||||
|
:on-progress="handleUploadProgress"
|
||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
|
:disabled="transferDialog.uploading"
|
||||||
accept="image/*"
|
accept="image/*"
|
||||||
>
|
>
|
||||||
<el-button size="small" type="primary">上传凭证</el-button>
|
<el-button
|
||||||
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
:loading="transferDialog.uploading"
|
||||||
|
:disabled="transferDialog.uploading"
|
||||||
|
>
|
||||||
|
{{ transferDialog.uploading ? '上传中...' : '上传凭证' }}
|
||||||
|
</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<div v-if="transferDialog.voucher" class="upload-preview">
|
<div v-if="transferDialog.voucher" class="upload-preview">
|
||||||
<el-image
|
<el-image
|
||||||
@@ -341,13 +350,25 @@
|
|||||||
:preview-src-list="[getImageUrl(transferDialog.voucher)]"
|
:preview-src-list="[getImageUrl(transferDialog.voucher)]"
|
||||||
alt="转账凭证"
|
alt="转账凭证"
|
||||||
fit="cover"
|
fit="cover"
|
||||||
|
:lazy="true"
|
||||||
>
|
>
|
||||||
|
<template #placeholder>
|
||||||
|
<div class="image-slot">
|
||||||
|
<el-icon class="is-loading"><Loading /></el-icon>
|
||||||
|
<span>加载中...</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
<template #error>
|
<template #error>
|
||||||
<div>
|
<div class="image-slot error">
|
||||||
<el-icon><Picture /></el-icon>
|
<el-icon><Picture /></el-icon>
|
||||||
|
<span>图片加载失败</span>
|
||||||
|
<el-button size="small" type="text" @click="reloadImage">重新加载</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-image>
|
</el-image>
|
||||||
|
<div class="upload-actions">
|
||||||
|
<el-button size="small" type="danger" @click="removeVoucher">删除</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="upload-tip">
|
<div v-else class="upload-tip">
|
||||||
<span class="tip-text">* 必须上传转账凭证才能确认转账</span>
|
<span class="tip-text">* 必须上传转账凭证才能确认转账</span>
|
||||||
@@ -398,12 +419,13 @@
|
|||||||
<script>
|
<script>
|
||||||
import api from '../utils/api'
|
import api from '../utils/api'
|
||||||
import { uploadURL, getImageUrl, getUploadConfig } from '@/config'
|
import { uploadURL, getImageUrl, getUploadConfig } from '@/config'
|
||||||
import { Picture } from '@element-plus/icons-vue'
|
import { Picture, Loading } from '@element-plus/icons-vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Matching',
|
name: 'Matching',
|
||||||
components: {
|
components: {
|
||||||
Picture
|
Picture,
|
||||||
|
Loading
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -433,7 +455,8 @@ export default {
|
|||||||
amount: 0,
|
amount: 0,
|
||||||
actualAmount: 0,
|
actualAmount: 0,
|
||||||
voucher: '',
|
voucher: '',
|
||||||
description: ''
|
description: '',
|
||||||
|
uploading: false // 添加上传状态
|
||||||
},
|
},
|
||||||
showLargeMatchingConfirm: false,
|
showLargeMatchingConfirm: false,
|
||||||
tempMatchingType: 'small' // 临时存储切换前的类型
|
tempMatchingType: 'small' // 临时存储切换前的类型
|
||||||
@@ -750,6 +773,7 @@ export default {
|
|||||||
this.transferDialog.actualAmount = 0
|
this.transferDialog.actualAmount = 0
|
||||||
this.transferDialog.voucher = ''
|
this.transferDialog.voucher = ''
|
||||||
this.transferDialog.description = ''
|
this.transferDialog.description = ''
|
||||||
|
this.transferDialog.uploading = false // 重置上传状态
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -772,11 +796,25 @@ export default {
|
|||||||
|
|
||||||
if (!isImage) {
|
if (!isImage) {
|
||||||
this.$message.error('只能上传图片文件!')
|
this.$message.error('只能上传图片文件!')
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
if (!isLt5M) {
|
if (!isLt5M) {
|
||||||
this.$message.error('图片大小不能超过 5MB!')
|
this.$message.error('图片大小不能超过 5MB!')
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
return isImage && isLt5M
|
|
||||||
|
// 开始上传,设置上传状态
|
||||||
|
this.transferDialog.uploading = true
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传进度处理
|
||||||
|
* @param {Object} event - 进度事件
|
||||||
|
*/
|
||||||
|
handleUploadProgress(event) {
|
||||||
|
// 可以在这里添加进度条显示
|
||||||
|
console.log('上传进度:', Math.round(event.percent) + '%')
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -784,11 +822,34 @@ export default {
|
|||||||
* @param {Object} response - 上传响应
|
* @param {Object} response - 上传响应
|
||||||
*/
|
*/
|
||||||
handleUploadSuccess(response) {
|
handleUploadSuccess(response) {
|
||||||
if (response.success) {
|
console.log('上传响应:', response) // 添加调试信息
|
||||||
this.transferDialog.voucher = response.url
|
|
||||||
|
// 重置上传状态
|
||||||
|
this.transferDialog.uploading = false
|
||||||
|
|
||||||
|
// 兼容不同的响应格式
|
||||||
|
let success = false
|
||||||
|
let imageUrl = ''
|
||||||
|
let message = ''
|
||||||
|
|
||||||
|
if (response) {
|
||||||
|
// 检查多种可能的成功标识
|
||||||
|
success = response.success === true || response.code === 200 || response.status === 'success'
|
||||||
|
|
||||||
|
// 检查多种可能的图片URL字段
|
||||||
|
imageUrl = response.url || response.data?.url || response.file_url || response.path || response.data?.path
|
||||||
|
|
||||||
|
// 检查错误信息
|
||||||
|
message = response.message || response.msg || response.data?.message
|
||||||
|
}
|
||||||
|
|
||||||
|
if (success && imageUrl) {
|
||||||
|
this.transferDialog.voucher = imageUrl
|
||||||
this.$message.success('凭证上传成功')
|
this.$message.success('凭证上传成功')
|
||||||
|
console.log('图片URL已设置:', imageUrl) // 调试信息
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(response.message || '上传失败')
|
console.error('上传失败,响应数据:', response) // 调试信息
|
||||||
|
this.$message.error(message || '上传失败,请检查网络连接或联系管理员')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -797,8 +858,37 @@ export default {
|
|||||||
* @param {Error} error - 错误信息
|
* @param {Error} error - 错误信息
|
||||||
*/
|
*/
|
||||||
handleUploadError(error) {
|
handleUploadError(error) {
|
||||||
|
// 重置上传状态
|
||||||
|
this.transferDialog.uploading = false
|
||||||
|
|
||||||
console.error('上传失败:', error)
|
console.error('上传失败:', error)
|
||||||
this.$message.error('上传失败')
|
this.$message.error('上传失败,请检查网络连接后重试')
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除已上传的凭证
|
||||||
|
*/
|
||||||
|
removeVoucher() {
|
||||||
|
this.$confirm('确定要删除已上传的凭证吗?', '确认删除', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
this.transferDialog.voucher = ''
|
||||||
|
this.$message.success('凭证已删除')
|
||||||
|
}).catch(() => {})
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重新加载图片
|
||||||
|
*/
|
||||||
|
reloadImage() {
|
||||||
|
// 强制重新加载图片,通过添加时间戳
|
||||||
|
const currentVoucher = this.transferDialog.voucher
|
||||||
|
this.transferDialog.voucher = ''
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.transferDialog.voucher = currentVoucher
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1712,6 +1802,58 @@ export default {
|
|||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.upload-preview {
|
||||||
|
margin-top: 15px;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 10px;
|
||||||
|
background: #fafafa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-preview .el-image {
|
||||||
|
width: 200px;
|
||||||
|
height: 150px;
|
||||||
|
border-radius: 6px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-slot {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 100%;
|
||||||
|
color: #909399;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-slot.error {
|
||||||
|
color: #f56c6c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-slot .el-icon {
|
||||||
|
font-size: 24px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-actions {
|
||||||
|
margin-top: 10px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.is-loading {
|
||||||
|
animation: rotating 2s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes rotating {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* 超时警告样式 */
|
/* 超时警告样式 */
|
||||||
.timeout-warning {
|
.timeout-warning {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
Reference in New Issue
Block a user