From 3659ed34d1dc00d0b620513a23141df9ce388a3d Mon Sep 17 00:00:00 2001 From: liupopo Date: Thu, 18 Jan 2024 14:04:42 +0800 Subject: [PATCH] =?UTF-8?q?mallplus=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/oss.js | 7 + src/api/product.js | 113 ++ src/api/productAttr.js | 52 + src/api/productAttrCate.js | 37 + src/api/productCate.js | 76 ++ src/api/skuStock.js | 16 + src/components/Upload/multiUpload.vue | 109 ++ src/components/Upload/singleUpload-oss.vue | 107 ++ src/components/Upload/singleUpload.vue | 120 ++ src/layout/components/Sidebar/index.vue | 33 +- src/router/index.js | 64 +- src/utils/date.js | 43 + src/views/pms/brand/add.vue | 7 +- .../pms/brand/components/BrandDetail.vue | 166 +-- src/views/pms/brand/index.vue | 367 +++--- src/views/pms/product/add.vue | 12 + .../product/components/ProductAttrDetail.vue | 609 ++++++++++ .../pms/product/components/ProductDetail.vue | 201 ++++ .../product/components/ProductInfoDetail.vue | 434 +++++++ .../components/ProductRelationDetail.vue | 145 +++ .../product/components/ProductSaleDetail.vue | 322 ++++++ src/views/pms/product/index.vue | 1017 +++++++++++++++++ src/views/pms/product/productBySku.vue | 795 +++++++++++++ src/views/pms/product/update.vue | 12 + src/views/pms/productAttr/addProductAttr.vue | 15 + .../components/ProductAttrDetail.vue | 147 +++ src/views/pms/productAttr/index.vue | 224 ++++ src/views/pms/productAttr/productAttrList.vue | 255 +++++ .../pms/productAttr/updateProductAttr.vue | 15 + src/views/pms/productCate/add.vue | 14 + .../components/ProductCateDetail.vue | 291 +++++ src/views/pms/productCate/index.vue | 269 +++++ src/views/pms/productCate/update.vue | 14 + 33 files changed, 5826 insertions(+), 282 deletions(-) create mode 100644 src/api/oss.js create mode 100644 src/api/product.js create mode 100644 src/api/productAttr.js create mode 100644 src/api/productAttrCate.js create mode 100644 src/api/productCate.js create mode 100644 src/api/skuStock.js create mode 100644 src/components/Upload/multiUpload.vue create mode 100644 src/components/Upload/singleUpload-oss.vue create mode 100644 src/components/Upload/singleUpload.vue create mode 100644 src/utils/date.js create mode 100644 src/views/pms/product/add.vue create mode 100644 src/views/pms/product/components/ProductAttrDetail.vue create mode 100644 src/views/pms/product/components/ProductDetail.vue create mode 100644 src/views/pms/product/components/ProductInfoDetail.vue create mode 100644 src/views/pms/product/components/ProductRelationDetail.vue create mode 100644 src/views/pms/product/components/ProductSaleDetail.vue create mode 100644 src/views/pms/product/index.vue create mode 100644 src/views/pms/product/productBySku.vue create mode 100644 src/views/pms/product/update.vue create mode 100644 src/views/pms/productAttr/addProductAttr.vue create mode 100644 src/views/pms/productAttr/components/ProductAttrDetail.vue create mode 100644 src/views/pms/productAttr/index.vue create mode 100644 src/views/pms/productAttr/productAttrList.vue create mode 100644 src/views/pms/productAttr/updateProductAttr.vue create mode 100644 src/views/pms/productCate/add.vue create mode 100644 src/views/pms/productCate/components/ProductCateDetail.vue create mode 100644 src/views/pms/productCate/index.vue create mode 100644 src/views/pms/productCate/update.vue diff --git a/src/api/oss.js b/src/api/oss.js new file mode 100644 index 0000000..04475d7 --- /dev/null +++ b/src/api/oss.js @@ -0,0 +1,7 @@ +import request from '@/utils/request' +export function policy() { + return request({ + url:'/aliyun/oss/policy', + method:'get', + }) +} diff --git a/src/api/product.js b/src/api/product.js new file mode 100644 index 0000000..3cbc827 --- /dev/null +++ b/src/api/product.js @@ -0,0 +1,113 @@ +import request from '@/utils/request' +export function fetchList(params) { + return request({ + url:'/pms/PmsProduct/list', + method:'get', + params:params + }) +} + +export function fetchSimpleList(params) { + return request({ + url:'/pms/PmsProduct/simpleList', + method:'get', + params:params + }) +} + +export function updateDeleteStatus(params) { + return request({ + url:'/pms/PmsProduct/update/deleteStatus', + method:'post', + params:params + }) +} + +export function deleteProduct(id) { + return request({ + url:'/pms/PmsProduct/delete/'+id, + method:'get', + }) +} +export function updateNewStatus(params) { + return request({ + url:'/pms/PmsProduct/update/newStatus', + method:'post', + params:params + }) +} + +export function updateRecommendStatus(params) { + return request({ + url:'/pms/PmsProduct/update/recommendStatus', + method:'post', + params:params + }) +} + +export function updateVerifyStatus(params) { + return request({ + url:'/pms/PmsProduct/update/verifyStatus', + method:'post', + params:params + }) +} + +export function updatePublishStatus(params) { + return request({ + url:'/pms/PmsProduct/update/publishStatus', + method:'post', + params:params + }) +} +export function updatePaiMai(params) { + return request({ + url:'/pms/PmsProduct/update/updatePaiMai', + method:'post', + params:params + }) +} +export function updateFenxiao(params) { + return request({ + url:'/pms/PmsProduct/update/isFenxiao', + method:'post', + params:params + }) +} +export function updateVip(params) { + return request({ + url:'/pms/PmsProduct/update/isVip', + method:'post', + params:params + }) +} + +export function createProduct(data) { + return request({ + url:'/pms/PmsProduct/create', + method:'post', + data:data + }) +} + +export function updateProduct(id,data) { + return request({ + url:'/pms/PmsProduct/update/'+id, + method:'post', + data:data + }) +} + +export function fetchVList(id) { + return request({ + url:'/pms/PmsProduct/fetchVList/'+id, + method:'get', + }) +} +export function getProduct(id) { + return request({ + url:'/pms/PmsProduct/updateInfo/'+id, + method:'get', + }) +} + diff --git a/src/api/productAttr.js b/src/api/productAttr.js new file mode 100644 index 0000000..05bf2a0 --- /dev/null +++ b/src/api/productAttr.js @@ -0,0 +1,52 @@ +import request from '@/utils/request' +export function fetchList(cid,params) { + return request({ + url:'/pms/PmsProductAttribute/list/'+cid, + method:'get', + params:params + }) +} + +export function fetchAllList(params) { + return request({ + url:'/pms/PmsProductAttribute/listAll', + method:'get', + params:params + }) +} +export function deleteProductAttr(id) { + return request({ + url:'/pms/PmsProductAttribute/delete/'+id, + method:'get' + + }) +} + +export function createProductAttr(data) { + return request({ + url:'/pms/PmsProductAttribute/create', + method:'post', + data:data + }) +} + +export function updateProductAttr(id,data) { + return request({ + url:'/pms/PmsProductAttribute/update/'+id, + method:'post', + data:data + }) +} +export function getProductAttr(id) { + return request({ + url:'/pms/PmsProductAttribute/'+id, + method:'get' + }) +} + +export function getProductAttrInfo(productCategoryId) { + return request({ + url:'/pms/PmsProductAttribute/attrInfo/'+productCategoryId, + method:'get' + }) +} diff --git a/src/api/productAttrCate.js b/src/api/productAttrCate.js new file mode 100644 index 0000000..126e270 --- /dev/null +++ b/src/api/productAttrCate.js @@ -0,0 +1,37 @@ +import request from '@/utils/request' +export function fetchList(params) { + return request({ + url:'/pms/PmsProductAttributeCategory/list', + method:'get', + params:params + }) +} + +export function createProductAttrCate(data) { + return request({ + url:'/pms/PmsProductAttributeCategory/create', + method:'post', + data:data + }) +} + +export function deleteProductAttrCate(id) { + return request({ + url:'/pms/PmsProductAttributeCategory/delete/'+id, + method:'get' + }) +} + +export function updateProductAttrCate(id,data) { + return request({ + url:'/pms/PmsProductAttributeCategory/update/'+id, + method:'post', + data:data + }) +} +export function fetchListWithAttr() { + return request({ + url:'/pms/PmsProductAttributeCategory/list/withAttr', + method:'get' + }) +} diff --git a/src/api/productCate.js b/src/api/productCate.js new file mode 100644 index 0000000..9b82792 --- /dev/null +++ b/src/api/productCate.js @@ -0,0 +1,76 @@ +import request from '@/utils/request' + +export function fetchListAll(params) { + return request({ + url:'/pms/PmsProductCategory/list', + method:'get', + params:params + }) +} +export function fetchList(parentId,params) { + return request({ + url:'/pms/PmsProductCategory/list/'+parentId, + method:'get', + params:params + }) +} +export function deleteProductCate(id) { + return request({ + url:'/pms/PmsProductCategory/delete/'+id, + method:'get' + }) +} + +export function createProductCate(data) { + return request({ + url:'/pms/PmsProductCategory/create', + method:'post', + data:data + }) +} + +export function updateProductCate(id,data) { + return request({ + url:'/pms/PmsProductCategory/update/'+id, + method:'post', + data:data + }) +} + +export function getProductCate(id) { + return request({ + url:'/pms/PmsProductCategory/'+id, + method:'get', + }) +} + +export function updateShowStatus(data) { + return request({ + url:'/pms/PmsProductCategory/update/showStatus', + method:'post', + data:data + }) +} + +export function updateIndexStatus(data) { + return request({ + url:'/pms/PmsProductCategory/update/indexStatus', + method:'post', + data:data + }) +} + +export function updateNavStatus(data) { + return request({ + url:'/pms/PmsProductCategory/update/navStatus', + method:'post', + data:data + }) +} + +export function fetchListWithChildren() { + return request({ + url:'/pms/PmsProductCategory/list/withChildren', + method:'get' + }) +} diff --git a/src/api/skuStock.js b/src/api/skuStock.js new file mode 100644 index 0000000..b54dbdf --- /dev/null +++ b/src/api/skuStock.js @@ -0,0 +1,16 @@ +import request from '@/utils/request' +export function fetchList(pid,params) { + return request({ + url:'/pms/PmsSkuStock/select/'+pid, + method:'get', + params:params + }) +} + +export function update(pid,data) { + return request({ + url:'/pms/PmsSkuStock/updatePid/'+pid, + method:'post', + data:data + }) +} diff --git a/src/components/Upload/multiUpload.vue b/src/components/Upload/multiUpload.vue new file mode 100644 index 0000000..ac9dc47 --- /dev/null +++ b/src/components/Upload/multiUpload.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/components/Upload/singleUpload-oss.vue b/src/components/Upload/singleUpload-oss.vue new file mode 100644 index 0000000..bd05bb8 --- /dev/null +++ b/src/components/Upload/singleUpload-oss.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/components/Upload/singleUpload.vue b/src/components/Upload/singleUpload.vue new file mode 100644 index 0000000..5090507 --- /dev/null +++ b/src/components/Upload/singleUpload.vue @@ -0,0 +1,120 @@ + + + + diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue index 0b1cc41..312e81f 100644 --- a/src/layout/components/Sidebar/index.vue +++ b/src/layout/components/Sidebar/index.vue @@ -55,40 +55,49 @@ path: '/userInfo/index' }, { alwaysShow: true, - component: 'brand', + component: 'pms', meta: { icon: 'el-icon-menu', title: '商品管理' }, - name: '/brand', - path: '/brand', + name: '/pms', + path: '/pms', children: [{ alwaysShow: true, - component: 'index', + component: 'product', + meta: { + icon: 'el-icon-help', + title: '商品列表' + }, + name: '/pms/product', + path: '/pms/product' + }, { + alwaysShow: true, + component: 'brand', meta: { icon: 'el-icon-help', title: '品牌管理' }, - name: '/brand/index', - path: '/brand/index' + name: '/pms/brand', + path: '/pms/brand' }, { alwaysShow: true, - component: 'enterprise', + component: 'productCate', meta: { icon: 'el-icon-help', title: '商品分类' }, - name: '/cardManage/enterprise', - path: '/cardManage/enterprise' + name: '/pms/productCate', + path: '/pms/productCate' }, { alwaysShow: true, - component: 'giftCard', + component: 'productAttr', meta: { icon: 'el-icon-help', title: '商品类型' }, - name: '/cardManage/giftCard', - path: '/cardManage/giftCard' + name: '/pms/productAttr', + path: '/pms/productAttr' } ] }, diff --git a/src/router/index.js b/src/router/index.js index 2a4b674..cf6d2fe 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -30,7 +30,7 @@ export const constantRoutes = [{ // component: () => import('@/views/userInfo/index.vue'), // name: 'index' - // }, + // }, { path: '/index', @@ -67,34 +67,78 @@ export const constantRoutes = [{ } }, ] }, { - path: '/brand', + path: '/pms', component: Layout, redirect: null, meta: { title: '商品管理' }, children: [{ - path: '/brand/index', + path: 'product', + name: 'product', + component: () => import('@/views/pms/product/index'), + meta: { + title: '商品列表', + icon: 'product-list' + } + },{ + path: 'brand', component: () => import('@/views/pms/brand/index.vue'), - name: 'index', + name: 'brand', meta: { title: '品牌管理' } }, { - path: '/cardManage/enterprise', + path: 'addBrand', + name: 'addBrand', + component: () => import('@/views/pms/brand/add'), + meta: { + title: '添加品牌' + }, + hidden: true + }, + { + path: 'updateBrand', + name: 'updateBrand', + component: () => import('@/views/pms/brand/update'), + meta: { + title: '编辑品牌' + }, + hidden: true + }, + { + path: 'productCate', component: () => - import('@/views/cardManage/enterprise.vue'), - name: 'enterprise', + import('@/views/pms/productCate/index'), + name: 'productCate', meta: { title: '商品分类' } }, { - path: '/cardManage/giftCard', + path: 'addProductCate', + name: 'addProductCate', + component: () => import('@/views/pms/productCate/add'), + meta: { + title: '添加商品分类' + }, + hidden: true + }, + { + path: 'updateProductCate', + name: 'updateProductCate', + component: () => import('@/views/pms/productCate/update'), + meta: { + title: '修改商品分类' + }, + hidden: true + }, + { + path: 'productAttr', component: () => - import('@/views/cardManage/giftCard.vue'), + import('@/views/pms/productAttr/index'), name: 'giftCard', meta: { title: '商品类型' @@ -362,4 +406,4 @@ export function resetRouter() { router.matcher = newRouter.matcher // reset router } -export default router \ No newline at end of file +export default router diff --git a/src/utils/date.js b/src/utils/date.js new file mode 100644 index 0000000..74fb0c5 --- /dev/null +++ b/src/utils/date.js @@ -0,0 +1,43 @@ +// date.js +export function formatDate(date, fmt) { + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); + } + let o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'h+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds() + }; + for (let k in o) { + if (new RegExp(`(${k})`).test(fmt)) { + let str = o[k] + ''; + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str)); + } + } + return fmt; +} + +function padLeftZero(str) { + return ('00' + str).substr(str.length); +} + +export function str2Date(dateStr, separator) { + if (!separator) { + separator = "-"; + } + let dateArr = dateStr.split(separator); + let year = parseInt(dateArr[0]); + let month; + //处理月份为04这样的情况 + if (dateArr[1].indexOf("0") == 0) { + month = parseInt(dateArr[1].substring(1)); + } else { + month = parseInt(dateArr[1]); + } + let day = parseInt(dateArr[2]); + let date = new Date(year, month - 1, day); + return date; +} + diff --git a/src/views/pms/brand/add.vue b/src/views/pms/brand/add.vue index 95eed17..147102d 100644 --- a/src/views/pms/brand/add.vue +++ b/src/views/pms/brand/add.vue @@ -1,14 +1,13 @@ -