@@ -926,7 +935,7 @@
import { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'
import { useRoute, useRouter } from 'vue-router'
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 { fileApi } from '@/api/file'
import { formatTime } from '@/utils/date'
@@ -1083,6 +1092,7 @@ const grayMemberIds = ref
([])
const appPackageInspecting = ref(false)
const appPackageUploadProgress = ref(0)
const appVersionUploadProgress = ref(0)
+const appUploadRef = ref(null)
const rnInspectUploadProgress = ref(0)
const rnBundleUploadProgress = ref(0)
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() {
const f = appUploadForm.value
if (f.platform === 'ANDROID' && !f.fileUrl) return ElMessage.warning('请先选择 Android 安装包文件')
@@ -3115,4 +3133,27 @@ onBeforeUnmount(() => {
display: flex;
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;
+}