style(webui): Oxc format 已有代码

This commit is contained in:
2026-05-24 16:50:44 +08:00
parent ab396b01f2
commit 3117af670b
31 changed files with 559 additions and 468 deletions
+29 -18
View File
@@ -1,29 +1,29 @@
<script setup lang="ts">
import {selectFilesCom} from "@/components/file/upload-files.js";
import {computed, ref, watch} from "vue";
import type {UploadFileDto} from "@/types/user.js";
import {useMessage} from "naive-ui";
import { selectFilesCom } from '@/components/file/upload-files.js'
import { computed, ref, watch } from 'vue'
import type { UploadFileDto } from '@/types/user.js'
import { useMessage } from 'naive-ui'
const MESSAGE = useMessage()
const {max, extensions, loadFiles} = defineProps<{
const { max, extensions, loadFiles } = defineProps<{
max: number
extensions: string[]
loadFiles: () => Promise<UploadFileDto[]>
}>()
const showModal = defineModel("showModal", {required: true})
const showModal = defineModel('showModal', { required: true })
const files = ref<UploadFileDto[]>([])
const tempFiles = ref<UploadFileDto[]>([])
const selectFiles = defineModel<UploadFileDto[]>("selectFiles", {required: true})
const selectFiles = defineModel<UploadFileDto[]>('selectFiles', { required: true })
function selectFile(file: UploadFileDto) {
if (tempFiles.value.length < max) {
tempFiles.value.push(file)
return true
} else {
MESSAGE.warning("可选择文件数量达到上限……")
MESSAGE.warning('可选择文件数量达到上限……')
return false
}
}
@@ -37,31 +37,42 @@ function removeFile(file: UploadFileDto) {
}
watch(showModal, async () => {
tempFiles.value = [] // 每次打开模态框时都重置已选文件
tempFiles.value = [] // 每次打开模态框时都重置已选文件
files.value = await loadFiles()
})
const tip_1 = computed(() => max > 1 ? `请选择至少 ${max} 个文件。` : "请选择一个文件。")
const tip_1 = computed(() => (max > 1 ? `请选择至少 ${max} 个文件。` : '请选择一个文件。'))
const tip_2 = computed(() => `允许的文件类型:${extensions.join('、')}`)
</script>
<template>
<n-modal preset="card" style="max-width: 600px; max-height: 600px;" title="选择文件"
content-scrollable
v-model:show="showModal">
<n-modal
preset="card"
style="max-width: 600px; max-height: 600px"
title="选择文件"
content-scrollable
v-model:show="showModal"
>
<n-flex vertical>
<n-alert type="info">
{{ tip_1 }}
{{ tip_2 }}
</n-alert>
<component :is="selectFilesCom(files, selectFile, removeFile)"/>
<n-button type="primary" secondary @click="selectFiles = tempFiles; showModal = false;">
<component :is="selectFilesCom(files, selectFile, removeFile)" />
<n-button
type="primary"
secondary
@click="
() => {
selectFiles = tempFiles
showModal = false
}
"
>
确认选择
</n-button>
</n-flex>
</n-modal>
</template>
<style scoped>
</style>
<style scoped></style>