From 2803cb180b9dd5d51aa564cdf6b55d5c83caacbd Mon Sep 17 00:00:00 2001 From: wuxw <928255095@qq.com> Date: Tue, 3 Jun 2025 23:26:55 +0800 Subject: [PATCH] 开发完成营销记录 --- src/api/market/marketBlacklistManageApi.js | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/market/marketLogApi.js | 24 ++++++++++++++++++++++++ src/components/market/AddMarketBlacklist.vue | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/DeleteMarketBlacklist.vue | 43 +++++++++++++++++++++++++++++++++++++++++++ src/components/market/EditMarketBlacklist.vue | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/ViewMarketSendContent.vue | 43 +++++++++++++++++++++++++++++++++++++++++++ src/i18n/index.js | 6 ++++++ src/router/index.js | 10 ++++++++++ src/views/market/marketBlacklistManageLang.js | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/market/marketBlacklistManageList.vue | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/market/marketLogLang.js | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/market/marketLogList.vue | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 12 files changed, 873 insertions(+), 0 deletions(-) create mode 100644 src/api/market/marketBlacklistManageApi.js create mode 100644 src/api/market/marketLogApi.js create mode 100644 src/components/market/AddMarketBlacklist.vue create mode 100644 src/components/market/DeleteMarketBlacklist.vue create mode 100644 src/components/market/EditMarketBlacklist.vue create mode 100644 src/components/market/ViewMarketSendContent.vue create mode 100644 src/views/market/marketBlacklistManageLang.js create mode 100644 src/views/market/marketBlacklistManageList.vue create mode 100644 src/views/market/marketLogLang.js create mode 100644 src/views/market/marketLogList.vue diff --git a/src/api/market/marketBlacklistManageApi.js b/src/api/market/marketBlacklistManageApi.js new file mode 100644 index 0000000..ad92cf7 --- /dev/null +++ b/src/api/market/marketBlacklistManageApi.js @@ -0,0 +1,81 @@ +import request from '@/utils/request' + +// 获取营销黑白单列表 +export function listMarketBlacklist(params) { + return new Promise((resolve, reject) => { + request({ + url: '/marketBlacklist.listMarketBlacklist', + 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 saveMarketBlacklist(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketBlacklist.saveMarketBlacklist', + 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 updateMarketBlacklist(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketBlacklist.updateMarketBlacklist', + 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 deleteMarketBlacklist(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketBlacklist.deleteMarketBlacklist', + 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) + }) + }) +} \ No newline at end of file diff --git a/src/api/market/marketLogApi.js b/src/api/market/marketLogApi.js new file mode 100644 index 0000000..ca388ba --- /dev/null +++ b/src/api/market/marketLogApi.js @@ -0,0 +1,24 @@ +import request from '@/utils/request' + +// List market logs +export function listMarketLog(params) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.listMarketLog', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve({ + data: res.data, + total: res.total + }) + } else { + reject(new Error(res.msg || 'Failed to get market logs')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/components/market/AddMarketBlacklist.vue b/src/components/market/AddMarketBlacklist.vue new file mode 100644 index 0000000..9373fc4 --- /dev/null +++ b/src/components/market/AddMarketBlacklist.vue @@ -0,0 +1,79 @@ + + + \ No newline at end of file diff --git a/src/components/market/DeleteMarketBlacklist.vue b/src/components/market/DeleteMarketBlacklist.vue new file mode 100644 index 0000000..0c294f7 --- /dev/null +++ b/src/components/market/DeleteMarketBlacklist.vue @@ -0,0 +1,43 @@ + + + \ No newline at end of file diff --git a/src/components/market/EditMarketBlacklist.vue b/src/components/market/EditMarketBlacklist.vue new file mode 100644 index 0000000..046e008 --- /dev/null +++ b/src/components/market/EditMarketBlacklist.vue @@ -0,0 +1,84 @@ + + + \ No newline at end of file diff --git a/src/components/market/ViewMarketSendContent.vue b/src/components/market/ViewMarketSendContent.vue new file mode 100644 index 0000000..91f7e7a --- /dev/null +++ b/src/components/market/ViewMarketSendContent.vue @@ -0,0 +1,43 @@ + + + \ No newline at end of file diff --git a/src/i18n/index.js b/src/i18n/index.js index dec48b9..8299fc1 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -100,6 +100,8 @@ import { messages as marketSmsManageMessages } from '../views/market/marketSmsMa import { messages as marketWayMessages } from '../views/market/marketWayLang' import { messages as marketGoodsItemManageMessages } from '../views/market/marketGoodsItemManageLang' import { messages as marketRuleMessages } from '../views/market/marketRuleLang' +import { messages as marketBlacklistManageMessages } from '../views/market/marketBlacklistManageLang' +import { messages as marketLogMessages } from '../views/market/marketLogLang' Vue.use(VueI18n) @@ -204,6 +206,8 @@ const messages = { ...marketWayMessages.en, ...marketGoodsItemManageMessages.en, ...marketRuleMessages.en, + ...marketBlacklistManageMessages.en, + ...marketLogMessages.en, }, zh: { ...loginMessages.zh, @@ -304,6 +308,8 @@ const messages = { ...marketWayMessages.zh, ...marketGoodsItemManageMessages.zh, ...marketRuleMessages.zh, + ...marketBlacklistManageMessages.zh, + ...marketLogMessages.zh, } } diff --git a/src/router/index.js b/src/router/index.js index 552ed5c..2270298 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -486,6 +486,16 @@ const routes = [ name: '/pages/admin/marketRule', component: () => import('@/views/market/marketRuleList.vue') }, + { + path:'/pages/admin/marketBlacklistManage', + name:'/pages/admin/marketBlacklistManage', + component: () => import('@/views/market/marketBlacklistManageList.vue') + }, + { + path:'/pages/admin/marketLog', + name:'/pages/admin/marketLog', + component: () => import('@/views/market/marketLogList.vue') + }, // 其他子路由可以在这里添加 ] }, diff --git a/src/views/market/marketBlacklistManageLang.js b/src/views/market/marketBlacklistManageLang.js new file mode 100644 index 0000000..0e45350 --- /dev/null +++ b/src/views/market/marketBlacklistManageLang.js @@ -0,0 +1,94 @@ +export const messages = { + en: { + marketBlacklist: { + search: { + title: 'Search Conditions', + personName: 'Please enter person name', + filter: 'Please enter filter' + }, + list: { + title: 'Marketing Blacklist' + }, + table: { + personName: 'Person Name', + filter: 'Filter', + createTime: 'Create Time', + remark: 'Remark' + }, + form: { + personName: 'Person Name', + filter: 'Filter', + remark: 'Remark' + }, + validate: { + personName: 'Person name is required', + personNameMax: 'Person name cannot exceed 64 characters', + filter: 'Filter is required', + filterMax: 'Filter cannot exceed 64 characters', + remark: 'Remark is required', + remarkMax: 'Remark cannot exceed 512 characters', + blId: 'ID is required' + }, + add: { + title: 'Add Marketing Blacklist', + success: 'Add successfully' + }, + edit: { + title: 'Edit Marketing Blacklist', + success: 'Edit successfully' + }, + delete: { + title: 'Delete Confirmation', + confirm: 'Are you sure to delete this marketing blacklist?', + success: 'Delete successfully' + }, + fetchError: 'Failed to fetch marketing blacklist data' + } + }, + zh: { + marketBlacklist: { + search: { + title: '查询条件', + personName: '请输入用户名称', + filter: '请输入过滤条件' + }, + list: { + title: '营销黑白单' + }, + table: { + personName: '用户名称', + filter: '过滤条件', + createTime: '创建时间', + remark: '备注' + }, + form: { + personName: '用户名称', + filter: '过滤条件', + remark: '备注' + }, + validate: { + personName: '用户名称不能为空', + personNameMax: '用户名称不能超过64个字符', + filter: '过滤条件不能为空', + filterMax: '过滤条件不能超过64个字符', + remark: '备注不能为空', + remarkMax: '备注不能超过512个字符', + blId: '编号不能为空' + }, + add: { + title: '添加营销黑白单', + success: '添加成功' + }, + edit: { + title: '修改营销黑白单', + success: '修改成功' + }, + delete: { + title: '删除确认', + confirm: '确定删除该营销黑白单吗?', + success: '删除成功' + }, + fetchError: '获取营销黑白单数据失败' + } + } +} \ No newline at end of file diff --git a/src/views/market/marketBlacklistManageList.vue b/src/views/market/marketBlacklistManageList.vue new file mode 100644 index 0000000..61f93e2 --- /dev/null +++ b/src/views/market/marketBlacklistManageList.vue @@ -0,0 +1,143 @@ + + + + + \ No newline at end of file diff --git a/src/views/market/marketLogLang.js b/src/views/market/marketLogLang.js new file mode 100644 index 0000000..be132d1 --- /dev/null +++ b/src/views/market/marketLogLang.js @@ -0,0 +1,92 @@ +export const messages = { + en: { + marketLog: { + search: { + title: 'Search Conditions', + communityName: 'Community Name', + sendWay: 'Marketing Method', + businessType: 'Business Type', + personNameLike: 'Marketer Name', + startTime: 'Start Time', + endTime: 'End Time' + }, + list: { + title: 'Marketing Records' + }, + table: { + logId: 'ID', + ruleName: 'Marketing Rule', + communityName: 'Community Name', + personName: 'Marketer', + personTel: 'Phone', + openId: 'OpenId', + sendWayName: 'Marketing Method', + businessTypeName: 'Business Type', + createTime: 'Send Time', + remark: 'Remark', + viewContent: 'View Content' + }, + sendWay: { + sms: 'SMS', + wechat: 'WeChat Template Message', + other: 'Other' + }, + businessType: { + accessControl: 'Access Control', + vehicleGate: 'Vehicle Gate', + mobilePayment: 'Mobile Payment', + repairOrder: 'Repair Order' + }, + viewContent: { + title: 'Send Content', + sendContent: 'Send Content' + }, + fetchError: 'Failed to fetch marketing logs' + } + }, + zh: { + marketLog: { + search: { + title: '查询条件', + communityName: '小区名称', + sendWay: '营销方式', + businessType: '业务类型', + personNameLike: '营销人', + startTime: '开始时间', + endTime: '结束时间' + }, + list: { + title: '营销记录' + }, + table: { + logId: '编号', + ruleName: '营销规则', + communityName: '小区名称', + personName: '营销人', + personTel: '手机号', + openId: 'OpenId', + sendWayName: '营销方式', + businessTypeName: '业务类型', + createTime: '发送时间', + remark: '说明', + viewContent: '发送内容' + }, + sendWay: { + sms: '短信', + wechat: '微信模板消息', + other: '其他' + }, + businessType: { + accessControl: '门禁', + vehicleGate: '车辆道闸', + mobilePayment: '手机支付完成', + repairOrder: '报修单提交' + }, + viewContent: { + title: '发送内容', + sendContent: '发送内容' + }, + fetchError: '获取营销记录失败' + } + } +} \ No newline at end of file diff --git a/src/views/market/marketLogList.vue b/src/views/market/marketLogList.vue new file mode 100644 index 0000000..4fb08aa --- /dev/null +++ b/src/views/market/marketLogList.vue @@ -0,0 +1,174 @@ + + + + + \ No newline at end of file -- libgit2 0.21.4