From 0ec8df976c672e572a21309cf8ba81d73aa3dd42 Mon Sep 17 00:00:00 2001 From: hwj Date: Mon, 26 Jan 2026 16:02:37 +0800 Subject: [PATCH] =?UTF-8?q?style=EF=BC=9A=E5=8F=AF=E8=A7=86=E5=8C=96?= =?UTF-8?q?=E5=A4=A7=E5=B1=8F-=E5=A4=A7=E5=B1=8F=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BC=96=E8=BE=91=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/report/dashboardList/index.vue | 90 ++++++++++++++++++++---- 1 file changed, 76 insertions(+), 14 deletions(-) diff --git a/src/views/report/dashboardList/index.vue b/src/views/report/dashboardList/index.vue index b97115e6..c23a02ce 100644 --- a/src/views/report/dashboardList/index.vue +++ b/src/views/report/dashboardList/index.vue @@ -69,7 +69,7 @@ class="mb-16px" > -
+
- - 预览 - + +
+ + 编辑 + + + 删除 + +
+ +
@@ -107,7 +119,11 @@ - + @@ -142,7 +158,7 @@ @@ -157,6 +173,7 @@ import defaultImage from '@/assets/imgs/logo.png' defineOptions({ name: 'DashboardList' }) const { push } = useRouter() +const message = useMessage() interface DashboardItem { id: number @@ -165,6 +182,7 @@ interface DashboardItem { state: string indexImage?: string route?: string + content?: string } const loading = ref(false) @@ -184,6 +202,8 @@ const queryFormRef = ref() const createDialogVisible = ref(false) const createLoading = ref(false) const createFormRef = ref() +const dialogMode = ref<'create' | 'edit'>('create') +const editingId = ref(null) const createForm = reactive({ name: '', remark: '', @@ -219,7 +239,7 @@ const resetQuery = () => { const handlePreview = (item: DashboardItem) => { if (!item.route) { - useMessage().error('未配置预览路由') + message.error('未配置预览路由') return } const path = item.route.startsWith('/') ? item.route : `/${item.route}` @@ -236,22 +256,51 @@ const resetCreateForm = () => { } const openCreateDialog = () => { + dialogMode.value = 'create' + editingId.value = null resetCreateForm() createDialogVisible.value = true } -const submitCreate = async () => { +const openEditDialog = (item: DashboardItem) => { + dialogMode.value = 'edit' + editingId.value = item.id + createForm.name = item.name || '' + createForm.remark = item.remark || '' + createForm.state = item.state || '' + createForm.indexImage = item.indexImage || '' + createForm.route = item.route || '' + createForm.content = item.content || '' + createDialogVisible.value = true +} + +const submitDialog = async () => { if (!createForm.name) { - useMessage().error('名称不能为空') + message.error('名称不能为空') + return + } + if (dialogMode.value === 'edit' && !editingId.value) { + message.error('缺少数据编号,无法编辑') return } createLoading.value = true try { - await request.post({ - url: '/mes/goview/create', - data: createForm - }) - useMessage().success('新增成功') + if (dialogMode.value === 'create') { + await request.post({ + url: '/mes/goview/create', + data: createForm + }) + message.success('新增成功') + } else { + await request.put({ + url: '/mes/goview/update', + data: { + id: editingId.value, + ...createForm + } + }) + message.success('编辑成功') + } createDialogVisible.value = false handleQuery() } finally { @@ -259,6 +308,18 @@ const submitCreate = async () => { } } +const handleDelete = async (item: DashboardItem) => { + if (!item.id) return + try { + await message.delConfirm() + await request.delete({ + url: `/mes/goview/delete?id=${item.id}` + }) + message.success('删除成功') + await getList() + } catch {} +} + onMounted(() => { getList() }) @@ -279,6 +340,7 @@ onMounted(() => { width: 100%; padding-top: 56.25%; overflow: hidden; + cursor: pointer; } .dashboard-card-image {