fix(update): 修复版本列表排序并改进Android包上传功能
- 将版本查询排序从versionCode改为createdAt以正确显示最新版本 - 为Android包上传表单添加已上传文件显示区域 - 实现删除已上传文件的功能以便重新上传 - 添加上传组件引用以支持文件清除操作 - 增加Document和Delete图标导入用于文件管理界面 - 添加已上传文件信息的样式和布局支持
这个提交包含在:
父节点
cfe8d19da9
当前提交
293df1f821
@ -797,6 +797,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="appUploadForm.platform === 'ANDROID'" label="包文件">
|
<el-form-item v-if="appUploadForm.platform === 'ANDROID'" label="包文件">
|
||||||
<el-upload
|
<el-upload
|
||||||
|
v-if="!appUploadForm.fileUrl"
|
||||||
|
ref="appUploadRef"
|
||||||
class="apk-dropzone"
|
class="apk-dropzone"
|
||||||
drag
|
drag
|
||||||
:auto-upload="false"
|
:auto-upload="false"
|
||||||
@ -814,6 +816,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
|
<div v-else class="uploaded-file-info">
|
||||||
|
<el-icon class="file-icon"><Document /></el-icon>
|
||||||
|
<span class="file-name">{{ appUploadForm.file?.name || '已上传文件' }}</span>
|
||||||
|
<el-button type="danger" link size="small" @click="removeUploadedFile">
|
||||||
|
<el-icon><Delete /></el-icon> 删除重新上传
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="appUploadForm.platform === 'ANDROID' && appPackageUploadProgress > 0" label="文件进度">
|
<el-form-item v-if="appUploadForm.platform === 'ANDROID' && appPackageUploadProgress > 0" label="文件进度">
|
||||||
<div class="upload-progress-block">
|
<div class="upload-progress-block">
|
||||||
@ -926,7 +935,7 @@
|
|||||||
import { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'
|
import { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'
|
||||||
import { useRoute, useRouter } from 'vue-router'
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import { CircleCheckFilled, Edit, Loading, UploadFilled, WarningFilled } from '@element-plus/icons-vue'
|
import { CircleCheckFilled, Delete, Document, Edit, Loading, UploadFilled, WarningFilled } from '@element-plus/icons-vue'
|
||||||
import { appApi, type App } from '@/api/app'
|
import { appApi, type App } from '@/api/app'
|
||||||
import { fileApi } from '@/api/file'
|
import { fileApi } from '@/api/file'
|
||||||
import { formatTime } from '@/utils/date'
|
import { formatTime } from '@/utils/date'
|
||||||
@ -1083,6 +1092,7 @@ const grayMemberIds = ref<string[]>([])
|
|||||||
const appPackageInspecting = ref(false)
|
const appPackageInspecting = ref(false)
|
||||||
const appPackageUploadProgress = ref(0)
|
const appPackageUploadProgress = ref(0)
|
||||||
const appVersionUploadProgress = ref(0)
|
const appVersionUploadProgress = ref(0)
|
||||||
|
const appUploadRef = ref<any>(null)
|
||||||
const rnInspectUploadProgress = ref(0)
|
const rnInspectUploadProgress = ref(0)
|
||||||
const rnBundleUploadProgress = ref(0)
|
const rnBundleUploadProgress = ref(0)
|
||||||
const operationLogs = ref<{
|
const operationLogs = ref<{
|
||||||
@ -1964,6 +1974,14 @@ async function onAppPackageChange(uploadFile: { raw?: File } | null) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function removeUploadedFile() {
|
||||||
|
appUploadForm.value.file = null
|
||||||
|
appUploadForm.value.fileUrl = ''
|
||||||
|
if (appUploadRef.value) {
|
||||||
|
appUploadRef.value.clearFiles?.()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function submitAppUpload() {
|
async function submitAppUpload() {
|
||||||
const f = appUploadForm.value
|
const f = appUploadForm.value
|
||||||
if (f.platform === 'ANDROID' && !f.fileUrl) return ElMessage.warning('请先选择 Android 安装包文件')
|
if (f.platform === 'ANDROID' && !f.fileUrl) return ElMessage.warning('请先选择 Android 安装包文件')
|
||||||
@ -3115,4 +3133,27 @@ onBeforeUnmount(() => {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Uploaded file info */
|
||||||
|
.uploaded-file-info {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
padding: 10px 14px;
|
||||||
|
background: var(--el-fill-color-light);
|
||||||
|
border-radius: 6px;
|
||||||
|
border: 1px solid var(--el-border-color-lighter);
|
||||||
|
}
|
||||||
|
.uploaded-file-info .file-icon {
|
||||||
|
font-size: 20px;
|
||||||
|
color: var(--el-color-primary);
|
||||||
|
}
|
||||||
|
.uploaded-file-info .file-name {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 14px;
|
||||||
|
color: var(--el-text-color-primary);
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户