From 313306819565301df4e6e170b9b53d08a4e081d8 Mon Sep 17 00:00:00 2001 From: wuxw <928255095@qq.com> Date: Tue, 3 Jun 2025 23:13:05 +0800 Subject: [PATCH] 开发完成admin 营销规则 --- src/api/market/marketRuleApi.js | 337 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/AddMarketRule.vue | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/AddMarketRuleCommunity.vue | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/AddMarketRuleObj.vue | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/AddMarketRuleWay.vue | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/DeleteMarketRule.vue | 43 +++++++++++++++++++++++++++++++++++++++++++ src/components/market/DeleteMarketRuleCommunity.vue | 41 +++++++++++++++++++++++++++++++++++++++++ src/components/market/DeleteMarketRuleObj.vue | 43 +++++++++++++++++++++++++++++++++++++++++++ src/components/market/DeleteMarketRuleWay.vue | 39 +++++++++++++++++++++++++++++++++++++++ src/components/market/EditMarketRule.vue | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/MarketRuleCommunity.vue | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/MarketRuleDiv.vue | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/MarketRuleObj.vue | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/market/MarketRuleWay.vue | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/i18n/index.js | 3 +++ src/router/index.js | 31 ++++++++++++++++++------------- src/views/market/marketRuleLang.js | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/market/marketRuleList.vue | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 18 files changed, 1656 insertions(+), 13 deletions(-) create mode 100644 src/api/market/marketRuleApi.js create mode 100644 src/components/market/AddMarketRule.vue create mode 100644 src/components/market/AddMarketRuleCommunity.vue create mode 100644 src/components/market/AddMarketRuleObj.vue create mode 100644 src/components/market/AddMarketRuleWay.vue create mode 100644 src/components/market/DeleteMarketRule.vue create mode 100644 src/components/market/DeleteMarketRuleCommunity.vue create mode 100644 src/components/market/DeleteMarketRuleObj.vue create mode 100644 src/components/market/DeleteMarketRuleWay.vue create mode 100644 src/components/market/EditMarketRule.vue create mode 100644 src/components/market/MarketRuleCommunity.vue create mode 100644 src/components/market/MarketRuleDiv.vue create mode 100644 src/components/market/MarketRuleObj.vue create mode 100644 src/components/market/MarketRuleWay.vue create mode 100644 src/views/market/marketRuleLang.js create mode 100644 src/views/market/marketRuleList.vue diff --git a/src/api/market/marketRuleApi.js b/src/api/market/marketRuleApi.js new file mode 100644 index 0000000..ade2119 --- /dev/null +++ b/src/api/market/marketRuleApi.js @@ -0,0 +1,337 @@ +import request from '@/utils/request' + +// 获取营销规则列表 +export function listMarketRule(params) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.listMarketRule', + 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 saveMarketRule(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.saveMarketRule', + 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 updateMarketRule(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.updateMarketRule', + 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 deleteMarketRule(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.deleteMarketRule', + 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 listMarketRuleWay(params) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.listMarketRuleWay', + 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 saveMarketRuleWay(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.saveMarketRuleWay', + 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 deleteMarketRuleWay(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.deleteMarketRuleWay', + 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 listMarketText(params) { + return new Promise((resolve, reject) => { + request({ + url: '/marketText.listMarketText', + 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 listMarketPic(params) { + return new Promise((resolve, reject) => { + request({ + url: '/marketPic.listMarketPic', + 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 listMarketGoods(params) { + return new Promise((resolve, reject) => { + request({ + url: '/marketGoods.listMarketGoods', + 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 listCommunitys(params) { + return new Promise((resolve, reject) => { + request({ + url: '/community.listCommunitys', + 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 saveMarketRuleCommunity(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.saveMarketRuleCommunity', + 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 listMarketRuleCommunity(params) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.listMarketRuleCommunity', + 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 deleteMarketRuleCommunity(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.deleteMarketRuleCommunity', + 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 saveMarketRuleObj(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.saveMarketRuleObj', + 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 listMarketRuleObj(params) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.listMarketRuleObj', + 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 deleteMarketRuleObj(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketRule.deleteMarketRuleObj', + 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/components/market/AddMarketRule.vue b/src/components/market/AddMarketRule.vue new file mode 100644 index 0000000..bc20bd6 --- /dev/null +++ b/src/components/market/AddMarketRule.vue @@ -0,0 +1,65 @@ + + + \ No newline at end of file diff --git a/src/components/market/AddMarketRuleCommunity.vue b/src/components/market/AddMarketRuleCommunity.vue new file mode 100644 index 0000000..a775893 --- /dev/null +++ b/src/components/market/AddMarketRuleCommunity.vue @@ -0,0 +1,92 @@ + + + \ No newline at end of file diff --git a/src/components/market/AddMarketRuleObj.vue b/src/components/market/AddMarketRuleObj.vue new file mode 100644 index 0000000..eafacd7 --- /dev/null +++ b/src/components/market/AddMarketRuleObj.vue @@ -0,0 +1,84 @@ + + + \ No newline at end of file diff --git a/src/components/market/AddMarketRuleWay.vue b/src/components/market/AddMarketRuleWay.vue new file mode 100644 index 0000000..af4f88c --- /dev/null +++ b/src/components/market/AddMarketRuleWay.vue @@ -0,0 +1,200 @@ + + + \ No newline at end of file diff --git a/src/components/market/DeleteMarketRule.vue b/src/components/market/DeleteMarketRule.vue new file mode 100644 index 0000000..05a915c --- /dev/null +++ b/src/components/market/DeleteMarketRule.vue @@ -0,0 +1,43 @@ + + + \ No newline at end of file diff --git a/src/components/market/DeleteMarketRuleCommunity.vue b/src/components/market/DeleteMarketRuleCommunity.vue new file mode 100644 index 0000000..53d52a9 --- /dev/null +++ b/src/components/market/DeleteMarketRuleCommunity.vue @@ -0,0 +1,41 @@ + + + \ No newline at end of file diff --git a/src/components/market/DeleteMarketRuleObj.vue b/src/components/market/DeleteMarketRuleObj.vue new file mode 100644 index 0000000..28df23e --- /dev/null +++ b/src/components/market/DeleteMarketRuleObj.vue @@ -0,0 +1,43 @@ + + + \ No newline at end of file diff --git a/src/components/market/DeleteMarketRuleWay.vue b/src/components/market/DeleteMarketRuleWay.vue new file mode 100644 index 0000000..718b129 --- /dev/null +++ b/src/components/market/DeleteMarketRuleWay.vue @@ -0,0 +1,39 @@ + + + \ No newline at end of file diff --git a/src/components/market/EditMarketRule.vue b/src/components/market/EditMarketRule.vue new file mode 100644 index 0000000..5d35530 --- /dev/null +++ b/src/components/market/EditMarketRule.vue @@ -0,0 +1,80 @@ + + + \ No newline at end of file diff --git a/src/components/market/MarketRuleCommunity.vue b/src/components/market/MarketRuleCommunity.vue new file mode 100644 index 0000000..4259f19 --- /dev/null +++ b/src/components/market/MarketRuleCommunity.vue @@ -0,0 +1,112 @@ + + + + + \ No newline at end of file diff --git a/src/components/market/MarketRuleDiv.vue b/src/components/market/MarketRuleDiv.vue new file mode 100644 index 0000000..09deabf --- /dev/null +++ b/src/components/market/MarketRuleDiv.vue @@ -0,0 +1,102 @@ + + + + + \ No newline at end of file diff --git a/src/components/market/MarketRuleObj.vue b/src/components/market/MarketRuleObj.vue new file mode 100644 index 0000000..f1a069c --- /dev/null +++ b/src/components/market/MarketRuleObj.vue @@ -0,0 +1,111 @@ + + + + + \ No newline at end of file diff --git a/src/components/market/MarketRuleWay.vue b/src/components/market/MarketRuleWay.vue new file mode 100644 index 0000000..ce28475 --- /dev/null +++ b/src/components/market/MarketRuleWay.vue @@ -0,0 +1,115 @@ + + + + + \ No newline at end of file diff --git a/src/i18n/index.js b/src/i18n/index.js index c678a6c..dec48b9 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -99,6 +99,7 @@ import { messages as integralDetailMessages } from '../views/mall/integralDetail import { messages as marketSmsManageMessages } from '../views/market/marketSmsManageLang' import { messages as marketWayMessages } from '../views/market/marketWayLang' import { messages as marketGoodsItemManageMessages } from '../views/market/marketGoodsItemManageLang' +import { messages as marketRuleMessages } from '../views/market/marketRuleLang' Vue.use(VueI18n) @@ -202,6 +203,7 @@ const messages = { ...marketSmsManageMessages.en, ...marketWayMessages.en, ...marketGoodsItemManageMessages.en, + ...marketRuleMessages.en, }, zh: { ...loginMessages.zh, @@ -301,6 +303,7 @@ const messages = { ...marketSmsManageMessages.zh, ...marketWayMessages.zh, ...marketGoodsItemManageMessages.zh, + ...marketRuleMessages.zh, } } diff --git a/src/router/index.js b/src/router/index.js index cdce197..552ed5c 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -467,20 +467,25 @@ const routes = [ component: () => import('@/views/mall/integralDetailList.vue') }, { - path:'/pages/admin/marketSmsManage', - name:'/pages/admin/marketSmsManage', + path: '/pages/admin/marketSmsManage', + name: '/pages/admin/marketSmsManage', component: () => import('@/views/market/marketSmsManageList.vue') - }, - { - path:'/pages/admin/marketWay', - name:'/pages/admin/marketWay', - component: () => import('@/views/market/marketWayList.vue') - }, - { - path:'/views/market/marketGoodsItemManage', - name:'/views/market/marketGoodsItemManage', - component: () => import('@/views/market/marketGoodsItemManageList.vue') - }, + }, + { + path: '/pages/admin/marketWay', + name: '/pages/admin/marketWay', + component: () => import('@/views/market/marketWayList.vue') + }, + { + path: '/views/market/marketGoodsItemManage', + name: '/views/market/marketGoodsItemManage', + component: () => import('@/views/market/marketGoodsItemManageList.vue') + }, + { + path: '/pages/admin/marketRule', + name: '/pages/admin/marketRule', + component: () => import('@/views/market/marketRuleList.vue') + }, // 其他子路由可以在这里添加 ] }, diff --git a/src/views/market/marketRuleLang.js b/src/views/market/marketRuleLang.js new file mode 100644 index 0000000..5677d4f --- /dev/null +++ b/src/views/market/marketRuleLang.js @@ -0,0 +1,80 @@ +export const messages = { + en: { + marketRule: { + title: 'Marketing Rule Management', + name: 'Name', + description: 'Description', + marketingMethod: 'Marketing Method', + communityAuthorization: 'Community Authorization', + targetObject: 'Target Object', + add: 'Add', + edit: 'Edit', + delete: 'Delete', + save: 'Save', + cancel: 'Cancel', + confirmDelete: 'Confirm Delete', + deleteConfirmMessage: 'Are you sure to delete this marketing rule?', + marketingType: 'Marketing Type', + remark: 'Remark', + operation: 'Operation', + communityName: 'Community Name', + communityId: 'Community ID', + objectName: 'Object Name', + associateMarketingMethod: 'Associate Marketing Method', + associateCommunity: 'Associate Community', + associateObject: 'Associate Object', + text: 'Text', + image: 'Image', + goods: 'Goods', + required: 'Required', + selectMarketingType: 'Please select marketing type', + selectMarketingText: 'Please select marketing text', + selectMarketingImage: 'Please select marketing image', + selectMarketingGoods: 'Please select marketing goods', + selectCommunity: 'Please select community', + selectObject: 'Please select object', + customer: 'Customer', + merchant: 'Merchant', + staff: 'Staff' + } + }, + zh: { + marketRule: { + title: '营销规则管理', + name: '名称', + description: '描述', + marketingMethod: '营销方式', + communityAuthorization: '小区授权', + targetObject: '作用对象', + add: '添加', + edit: '修改', + delete: '删除', + save: '保存', + cancel: '取消', + confirmDelete: '确认删除', + deleteConfirmMessage: '确定删除营销规则?', + marketingType: '营销类型', + remark: '备注', + operation: '操作', + communityName: '小区名称', + communityId: '小区编号', + objectName: '对象名称', + associateMarketingMethod: '关联营销方式', + associateCommunity: '关联小区', + associateObject: '关联对象', + text: '文本', + image: '图片', + goods: '商品', + required: '必填', + selectMarketingType: '请选择营销类型', + selectMarketingText: '请选择营销文本', + selectMarketingImage: '请选择营销图片', + selectMarketingGoods: '请选择营销商品', + selectCommunity: '请选择小区', + selectObject: '请选择对象', + customer: '客户', + merchant: '商户', + staff: '员工' + } + } +} \ No newline at end of file diff --git a/src/views/market/marketRuleList.vue b/src/views/market/marketRuleList.vue new file mode 100644 index 0000000..abdc440 --- /dev/null +++ b/src/views/market/marketRuleList.vue @@ -0,0 +1,91 @@ + + + + + \ No newline at end of file -- libgit2 0.21.4