diff --git a/src/api/admin/smsService.js b/src/api/admin/smsService.js new file mode 100644 index 0000000..7fbebae --- /dev/null +++ b/src/api/admin/smsService.js @@ -0,0 +1,51 @@ +import { http2 } from '@/utils/request.js' + +// ========== 短信主控服务 ========== + +export const getSmsServiceList = (params) => { + return http2.get('/api/v1/admin/server/sms_service/list', { params }) +} + +export const createSmsService = (data) => { + return http2.post('/api/v1/admin/server/sms_service/create', data, { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }) +} + +export const updateSmsService = (data) => { + return http2.post('/api/v1/admin/server/sms_service/update', data, { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }) +} + +export const deleteSmsService = (data) => { + return http2.delete('/api/v1/admin/server/sms_service/delete', { + data, + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }) +} + +// ========== 短信额度商品 ========== + +export const getSmsGoodsList = (params) => { + return http2.get('/api/v1/admin/server/sms_service/goods/list', { params }) +} + +export const createSmsGoods = (data) => { + return http2.post('/api/v1/admin/server/sms_service/goods/create', data, { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }) +} + +export const updateSmsGoods = (data) => { + return http2.post('/api/v1/admin/server/sms_service/goods/update', data, { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }) +} + +export const deleteSmsGoods = (data) => { + return http2.delete('/api/v1/admin/server/sms_service/goods/delete', { + data, + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }) +} diff --git a/src/config/menus.js b/src/config/menus.js index 01f110e..b56d24e 100644 --- a/src/config/menus.js +++ b/src/config/menus.js @@ -149,6 +149,21 @@ export const menus = [ } ] }, + { + path: '/sms', + title: '短信平台管理', + icon: 'ChatDotRound', + children: [ + { + path: '/sms/service', + title: '主控服务管理' + }, + { + path: '/sms/goods', + title: '额度商品管理' + } + ] + }, { title: '虚拟化平台管理', icon: 'Platform', diff --git a/src/router/index.js b/src/router/index.js index 09bebdb..6e5d583 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -609,6 +609,30 @@ const routes = [ } ] }, + // 短信平台管理路由 + { + path: 'sms', + name: 'Sms', + meta: { + title: '短信平台管理', + icon: 'ChatDotRound' + }, + redirect: '/sms/service', + children: [ + { + path: 'service', + name: 'SmsService', + component: () => import('../views/sms/SmsService.vue'), + meta: { title: '主控服务管理' } + }, + { + path: 'goods', + name: 'SmsGoods', + component: () => import('../views/sms/SmsGoods.vue'), + meta: { title: '额度商品管理' } + } + ] + }, // 站点审计路由 { path: 'audit', diff --git a/src/views/sms/SmsGoods.vue b/src/views/sms/SmsGoods.vue new file mode 100644 index 0000000..0464032 --- /dev/null +++ b/src/views/sms/SmsGoods.vue @@ -0,0 +1,892 @@ + + + + + + + + + + + + 短信额度商品管理 + + 管理短信平台的额度商品配置 + + — 当前筛选:{{ filterServiceName }} + + + + + + + 返回服务列表 + + + 新增商品 + + + + + + + + + + + + + 搜索 + 重置 + + + + + + + + + {{ resolveServiceName(row.serviceId) }} + + + + + + {{ row.good?.name || `商品#${row.goodId}` }} + + + + + + {{ quotaTypeTag(row.quotaType).label }} + + + + + + + 有效期模式: + {{ row.expireMode === 'fixed' ? '固定' : '用户选择' }} + + + 周期模式: + {{ row.cycleMode === 'fixed' ? '固定' : '用户选择' }} + + 每{{ row.cycleValue || 1 }}{{ cycleUnitLabel(row.cycleUnit) }} + + + 永久有效 + + + + + {{ row.note || '-' }} + + + + {{ formatTime(row.CreatedAt) }} + + + + 编辑 + + + 删除 + + + + + + + + + + + + + + + 基本信息 + + + + + + + + + + + + + + + + + + + 额度配置 + + + + + {{ qt.label }} + {{ qt.desc }} + + + + + + + 数值范围(用户输入数值) + 固定选项(用户选择档位) + + + + + + + + + + + + + + + + 元/条 + + + + + + + + + + 元 + + + + + + 添加选项 + + + + + + + + 有效期配置 + + + 固定天数(管理员指定) + 用户选择 + + + + + 天 + + + + + + 天 + + + + + + + 添加选项 + + + + + + + + 周期配置 + + + 固定单位(管理员指定) + 用户选择 + + + + + + + + + + + + + + + + + + + + + + + + + + 添加选项 + + + + + + + + + + 取消 + 确定 + + + + + + + + + + + + + + {{ qt.label }} + + + + + + + + 固定天数 + 用户选择 + + + + + + + 固定单位 + 用户选择 + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + + + + diff --git a/src/views/sms/SmsService.vue b/src/views/sms/SmsService.vue new file mode 100644 index 0000000..83057e0 --- /dev/null +++ b/src/views/sms/SmsService.vue @@ -0,0 +1,384 @@ + + + + + + + + + + + + + 短信主控服务管理 + 管理短信平台的主控服务实例,每个服务对应一个 sms-server 节点 + + + + 新增服务 + + + + + + + + + 搜索 + 重置 + + + + + + + + + + + + + {{ row.name }} + + + + + + {{ row.note || '-' }} + + + + + {{ row.host }} + + + + + + {{ maskToken(row.serviceToken) }} + {{ row.serviceToken }} + + {{ row._showToken ? '隐藏' : '显示' }} + + + + + + {{ formatTime(row.CreatedAt) }} + + + + 编辑 + 额度商品 + + + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + + + +
+ 管理短信平台的额度商品配置 + + — 当前筛选:{{ filterServiceName }} + +
管理短信平台的主控服务实例,每个服务对应一个 sms-server 节点