diff --git a/internal/model/merchant.go b/internal/model/merchant.go new file mode 100644 index 0000000..71ac5ed --- /dev/null +++ b/internal/model/merchant.go @@ -0,0 +1,6 @@ +type StoreData struct { + g.Meta `orm:"table:stores"` + Id int `json:"id" orm:"id"` + MerchantId int `json:"merchantId" orm:"merchant_id"` + StoreName string `json:"storeName" orm:"name"` +} \ No newline at end of file diff --git a/src/api/feedback.js b/src/api/feedback.js index 340f980..372a41c 100644 --- a/src/api/feedback.js +++ b/src/api/feedback.js @@ -7,4 +7,19 @@ export function feedbackList(params) { method: 'get', params }) +} + +export function feedbackDetail(id) { + return request({ + url: `/x/feedback/${id}`, + method: 'get' + }) +} + +export function feedbackReply(data) { + return request({ + url: '/x/feedback/reply', + method: 'put', + data + }) } \ No newline at end of file diff --git a/src/api/game.js b/src/api/game.js new file mode 100644 index 0000000..f15c3d3 --- /dev/null +++ b/src/api/game.js @@ -0,0 +1,45 @@ +import request from '@/utils/request' + +// 获取游戏列表,带分页参数 +export function getGameList(params) { + return request({ + url: '/x/game', + method: 'get', + params + }) +} + +// 新增游戏 +export function addGame(data) { + return request({ + url: '/x/game', + method: 'post', + data + }) +} + +// 编辑游戏 +export function editGame(data) { + return request({ + url: '/x/game', + method: 'put', + data + }) +} + +// 删除游戏 +export function deleteGame(id) { + return request({ + url: `/x/game/${id}`, + method: 'delete' + }) +} + +// 上传游戏图标 +export function uploadGameImg(data) { + return request({ + url: '/x/upload/game', + method: 'post', + data + }) +} \ No newline at end of file diff --git a/src/api/merchant.js b/src/api/merchant.js index 52ddef3..11a01e3 100644 --- a/src/api/merchant.js +++ b/src/api/merchant.js @@ -1,6 +1,5 @@ import request from '@/utils/request' - export function merchantList(params){ return request({ url: '/x/merchant', @@ -15,4 +14,20 @@ export function merchantAudit(data) { method: 'post', data }) +} + +export function merchantCreate(data) { + return request({ + url: '/x/merchant/audit', + method: 'post', + data + }) +} + +export function merchantUpdate(data) { + return request({ + url: '/x/merchant/audit', + method: 'post', + data + }) } \ No newline at end of file diff --git a/src/api/reward-type.js b/src/api/reward-type.js new file mode 100644 index 0000000..dbd401b --- /dev/null +++ b/src/api/reward-type.js @@ -0,0 +1,50 @@ +import request from '@/utils/request' + +// 获取奖励类型列表 +export function getRewardTypeList(params) { + return request({ + url: '/x/rewardType', + method: 'get', + params: { + page: params.page || 1, + size: params.size || 10, + name: params.name, + status: params.status, + storeId: params.storeId + } + }) +} + +// 新增奖励类型 +export function addRewardType(data) { + return request({ + url: '/x/rewardType', + method: 'post', + data + }) +} + +// 编辑奖励类型 +export function updateRewardType(data) { + return request({ + url: `/x/rewardType`, + method: 'put', + data + }) +} + +// 删除奖励类型 +export function deleteRewardType(id) { + return request({ + url: `/x/rewardType/${id}`, + method: 'delete' + }) +} + +// 获取门店列表 +export function getStoreList() { + return request({ + url: '/x/store/list', + method: 'get' + }) +} \ No newline at end of file diff --git a/src/api/reward.js b/src/api/reward.js new file mode 100644 index 0000000..8abb30b --- /dev/null +++ b/src/api/reward.js @@ -0,0 +1,45 @@ +import request from '@/utils/request' + +// 获取任务列表 +export function getRewardSystemList(params) { + return request({ + url: '/x/reward', + method: 'get', + params + }) +} + +// 新增奖励 +export function addReward(data) { + return request({ + url: '/x/reward', + method: 'post', + data + }) +} + +// 编辑奖励 +export function updateReward(data) { + return request({ + url: '/x/reward', + method: 'put', + data + }) +} + +// 删除奖励 +export function deleteReward(id) { + return request({ + url: `/x/reward/${id}`, + method: 'delete' + }) +} + +// 上传图标 +export function uploadReward(data) { + return request({ + url: `/x/upload/reward`, + method: 'post', + data + }) +} \ No newline at end of file diff --git a/src/api/store.js b/src/api/store.js new file mode 100644 index 0000000..ce8a194 --- /dev/null +++ b/src/api/store.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +// 获取门店列表 +export function getStoreList(params) { + return request({ + url: '/x/store', + method: 'get', + params + }) +} \ No newline at end of file diff --git a/src/api/task.js b/src/api/task.js new file mode 100644 index 0000000..14c4e5a --- /dev/null +++ b/src/api/task.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' + + +// 获取商户和门店列表 +export function getMerchantAndStoreList() { + return request({ + url: '/x/task/selector', + method: 'get' + }) + } + +// 获取任务列表 +export function getTaskList({ netbarAccount, gid, num = 10, pageidx }) { + return request({ + url: '/x/task/getNonLoginTaskList', + method: 'get', + params: { + netbarAccount, + gid, + num, + ...(pageidx !== undefined ? { pageidx } : {}) + } + }) +} + +/** + * 操作任务奖励 + * @param {Object} data + * @param {number} data.type - 操作类型(必填):1=添加,2=删除 + * @param {number} data.taskId - 任务ID(必填) + * @param {number} data.rewardId - 奖励ID(必填) + * @returns {Promise<{success: boolean}>} + */ +export function operateTaskReward(data) { + return request({ + url: '/x/reward/taskReward', + method: 'post', + data + }) +} \ No newline at end of file diff --git a/src/api/user.js b/src/api/user.js index 3bfef12..07cc4bc 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -9,23 +9,6 @@ export function userList(params) { }) } -// 删除用户 -export function deleteUser(id) { - return request({ - url: `/api/users/${id}`, - method: 'delete' - }) -} - -// 批量删除用户 -export function batchDeleteUsers(ids) { - return request({ - url: '/api/users/batch', - method: 'delete', - data: { ids } - }) -} - // 更新用户状态 export function updateUserStatus(id, status) { return request({ diff --git a/src/main.js b/src/main.js index 8fc2bb0..b0048fb 100644 --- a/src/main.js +++ b/src/main.js @@ -18,9 +18,9 @@ import '@/permission' // permission control // set ElementUI lang to EN -Vue.use(ElementUI, { locale }) +// Vue.use(ElementUI, { locale }) // 如果想要中文版 element-ui,按如下方式声明 -// Vue.use(ElementUI) +Vue.use(ElementUI) Vue.config.productionTip = false diff --git a/src/router/index.js b/src/router/index.js index 705cf42..e942d1d 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -70,6 +70,7 @@ export const constantRoutes = [ redirect: '/agent/merchant-list', name: 'AgentCenter', meta: { title: '代理商管理', icon: 'el-icon-user' }, + alwaysShow: true, children: [ { path: 'merchant-list', @@ -79,7 +80,55 @@ export const constantRoutes = [ } ] }, - + { + path: '/system', + component: Layout, + redirect: '/system/index', + name: 'SystemConfig', + meta: { title: '配置中心', icon: 'el-icon-setting' }, + children: [ + { + path: 'game-config', + name: 'GameConfig', + component: () => import('@/views/system/game.vue'), + meta: { title: '游戏配置' } + }, + { + path: 'reward-type', + name: 'RewardType', + component: () => import('@/views/system/reward-type.vue'), + meta: { title: '奖励类型配置' } + }, + { + path: 'reward-list', + name: 'RewardList', + component: () => import('@/views/system/reward-list.vue'), + meta: { title: '奖励配置' } + }, + ] + }, + { + path: '/activity', + component: Layout, + redirect: '/activity/game-task', + name: 'ActivityCenter', + meta: { title: '活动中心', icon: 'el-icon-star-on' }, + alwaysShow: true, + children: [ + { + path: 'game-task', + name: 'GameTask', + component: () => import('@/views/activity/game-task'), + meta: { title: '游戏任务' } + }, + { + path: 'test', + name: 'Test', + component: () => import('@/views/activity/test'), + meta: { title: '游戏任务' } + } + ] + }, { path: '*', redirect: '/404', hidden: true } ] diff --git a/src/utils/request.js b/src/utils/request.js index df2744f..fcf8788 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -54,9 +54,14 @@ service.interceptors.response.use( location.reload(); }); } - if (res.code == 7) { + if (res.code === 7) { window.location = "/"; } + if (res.code === 8) { + store.dispatch("user/resetToken").then(() => { + window.location = "/login"; + }); + } } return res; }, diff --git a/src/views/activity/game-task.vue b/src/views/activity/game-task.vue new file mode 100644 index 0000000..9546211 --- /dev/null +++ b/src/views/activity/game-task.vue @@ -0,0 +1,441 @@ + + + + + diff --git a/src/views/activity/test.vue b/src/views/activity/test.vue new file mode 100644 index 0000000..b1c83a6 --- /dev/null +++ b/src/views/activity/test.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/src/views/merchant/components/approved.vue b/src/views/merchant/components/approved.vue index bd950b7..aa1e3ae 100644 --- a/src/views/merchant/components/approved.vue +++ b/src/views/merchant/components/approved.vue @@ -11,8 +11,6 @@ - - @@ -44,11 +42,134 @@ :merchant-data="currentMerchant" @success="handleEditSuccess" /> + + + +
+
+
+
+ + 返回 +
+
+ 新增门店 +
+ + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + 营业中 + 已关闭 + + + + + + + \ No newline at end of file diff --git a/src/views/system/reward-list.vue b/src/views/system/reward-list.vue new file mode 100644 index 0000000..696ae83 --- /dev/null +++ b/src/views/system/reward-list.vue @@ -0,0 +1,597 @@ + + + + + + \ No newline at end of file diff --git a/src/views/system/reward-type.vue b/src/views/system/reward-type.vue new file mode 100644 index 0000000..01ccf89 --- /dev/null +++ b/src/views/system/reward-type.vue @@ -0,0 +1,379 @@ + + + + + \ No newline at end of file diff --git a/src/views/user/feedback-list.vue b/src/views/user/feedback-list.vue index e69de29..3ad478a 100644 --- a/src/views/user/feedback-list.vue +++ b/src/views/user/feedback-list.vue @@ -0,0 +1,475 @@ + + + + + diff --git a/src/views/user/user-list.vue b/src/views/user/user-list.vue index 88c1a53..22aa345 100644 --- a/src/views/user/user-list.vue +++ b/src/views/user/user-list.vue @@ -10,7 +10,10 @@ clearable />
- 添加用户 + + + 刷新 +
@@ -49,14 +52,18 @@ - + @@ -80,7 +87,7 @@