feat(admin): 订单管理重构、设置管理增强、短信签名模板管理及通知渠道优化
Build and Deploy Vue3 / build (push) Successful in 1m27s
Build and Deploy Vue3 / deploy (push) Successful in 36s

- 订单列表重构为卡片式布局并新增筛选功能

- 设置管理支持struct/struct_list类型配置

- 新增短信签名和模板独立管理页面

- 通知渠道新增短信渠道配置

- 产品参数管理优化

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
shiran
2026-06-15 18:27:23 +08:00
parent 3227a50f9a
commit 4180f73c53
14 changed files with 3811 additions and 363 deletions
+30 -4
View File
@@ -46,6 +46,7 @@
<path d="M8 21h8M12 17v4"/>
</svg>
<span class="name-text">{{ row.name }}</span>
<el-tag v-if="row.default" type="success" size="small" effect="dark" style="margin-left: 6px">默认</el-tag>
</div>
</template>
</el-table-column>
@@ -73,13 +74,15 @@
<el-table-column prop="CreatedAt" label="创建时间" width="170" align="center">
<template #default="{ row }">{{ formatTime(row.CreatedAt) }}</template>
</el-table-column>
<el-table-column label="操作" width="200" align="center" fixed="right">
<el-table-column label="操作" width="320" align="center" fixed="right">
<template #default="{ row }">
<el-button link type="success" size="small" @click="openConsole(row)">控制台</el-button>
<el-button v-if="!row.default" link type="warning" size="small" @click="handleSetDefault(row)">设为默认</el-button>
<el-button link type="primary" size="small" @click="handleEdit(row)">编辑</el-button>
<el-button link type="primary" size="small" @click="goToGoods(row)">额度商品</el-button>
<el-popconfirm title="确认删除该服务?" @confirm="handleDelete(row)">
<el-popconfirm :title="row.default ? '该服务为默认服务,删除前请先设置其他服务为默认' : '确认删除该服务?'" :disabled="row.default" @confirm="handleDelete(row)">
<template #reference>
<el-button link type="danger" size="small">删除</el-button>
<el-button link type="danger" size="small" :disabled="row.default">删除</el-button>
</template>
</el-popconfirm>
</template>
@@ -137,7 +140,8 @@ import {
getSmsServiceList,
createSmsService,
updateSmsService,
deleteSmsService
deleteSmsService,
setDefaultSmsService
} from '@/api/admin/smsService.js'
const router = useRouter()
@@ -270,6 +274,28 @@ const handleDelete = async (row) => {
}
}
const handleSetDefault = async (row) => {
try {
const params = new URLSearchParams()
params.append('id', row.id)
const res = await setDefaultSmsService(params)
if (res.data.code === 200) {
ElMessage.success(`已将「${row.name}」设为默认短信服务`)
fetchList()
} else {
ElMessage.error(res.data.message || '设置失败')
}
} catch (e) {
ElMessage.error('设置默认服务失败')
}
}
const openConsole = (row) => {
const base = (row.host || '').replace(/\/+$/, '')
if (!base) return ElMessage.warning('该服务未配置地址')
window.open(`${base}/login?serverToken=${encodeURIComponent(row.serviceToken || '')}`, '_blank')
}
const goToGoods = (row) => {
router.push({ path: '/sms/goods', query: { service_id: row.id, service_name: row.name } })
}