diff --git a/src/api/achievement.js b/src/api/achievement.js new file mode 100644 index 0000000..8676ec0 --- /dev/null +++ b/src/api/achievement.js @@ -0,0 +1,37 @@ +import request from '../utils/request' + +export function listThemes() { + return request({ url: '/api/admin/achievement/themes', method: 'get' }) +} + +export function getTheme(id) { + return request({ url: `/api/admin/achievement/themes/${id}`, method: 'get' }) +} + +export function createTheme(data) { + return request({ url: '/api/admin/achievement/themes', method: 'post', data }) +} + +export function updateTheme(id, data) { + return request({ url: `/api/admin/achievement/themes/${id}`, method: 'put', data }) +} + +export function deleteTheme(id) { + return request({ url: `/api/admin/achievement/themes/${id}`, method: 'delete' }) +} + +export function listLevels(themeId) { + return request({ url: `/api/admin/achievement/themes/${themeId}/levels`, method: 'get' }) +} + +export function createLevel(data) { + return request({ url: '/api/admin/achievement/levels', method: 'post', data }) +} + +export function updateLevel(id, data) { + return request({ url: `/api/admin/achievement/levels/${id}`, method: 'put', data }) +} + +export function deleteLevel(id) { + return request({ url: `/api/admin/achievement/levels/${id}`, method: 'delete' }) +} diff --git a/src/api/dreamPreset.js b/src/api/dreamPreset.js new file mode 100644 index 0000000..1d757fd --- /dev/null +++ b/src/api/dreamPreset.js @@ -0,0 +1,17 @@ +import request from '../utils/request' + +export function listDreamPresets() { + return request({ url: '/api/admin/dream-presets', method: 'get' }) +} + +export function createDreamPreset(data) { + return request({ url: '/api/admin/dream-presets', method: 'post', data }) +} + +export function updateDreamPreset(id, data) { + return request({ url: `/api/admin/dream-presets/${id}`, method: 'put', data }) +} + +export function deleteDreamPreset(id) { + return request({ url: `/api/admin/dream-presets/${id}`, method: 'delete' }) +} diff --git a/src/router/index.js b/src/router/index.js index 22adb68..eb83d4a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -102,6 +102,18 @@ const routes = [ component: () => import('../views/smoke/index.vue'), meta: { title: '戒烟小程序', icon: 'Opportunity' } }, + { + path: 'achievement', + name: 'Achievement', + component: () => import('../views/achievement/index.vue'), + meta: { title: '成就管理', icon: 'Trophy' } + }, + { + path: 'dream-presets', + name: 'DreamPresets', + component: () => import('../views/dream-presets/index.vue'), + meta: { title: '梦想图标', icon: 'Flag' } + }, { path: 'settings', name: 'Settings', diff --git a/src/views/achievement/index.vue b/src/views/achievement/index.vue new file mode 100644 index 0000000..ed69328 --- /dev/null +++ b/src/views/achievement/index.vue @@ -0,0 +1,276 @@ + + + + + + 成就主题管理 + 新增主题 + + + + + + + + + + {{ row.levels?.length || 0 }} + + + + + {{ level.name }}({{ level.required_days }}天) → + + + + + + + + {{ row.is_active ? '启用' : '禁用' }} + + + + + + 管理等级 + 编辑 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + 取消 + 保存 + + + + + + + 新增等级 + + + + + + + + + 编辑 + 删除 + + + + + + + + + + + + + + + + + + + + 取消 + 保存 + + + + + + + + + diff --git a/src/views/dream-presets/index.vue b/src/views/dream-presets/index.vue new file mode 100644 index 0000000..0941118 --- /dev/null +++ b/src/views/dream-presets/index.vue @@ -0,0 +1,258 @@ + + + + + + 梦想目标图标管理 + 新增图标 + + + + + 用户添加梦想目标时,从此处配置的图标中选择。名称和价格由用户自行填写。 + + + + + + + + {{ row.cover_image.replace('icon:', '') }} + + + - + + + + + {{ row.title || '-' }} + + + + + + + {{ row.is_active ? '启用' : '禁用' }} + + + + + + 编辑 + + + 删除 + + + + + + + + + + + + + + + + {{ icon }} + + + + + + + + + {{ previewImage.replace('icon:', '') }} + + + + + + + + + + + + 取消 + 保存 + + + + + + + +