diff --git a/README.md b/README.md index e4373b8..46444d1 100644 --- a/README.md +++ b/README.md @@ -17,14 +17,18 @@ npm run build ## 当前已完成 -- 管理员登录(`/api/admin/login`) -- 管理员信息(`/api/admin/profile`) -- 数据看板(总览、小程序统计、用户增长) +- 管理员登录与认证(`/api/admin/login`、`/api/admin/profile`) +- 后台基础布局(顶部导航、侧边栏、移动端适配) +- 数据看板(总览、小程序统计、用户增长图表) - 小程序管理(列表、新增、编辑、删除) +- 用户管理(列表、筛选、详情) +- 会员管理页面骨架与兑换码管理交互 +- 保质期管理页面(总览、列表、增删改、状态流转) +- 去水印管理页面(任务总览与列表) +- 系统设置页面(资料/密码/系统参数) ## 待开发 -- 用户管理 -- 会员管理 -- 保质期管理 -- 系统设置 +- 会员、保质期、去水印、系统设置接口联调 +- 会员管理的记录详情与批量操作 +- 系统设置中的操作日志查询 diff --git a/src/api/expiry.js b/src/api/expiry.js new file mode 100644 index 0000000..0efd459 --- /dev/null +++ b/src/api/expiry.js @@ -0,0 +1,47 @@ +import request from '../utils/request' + +export function getExpirySummary() { + return request({ + url: '/api/admin/expiry/summary', + method: 'get' + }) +} + +export function getExpiryItems(params) { + return request({ + url: '/api/admin/expiry/items', + method: 'get', + params + }) +} + +export function createExpiryItem(data) { + return request({ + url: '/api/admin/expiry/items', + method: 'post', + data + }) +} + +export function updateExpiryItem(id, data) { + return request({ + url: `/api/admin/expiry/items/${id}`, + method: 'put', + data + }) +} + +export function deleteExpiryItem(id) { + return request({ + url: `/api/admin/expiry/items/${id}`, + method: 'delete' + }) +} + +export function updateExpiryItemStatus(id, status) { + return request({ + url: `/api/admin/expiry/items/${id}/status`, + method: 'post', + data: { status } + }) +} diff --git a/src/api/membership.js b/src/api/membership.js new file mode 100644 index 0000000..d417393 --- /dev/null +++ b/src/api/membership.js @@ -0,0 +1,32 @@ +import request from '../utils/request' + +export function getMembershipOverview() { + return request({ + url: '/api/admin/memberships/overview', + method: 'get' + }) +} + +export function getMembershipRedeemCodes(params) { + return request({ + url: '/api/admin/memberships/redeem-codes', + method: 'get', + params + }) +} + +export function createMembershipRedeemCodes(data) { + return request({ + url: '/api/admin/memberships/redeem-codes', + method: 'post', + data + }) +} + +export function updateMembershipRedeemCodeStatus(id, data) { + return request({ + url: `/api/admin/memberships/redeem-codes/${id}/status`, + method: 'post', + data + }) +} diff --git a/src/api/settings.js b/src/api/settings.js new file mode 100644 index 0000000..1e9f879 --- /dev/null +++ b/src/api/settings.js @@ -0,0 +1,39 @@ +import request from '../utils/request' + +export function getAdminSettings() { + return request({ + url: '/api/admin/settings', + method: 'get' + }) +} + +export function updateAdminProfile(data) { + return request({ + url: '/api/admin/settings/profile', + method: 'put', + data + }) +} + +export function updateAdminPassword(data) { + return request({ + url: '/api/admin/settings/password', + method: 'put', + data + }) +} + +export function getSystemConfig() { + return request({ + url: '/api/admin/settings/system', + method: 'get' + }) +} + +export function updateSystemConfig(data) { + return request({ + url: '/api/admin/settings/system', + method: 'put', + data + }) +} diff --git a/src/api/watermark.js b/src/api/watermark.js new file mode 100644 index 0000000..3a64ee3 --- /dev/null +++ b/src/api/watermark.js @@ -0,0 +1,30 @@ +import request from '../utils/request' + +export function getWatermarkOverview() { + return request({ + url: '/api/admin/watermark/overview', + method: 'get' + }) +} + +export function getWatermarkTasks(params) { + return request({ + url: '/api/admin/watermark/tasks', + method: 'get', + params + }) +} + +export function retryWatermarkTask(id) { + return request({ + url: `/api/admin/watermark/tasks/${id}/retry`, + method: 'post' + }) +} + +export function deleteWatermarkTask(id) { + return request({ + url: `/api/admin/watermark/tasks/${id}`, + method: 'delete' + }) +} diff --git a/src/views/expiry/index.vue b/src/views/expiry/index.vue index 74dc87d..a715c72 100644 --- a/src/views/expiry/index.vue +++ b/src/views/expiry/index.vue @@ -1,8 +1,476 @@ - - - 保质期管理 - - - + + + + + {{ summary.total_items || 0 }} + 物品总数 + + + + + {{ summary.expiring_soon || 0 }} + 即将过期 + + + + + {{ summary.expired || 0 }} + 已过期 + + + + + {{ summary.normal || 0 }} + 正常 + + + + + {{ summary.used || 0 }} + 已使用 + + + + + {{ summary.discarded || 0 }} + 已丢弃 + + + + + + + + + + + + + + + + + + + + + + + 搜索 + 重置 + + 新增物品 + + + + + + + + + {{ categoryText(row.category) }} + + + + + {{ formatDate(row.expiry_date) }} + + + + + {{ row.days_left ?? '-' }} + + + + + + + {{ statusText(row.status) }} + + + + + {{ formatDateTime(row.created_at) }} + + + + + 编辑 + + 标记已使用 + + + 标记丢弃 + + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取消 + 保存 + + + + + + + diff --git a/src/views/memberships/index.vue b/src/views/memberships/index.vue index 93ba79d..b5f6fae 100644 --- a/src/views/memberships/index.vue +++ b/src/views/memberships/index.vue @@ -1,8 +1,385 @@ - - - 会员管理 - - - + + + + + {{ overview.total_members || 0 }} + 会员总数 + + + + + {{ overview.active_members || 0 }} + 有效会员 + + + + + {{ overview.expiring_soon || 0 }} + 7天内到期 + + + + + {{ overview.today_redeemed || 0 }} + 今日兑换 + + + + + + + + + + + + + + + + + + 搜索 + 重置 + + 生成兑换码 + + + + + + + + + {{ row.mini_program_name || row.mini_program?.name || '-' }} + + + + + {{ row.package_type || row.plan_name || '-' }} + + + + + {{ row.duration_days || '-' }} + + + + + {{ row.used_count || 0 }}/{{ row.max_uses || 1 }} + + + + + + {{ statusText(row.status) }} + + + + + + {{ formatDateTime(row.expires_at) }} + + + + + {{ formatDateTime(row.created_at) }} + + + + + + 停用 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取消 + 生成 + + + + + + + diff --git a/src/views/settings/index.vue b/src/views/settings/index.vue index b5d4c17..a9dbd44 100644 --- a/src/views/settings/index.vue +++ b/src/views/settings/index.vue @@ -3,6 +3,235 @@ 系统设置 - + + + + + + + + + + + + + + + + + + + + + + + + 保存资料 + + + + + + + + + + + + + + + + + + 更新密码 + + + + + + + + + + + + + + + + + + + + + + + + 保存参数 + + + + + + diff --git a/src/views/watermark/index.vue b/src/views/watermark/index.vue index 9d44cef..db092ca 100644 --- a/src/views/watermark/index.vue +++ b/src/views/watermark/index.vue @@ -1,8 +1,326 @@ - - - 去水印管理 - - - + + + + + {{ overview.total_tasks || 0 }} + 总任务数 + + + + + {{ overview.success_tasks || 0 }} + 成功任务 + + + + + {{ overview.processing_tasks || 0 }} + 处理中 + + + + + {{ overview.failed_tasks || 0 }} + 失败任务 + + + + + + + + + + + + + + + + + + 搜索 + 重置 + + 刷新 + + + + + + + + {{ row.mini_program_name || row.mini_program?.name || '-' }} + + + + + {{ row.platform || '-' }} + + + + + + {{ row.source_url || '-' }} + + + + + + + 查看无水印链接 + + - + + + + + {{ row.duration_ms || '-' }} + + + + + {{ statusText(row.status) }} + + + + + {{ row.error_message || row.fail_reason || '-' }} + + + + + {{ formatDateTime(row.created_at) }} + + + + + + 重试 + + 删除 + + + + + + + + + + + + +