diff --git a/src/api/market/marketGoodsItemManageApi.js b/src/api/market/marketGoodsItemManageApi.js
new file mode 100644
index 0000000..4b12675
--- /dev/null
+++ b/src/api/market/marketGoodsItemManageApi.js
@@ -0,0 +1,81 @@
+import request from '@/utils/request'
+
+// 获取营销商品列表
+export function listMarketGoodsItem(params) {
+ return new Promise((resolve, reject) => {
+ request({
+ url: '/marketGoods.listMarketGoodsItem',
+ 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 saveMarketGoodsItem(data) {
+ return new Promise((resolve, reject) => {
+ request({
+ url: '/marketGoods.saveMarketGoodsItem',
+ 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 updateMarketGoodsItem(data) {
+ return new Promise((resolve, reject) => {
+ request({
+ url: '/marketGoods.updateMarketGoodsItem',
+ 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 deleteMarketGoodsItem(data) {
+ return new Promise((resolve, reject) => {
+ request({
+ url: '/marketGoods.deleteMarketGoodsItem',
+ 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/AddMarketGoodsItem.vue b/src/components/market/AddMarketGoodsItem.vue
new file mode 100644
index 0000000..bc5649f
--- /dev/null
+++ b/src/components/market/AddMarketGoodsItem.vue
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/market/DeleteMarketGoodsItem.vue b/src/components/market/DeleteMarketGoodsItem.vue
new file mode 100644
index 0000000..ffd061e
--- /dev/null
+++ b/src/components/market/DeleteMarketGoodsItem.vue
@@ -0,0 +1,60 @@
+
+
+
+
+ {{ $t('common.deleteConfirm') }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/market/EditMarketGoodsItem.vue b/src/components/market/EditMarketGoodsItem.vue
new file mode 100644
index 0000000..eef782a
--- /dev/null
+++ b/src/components/market/EditMarketGoodsItem.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/market/MarketWayGoods.vue b/src/components/market/MarketWayGoods.vue
index e1341f8..d323364 100644
--- a/src/components/market/MarketWayGoods.vue
+++ b/src/components/market/MarketWayGoods.vue
@@ -4,12 +4,8 @@
-
+
@@ -22,74 +18,33 @@
-
-
-
+
+
+
{{ scope.row.goodsCount }}
-
+
({{ $t('marketGoods.viewGoods') }})
-
-
-
+
+
+
-
+
{{ $t('marketGoods.edit') }}
-
+
{{ $t('marketGoods.delete') }}
-
+
@@ -160,7 +115,7 @@ export default {
this.$refs.deleteMarketGoods.open(row)
},
handleViewGoods(row) {
- this.$router.push(`/market/goods-item?goodsId=${row.goodsId}`)
+ this.$router.push(`/views/market/marketGoodsItemManage?goodsId=${row.goodsId}`)
},
handleSuccess() {
this.getList()
@@ -186,7 +141,7 @@ export default {
.search-wrapper {
margin-bottom: 20px;
}
-
+
.el-pagination {
margin-top: 20px;
text-align: right;
diff --git a/src/components/market/UploadImage.vue b/src/components/market/UploadImage.vue
new file mode 100644
index 0000000..acdcb03
--- /dev/null
+++ b/src/components/market/UploadImage.vue
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/i18n/index.js b/src/i18n/index.js
index a2ccece..c678a6c 100644
--- a/src/i18n/index.js
+++ b/src/i18n/index.js
@@ -98,6 +98,7 @@ 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'
+import { messages as marketGoodsItemManageMessages } from '../views/market/marketGoodsItemManageLang'
Vue.use(VueI18n)
@@ -200,6 +201,7 @@ const messages = {
...integralDetailMessages.en,
...marketSmsManageMessages.en,
...marketWayMessages.en,
+ ...marketGoodsItemManageMessages.en,
},
zh: {
...loginMessages.zh,
@@ -298,6 +300,7 @@ const messages = {
...integralDetailMessages.zh,
...marketSmsManageMessages.zh,
...marketWayMessages.zh,
+ ...marketGoodsItemManageMessages.zh,
}
}
diff --git a/src/router/index.js b/src/router/index.js
index c2ea6f9..cdce197 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -476,6 +476,11 @@ const routes = [
name:'/pages/admin/marketWay',
component: () => import('@/views/market/marketWayList.vue')
},
+ {
+ path:'/views/market/marketGoodsItemManage',
+ name:'/views/market/marketGoodsItemManage',
+ component: () => import('@/views/market/marketGoodsItemManageList.vue')
+ },
// 其他子路由可以在这里添加
]
},
diff --git a/src/views/market/marketGoodsItemManageLang.js b/src/views/market/marketGoodsItemManageLang.js
new file mode 100644
index 0000000..eac4667
--- /dev/null
+++ b/src/views/market/marketGoodsItemManageLang.js
@@ -0,0 +1,44 @@
+export const messages = {
+ en: {
+ marketGoodsItem: {
+ search: {
+ title: 'Search Conditions',
+ prodName: 'Please enter product name'
+ },
+ list: {
+ title: 'Marketing Products'
+ },
+ table: {
+ picUrl: 'Image',
+ prodName: 'Product Name',
+ prodDesc: 'Product Description',
+ picLink: 'Access URL',
+ price: 'Price',
+ shopName: 'Shop Name',
+ sort: 'Sort'
+ },
+ fetchError: 'Failed to get marketing products'
+ }
+ },
+ zh: {
+ marketGoodsItem: {
+ search: {
+ title: '查询条件',
+ prodName: '请输入商品名称'
+ },
+ list: {
+ title: '营销商品'
+ },
+ table: {
+ picUrl: '图片',
+ prodName: '商品名称',
+ prodDesc: '商品简介',
+ picLink: '访问地址',
+ price: '金额',
+ shopName: '商铺名称',
+ sort: '排序'
+ },
+ fetchError: '获取营销商品失败'
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/views/market/marketGoodsItemManageList.vue b/src/views/market/marketGoodsItemManageList.vue
new file mode 100644
index 0000000..952501e
--- /dev/null
+++ b/src/views/market/marketGoodsItemManageList.vue
@@ -0,0 +1,182 @@
+
+
+
+
+
+ {{ $t('marketGoodsItem.search.title') }}
+
+
+
+
+
+
+
+
+ {{ $t('common.search') }}
+
+
+
+
+
+
+
+
+
{{ $t('marketGoodsItem.list.title') }}
+
+
+ {{ $t('common.add') }}
+
+
+ {{ $t('common.back') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('common.edit') }}
+
+
+ {{ $t('common.delete') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/更新 views/market/marketGoodsItemManageLang.js b/src/更新 views/market/marketGoodsItemManageLang.js
new file mode 100644
index 0000000..4688a4a
--- /dev/null
+++ b/src/更新 views/market/marketGoodsItemManageLang.js
@@ -0,0 +1,118 @@
+export const messages = {
+ en: {
+ marketGoodsItem: {
+ search: {
+ title: 'Search Conditions',
+ prodName: 'Please enter product name'
+ },
+ list: {
+ title: 'Marketing Products'
+ },
+ form: {
+ prodName: 'Product Name',
+ prodNamePlaceholder: 'Please enter product name',
+ prodDesc: 'Product Description',
+ prodDescPlaceholder: 'Please enter product description',
+ picUrl: 'Image URL',
+ picLink: 'Access URL',
+ picLinkPlaceholder: 'Please enter access URL',
+ price: 'Price',
+ pricePlaceholder: 'Please enter price',
+ shopName: 'Shop Name',
+ shopNamePlaceholder: 'Please enter shop name',
+ sort: 'Sort',
+ sortPlaceholder: 'Please enter sort number'
+ },
+ table: {
+ picUrl: 'Image',
+ prodName: 'Product Name',
+ prodDesc: 'Product Description',
+ picLink: 'Access URL',
+ price: 'Price',
+ shopName: 'Shop Name',
+ sort: 'Sort'
+ },
+ validate: {
+ prodNameRequired: 'Product name is required',
+ prodNameMaxLength: 'Product name cannot exceed 128 characters',
+ prodDescRequired: 'Product description is required',
+ prodDescMaxLength: 'Product description cannot exceed 256 characters',
+ picUrlRequired: 'Image URL is required',
+ picLinkRequired: 'Access URL is required',
+ picLinkMaxLength: 'Access URL cannot exceed 512 characters',
+ priceRequired: 'Price is required',
+ priceMaxLength: 'Price cannot exceed 10 characters',
+ shopNameRequired: 'Shop name is required',
+ shopNameMaxLength: 'Shop name cannot exceed 128 characters',
+ sortRequired: 'Sort is required',
+ itemIdRequired: 'Item ID is required'
+ },
+ deleteConfirm: 'Are you sure to delete this marketing product?',
+ saveSuccess: 'Add marketing product successfully',
+ updateSuccess: 'Update marketing product successfully',
+ deleteSuccess: 'Delete marketing product successfully',
+ fetchError: 'Failed to get marketing products'
+ },
+ uploadImage: {
+ sizeLimit: 'Image size cannot exceed 2MB'
+ }
+ },
+ zh: {
+ marketGoodsItem: {
+ search: {
+ title: '查询条件',
+ prodName: '请输入商品名称'
+ },
+ list: {
+ title: '营销商品'
+ },
+ form: {
+ prodName: '商品名称',
+ prodNamePlaceholder: '请输入商品名称',
+ prodDesc: '商品简介',
+ prodDescPlaceholder: '请输入商品简介',
+ picUrl: '图片地址',
+ picLink: '访问地址',
+ picLinkPlaceholder: '请输入图片访问地址',
+ price: '金额',
+ pricePlaceholder: '请输入金额',
+ shopName: '商铺名称',
+ shopNamePlaceholder: '请输入商铺名称',
+ sort: '排序',
+ sortPlaceholder: '请输入排序号'
+ },
+ table: {
+ picUrl: '图片',
+ prodName: '商品名称',
+ prodDesc: '商品简介',
+ picLink: '访问地址',
+ price: '金额',
+ shopName: '商铺名称',
+ sort: '排序'
+ },
+ validate: {
+ prodNameRequired: '商品名称不能为空',
+ prodNameMaxLength: '商品名称不能超过128个字符',
+ prodDescRequired: '商品简介不能为空',
+ prodDescMaxLength: '商品简介不能超过256个字符',
+ picUrlRequired: '图片地址不能为空',
+ picLinkRequired: '访问地址不能为空',
+ picLinkMaxLength: '访问地址不能超过512个字符',
+ priceRequired: '金额不能为空',
+ priceMaxLength: '金额不能超过10个字符',
+ shopNameRequired: '商铺名称不能为空',
+ shopNameMaxLength: '商铺名称不能超过128个字符',
+ sortRequired: '排序不能为空',
+ itemIdRequired: '编号不能为空'
+ },
+ deleteConfirm: '确定删除该营销商品吗?',
+ saveSuccess: '添加营销商品成功',
+ updateSuccess: '更新营销商品成功',
+ deleteSuccess: '删除营销商品成功',
+ fetchError: '获取营销商品失败'
+ },
+ uploadImage: {
+ sizeLimit: '图片大小不能超过2MB'
+ }
+ }
+}
\ No newline at end of file