2
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
|||||||
VITE_API_BASE_URL_DEV=http://localhost:12345
|
VITE_API_BASE_URL_DEV=https://share.lanol.cn
|
||||||
+39
-22
@@ -95,7 +95,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else key="text" class="grid grid-cols-1 gap-8">
|
<div v-else key="text" class="grid grid-cols-1 gap-8">
|
||||||
<!-- 文本��入区域 -->
|
<!-- 文本输入区域 -->
|
||||||
<div v-if="sendType === 'text'" class="flex flex-col">
|
<div v-if="sendType === 'text'" class="flex flex-col">
|
||||||
<textarea
|
<textarea
|
||||||
id="text-content"
|
id="text-content"
|
||||||
@@ -294,7 +294,7 @@
|
|||||||
class="text-2xl font-bold mb-6"
|
class="text-2xl font-bold mb-6"
|
||||||
:class="[isDarkMode ? 'text-white' : 'text-gray-800']"
|
:class="[isDarkMode ? 'text-white' : 'text-gray-800']"
|
||||||
>
|
>
|
||||||
文件详
|
文件详情
|
||||||
</h3>
|
</h3>
|
||||||
<div class="space-y-4">
|
<div class="space-y-4">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
@@ -436,7 +436,7 @@ const handleFileUpload = async (event: Event) => {
|
|||||||
if (target.files && target.files.length > 0) {
|
if (target.files && target.files.length > 0) {
|
||||||
selectedFile.value = target.files[0]
|
selectedFile.value = target.files[0]
|
||||||
fileHash.value = await calculateFileHash(selectedFile.value)
|
fileHash.value = await calculateFileHash(selectedFile.value)
|
||||||
startChunkUpload()
|
// startChunkUpload()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -575,7 +575,7 @@ const getUnit = () => {
|
|||||||
|
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
if (sendType.value === 'file' && !selectedFile.value) {
|
if (sendType.value === 'file' && !selectedFile.value) {
|
||||||
alertStore.showAlert('请选择要上传的件', 'error')
|
alertStore.showAlert('请选择要上传的文件', 'error')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (sendType.value === 'text' && !textContent.value.trim()) {
|
if (sendType.value === 'text' && !textContent.value.trim()) {
|
||||||
@@ -589,36 +589,50 @@ const handleSubmit = async () => {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
let response: any
|
let response: any
|
||||||
if (sendType.value === 'text') {
|
const formData = new FormData()
|
||||||
// 使用 FormData 发送文本
|
|
||||||
const formData = new FormData()
|
if (sendType.value === 'file') {
|
||||||
formData.append('text', textContent.value)
|
formData.append('file', selectedFile.value!)
|
||||||
if (expirationMethod.value !== 'forever') {
|
|
||||||
formData.append('expire_value', expirationValue.value)
|
|
||||||
}
|
|
||||||
formData.append('expire_style', expirationMethod.value)
|
|
||||||
response = await api.post('/share/text/', formData, {
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'multipart/form-data'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
// 处理文件上传的逻辑
|
// 创建一个文本文件并添加到 FormData
|
||||||
// ... 文件上传的代码 ...
|
const textBlob = new Blob([textContent.value], { type: 'text/plain' })
|
||||||
|
formData.append('file', textBlob, 'text_content.txt')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (expirationMethod.value !== 'forever') {
|
||||||
|
formData.append('expire_value', expirationValue.value)
|
||||||
|
}
|
||||||
|
formData.append('expire_style', expirationMethod.value)
|
||||||
|
|
||||||
|
// 添加上传进度监听
|
||||||
|
const config = {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'multipart/form-data'
|
||||||
|
},
|
||||||
|
onUploadProgress: (progressEvent: any) => {
|
||||||
|
const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total)
|
||||||
|
uploadProgress.value = percentCompleted
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
response = await api.post('/share/file/', formData, config)
|
||||||
|
|
||||||
if (response && response.code === 200) {
|
if (response && response.code === 200) {
|
||||||
const retrieveCode = response.detail.code
|
const retrieveCode = response.detail.code
|
||||||
|
const fileName = response.detail.name
|
||||||
// 添加新的发送记录
|
// 添加新的发送记录
|
||||||
const newRecord = {
|
const newRecord = {
|
||||||
id: Date.now(),
|
id: Date.now(),
|
||||||
filename: sendType.value === 'text' ? '文本内容.txt' : selectedFile.value!.name,
|
filename: fileName,
|
||||||
date: new Date().toISOString().split('T')[0],
|
date: new Date().toISOString().split('T')[0],
|
||||||
size:
|
size:
|
||||||
sendType.value === 'text'
|
sendType.value === 'text'
|
||||||
? '0.1 MB'
|
? `${(textContent.value.length / 1024).toFixed(2)} KB`
|
||||||
: `${(selectedFile.value!.size / (1024 * 1024)).toFixed(1)} MB`,
|
: `${(selectedFile.value!.size / (1024 * 1024)).toFixed(1)} MB`,
|
||||||
expiration: `${expirationValue.value}${getUnit()}后过期`,
|
expiration:
|
||||||
|
expirationMethod.value === 'forever'
|
||||||
|
? '永久'
|
||||||
|
: `${expirationValue.value}${getUnit()}后过期`,
|
||||||
retrieveCode: retrieveCode
|
retrieveCode: retrieveCode
|
||||||
}
|
}
|
||||||
fileDataStore.addShareData(newRecord)
|
fileDataStore.addShareData(newRecord)
|
||||||
@@ -642,6 +656,9 @@ const handleSubmit = async () => {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('发送失败:', error)
|
console.error('发送失败:', error)
|
||||||
alertStore.showAlert('发送失败,请稍后重试', 'error')
|
alertStore.showAlert('发送失败,请稍后重试', 'error')
|
||||||
|
} finally {
|
||||||
|
// 确保无论成功还是失败,最后都重置进度条
|
||||||
|
uploadProgress.value = 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user