diff --git a/src/api/market/marketWayApi.js b/src/api/market/marketWayApi.js new file mode 100644 index 0000000..9acae2e --- /dev/null +++ b/src/api/market/marketWayApi.js @@ -0,0 +1,261 @@ +import request from '@/utils/request' + +// 获取营销文本列表 +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 saveMarketText(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketText.saveMarketText', + 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 updateMarketText(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketText.updateMarketText', + 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 deleteMarketText(textId) { + return new Promise((resolve, reject) => { + request({ + url: '/marketText.deleteMarketText', + method: 'post', + data: { textId } + }).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 saveMarketPic(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketPic.saveMarketPic', + 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 updateMarketPic(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketPic.updateMarketPic', + 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 deleteMarketPic(picId) { + return new Promise((resolve, reject) => { + request({ + url: '/marketPic.deleteMarketPic', + method: 'post', + data: { picId } + }).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 saveMarketGoods(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketGoods.saveMarketGoods', + 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 updateMarketGoods(data) { + return new Promise((resolve, reject) => { + request({ + url: '/marketGoods.updateMarketGoods', + 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 deleteMarketGoods(goodsId) { + return new Promise((resolve, reject) => { + request({ + url: '/marketGoods.deleteMarketGoods', + method: 'post', + data: { goodsId } + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res) + } else { + reject(new Error(res.msg || '删除营销商品失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取营销配置列表 +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) + }) + }) +} \ No newline at end of file diff --git a/src/api/staff/addStaffApi.js b/src/api/staff/addStaffApi.js index 462ab47..e74cd02 100644 --- a/src/api/staff/addStaffApi.js +++ b/src/api/staff/addStaffApi.js @@ -45,7 +45,7 @@ export function addStaff(data) { export function uploadFile(data) { return new Promise((resolve, reject) => { request({ - url: '/upload/uploadFile', + url: '/callComponent/upload/uploadFile/uploadImage', method: 'post', data, headers: { @@ -53,11 +53,7 @@ export function uploadFile(data) { } }).then(response => { const res = response.data - if (res.code === 0) { resolve(res) - } else { - reject(new Error(res.msg || '上传文件失败')) - } }).catch(error => { reject(error) }) diff --git a/src/components/market/AddMarketGoods.vue b/src/components/market/AddMarketGoods.vue new file mode 100644 index 0000000..7b11561 --- /dev/null +++ b/src/components/market/AddMarketGoods.vue @@ -0,0 +1,98 @@ + + + + + + + + + + + + + {{ $t('common.cancel') }} + + + {{ $t('common.save') }} + + + + + + \ No newline at end of file diff --git a/src/components/market/AddMarketPic.vue b/src/components/market/AddMarketPic.vue new file mode 100644 index 0000000..183ded7 --- /dev/null +++ b/src/components/market/AddMarketPic.vue @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + {{ $t('common.cancel') }} + + + {{ $t('common.save') }} + + + + + + \ No newline at end of file diff --git a/src/components/market/AddMarketText.vue b/src/components/market/AddMarketText.vue new file mode 100644 index 0000000..272f106 --- /dev/null +++ b/src/components/market/AddMarketText.vue @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + {{ $t('common.cancel') }} + + + {{ $t('common.save') }} + + + + + + \ No newline at end of file diff --git a/src/components/market/DeleteMarketGoods.vue b/src/components/market/DeleteMarketGoods.vue new file mode 100644 index 0000000..b593c47 --- /dev/null +++ b/src/components/market/DeleteMarketGoods.vue @@ -0,0 +1,47 @@ + + + {{ $t('common.deleteConfirm') }} + + + {{ $t('common.cancel') }} + + + {{ $t('common.confirm') }} + + + + + + \ No newline at end of file diff --git a/src/components/market/DeleteMarketPic.vue b/src/components/market/DeleteMarketPic.vue new file mode 100644 index 0000000..75e0803 --- /dev/null +++ b/src/components/market/DeleteMarketPic.vue @@ -0,0 +1,47 @@ + + + {{ $t('common.deleteConfirm') }} + + + {{ $t('common.cancel') }} + + + {{ $t('common.confirm') }} + + + + + + \ No newline at end of file diff --git a/src/components/market/DeleteMarketText.vue b/src/components/market/DeleteMarketText.vue new file mode 100644 index 0000000..cc16a82 --- /dev/null +++ b/src/components/market/DeleteMarketText.vue @@ -0,0 +1,47 @@ + + + {{ $t('common.deleteConfirm') }} + + + {{ $t('common.cancel') }} + + + {{ $t('common.confirm') }} + + + + + + \ No newline at end of file diff --git a/src/components/market/EditMarketGoods.vue b/src/components/market/EditMarketGoods.vue new file mode 100644 index 0000000..0830929 --- /dev/null +++ b/src/components/market/EditMarketGoods.vue @@ -0,0 +1,103 @@ + + + + + + + + + + + + + {{ $t('common.cancel') }} + + + {{ $t('common.save') }} + + + + + + \ No newline at end of file diff --git a/src/components/market/EditMarketPic.vue b/src/components/market/EditMarketPic.vue new file mode 100644 index 0000000..2233348 --- /dev/null +++ b/src/components/market/EditMarketPic.vue @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + {{ $t('common.cancel') }} + + + {{ $t('common.save') }} + + + + + + \ No newline at end of file diff --git a/src/components/market/EditMarketText.vue b/src/components/market/EditMarketText.vue new file mode 100644 index 0000000..08b474c --- /dev/null +++ b/src/components/market/EditMarketText.vue @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + {{ $t('common.cancel') }} + + + {{ $t('common.save') }} + + + + + + \ No newline at end of file diff --git a/src/components/market/MarketWayGoods.vue b/src/components/market/MarketWayGoods.vue new file mode 100644 index 0000000..e1341f8 --- /dev/null +++ b/src/components/market/MarketWayGoods.vue @@ -0,0 +1,195 @@ + + + + + + + + + + + {{ $t('marketGoods.search') }} + + + {{ $t('marketGoods.add') }} + + + + + + + + + + {{ scope.row.goodsCount }} + + ({{ $t('marketGoods.viewGoods') }}) + + + + + + + + + {{ $t('marketGoods.edit') }} + + + {{ $t('marketGoods.delete') }} + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/market/MarketWayPic.vue b/src/components/market/MarketWayPic.vue new file mode 100644 index 0000000..ef757d9 --- /dev/null +++ b/src/components/market/MarketWayPic.vue @@ -0,0 +1,147 @@ + + + + + + + + + + + {{ $t('marketPic.search') }} + + + {{ $t('marketPic.add') }} + + + + + + + + + + - + + + + + + + + + + {{ $t('marketPic.edit') }} + + + {{ $t('marketPic.delete') }} + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/market/MarketWayText.vue b/src/components/market/MarketWayText.vue new file mode 100644 index 0000000..b0590bd --- /dev/null +++ b/src/components/market/MarketWayText.vue @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + {{ $t('marketText.search') }} + + + {{ $t('marketText.add') }} + + + + + + + + + + + + + + + {{ $t('marketText.edit') }} + + + {{ $t('marketText.delete') }} + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/upload/UploadImageUrl.vue b/src/components/upload/UploadImageUrl.vue index 08e9939..00a887a 100644 --- a/src/components/upload/UploadImageUrl.vue +++ b/src/components/upload/UploadImageUrl.vue @@ -51,15 +51,12 @@ export default { try { const formData = new FormData() formData.append('uploadFile', file) - formData.append('communityId', '-1') + formData.append('communityId', '-1') - const res = await uploadFile(formData) - if (res.code === 0) { - this.photosUrl.push(res.data) - this.$emit('notifyUploadCoverImage', this.photosUrl) - } else { - this.$message.error(res.msg || '上传失败') - } + const { url } = await uploadFile(formData) + + this.photosUrl.push(url) + this.$emit('notifyUploadCoverImage', this.photosUrl) } catch (error) { this.$message.error(error.message || '上传失败') } @@ -84,13 +81,11 @@ export default { } if (image.indexOf('http') > -1) { this.photos.push(image) - const fileId = this.getFileIdFromUrl(image) - if (fileId) { - this.photosUrl.push({ fileId, url: image }) - } + this.photosUrl.push(image) + return } - this.photosUrl.push({ fileId: image, url: '' }) + this.photosUrl.push(image) }) } } diff --git a/src/i18n/index.js b/src/i18n/index.js index e3a24b7..a2ccece 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -97,6 +97,7 @@ import { messages as storeOrderCartReturnMessages } from '../views/mall/storeOrd import { messages as userIntegralMessages } from '../views/mall/userIntegralLang' import { messages as integralDetailMessages } from '../views/mall/integralDetailLang' import { messages as marketSmsManageMessages } from '../views/market/marketSmsManageLang' +import { messages as marketWayMessages } from '../views/market/marketWayLang' Vue.use(VueI18n) @@ -198,6 +199,7 @@ const messages = { ...userIntegralMessages.en, ...integralDetailMessages.en, ...marketSmsManageMessages.en, + ...marketWayMessages.en, }, zh: { ...loginMessages.zh, @@ -295,6 +297,7 @@ const messages = { ...userIntegralMessages.zh, ...integralDetailMessages.zh, ...marketSmsManageMessages.zh, + ...marketWayMessages.zh, } } diff --git a/src/router/index.js b/src/router/index.js index 154ebc2..c2ea6f9 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -471,6 +471,11 @@ const routes = [ name:'/pages/admin/marketSmsManage', component: () => import('@/views/market/marketSmsManageList.vue') }, + { + path:'/pages/admin/marketWay', + name:'/pages/admin/marketWay', + component: () => import('@/views/market/marketWayList.vue') + }, // 其他子路由可以在这里添加 ] }, diff --git a/src/views/market/marketWayLang.js b/src/views/market/marketWayLang.js new file mode 100644 index 0000000..b26179a --- /dev/null +++ b/src/views/market/marketWayLang.js @@ -0,0 +1,106 @@ +export const messages = { + en: { + marketWay: { + title: 'Marketing Management', + tabText: 'Marketing Text', + tabPic: 'Marketing Image', + tabGoods: 'Marketing Goods' + }, + marketText: { + title: 'Marketing Text Management', + name: 'Name', + sendRate: 'Send Rate', + content: 'Content', + config: 'Marketing Config', + createTime: 'Create Time', + operation: 'Operation', + edit: 'Edit', + delete: 'Delete', + add: 'Add', + search: 'Search', + sendRateOptions: { + daily: 'Daily', + monthly: 'Monthly', + unlimited: 'Unlimited' + } + }, + marketPic: { + title: 'Marketing Image Management', + image: 'Image', + name: 'Name', + url: 'URL', + createTime: 'Create Time', + remark: 'Remark', + operation: 'Operation', + edit: 'Edit', + delete: 'Delete', + add: 'Add', + search: 'Search' + }, + marketGoods: { + title: 'Marketing Goods Management', + name: 'Name', + goodsCount: 'Goods Count', + createTime: 'Create Time', + remark: 'Remark', + operation: 'Operation', + edit: 'Edit', + delete: 'Delete', + add: 'Add', + search: 'Search', + viewGoods: 'View Goods' + } + }, + zh: { + marketWay: { + title: '营销管理', + tabText: '营销文本', + tabPic: '营销图片', + tabGoods: '营销商品' + }, + marketText: { + title: '营销文本管理', + name: '名称', + sendRate: '发送频率', + content: '内容', + config: '营销配置', + createTime: '创建时间', + operation: '操作', + edit: '修改', + delete: '删除', + add: '添加', + search: '查询', + sendRateOptions: { + daily: '按天', + monthly: '按月', + unlimited: '不限制' + } + }, + marketPic: { + title: '营销图片管理', + image: '图片', + name: '名称', + url: '访问地址', + createTime: '创建时间', + remark: '备注', + operation: '操作', + edit: '修改', + delete: '删除', + add: '添加', + search: '查询' + }, + marketGoods: { + title: '营销商品管理', + name: '名称', + goodsCount: '商品数', + createTime: '创建时间', + remark: '备注', + operation: '操作', + edit: '修改', + delete: '删除', + add: '添加', + search: '查询', + viewGoods: '查看商品' + } + } +} \ No newline at end of file diff --git a/src/views/market/marketWayList.vue b/src/views/market/marketWayList.vue new file mode 100644 index 0000000..37f56e8 --- /dev/null +++ b/src/views/market/marketWayList.vue @@ -0,0 +1,64 @@ + + + + + {{ $t('marketWay.title') }} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file