chore: 整合部署文件与管理端源码入仓

- deploy/server.Dockerfile、deploy/client-h5.Dockerfile(自 ai-art 仓库迁出,去重)
- docker-compose.yml 迁入并修正路径(admin 上下文 ./admin),新增可选 h5 服务(profile 隔离)
- admin/:管理前端完整源码(Vite+Vue3,自 workspace/dimension-admin 合并)
This commit is contained in:
2026-09-12 22:34:52 +08:00
parent 92d54adabb
commit 8c33617073
18 changed files with 1877 additions and 1 deletions
+26
View File
@@ -0,0 +1,26 @@
<template>
<div>
<div class="head"><h2>反馈管理</h2></div>
<el-table :data="list">
<el-table-column prop="content" label="内容" show-overflow-tooltip />
<el-table-column prop="user" label="用户" width="120" />
<el-table-column label="状态" width="90">
<template #default="{row}"><el-tag :type="row.status==='resolved'?'success':'info'" size="small">{{ row.status==='resolved'?'已处理':'待处理' }}</el-tag></template>
</el-table-column>
<el-table-column prop="createdAt" label="时间" width="160"><template #default="{row}">{{ row.createdAt?.slice(0,10) }}</template></el-table-column>
<el-table-column label="操作" width="100">
<template #default="{row}"><el-button size="small" type="danger" plain @click="del(row)">删除</el-button></template>
</el-table-column>
</el-table>
</div>
</template>
<script setup>
import { onMounted, ref } from 'vue'
import { ElMessageBox } from 'element-plus'
import { apiGet } from '../api'
const list = ref([])
async function load() { const r = await apiGet('/api/admin/feedback'); list.value = r.feedbacks || r.data || [] }
async function del(row) { await ElMessageBox.confirm('确认删除?'); await apiDelete(`/api/admin/feedback/${row._id}`); load() }
async function apiDelete(url) { await fetch(url, { method: 'DELETE', headers: { Authorization: `Bearer ${localStorage.getItem('dim_admin_token')}` } }) }
onMounted(load)
</script>