From 76e2c4c759b4db75962c6407bbed0a4320c9555a Mon Sep 17 00:00:00 2001 From: wuxw <928255095@qq.com> Date: Tue, 3 Jun 2025 13:59:19 +0800 Subject: [PATCH] 开发 admin 营销功能 --- src/api/market/marketSmsManageApi.js | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/AddMarketSms.vue | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/DeleteMarketSms.vue | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/EditMarketSms.vue | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/i18n/index.js | 3 +++ src/router/index.js | 5 +++++ src/views/community/CommunityLang.js | 26 -------------------------- src/views/mall/userIntegralLang.js | 8 -------- src/views/market/marketSmsManageLang.js | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/market/marketSmsManageList.vue | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/project/menuLang.js | 20 -------------------- 11 files changed, 657 insertions(+), 54 deletions(-) create mode 100644 src/api/market/marketSmsManageApi.js create mode 100644 src/components/market/AddMarketSms.vue create mode 100644 src/components/market/DeleteMarketSms.vue create mode 100644 src/components/market/EditMarketSms.vue create mode 100644 src/views/market/marketSmsManageLang.js create mode 100644 src/views/market/marketSmsManageList.vue diff --git a/src/api/market/marketSmsManageApi.js b/src/api/market/marketSmsManageApi.js new file mode 100644 index 0000000..d87f48e --- /dev/null +++ b/src/api/market/marketSmsManageApi.js @@ -0,0 +1,101 @@ +import request from '@/utils/request' + +// 获取营销短信列表 +export function listMarketSms(params) { + return new Promise((resolve, reject) => { + request({ + url: '/marketSms.listMarketSms', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取营销短信列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 保存营销短信 +export function saveMarketSms(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketSms.saveMarketSms', + method: 'post', + data + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '保存营销短信失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 更新营销短信 +export function updateMarketSms(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketSms.updateMarketSms', + method: 'post', + data + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '更新营销短信失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 删除营销短信 +export function deleteMarketSms(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketSms.deleteMarketSms', + method: 'post', + data + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '删除营销短信失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取营销短信键列表 +export function listMarketSmsKey(params) { + return new Promise((resolve, reject) => { + request({ + url: '/marketSms.listMarketSmsKey', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取营销短信键列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/components/market/AddMarketSms.vue b/src/components/market/AddMarketSms.vue new file mode 100644 index 0000000..ccfc1d8 --- /dev/null +++ b/src/components/market/AddMarketSms.vue @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/market/DeleteMarketSms.vue b/src/components/market/DeleteMarketSms.vue new file mode 100644 index 0000000..ecbd520 --- /dev/null +++ b/src/components/market/DeleteMarketSms.vue @@ -0,0 +1,61 @@ + + + + {{ $t('marketSms.delete.confirm') }} + + + + + + + + \ No newline at end of file diff --git a/src/components/market/EditMarketSms.vue b/src/components/market/EditMarketSms.vue new file mode 100644 index 0000000..5c57fd2 --- /dev/null +++ b/src/components/market/EditMarketSms.vue @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + {{ $t('common.cancel') }} + {{ $t('common.confirm') }} + + + + + \ No newline at end of file diff --git a/src/i18n/index.js b/src/i18n/index.js index 70fc88d..e3a24b7 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -96,6 +96,7 @@ import { messages as storeOrderCartManageMessages } from '../views/mall/storeOrd import { messages as storeOrderCartReturnMessages } from '../views/mall/storeOrderCartReturnLang' import { messages as userIntegralMessages } from '../views/mall/userIntegralLang' import { messages as integralDetailMessages } from '../views/mall/integralDetailLang' +import { messages as marketSmsManageMessages } from '../views/market/marketSmsManageLang' Vue.use(VueI18n) @@ -196,6 +197,7 @@ const messages = { ...storeOrderCartReturnMessages.en, ...userIntegralMessages.en, ...integralDetailMessages.en, + ...marketSmsManageMessages.en, }, zh: { ...loginMessages.zh, @@ -292,6 +294,7 @@ const messages = { ...storeOrderCartReturnMessages.zh, ...userIntegralMessages.zh, ...integralDetailMessages.zh, + ...marketSmsManageMessages.zh, } } diff --git a/src/router/index.js b/src/router/index.js index 8d35148..154ebc2 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -466,6 +466,11 @@ const routes = [ name: '/pages/admin/integralDetail', component: () => import('@/views/mall/integralDetailList.vue') }, + { + path:'/pages/admin/marketSmsManage', + name:'/pages/admin/marketSmsManage', + component: () => import('@/views/market/marketSmsManageList.vue') + }, // 其他子路由可以在这里添加 ] }, diff --git a/src/views/community/CommunityLang.js b/src/views/community/CommunityLang.js index d0ab12f..2c6c155 100644 --- a/src/views/community/CommunityLang.js +++ b/src/views/community/CommunityLang.js @@ -12,19 +12,6 @@ export const messages = { startTime: 'Start Time', endTime: 'End Time', status: 'Status' - }, - common: { - search: 'Search', - reset: 'Reset', - operation: 'Operation', - edit: 'Edit', - view: 'View', - delete: 'Delete', - confirm: 'Confirm', - cancel: 'Cancel', - warning: 'Warning', - deleteConfirm: 'Are you sure to delete this record?', - deleteSuccess: 'Delete successfully' } }, zh: { @@ -40,19 +27,6 @@ export const messages = { startTime: '开始时间', endTime: '结束时间', status: '状态' - }, - common: { - search: '搜索', - reset: '重置', - operation: '操作', - edit: '编辑', - view: '查看', - delete: '删除', - confirm: '确定', - cancel: '取消', - warning: '警告', - deleteConfirm: '确定要删除这条记录吗?', - deleteSuccess: '删除成功' } } } \ No newline at end of file diff --git a/src/views/mall/userIntegralLang.js b/src/views/mall/userIntegralLang.js index 5fea13a..178ec66 100644 --- a/src/views/mall/userIntegralLang.js +++ b/src/views/mall/userIntegralLang.js @@ -22,10 +22,6 @@ export const messages = { merchant: 'Merchant' }, fetchError: 'Failed to fetch points data' - }, - common: { - search: 'Search', - manage: 'Manage' } }, zh: { @@ -51,10 +47,6 @@ export const messages = { merchant: '商户' }, fetchError: '获取积分数据失败' - }, - common: { - search: '查询', - manage: '管理' } } } \ No newline at end of file diff --git a/src/views/market/marketSmsManageLang.js b/src/views/market/marketSmsManageLang.js new file mode 100644 index 0000000..fa8def0 --- /dev/null +++ b/src/views/market/marketSmsManageLang.js @@ -0,0 +1,104 @@ +export const messages = { + en: { + marketSms: { + search: { + title: 'Search Conditions', + smsName: 'Please enter name', + smsType: 'Please select type' + }, + list: { + title: 'Marketing Configuration' + }, + table: { + smsId: 'ID', + smsName: 'Name', + smsType: 'Type', + createTime: 'Create Time', + remark: 'Remark' + }, + form: { + smsName: 'Name', + smsType: 'Type', + remark: 'Remark' + }, + placeholder: { + smsName: 'Please enter name', + smsType: 'Please select type', + remark: 'Please enter remark' + }, + validate: { + smsName: 'Name is required', + smsNameMax: 'Name cannot exceed 64 characters', + smsType: 'Type is required', + remark: 'Remark is required', + remarkMax: 'Remark cannot exceed 512 characters', + smsId: 'ID is required' + }, + add: { + title: 'Add Marketing SMS', + success: 'Add successful' + }, + edit: { + title: 'Edit Marketing SMS', + success: 'Edit successful' + }, + delete: { + title: 'Delete Confirmation', + confirm: 'Are you sure to delete this marketing SMS?', + success: 'Delete successful' + }, + fetchError: 'Failed to fetch data' + } + }, + zh: { + marketSms: { + search: { + title: '查询条件', + smsName: '请输入名称', + smsType: '请选择类型' + }, + list: { + title: '营销配置' + }, + table: { + smsId: '编号', + smsName: '名称', + smsType: '设置类型', + createTime: '创建时间', + remark: '备注' + }, + form: { + smsName: '名称', + smsType: '设置类型', + remark: '备注' + }, + placeholder: { + smsName: '请输入名称', + smsType: '请选择设置类型', + remark: '请输入备注' + }, + validate: { + smsName: '名称不能为空', + smsNameMax: '名称不能超过64个字符', + smsType: '设置类型不能为空', + remark: '备注不能为空', + remarkMax: '备注不能超过512个字符', + smsId: '编号不能为空' + }, + add: { + title: '添加营销短信', + success: '添加成功' + }, + edit: { + title: '修改营销短信', + success: '修改成功' + }, + delete: { + title: '删除确认', + confirm: '确定删除该营销短信吗?', + success: '删除成功' + }, + fetchError: '获取数据失败' + } + } +} \ No newline at end of file diff --git a/src/views/market/marketSmsManageList.vue b/src/views/market/marketSmsManageList.vue new file mode 100644 index 0000000..24b2d5b --- /dev/null +++ b/src/views/market/marketSmsManageList.vue @@ -0,0 +1,173 @@ + + + + + + {{ $t('marketSms.search.title') }} + + + + + + + + + + + + + {{ $t('common.search') }} + + + + + + + + + {{ $t('marketSms.list.title') }} + + + {{ $t('common.add') }} + + + + + + + + + + + + + + {{ $t('common.edit') }} + + + {{ $t('common.delete') }} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/project/menuLang.js b/src/views/project/menuLang.js index 8d48502..5c02098 100644 --- a/src/views/project/menuLang.js +++ b/src/views/project/menuLang.js @@ -19,16 +19,6 @@ export default { createTime: 'Create Time' } }, - common: { - add: 'Add', - edit: 'Edit', - delete: 'Delete', - search: 'Search', - operation: 'Operation', - pagination: { - layout: 'total, sizes, prev, pager, next, jumper' - } - } }, zh: { menu: { @@ -50,15 +40,5 @@ export default { createTime: '创建时间' } }, - common: { - add: '新增', - edit: '编辑', - delete: '删除', - search: '查询', - operation: '操作', - pagination: { - layout: 'total, sizes, prev, pager, next, jumper' - } - } } } \ No newline at end of file -- libgit2 0.21.4
{{ $t('marketSms.delete.confirm') }}