From e89594656712dbb90ae818e883c0ade3119f7f72 Mon Sep 17 00:00:00 2001 From: cuiyouliang Date: Tue, 3 Jun 2025 11:53:46 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=BF=81=E7=A7=BB=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=9D=83=E9=99=90=E7=AD=89=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=202=E3=80=81vuex=E5=8D=87=E7=BA=A7=E5=85=BC=E5=AE=B9pinia=203?= =?UTF-8?q?=E3=80=81=E5=A2=9E=E5=8A=A0stylus=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 5 +- src/api/act/couponActivity.js | 54 ++ src/api/act/memberCoupon.js | 54 ++ src/api/aws/systemStatistics.js | 54 ++ src/api/monitor/cache.js | 57 ++ src/api/monitor/job.js | 71 ++ src/api/monitor/jobLog.js | 26 + src/api/monitor/logininfor.js | 26 + src/api/monitor/online.js | 18 + src/api/monitor/operlog.js | 26 + src/api/monitor/server.js | 9 + src/api/oms/aftersale.js | 70 ++ src/api/oms/aftersaleItem.js | 54 ++ src/api/oms/order.js | 94 +++ src/api/oms/orderDeliveryHistory.js | 54 ++ src/api/oms/orderItem.js | 54 ++ src/api/oms/orderOperateHistory.js | 54 ++ src/api/oms/wechatPaymentHistory.js | 54 ++ src/api/pms/brand.js | 62 ++ src/api/pms/product.js | 54 ++ src/api/pms/productCategory.js | 54 ++ src/api/pms/sku.js | 54 ++ src/api/statistics/index.js | 32 + src/api/system/common.js | 10 + src/api/ums/feedback.js | 26 + src/api/ums/member.js | 104 +++ src/api/ums/memberAddress.js | 54 ++ src/api/ums/memberCart.js | 54 ++ src/api/ums/memberLogininfor.js | 54 ++ src/api/ums/memberWechat.js | 54 ++ src/components/SeeAdsComponent.vue | 71 ++ src/permission.ts | 3 + src/router/index.ts | 115 +++ src/store/getters.js | 27 + src/store/modules/mall.ts | 50 ++ src/utils/DateUtil.js | 222 +++++ src/utils/is-star-plugin.js | 218 +++++ src/views/act/couponActivity/index.vue | 387 +++++++++ src/views/act/couponActivity/receiveList.vue | 95 +++ src/views/act/memberCoupon/index.vue | 484 +++++++++++ src/views/aws/systemStatistics/index.vue | 257 ++++++ .../components/AddressSelector/index.vue | 59 ++ src/views/components/BrandSelect.vue | 49 ++ .../IndexOrderPanelGroup/TopProduct.vue | 95 +++ src/views/components/PanelGroup/index.vue | 181 +++++ .../components/ProductCategorySelect.vue | 67 ++ src/views/components/icons/element-icons.js | 3 + src/views/components/icons/index.vue | 87 ++ src/views/components/icons/svg-icons.js | 10 + src/views/dashboard/BarChart.vue | 102 +++ src/views/dashboard/LineChart.vue | 135 ++++ src/views/dashboard/OrderLineChart.vue | 234 ++++++ src/views/dashboard/PanelGroup.vue | 181 +++++ src/views/dashboard/PieChart.vue | 79 ++ src/views/dashboard/RaddarChart.vue | 116 +++ src/views/dashboard/mixins/resize.js | 56 ++ src/views/monitor/druid/index.vue | 15 + src/views/monitor/job/index.vue | 515 ++++++++++++ src/views/monitor/job/log.vue | 295 +++++++ src/views/monitor/server/index.vue | 207 +++++ src/views/oms/aftersale/detail.vue | 275 +++++++ src/views/oms/aftersale/index.vue | 492 ++++++++++++ src/views/oms/aftersaleItem/index.vue | 291 +++++++ src/views/oms/order/detail.vue | 206 +++++ src/views/oms/order/index.vue | 759 ++++++++++++++++++ src/views/oms/orderDeliveryHistory/index.vue | 258 ++++++ src/views/oms/orderItem/index.vue | 424 ++++++++++ src/views/oms/orderOperateHistory/index.vue | 287 +++++++ src/views/oms/wechatPaymentHistory/index.vue | 395 +++++++++ src/views/pms/brand/index.vue | 257 ++++++ src/views/pms/product/AddProduct.vue | 371 +++++++++ src/views/pms/product/index.vue | 220 +++++ src/views/pms/product/productSelect.vue | 131 +++ src/views/pms/productCategory/index.vue | 320 ++++++++ src/views/pms/sku/index.vue | 282 +++++++ src/views/set/integralSetting.vue | 121 +++ src/views/set/setting.vue | 68 ++ src/views/ums/feedback/index.vue | 219 +++++ src/views/ums/member/index.vue | 414 ++++++++++ src/views/ums/memberAddress/index.vue | 350 ++++++++ src/views/ums/memberCart/index.vue | 295 +++++++ src/views/ums/memberLogininfor/index.vue | 274 +++++++ src/views/ums/memberWechat/index.vue | 404 ++++++++++ vite.config.ts | 3 +- 84 files changed, 12975 insertions(+), 2 deletions(-) create mode 100644 src/api/act/couponActivity.js create mode 100644 src/api/act/memberCoupon.js create mode 100644 src/api/aws/systemStatistics.js create mode 100644 src/api/monitor/cache.js create mode 100644 src/api/monitor/job.js create mode 100644 src/api/monitor/jobLog.js create mode 100644 src/api/monitor/logininfor.js create mode 100644 src/api/monitor/online.js create mode 100644 src/api/monitor/operlog.js create mode 100644 src/api/monitor/server.js create mode 100644 src/api/oms/aftersale.js create mode 100644 src/api/oms/aftersaleItem.js create mode 100644 src/api/oms/order.js create mode 100644 src/api/oms/orderDeliveryHistory.js create mode 100644 src/api/oms/orderItem.js create mode 100644 src/api/oms/orderOperateHistory.js create mode 100644 src/api/oms/wechatPaymentHistory.js create mode 100644 src/api/pms/brand.js create mode 100644 src/api/pms/product.js create mode 100644 src/api/pms/productCategory.js create mode 100644 src/api/pms/sku.js create mode 100644 src/api/statistics/index.js create mode 100644 src/api/system/common.js create mode 100644 src/api/ums/feedback.js create mode 100644 src/api/ums/member.js create mode 100644 src/api/ums/memberAddress.js create mode 100644 src/api/ums/memberCart.js create mode 100644 src/api/ums/memberLogininfor.js create mode 100644 src/api/ums/memberWechat.js create mode 100644 src/components/SeeAdsComponent.vue create mode 100644 src/store/getters.js create mode 100644 src/store/modules/mall.ts create mode 100644 src/utils/DateUtil.js create mode 100644 src/utils/is-star-plugin.js create mode 100644 src/views/act/couponActivity/index.vue create mode 100644 src/views/act/couponActivity/receiveList.vue create mode 100644 src/views/act/memberCoupon/index.vue create mode 100644 src/views/aws/systemStatistics/index.vue create mode 100644 src/views/components/AddressSelector/index.vue create mode 100644 src/views/components/BrandSelect.vue create mode 100644 src/views/components/IndexOrderPanelGroup/TopProduct.vue create mode 100644 src/views/components/PanelGroup/index.vue create mode 100644 src/views/components/ProductCategorySelect.vue create mode 100644 src/views/components/icons/element-icons.js create mode 100644 src/views/components/icons/index.vue create mode 100644 src/views/components/icons/svg-icons.js create mode 100644 src/views/dashboard/BarChart.vue create mode 100644 src/views/dashboard/LineChart.vue create mode 100644 src/views/dashboard/OrderLineChart.vue create mode 100644 src/views/dashboard/PanelGroup.vue create mode 100644 src/views/dashboard/PieChart.vue create mode 100644 src/views/dashboard/RaddarChart.vue create mode 100644 src/views/dashboard/mixins/resize.js create mode 100644 src/views/monitor/druid/index.vue create mode 100644 src/views/monitor/job/index.vue create mode 100644 src/views/monitor/job/log.vue create mode 100644 src/views/monitor/server/index.vue create mode 100644 src/views/oms/aftersale/detail.vue create mode 100644 src/views/oms/aftersale/index.vue create mode 100644 src/views/oms/aftersaleItem/index.vue create mode 100644 src/views/oms/order/detail.vue create mode 100644 src/views/oms/order/index.vue create mode 100644 src/views/oms/orderDeliveryHistory/index.vue create mode 100644 src/views/oms/orderItem/index.vue create mode 100644 src/views/oms/orderOperateHistory/index.vue create mode 100644 src/views/oms/wechatPaymentHistory/index.vue create mode 100644 src/views/pms/brand/index.vue create mode 100644 src/views/pms/product/AddProduct.vue create mode 100644 src/views/pms/product/index.vue create mode 100644 src/views/pms/product/productSelect.vue create mode 100644 src/views/pms/productCategory/index.vue create mode 100644 src/views/pms/sku/index.vue create mode 100644 src/views/set/integralSetting.vue create mode 100644 src/views/set/setting.vue create mode 100644 src/views/ums/feedback/index.vue create mode 100644 src/views/ums/member/index.vue create mode 100644 src/views/ums/memberAddress/index.vue create mode 100644 src/views/ums/memberCart/index.vue create mode 100644 src/views/ums/memberLogininfor/index.vue create mode 100644 src/views/ums/memberWechat/index.vue diff --git a/package.json b/package.json index c34dff4..2619193 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "url": "https://gitee.com/JavaLionLi/plus-ui.git" }, "dependencies": { + "@riophae/vue-treeselect": "0.4.0", "@element-plus/icons-vue": "2.3.1", "@highlightjs/vue-plugin": "2.1.0", "@tencentcloud/chat": "^3.5.5", @@ -80,7 +81,9 @@ "vite-plugin-svg-icons-ng": "^1.4.0", "vite-plugin-vue-devtools": "7.7.5", "vitest": "3.1.2", - "vue-tsc": "^2.2.8" + "vue-tsc": "^2.2.8", + "stylus": "^0.54.5", + "stylus-loader": "^3.0.2" }, "overrides": { "quill": "2.0.2" diff --git a/src/api/act/couponActivity.js b/src/api/act/couponActivity.js new file mode 100644 index 0000000..2ed84ee --- /dev/null +++ b/src/api/act/couponActivity.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询优惠券活动表列表 +export function listCouponActivity(query, pageReq) { + return request({ + url: '/act/couponActivity/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询优惠券活动表详细 +export function getCouponActivity(id) { + return request({ + url: '/act/couponActivity/' + id, + method: 'get' + }) +} + +// 新增优惠券活动表 +export function addCouponActivity(data) { + return request({ + url: '/act/couponActivity', + method: 'post', + data: data + }) +} + +// 修改优惠券活动表 +export function updateCouponActivity(data) { + return request({ + url: '/act/couponActivity', + method: 'put', + data: data + }) +} + +// 删除优惠券活动表 +export function delCouponActivity(id) { + return request({ + url: '/act/couponActivity/' + id, + method: 'delete' + }) +} + +// 导出优惠券活动表 +export function exportCouponActivity(query) { + return request({ + url: '/act/couponActivity/export', + method: 'get', + params: query + }) +} diff --git a/src/api/act/memberCoupon.js b/src/api/act/memberCoupon.js new file mode 100644 index 0000000..86bbd3d --- /dev/null +++ b/src/api/act/memberCoupon.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询用户领券记录列表 +export function listMemberCoupon(query, pageReq) { + return request({ + url: '/act/memberCoupon/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询用户领券记录详细 +export function getMemberCoupon(id) { + return request({ + url: '/act/memberCoupon/' + id, + method: 'get' + }) +} + +// 新增用户领券记录 +export function addMemberCoupon(data) { + return request({ + url: '/act/memberCoupon', + method: 'post', + data: data + }) +} + +// 修改用户领券记录 +export function updateMemberCoupon(data) { + return request({ + url: '/act/memberCoupon', + method: 'put', + data: data + }) +} + +// 删除用户领券记录 +export function delMemberCoupon(id) { + return request({ + url: '/act/memberCoupon/' + id, + method: 'delete' + }) +} + +// 导出用户领券记录 +export function exportMemberCoupon(query) { + return request({ + url: '/act/memberCoupon/export', + method: 'get', + params: query + }) +} diff --git a/src/api/aws/systemStatistics.js b/src/api/aws/systemStatistics.js new file mode 100644 index 0000000..8a5832b --- /dev/null +++ b/src/api/aws/systemStatistics.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询系统数据统计列表 +export function listAwsSystemStatistics(query, pageReq) { + return request({ + url: '/aws/systemStatistics/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询系统数据统计详细 +export function getAwsSystemStatistics(id) { + return request({ + url: '/aws/systemStatistics/' + id, + method: 'get' + }) +} + +// 新增系统数据统计 +export function addAwsSystemStatistics(data) { + return request({ + url: '/aws/systemStatistics', + method: 'post', + data: data + }) +} + +// 修改系统数据统计 +export function updateAwsSystemStatistics(data) { + return request({ + url: '/aws/systemStatistics', + method: 'put', + data: data + }) +} + +// 删除系统数据统计 +export function delAwsSystemStatistics(id) { + return request({ + url: '/aws/systemStatistics/' + id, + method: 'delete' + }) +} + +// 导出系统数据统计 +export function exportAwsSystemStatistics(query) { + return request({ + url: '/aws/systemStatistics/export', + method: 'get', + params: query + }) +} diff --git a/src/api/monitor/cache.js b/src/api/monitor/cache.js new file mode 100644 index 0000000..72c5f6a --- /dev/null +++ b/src/api/monitor/cache.js @@ -0,0 +1,57 @@ +import request from '@/utils/request' + +// 查询缓存详细 +export function getCache() { + return request({ + url: '/monitor/cache', + method: 'get' + }) +} + +// 查询缓存名称列表 +export function listCacheName() { + return request({ + url: '/monitor/cache/getNames', + method: 'get' + }) +} + +// 查询缓存键名列表 +export function listCacheKey(cacheName) { + return request({ + url: '/monitor/cache/getKeys/' + cacheName, + method: 'get' + }) +} + +// 查询缓存内容 +export function getCacheValue(cacheName, cacheKey) { + return request({ + url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey, + method: 'get' + }) +} + +// 清理指定名称缓存 +export function clearCacheName(cacheName) { + return request({ + url: '/monitor/cache/clearCacheName/' + cacheName, + method: 'delete' + }) +} + +// 清理指定键名缓存 +export function clearCacheKey(cacheKey) { + return request({ + url: '/monitor/cache/clearCacheKey/' + cacheKey, + method: 'delete' + }) +} + +// 清理全部缓存 +export function clearCacheAll() { + return request({ + url: '/monitor/cache/clearCacheAll', + method: 'delete' + }) +} diff --git a/src/api/monitor/job.js b/src/api/monitor/job.js new file mode 100644 index 0000000..3815569 --- /dev/null +++ b/src/api/monitor/job.js @@ -0,0 +1,71 @@ +import request from '@/utils/request' + +// 查询定时任务调度列表 +export function listJob(query) { + return request({ + url: '/monitor/job/list', + method: 'get', + params: query + }) +} + +// 查询定时任务调度详细 +export function getJob(jobId) { + return request({ + url: '/monitor/job/' + jobId, + method: 'get' + }) +} + +// 新增定时任务调度 +export function addJob(data) { + return request({ + url: '/monitor/job', + method: 'post', + data: data + }) +} + +// 修改定时任务调度 +export function updateJob(data) { + return request({ + url: '/monitor/job', + method: 'put', + data: data + }) +} + +// 删除定时任务调度 +export function delJob(jobId) { + return request({ + url: '/monitor/job/' + jobId, + method: 'delete' + }) +} + +// 任务状态修改 +export function changeJobStatus(jobId, status) { + const data = { + jobId, + status + } + return request({ + url: '/monitor/job/changeStatus', + method: 'put', + data: data + }) +} + + +// 定时任务立即执行一次 +export function runJob(jobId, jobGroup) { + const data = { + jobId, + jobGroup + } + return request({ + url: '/monitor/job/run', + method: 'put', + data: data + }) +} \ No newline at end of file diff --git a/src/api/monitor/jobLog.js b/src/api/monitor/jobLog.js new file mode 100644 index 0000000..6e0be61 --- /dev/null +++ b/src/api/monitor/jobLog.js @@ -0,0 +1,26 @@ +import request from '@/utils/request' + +// 查询调度日志列表 +export function listJobLog(query) { + return request({ + url: '/monitor/jobLog/list', + method: 'get', + params: query + }) +} + +// 删除调度日志 +export function delJobLog(jobLogId) { + return request({ + url: '/monitor/jobLog/' + jobLogId, + method: 'delete' + }) +} + +// 清空调度日志 +export function cleanJobLog() { + return request({ + url: '/monitor/jobLog/clean', + method: 'delete' + }) +} diff --git a/src/api/monitor/logininfor.js b/src/api/monitor/logininfor.js new file mode 100644 index 0000000..26a46eb --- /dev/null +++ b/src/api/monitor/logininfor.js @@ -0,0 +1,26 @@ +import request from '@/utils/request' + +// 查询登录日志列表 +export function list(query) { + return request({ + url: '/monitor/logininfor/list', + method: 'get', + params: query + }) +} + +// 删除登录日志 +export function delLogininfor(infoId) { + return request({ + url: '/monitor/logininfor/' + infoId, + method: 'delete' + }) +} + +// 清空登录日志 +export function cleanLogininfor() { + return request({ + url: '/monitor/logininfor/clean', + method: 'delete' + }) +} diff --git a/src/api/monitor/online.js b/src/api/monitor/online.js new file mode 100644 index 0000000..bd22137 --- /dev/null +++ b/src/api/monitor/online.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 查询在线用户列表 +export function list(query) { + return request({ + url: '/monitor/online/list', + method: 'get', + params: query + }) +} + +// 强退用户 +export function forceLogout(tokenId) { + return request({ + url: '/monitor/online/' + tokenId, + method: 'delete' + }) +} diff --git a/src/api/monitor/operlog.js b/src/api/monitor/operlog.js new file mode 100644 index 0000000..a04bca8 --- /dev/null +++ b/src/api/monitor/operlog.js @@ -0,0 +1,26 @@ +import request from '@/utils/request' + +// 查询操作日志列表 +export function list(query) { + return request({ + url: '/monitor/operlog/list', + method: 'get', + params: query + }) +} + +// 删除操作日志 +export function delOperlog(operId) { + return request({ + url: '/monitor/operlog/' + operId, + method: 'delete' + }) +} + +// 清空操作日志 +export function cleanOperlog() { + return request({ + url: '/monitor/operlog/clean', + method: 'delete' + }) +} diff --git a/src/api/monitor/server.js b/src/api/monitor/server.js new file mode 100644 index 0000000..e1f9ca2 --- /dev/null +++ b/src/api/monitor/server.js @@ -0,0 +1,9 @@ +import request from '@/utils/request' + +// 获取服务信息 +export function getServer() { + return request({ + url: '/monitor/server', + method: 'get' + }) +} \ No newline at end of file diff --git a/src/api/oms/aftersale.js b/src/api/oms/aftersale.js new file mode 100644 index 0000000..23bce5e --- /dev/null +++ b/src/api/oms/aftersale.js @@ -0,0 +1,70 @@ +import request from '@/utils/request' + +// 查询订单售后列表 +export function listOmsAftersale(query, pageReq) { + return request({ + url: '/oms/aftersale/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询订单售后详细 +export function getOmsAftersale(id) { + return request({ + url: '/oms/aftersale/' + id, + method: 'get' + }) +} + +// 新增订单售后 +export function addOmsAftersale(data) { + return request({ + url: '/oms/aftersale', + method: 'post', + data: data + }) +} + +// 修改订单售后 +export function updateOmsAftersale(data) { + return request({ + url: '/oms/aftersale', + method: 'put', + data: data + }) +} + +// 删除订单售后 +export function delOmsAftersale(id) { + return request({ + url: '/oms/aftersale/' + id, + method: 'delete' + }) +} + +// 导出订单售后 +export function exportOmsAftersale(query) { + return request({ + url: '/oms/aftersale/export', + method: 'get', + params: query + }) +} + +// 售后订单操作 +export function dealWithAftersale(data){ + return request({ + url: '/oms/aftersale/dealWith', + method: 'post', + data: data + }) +} + +export function viewLog(orderId){ + return request({ + url: `/oms/aftersale/log/` + orderId, + method: 'get' + }) +} diff --git a/src/api/oms/aftersaleItem.js b/src/api/oms/aftersaleItem.js new file mode 100644 index 0000000..2ec63d6 --- /dev/null +++ b/src/api/oms/aftersaleItem.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询订单售后列表 +export function listOmsAftersaleItem(query, pageReq) { + return request({ + url: '/oms/aftersaleItem/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询订单售后详细 +export function getOmsAftersaleItem(id) { + return request({ + url: '/oms/aftersaleItem/' + id, + method: 'get' + }) +} + +// 新增订单售后 +export function addOmsAftersaleItem(data) { + return request({ + url: '/oms/aftersaleItem', + method: 'post', + data: data + }) +} + +// 修改订单售后 +export function updateOmsAftersaleItem(data) { + return request({ + url: '/oms/aftersaleItem', + method: 'put', + data: data + }) +} + +// 删除订单售后 +export function delOmsAftersaleItem(id) { + return request({ + url: '/oms/aftersaleItem/' + id, + method: 'delete' + }) +} + +// 导出订单售后 +export function exportOmsAftersaleItem(query) { + return request({ + url: '/oms/aftersaleItem/export', + method: 'get', + params: query + }) +} diff --git a/src/api/oms/order.js b/src/api/oms/order.js new file mode 100644 index 0000000..31644ff --- /dev/null +++ b/src/api/oms/order.js @@ -0,0 +1,94 @@ +import request from '@/utils/request' + +// 查询订单表列表 +export function listOmsOrder(query, pageReq) { + return request({ + url: '/oms/order/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询订单表详细 +export function getOmsOrder(id) { + return request({ + url: '/oms/order/' + id, + method: 'get' + }) +} +// 查询订单手机号密文 +export function getDecryptPhone(id) { + return request({ + url: '/oms/order/decryptPhone/' + id, + method: 'get' + }) +} +// 新增订单表 +export function addOmsOrder(data) { + return request({ + url: '/oms/order', + method: 'post', + data: data + }) +} + +// 修改订单表 +export function updateOmsOrder(data) { + return request({ + url: '/oms/order', + method: 'put', + data: data + }) +} + +// 删除订单表 +export function delOmsOrder(id) { + return request({ + url: '/oms/order/' + id, + method: 'delete' + }) +} + +// 导出订单表 +export function exportOmsOrder(query) { + return request({ + url: '/oms/order/export', + method: 'get', + params: query + }) +} + +// 保存商家备注 +export function saveMerchantNote(data){ + return request({ + url: '/oms/order/merchantNote/add', + method: 'post', + data: data + }) +} + +// 发货 +export function deliverProduct(data){ + return request({ + url: '/oms/order/deliverProduct', + method: 'post', + data: data + }) +} + +export function updateReceiverAddress(data){ + return request({ + url: '/oms/order/receiver/update', + method: 'post', + data: data + }) +} + +// 查看订单操作日志 +export function viewLog(orderId){ + return request({ + url:`/oms/order/log/` + orderId, + method: 'get' + }) +} diff --git a/src/api/oms/orderDeliveryHistory.js b/src/api/oms/orderDeliveryHistory.js new file mode 100644 index 0000000..59f08e9 --- /dev/null +++ b/src/api/oms/orderDeliveryHistory.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询订单发货记录列表 +export function listOmsOrderDeliveryHistory(query, pageReq) { + return request({ + url: '/oms/orderDeliveryHistory/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询订单发货记录详细 +export function getOmsOrderDeliveryHistory(id) { + return request({ + url: '/oms/orderDeliveryHistory/' + id, + method: 'get' + }) +} + +// 新增订单发货记录 +export function addOmsOrderDeliveryHistory(data) { + return request({ + url: '/oms/orderDeliveryHistory', + method: 'post', + data: data + }) +} + +// 修改订单发货记录 +export function updateOmsOrderDeliveryHistory(data) { + return request({ + url: '/oms/orderDeliveryHistory', + method: 'put', + data: data + }) +} + +// 删除订单发货记录 +export function delOmsOrderDeliveryHistory(id) { + return request({ + url: '/oms/orderDeliveryHistory/' + id, + method: 'delete' + }) +} + +// 导出订单发货记录 +export function exportOmsOrderDeliveryHistory(query) { + return request({ + url: '/oms/orderDeliveryHistory/export', + method: 'get', + params: query + }) +} diff --git a/src/api/oms/orderItem.js b/src/api/oms/orderItem.js new file mode 100644 index 0000000..9b05a42 --- /dev/null +++ b/src/api/oms/orderItem.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询订单中所包含的商品列表 +export function listOmsOrderItem(query, pageReq) { + return request({ + url: '/oms/orderItem/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询订单中所包含的商品详细 +export function getOmsOrderItem(id) { + return request({ + url: '/oms/orderItem/' + id, + method: 'get' + }) +} + +// 新增订单中所包含的商品 +export function addOmsOrderItem(data) { + return request({ + url: '/oms/orderItem', + method: 'post', + data: data + }) +} + +// 修改订单中所包含的商品 +export function updateOmsOrderItem(data) { + return request({ + url: '/oms/orderItem', + method: 'put', + data: data + }) +} + +// 删除订单中所包含的商品 +export function delOmsOrderItem(id) { + return request({ + url: '/oms/orderItem/' + id, + method: 'delete' + }) +} + +// 导出订单中所包含的商品 +export function exportOmsOrderItem(query) { + return request({ + url: '/oms/orderItem/export', + method: 'get', + params: query + }) +} diff --git a/src/api/oms/orderOperateHistory.js b/src/api/oms/orderOperateHistory.js new file mode 100644 index 0000000..ebb3055 --- /dev/null +++ b/src/api/oms/orderOperateHistory.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询订单操作历史记录列表 +export function listOmsOrderOperateHistory(query, pageReq) { + return request({ + url: '/oms/orderOperateHistory/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询订单操作历史记录详细 +export function getOmsOrderOperateHistory(id) { + return request({ + url: '/oms/orderOperateHistory/' + id, + method: 'get' + }) +} + +// 新增订单操作历史记录 +export function addOmsOrderOperateHistory(data) { + return request({ + url: '/oms/orderOperateHistory', + method: 'post', + data: data + }) +} + +// 修改订单操作历史记录 +export function updateOmsOrderOperateHistory(data) { + return request({ + url: '/oms/orderOperateHistory', + method: 'put', + data: data + }) +} + +// 删除订单操作历史记录 +export function delOmsOrderOperateHistory(id) { + return request({ + url: '/oms/orderOperateHistory/' + id, + method: 'delete' + }) +} + +// 导出订单操作历史记录 +export function exportOmsOrderOperateHistory(query) { + return request({ + url: '/oms/orderOperateHistory/export', + method: 'get', + params: query + }) +} diff --git a/src/api/oms/wechatPaymentHistory.js b/src/api/oms/wechatPaymentHistory.js new file mode 100644 index 0000000..4c033de --- /dev/null +++ b/src/api/oms/wechatPaymentHistory.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询微信订单表列表 +export function listOmsWechatPaymentHistory(query, pageReq) { + return request({ + url: '/pms/omsWechatPaymentHistory/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询微信订单表详细 +export function getOmsWechatPaymentHistory(id) { + return request({ + url: '/pms/omsWechatPaymentHistory/' + id, + method: 'get' + }) +} + +// 新增微信订单表 +export function addOmsWechatPaymentHistory(data) { + return request({ + url: '/pms/omsWechatPaymentHistory', + method: 'post', + data: data + }) +} + +// 修改微信订单表 +export function updateOmsWechatPaymentHistory(data) { + return request({ + url: '/pms/omsWechatPaymentHistory', + method: 'put', + data: data + }) +} + +// 删除微信订单表 +export function delOmsWechatPaymentHistory(id) { + return request({ + url: '/pms/omsWechatPaymentHistory/' + id, + method: 'delete' + }) +} + +// 导出微信订单表 +export function exportOmsWechatPaymentHistory(query) { + return request({ + url: '/pms/omsWechatPaymentHistory/export', + method: 'get', + params: query + }) +} diff --git a/src/api/pms/brand.js b/src/api/pms/brand.js new file mode 100644 index 0000000..11c3253 --- /dev/null +++ b/src/api/pms/brand.js @@ -0,0 +1,62 @@ +import request from '@/utils/request' + +// 查询品牌管理列表 +export function listPmsBrand(query, pageReq) { + return request({ + url: '/pms/brand/list', + method: 'post', + data: query, + params: pageReq + }) +} +export function allBrand(query, pageReq) { + return request({ + url: '/pms/brand/all', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询品牌管理详细 +export function getPmsBrand(id) { + return request({ + url: '/pms/brand/' + id, + method: 'get' + }) +} + +// 新增品牌管理 +export function addPmsBrand(data) { + return request({ + url: '/pms/brand', + method: 'post', + data: data + }) +} + +// 修改品牌管理 +export function updatePmsBrand(data) { + return request({ + url: '/pms/brand', + method: 'put', + data: data + }) +} + +// 删除品牌管理 +export function delPmsBrand(id) { + return request({ + url: '/pms/brand/' + id, + method: 'delete' + }) +} + +// 导出品牌管理 +export function exportPmsBrand(query) { + return request({ + url: '/pms/brand/export', + method: 'get', + params: query + }) +} diff --git a/src/api/pms/product.js b/src/api/pms/product.js new file mode 100644 index 0000000..b280364 --- /dev/null +++ b/src/api/pms/product.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询商品信息列表 +export function listPmsProduct(query, pageReq) { + return request({ + url: '/pms/product/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询商品信息详细 +export function getPmsProduct(id) { + return request({ + url: '/pms/product/' + id, + method: 'get' + }) +} + +// 新增商品信息 +export function addPmsProduct(data) { + return request({ + url: '/pms/product', + method: 'post', + data: data + }) +} + +// 修改商品信息 +export function updatePmsProduct(data) { + return request({ + url: '/pms/product', + method: 'put', + data: data + }) +} + +// 删除商品信息 +export function delPmsProduct(id) { + return request({ + url: '/pms/product/' + id, + method: 'delete' + }) +} + +// 导出商品信息 +export function exportPmsProduct(query) { + return request({ + url: '/pms/product/export', + method: 'get', + params: query + }) +} diff --git a/src/api/pms/productCategory.js b/src/api/pms/productCategory.js new file mode 100644 index 0000000..7ca41e3 --- /dev/null +++ b/src/api/pms/productCategory.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询商品分类列表 +export function listPmsProductCategory(query, pageReq) { + return request({ + url: '/pms/productCategory/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询商品分类详细 +export function getPmsProductCategory(id) { + return request({ + url: '/pms/productCategory/' + id, + method: 'get' + }) +} + +// 新增商品分类 +export function addPmsProductCategory(data) { + return request({ + url: '/pms/productCategory', + method: 'post', + data: data + }) +} + +// 修改商品分类 +export function updatePmsProductCategory(data) { + return request({ + url: '/pms/productCategory', + method: 'put', + data: data + }) +} + +// 删除商品分类 +export function delPmsProductCategory(id) { + return request({ + url: '/pms/productCategory/' + id, + method: 'delete' + }) +} + +// 导出商品分类 +export function exportPmsProductCategory(query) { + return request({ + url: '/pms/productCategory/export', + method: 'get', + params: query + }) +} diff --git a/src/api/pms/sku.js b/src/api/pms/sku.js new file mode 100644 index 0000000..0f0e3dc --- /dev/null +++ b/src/api/pms/sku.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询sku信息列表 +export function listPmsSku(query, pageReq) { + return request({ + url: '/pms/sku/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询sku信息详细 +export function getPmsSku(id) { + return request({ + url: '/pms/sku/' + id, + method: 'get' + }) +} + +// 新增sku信息 +export function addPmsSku(data) { + return request({ + url: '/pms/sku', + method: 'post', + data: data + }) +} + +// 修改sku信息 +export function updatePmsSku(data) { + return request({ + url: '/pms/sku', + method: 'put', + data: data + }) +} + +// 删除sku信息 +export function delPmsSku(id) { + return request({ + url: '/pms/sku/' + id, + method: 'delete' + }) +} + +// 导出sku信息 +export function exportPmsSku(query) { + return request({ + url: '/pms/sku/export', + method: 'get', + params: query + }) +} diff --git a/src/api/statistics/index.js b/src/api/statistics/index.js new file mode 100644 index 0000000..f2ce071 --- /dev/null +++ b/src/api/statistics/index.js @@ -0,0 +1,32 @@ +import request from '@/utils/request' + +// 获取首页查询热卖商品TOP +export function goodsStatistics(query) { + return request({ + url: '/dev/statistics/index/goodsStatistics', + method: 'get', + params: query + }) +} +export function memberAndCartStatistics() { + return request({ + url: '/dev/statistics/index/memberAndCart/statistics', + method: 'get' + }) +} + +export function orderAndAftersaleStatistics() { + return request({ + url: '/dev/statistics/index/order/aftersale/statistics', + method: 'get' + }) +} + +// 获取订单信息 +export function orderStatistics(query) { + return request({ + url: '/dev/statistics/index/orderStatistics', + method: 'post', + data: query + }) +} diff --git a/src/api/system/common.js b/src/api/system/common.js new file mode 100644 index 0000000..56b3ded --- /dev/null +++ b/src/api/system/common.js @@ -0,0 +1,10 @@ +import request from '@/utils/request'; + +// 查询省市区列表 +export function areaSelect(query) { + return request({ + url: '/common/area', + method: 'get', + params: query + }); +} diff --git a/src/api/ums/feedback.js b/src/api/ums/feedback.js new file mode 100644 index 0000000..6067524 --- /dev/null +++ b/src/api/ums/feedback.js @@ -0,0 +1,26 @@ +import request from "@/utils/request"; + +export function updateMark(data) { + return request({ + url: '/ums/feedback/mark/update', + method: 'post', + data: data + }) +} + +export function changeHandleStatus(data) { + return request({ + url: '/ums/feedback/handle/status/change', + method: 'post', + data: data + }) +} + +export function listFeedbacks(query, pageReq) { + return request({ + url: '/ums/feedback/list', + method: 'post', + data: query, + params: pageReq + }) +} diff --git a/src/api/ums/member.js b/src/api/ums/member.js new file mode 100644 index 0000000..7f46e44 --- /dev/null +++ b/src/api/ums/member.js @@ -0,0 +1,104 @@ +import request from '@/utils/request' + +// 查询会员信息列表 +export function listUmsMember(query, pageReq) { + return request({ + url: '/ums/member/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询会员信息详细 +export function getUmsMember(id) { + return request({ + url: '/ums/member/' + id, + method: 'get' + }) +} + +// 新增会员信息 +export function addUmsMember(data) { + return request({ + url: '/ums/member', + method: 'post', + data: data + }) +} + +// 修改会员信息 +export function updateUmsMember(data) { + return request({ + url: '/ums/member', + method: 'put', + data: data + }) +} +export function updateUmsMemberMark(data) { + return request({ + url: '/ums/member/mark/update', + method: 'post', + data: data + }) +} + +// 删除会员信息 +export function delUmsMember(id) { + return request({ + url: '/ums/member/' + id, + method: 'delete' + }) +} + +// 导出会员信息 +export function exportUmsMember(query) { + return request({ + url: '/ums/member/export', + method: 'get', + params: query + }) +} + +// 更改会员账号状态 +export function changeAccountStatus(data) { + return request({ + url: '/ums/member/status/change', + method: 'post', + data: data + }) +} + +// 获取解密手机号 +export function decryptedPhone(data) { + return request({ + url: `/ums/member/phone/decrypt/` + data, + method: 'get' + }) +} + +// 查询会员统计数据 +export function viewStatistics(memberId){ + return request({ + url: `/ums/member/view/statistics/` + memberId, + method: 'get' + }) +} + +export function getMiniWechatImg(params){ + return request({ + url: `/ums/member/wechat/code`, + method: 'get', + params + }) +} + +export function judgeQrCode(params){ + return request({ + url: `/no-auth/verified/code`, + method: 'get', + params + }) +} + + diff --git a/src/api/ums/memberAddress.js b/src/api/ums/memberAddress.js new file mode 100644 index 0000000..13eab6f --- /dev/null +++ b/src/api/ums/memberAddress.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询会员收货地址列表 +export function listUmsMemberAddress(query, pageReq) { + return request({ + url: '/ums/memberAddress/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询会员收货地址详细 +export function getUmsMemberAddress(id) { + return request({ + url: '/ums/memberAddress/' + id, + method: 'get' + }) +} + +// 新增会员收货地址 +export function addUmsMemberAddress(data) { + return request({ + url: '/ums/memberAddress', + method: 'post', + data: data + }) +} + +// 修改会员收货地址 +export function updateUmsMemberAddress(data) { + return request({ + url: '/ums/memberAddress', + method: 'put', + data: data + }) +} + +// 删除会员收货地址 +export function delUmsMemberAddress(id) { + return request({ + url: '/ums/memberAddress/' + id, + method: 'delete' + }) +} + +// 导出会员收货地址 +export function exportUmsMemberAddress(query) { + return request({ + url: '/ums/memberAddress/export', + method: 'get', + params: query + }) +} diff --git a/src/api/ums/memberCart.js b/src/api/ums/memberCart.js new file mode 100644 index 0000000..734e832 --- /dev/null +++ b/src/api/ums/memberCart.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询购物车列表 +export function listUmsMemberCart(query, pageReq) { + return request({ + url: '/ums/memberCart/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询购物车详细 +export function getUmsMemberCart(id) { + return request({ + url: '/ums/memberCart/' + id, + method: 'get' + }) +} + +// 新增购物车 +export function addUmsMemberCart(data) { + return request({ + url: '/ums/memberCart', + method: 'post', + data: data + }) +} + +// 修改购物车 +export function updateUmsMemberCart(data) { + return request({ + url: '/ums/memberCart', + method: 'put', + data: data + }) +} + +// 删除购物车 +export function delUmsMemberCart(id) { + return request({ + url: '/ums/memberCart/' + id, + method: 'delete' + }) +} + +// 导出购物车 +export function exportUmsMemberCart(query) { + return request({ + url: '/ums/memberCart/export', + method: 'get', + params: query + }) +} diff --git a/src/api/ums/memberLogininfor.js b/src/api/ums/memberLogininfor.js new file mode 100644 index 0000000..a883dcf --- /dev/null +++ b/src/api/ums/memberLogininfor.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询会员登录记录列表 +export function listUmsMemberLogininfor(query, pageReq) { + return request({ + url: '/ums/memberLogininfor/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询会员登录记录详细 +export function getUmsMemberLogininfor(id) { + return request({ + url: '/ums/memberLogininfor/' + id, + method: 'get' + }) +} + +// 新增会员登录记录 +export function addUmsMemberLogininfor(data) { + return request({ + url: '/ums/memberLogininfor', + method: 'post', + data: data + }) +} + +// 修改会员登录记录 +export function updateUmsMemberLogininfor(data) { + return request({ + url: '/ums/memberLogininfor', + method: 'put', + data: data + }) +} + +// 删除会员登录记录 +export function delUmsMemberLogininfor(id) { + return request({ + url: '/ums/memberLogininfor/' + id, + method: 'delete' + }) +} + +// 导出会员登录记录 +export function exportUmsMemberLogininfor(query) { + return request({ + url: '/ums/memberLogininfor/export', + method: 'get', + params: query + }) +} diff --git a/src/api/ums/memberWechat.js b/src/api/ums/memberWechat.js new file mode 100644 index 0000000..bb82e28 --- /dev/null +++ b/src/api/ums/memberWechat.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询用户微信信息列表 +export function listUmsMemberWechat(query, pageReq) { + return request({ + url: '/ums/memberWechat/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询用户微信信息详细 +export function getUmsMemberWechat(id) { + return request({ + url: '/ums/memberWechat/' + id, + method: 'get' + }) +} + +// 新增用户微信信息 +export function addUmsMemberWechat(data) { + return request({ + url: '/ums/memberWechat', + method: 'post', + data: data + }) +} + +// 修改用户微信信息 +export function updateUmsMemberWechat(data) { + return request({ + url: '/ums/memberWechat', + method: 'put', + data: data + }) +} + +// 删除用户微信信息 +export function delUmsMemberWechat(id) { + return request({ + url: '/ums/memberWechat/' + id, + method: 'delete' + }) +} + +// 导出用户微信信息 +export function exportUmsMemberWechat(query) { + return request({ + url: '/ums/memberWechat/export', + method: 'get', + params: query + }) +} diff --git a/src/components/SeeAdsComponent.vue b/src/components/SeeAdsComponent.vue new file mode 100644 index 0000000..46c9702 --- /dev/null +++ b/src/components/SeeAdsComponent.vue @@ -0,0 +1,71 @@ + + + + diff --git a/src/permission.ts b/src/permission.ts index fb60b07..c63a81b 100644 --- a/src/permission.ts +++ b/src/permission.ts @@ -19,6 +19,9 @@ const isWhiteList = (path: string) => { router.beforeEach(async (to, from, next) => { NProgress.start(); + // 仅仅限本地无token调试时候,不做token校验 + /* next(); + return;*/ if (getToken()) { to.meta.title && useSettingsStore().setTitle(to.meta.title as string); /* has token*/ diff --git a/src/router/index.ts b/src/router/index.ts index f96d08f..6699eab 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -94,6 +94,121 @@ export const constantRoutes: RouteRecordRaw[] = [ } ] }, + + // 新迁移的菜单,开发阶段暂时放在固定菜单内,后续迁移到权限菜单里 + { + path: '/system/user-auth', + component: Layout, + hidden: true, + permissions: ['system:user:edit'], + children: [ + { + path: 'role/:userId(\\d+)', + component: () => import('@/views/system/user/authRole.vue'), + name: 'AuthRole', + meta: { title: '分配角色', activeMenu: '/system/user' } + } + ] + }, + { + path: '/system/role-auth', + component: Layout, + hidden: true, + permissions: ['system:role:edit'], + children: [ + { + path: 'user/:roleId(\\d+)', + component: () => import('@/views/system/role/authUser.vue'), + name: 'AuthUser', + meta: { title: '分配用户', activeMenu: '/system/role' } + } + ] + }, + { + path: '/system/dict-data', + component: Layout, + hidden: true, + permissions: ['system:dict:list'], + children: [ + { + path: 'index/:dictId(\\d+)', + component: () => import('@/views/system/dict/data.vue'), + name: 'Data', + meta: { title: '字典数据', activeMenu: '/system/dict' } + } + ] + }, + { + path: '/monitor/job-log', + component: Layout, + hidden: true, + permissions: ['monitor:job:list'], + children: [ + { + path: 'index', + component: () => import('@/views/monitor/job/log.vue'), + name: 'JobLog', + meta: { title: '调度日志', activeMenu: '/monitor/job' } + } + ] + }, + { + path: '/tool/gen-edit', + component: Layout, + hidden: true, + permissions: ['tool:gen:edit'], + children: [ + { + path: 'index/:tableId(\\d+)', + component: () => import('@/views/tool/gen/editTable.vue'), + name: 'GenEdit', + meta: { title: '修改生成配置', activeMenu: '/tool/gen' } + } + ] + }, + { + path: '/product', + component: Layout, + hidden: true, + permissions: ['pms:product:list'], + children: [ + { + path: 'edit', + component: () => import('@/views/pms/product/AddProduct.vue'), + name: 'addProduct', + meta: { title: '编辑商品' } + } + ] + }, + { + path: '/order', + component: Layout, + hidden: true, + permissions: ['oms:order:query'], + children: [ + { + path: 'detail', + component: () => import('@/views/oms/order/detail.vue'), + name: 'orderDetail', + meta: { title: '订单详情' } + } + ] + }, + + { + path: '/aftersale', + component: Layout, + hidden: true, + // permissions: ['oms:aftersale:query'], + children: [ + { + path: 'detail', + component: () => import('@/views/oms/aftersale/detail.vue'), + name: 'aftersaleOrderDetail', + meta: { title: '售后订单详情' } + } + ] + }, // 内容中心 { path: '/content-center', diff --git a/src/store/getters.js b/src/store/getters.js new file mode 100644 index 0000000..3dc5e16 --- /dev/null +++ b/src/store/getters.js @@ -0,0 +1,27 @@ +const getters = { + sidebar: (state) => state.app.sidebar, + size: (state) => state.app.size, + device: (state) => state.app.device, + + visitedViews: (state) => state.tagsView.visitedViews, + cachedViews: (state) => state.tagsView.cachedViews, + + token: (state) => state.user.token, + avatar: (state) => state.user.avatar, + name: (state) => state.user.name, + userId: (state) => state.user.userId, + introduction: (state) => state.user.introduction, + roles: (state) => state.user.roles, + permissions: (state) => state.user.permissions, + + permission_routes: (state) => state.permission.routes, + topbarRouters: (state) => state.permission.topbarRouters, + defaultRoutes: (state) => state.permission.defaultRoutes, + sidebarRouters: (state) => state.permission.sidebarRouters, + + dictMap: (state) => state.dict.dictMap, + productCategories: (state) => state.mall.productCategories, + areaSelect: (state) => state.mall.areaSelect, + brandList: (state) => state.mall.brandList +}; +export default getters; diff --git a/src/store/modules/mall.ts b/src/store/modules/mall.ts new file mode 100644 index 0000000..d54feb3 --- /dev/null +++ b/src/store/modules/mall.ts @@ -0,0 +1,50 @@ +import { defineStore } from 'pinia'; +import { reactive } from 'vue'; +import { listPmsProductCategory } from '@/api/pms/productCategory'; +import { allBrand } from '@/api/pms/brand'; +import { areaSelect } from '@/api/system/common.js'; + +export const useMallStore = defineStore('mall', () => { + const state = reactive({ + productCategories: [], + brandList: [], + areaSelect: [], + aaaaaaa: 'store开发测试' + }); + const aaaaaaa = ref('store开发测试'); + const changeAAA = (info: any) => { + aaaaaaa.value = info; + }; + const loadProductCategories = async (force: any = false) => { + if (!force && state.productCategories.length > 0) { + return Promise.resolve(); + } + return listPmsProductCategory({}).then((res: any) => { + state.productCategories = res; + }); + }; + const loadAreaSelect = async (force: any = false) => { + if (!force && state.areaSelect.length > 0) { + return Promise.resolve(); + } + return areaSelect({}).then((res) => { + state.areaSelect = res.data; + }); + }; + const loadBrandList = async (force: any = false) => { + if (!force && state.brandList.length > 0) { + return Promise.resolve(); + } + return allBrand({}).then((res: any) => { + state.brandList = res; + }); + }; + return { + changeAAA, + aaaaaaa, + state, + loadProductCategories, + loadAreaSelect, + loadBrandList + }; +}); diff --git a/src/utils/DateUtil.js b/src/utils/DateUtil.js new file mode 100644 index 0000000..abfe11b --- /dev/null +++ b/src/utils/DateUtil.js @@ -0,0 +1,222 @@ +/** + * Created by lcx47996 on 2017/12/25. + */ + +export function dateFormat(date, format) { + if (!date || date === 0) { + return ''; + } + if (!(date instanceof Date)) { + date = new Date(date); + if (date.toString() === 'Invalid Date') { + return '无效时间戳'; + } + } + format = format || 'yyyy-MM-dd hh:mm:ss'; + const o = { + 'M+': date.getMonth() + 1, // 月份 + 'd+': date.getDate(), // 日 + 'h+': date.getHours(), // 小时 + 'm+': date.getMinutes(), // 分 + 's+': date.getSeconds(), // 秒 + 'q+': Math.floor((date.getMonth() + 3) / 3), // 季度 + 'S': date.getMilliseconds() // 毫秒 + }; + if (/(y+)/.test(format)) { + format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); + } + for (const k in o) { + if (new RegExp('(' + k + ')').test(format)) { + format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)); + } + } + return format; +} + +function getAfterDate(after) { + var dd = new Date(); + dd.setDate(dd.getDate() + after); // 获取AddDayCount天后的日期 + var y = dd.getFullYear(); + var m = dd.getMonth() + 1; // 获取当前月份的日期 + var d = dd.getDate(); + return y + '-' + m + '-' + d; +} + +function getAfterDateReturnDate(datetime, after) { + if (!(datetime.type instanceof Date)) { + return datetime; + } + var r = new Date(datetime.getTime()); + r.setDate(datetime.getDate() + after); // 获取AddDayCount天后的日期 + return r; +} + +function getAfterHourReturnDate(datetime, after) { + if (!(datetime.type instanceof Date)) { + return datetime; + } + var r = new Date(datetime.getTime() + after * 60 * 60 * 1000); + return r; +} + +function getAfterMounth(date, after) { + var dd = new Date(); + dd.setMonth(dd.getMonth() + after); // 获取AddDayCount天后的日期 + var y = dd.getFullYear(); + var m = dd.getMonth() + 1; // 获取当前月份的日期 + var d = dd.getDate(); + return y + '-' + m + '-' + d; +} + +/** + * 计算2个日期相差的天数,不包含今天,如:2016-12-13到2016-12-15,相差2天 + */ +function dateDiff(startDate, endDate) { + return parseInt((endDate - startDate) / 1000 / 60 / 60 / 24); // 把相差的毫秒数转换为天数 +} + +/** + * 计算2个日期相差的天数,包含今天,如:2016-12-13到2016-12-15,相差3天 + */ +function dateDiffIncludeToday(startDate, endDate) { + return parseInt((endDate - startDate) / 1000 / 60 / 60 / 24) + 1; // 把相差的毫秒数转换为天数 +} + +/** + * 获取凌晨时间 + * @param day + */ +export function getMorningTime(day = 0) { + if (day == null) { + return null; + } + const timeStamp = new Date(new Date().setHours(0, 0, 0, 0)).getTime(); + return new Date(timeStamp + day * 86400000); +} + +export function getStartEnd(length) { + const end = getMorningTime(0); + const start = getMorningTime(0); + start.setTime(start.getTime() - 3600 * 1000 * 24 * length); + return { end, start }; +} + +function getTimeShort() { + const timeShort = [ + { + text: '今天', + onClick(picker) { + const { end, start } = getStartEnd(0); + picker.$emit('pick', [start, end]); + } + }, + { + text: '昨天', + onClick(picker) { + const time = getMorningTime(0); + time.setTime(time.getTime() - 3600 * 1000 * 24); + picker.$emit('pick', [time, time]); + } + }, + { + text: '最近一周', + onClick(picker) { + const { end, start } = getStartEnd(7); + picker.$emit('pick', [start, end]); + } + }, + { + text: '最近一个月', + onClick(picker) { + const { end, start } = getStartEnd(30); + picker.$emit('pick', [start, end]); + } + }, + { + text: '最近三个月', + onClick(picker) { + const { end, start } = getStartEnd(90); + picker.$emit('pick', [start, end]); + } + } + ]; + return timeShort; +} + +function getTimeShort2() { + const timeShort = [ + { + text: '今天', + onClick(picker) { + const temp = new Date(); + picker.$emit('pick', [new Date(temp.setHours(0, 0, 0, 0)), new Date(temp.setHours(23, 59, 59, 0))]); + } + }, + { + text: '昨天', + onClick(picker) { + const temp = new Date(); + temp.setTime(temp.getTime() - 3600 * 1000 * 24); + picker.$emit('pick', [new Date(temp.setHours(0, 0, 0, 0)), new Date(temp.setHours(23, 59, 59, 0))]); + } + }, + { + text: '前一周', + onClick(picker) { + const start = new Date(); + const end = new Date(); + start.setTime(end.getTime() - 3600 * 1000 * 24 * 6); + picker.$emit('pick', [new Date(start.setHours(0, 0, 0, 0)), new Date(end.setHours(23, 59, 59, 0))]); + } + }, + { + text: '这个月', + onClick(picker) { + const end = getCurrentMonthLast(); + const start = getCurrentMonthFirst(); + picker.$emit('pick', [new Date(start.setHours(0, 0, 0, 0)), new Date(end.setHours(23, 59, 59, 0))]); + + function getCurrentMonthFirst() { + let date = new Date(); + date.setDate(1); + return date; + } + + // 获取当前月的最后一天 + function getCurrentMonthLast() { + let date = new Date(); + let currentMonth = date.getMonth(); + let nextMonth = ++currentMonth; + let nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1); + let oneDay = 1000 * 60 * 60 * 24; + + return new Date(nextMonthFirstDay - oneDay); + } + } + }, + { + text: '前一个月', + onClick(picker) { + const start = new Date(); + const end = new Date(); + start.setTime(end.getTime() - 3600 * 1000 * 24 * 29); + picker.$emit('pick', [new Date(start.setHours(0, 0, 0, 0)), new Date(end.setHours(23, 59, 59, 0))]); + } + } + ]; + return timeShort; +} + +export default { + 'getAfterDate': getAfterDate, + 'getAfterMounth': getAfterMounth, + 'dateDiff': dateDiff, + 'dateDiffIncludeToday': dateDiffIncludeToday, + 'getAfterDateReturnDate': getAfterDateReturnDate, + 'getAfterHourReturnDate': getAfterHourReturnDate, + getTimeShort, + getTimeShort2, + dateFormat, + getStartEnd, + getMorningTime +}; diff --git a/src/utils/is-star-plugin.js b/src/utils/is-star-plugin.js new file mode 100644 index 0000000..f421308 --- /dev/null +++ b/src/utils/is-star-plugin.js @@ -0,0 +1,218 @@ +// 用于检测用户是否 star 了仓库,如果没有 star,将弹窗提示用户 star 。 +import { Message, MessageBox } from 'element-ui' +// 使用axios代替$.ajax +import axios from 'axios' +// 应用参数 +const client_id = '9addfce3712d04898b5a3dbb223db38b8d6495d2e66d07e3c0af71a708ee3b54' +const client_secret = '1f73096ce60406eba8fb297a16245eadf2777540abdf531266b406b2479e25fe' + +// 检查成功后,多少天不再检查 +const allowDisparity = 1000 * 60 * 60 * 24 * 7 + +/** + * 判断当前是否已 star + * @param owner 仓库所属空间地址(企业、组织或个人的地址path) + * @param repo 仓库路径(path) + * @param userId + * @param redirectUrl + * @param productName 开源项目名 + * @param productLink 开源链接 + */ +export function isStarRepo(owner, repo, userId, redirectUrl,productName,productLink) { + const judge = process.env.VUE_APP_JUDGE_STAR + if (!judge || judge == 0) { + return true; + } + const key = userId + '_' + owner + '_' + repo + console.log(key) + // 判断是否近期已经判断过了 + try { + if (typeof window !== 'undefined') { + const isStarRepo = localStorage.getItem(key) + if (isStarRepo) { + // 记录 star 的时间,和当前时间的差距 + const disparity = new Date().getTime() - parseInt(isStarRepo) + + // 差距小于一月,不再检测,大于一月,再检测一下 + if (disparity < allowDisparity) { + console.log('checked ...') + return true; + } + } + } + } catch (e) { + console.error(e) + } + return getCode(owner, repo, key, redirectUrl,productName,productLink) +} + +// 去请求授权 +function getCode(owner, repo, key, redirectUrl,productName,productLink) { + // 检查url中是否有code + const code = getParam('code') + if (code) { + // 有 code,进一步去请求 access_token + getAccessToken(code, redirectUrl, owner, repo, key,productName,productLink) + } else { + // 不存在code,弹窗提示询问 + confirmStar(redirectUrl,productName,productLink) + return false; + } +} + +// 弹窗提示点 star +function confirmStar(redirectUrl,productName,productLink) { + + // 弹窗提示文字 + const tipStr = ` +
+

嗨,同学,来支持一下 ${productName} 吧,为项目点个 star !

+
仅需两步即可完成:
+
1、打开 ${productName} ${productName},在右上角点个 star 。
+
2、点击下方 [ 同意授权检测 ] 按钮,同意 ${productName} 获取 API 权限进行检测。
+
+

本页面将在 star 后正常开放展示

+
+ ` + // 弹窗提示 + MessageBox.alert(tipStr, '温馨提示', { + // if you want to disable its autofocus + // autofocus: false, + confirmButtonText: '同意授权检测', + showClose: false, + dangerouslyUseHTMLString: true, + callback: (action) => { + if (action === 'confirm') { + // 用户点了确认,去 gitee 官方请求授权获取 + goAuth(redirectUrl) + } + } + }) +} + +function toStar(redirectUrl,productName,productLink,accessToken,owner,repo,key,code) { + + // 弹窗提示文字 + const tipStr = ` +
+

嗨,同学,来支持一下 ${productName} 吧,为项目点个 star !

+
点击【去Star】按钮。进入${productName} 开源项目主页,在右上角点个 star 。
+

本页面将在 star 后正常开放展示

+
+ ` + MessageBox.confirm(tipStr, '温馨提示', { + // if you want to disable its autofocus + // autofocus: false, + closeOnClickModal: false, + confirmButtonText: '去Star', + cancelButtonText: '我已Star', + showClose: false, + dangerouslyUseHTMLString: true, + callback: (action) => { + if (action === 'confirm') { + // 用户点了确认,去 gitee 官方请求授权获取 + window.open(productLink) + toStar(redirectUrl,productName,productLink,accessToken,owner,repo,key,code) + } + if (action === 'cancel') { + //检测 + judgeStar(accessToken,owner,repo,key,productName,productLink,redirectUrl,code) + } + } + }) +} + +// 跳转到 gitee 授权界面 +function goAuth(redirectUrl) { + location.href = 'https://gitee.com/oauth/authorize' + + '?client_id=' + client_id + + '&redirect_uri=' + redirectUrl + + '&response_type=code' + + '&scope=user_info' +} + +// 获取 access_token +function getAccessToken(code, redirectUrl, owner, repo, key,productName,productLink) { + // 根据 code 获取 access_token + axios.post('https://gitee.com/oauth/token', { + grant_type: 'authorization_code', + code: code, + client_id: client_id, + redirect_uri: redirectUrl, + client_secret: client_secret + }) + .then(res => { + // 拿到 access_token + const accessToken = res.data.access_token + judgeStar(accessToken,owner, repo, key,productName,productLink,redirectUrl,code) + }) + .catch(e => { + console.log('请求错误 ', e) + // 如果请求地址有错,可能是服务器宕机了,暂停一天检测 + if (e.response && (e.response.status === 0 || e.response.status === 502)) { + // 一天内不再检查 + const ygTime = allowDisparity - (1000 * 60 * 60 * 24) + if (typeof window !== 'undefined') { + localStorage.setItem(key, new Date().getTime() - ygTime) + } + // 刷新 url,去掉 code 参数 + location.href = location.href.replace('?code=' + code, '') + } + + // 无效授权,可能是 code 无效 + const errorMsg = (e.response && e.response.data.error) || JSON.stringify(e) + if (errorMsg === 'invalid_grant') { + console.log('无效code', code) + + let url = location.href.replace('?code=' + code, '') + url = url.replace('&code=' + code, '') + location.href = url + } + }) +} + + +function judgeStar(accessToken,owner, repo, key,productName,productLink,redirectUrl,code){ + // 根据 access_token 判断是否 star 了仓库 + axios.get(`https://gitee.com/api/v5/user/starred/${owner}/${repo}`, { + params: { access_token: accessToken } + }) + .then(res => { + // success 回调即代表已经 star,gitee API 请求体不返回任何数据 + console.log('-> stared ...') + // 记录本次检查时间 + if (typeof window !== 'undefined') { + localStorage.setItem(key, new Date().getTime()) + } + Message.success('感谢你的支持 ❤️ ❤️ ❤️ ,我们将努力变得更加完善!') + setTimeout(()=>{ + location.href = location.href.replace('?code=' + code, '') + },1000) + }) + .catch(e => { + // console.log('ff请求错误 ', e); + // 如下返回,代表没有 star + if (e.response && e.response.status === 404) { + console.log('not star ...') + toStar(redirectUrl,productName,productLink,accessToken,owner,repo,key,code); + } + }) +} + +// 获取 url 携带的参数 +function getParam(name) { + const urls = window.location.href.split('?') + if (urls.length < 2) { + return null + } + let url = urls[1] + let obj = {} // 声明参数对象 + let arr = url.split('&') // 以&符号分割为数组 + for (let i = 0; i < arr.length; i++) { + let arrNew = arr[i].split('=') // 以"="分割为数组 + obj[arrNew[0]] = arrNew[1] + } + + return obj[name] +} + diff --git a/src/views/act/couponActivity/index.vue b/src/views/act/couponActivity/index.vue new file mode 100644 index 0000000..37cabbd --- /dev/null +++ b/src/views/act/couponActivity/index.vue @@ -0,0 +1,387 @@ + + + diff --git a/src/views/act/couponActivity/receiveList.vue b/src/views/act/couponActivity/receiveList.vue new file mode 100644 index 0000000..f2d6d89 --- /dev/null +++ b/src/views/act/couponActivity/receiveList.vue @@ -0,0 +1,95 @@ + + diff --git a/src/views/act/memberCoupon/index.vue b/src/views/act/memberCoupon/index.vue new file mode 100644 index 0000000..ad48cb6 --- /dev/null +++ b/src/views/act/memberCoupon/index.vue @@ -0,0 +1,484 @@ + + + diff --git a/src/views/aws/systemStatistics/index.vue b/src/views/aws/systemStatistics/index.vue new file mode 100644 index 0000000..98b2d20 --- /dev/null +++ b/src/views/aws/systemStatistics/index.vue @@ -0,0 +1,257 @@ + + + diff --git a/src/views/components/AddressSelector/index.vue b/src/views/components/AddressSelector/index.vue new file mode 100644 index 0000000..b0832d8 --- /dev/null +++ b/src/views/components/AddressSelector/index.vue @@ -0,0 +1,59 @@ + + + + diff --git a/src/views/components/BrandSelect.vue b/src/views/components/BrandSelect.vue new file mode 100644 index 0000000..f38b096 --- /dev/null +++ b/src/views/components/BrandSelect.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/src/views/components/IndexOrderPanelGroup/TopProduct.vue b/src/views/components/IndexOrderPanelGroup/TopProduct.vue new file mode 100644 index 0000000..3fa9e3a --- /dev/null +++ b/src/views/components/IndexOrderPanelGroup/TopProduct.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/views/components/PanelGroup/index.vue b/src/views/components/PanelGroup/index.vue new file mode 100644 index 0000000..adf945b --- /dev/null +++ b/src/views/components/PanelGroup/index.vue @@ -0,0 +1,181 @@ + + + + + \ No newline at end of file diff --git a/src/views/components/ProductCategorySelect.vue b/src/views/components/ProductCategorySelect.vue new file mode 100644 index 0000000..9219e6f --- /dev/null +++ b/src/views/components/ProductCategorySelect.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/views/components/icons/element-icons.js b/src/views/components/icons/element-icons.js new file mode 100644 index 0000000..9ea4d63 --- /dev/null +++ b/src/views/components/icons/element-icons.js @@ -0,0 +1,3 @@ +const elementIcons = ['platform-eleme', 'eleme', 'delete-solid', 'delete', 's-tools', 'setting', 'user-solid', 'user', 'phone', 'phone-outline', 'more', 'more-outline', 'star-on', 'star-off', 's-goods', 'goods', 'warning', 'warning-outline', 'question', 'info', 'remove', 'circle-plus', 'success', 'error', 'zoom-in', 'zoom-out', 'remove-outline', 'circle-plus-outline', 'circle-check', 'circle-close', 's-help', 'help', 'minus', 'plus', 'check', 'close', 'picture', 'picture-outline', 'picture-outline-round', 'upload', 'upload2', 'download', 'camera-solid', 'camera', 'video-camera-solid', 'video-camera', 'message-solid', 'bell', 's-cooperation', 's-order', 's-platform', 's-fold', 's-unfold', 's-operation', 's-promotion', 's-home', 's-release', 's-ticket', 's-management', 's-open', 's-shop', 's-marketing', 's-flag', 's-comment', 's-finance', 's-claim', 's-custom', 's-opportunity', 's-data', 's-check', 's-grid', 'menu', 'share', 'd-caret', 'caret-left', 'caret-right', 'caret-bottom', 'caret-top', 'bottom-left', 'bottom-right', 'back', 'right', 'bottom', 'top', 'top-left', 'top-right', 'arrow-left', 'arrow-right', 'arrow-down', 'arrow-up', 'd-arrow-left', 'd-arrow-right', 'video-pause', 'video-play', 'refresh', 'refresh-right', 'refresh-left', 'finished', 'sort', 'sort-up', 'sort-down', 'rank', 'loading', 'view', 'c-scale-to-original', 'date', 'edit', 'edit-outline', 'folder', 'folder-opened', 'folder-add', 'folder-remove', 'folder-delete', 'folder-checked', 'tickets', 'document-remove', 'document-delete', 'document-copy', 'document-checked', 'document', 'document-add', 'printer', 'paperclip', 'takeaway-box', 'search', 'monitor', 'attract', 'mobile', 'scissors', 'umbrella', 'headset', 'brush', 'mouse', 'coordinate', 'magic-stick', 'reading', 'data-line', 'data-board', 'pie-chart', 'data-analysis', 'collection-tag', 'film', 'suitcase', 'suitcase-1', 'receiving', 'collection', 'files', 'notebook-1', 'notebook-2', 'toilet-paper', 'office-building', 'school', 'table-lamp', 'house', 'no-smoking', 'smoking', 'shopping-cart-full', 'shopping-cart-1', 'shopping-cart-2', 'shopping-bag-1', 'shopping-bag-2', 'sold-out', 'sell', 'present', 'box', 'bank-card', 'money', 'coin', 'wallet', 'discount', 'price-tag', 'news', 'guide', 'male', 'female', 'thumb', 'cpu', 'link', 'connection', 'open', 'turn-off', 'set-up', 'chat-round', 'chat-line-round', 'chat-square', 'chat-dot-round', 'chat-dot-square', 'chat-line-square', 'message', 'postcard', 'position', 'turn-off-microphone', 'microphone', 'close-notification', 'bangzhu', 'time', 'odometer', 'crop', 'aim', 'switch-button', 'full-screen', 'copy-document', 'mic', 'stopwatch', 'medal-1', 'medal', 'trophy', 'trophy-1', 'first-aid-kit', 'discover', 'place', 'location', 'location-outline', 'location-information', 'add-location', 'delete-location', 'map-location', 'alarm-clock', 'timer', 'watch-1', 'watch', 'lock', 'unlock', 'key', 'service', 'mobile-phone', 'bicycle', 'truck', 'ship', 'basketball', 'football', 'soccer', 'baseball', 'wind-power', 'light-rain', 'lightning', 'heavy-rain', 'sunrise', 'sunrise-1', 'sunset', 'sunny', 'cloudy', 'partly-cloudy', 'cloudy-and-sunny', 'moon', 'moon-night', 'dish', 'dish-1', 'food', 'chicken', 'fork-spoon', 'knife-fork', 'burger', 'tableware', 'sugar', 'dessert', 'ice-cream', 'hot-water', 'water-cup', 'coffee-cup', 'cold-drink', 'goblet', 'goblet-full', 'goblet-square', 'goblet-square-full', 'refrigerator', 'grape', 'watermelon', 'cherry', 'apple', 'pear', 'orange', 'coffee', 'ice-tea', 'ice-drink', 'milk-tea', 'potato-strips', 'lollipop', 'ice-cream-square', 'ice-cream-round'] + +export default elementIcons diff --git a/src/views/components/icons/index.vue b/src/views/components/icons/index.vue new file mode 100644 index 0000000..d3c9a71 --- /dev/null +++ b/src/views/components/icons/index.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/src/views/components/icons/svg-icons.js b/src/views/components/icons/svg-icons.js new file mode 100644 index 0000000..724cd8e --- /dev/null +++ b/src/views/components/icons/svg-icons.js @@ -0,0 +1,10 @@ +const req = require.context('../../../assets/icons/svg', false, /\.svg$/) +const requireAll = requireContext => requireContext.keys() + +const re = /\.\/(.*)\.svg/ + +const svgIcons = requireAll(req).map(i => { + return i.match(re)[1] +}) + +export default svgIcons diff --git a/src/views/dashboard/BarChart.vue b/src/views/dashboard/BarChart.vue new file mode 100644 index 0000000..be0af34 --- /dev/null +++ b/src/views/dashboard/BarChart.vue @@ -0,0 +1,102 @@ + + + diff --git a/src/views/dashboard/LineChart.vue b/src/views/dashboard/LineChart.vue new file mode 100644 index 0000000..e654168 --- /dev/null +++ b/src/views/dashboard/LineChart.vue @@ -0,0 +1,135 @@ + + + diff --git a/src/views/dashboard/OrderLineChart.vue b/src/views/dashboard/OrderLineChart.vue new file mode 100644 index 0000000..d904c9b --- /dev/null +++ b/src/views/dashboard/OrderLineChart.vue @@ -0,0 +1,234 @@ + + + diff --git a/src/views/dashboard/PanelGroup.vue b/src/views/dashboard/PanelGroup.vue new file mode 100644 index 0000000..1a1081f --- /dev/null +++ b/src/views/dashboard/PanelGroup.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/views/dashboard/PieChart.vue b/src/views/dashboard/PieChart.vue new file mode 100644 index 0000000..4d2ef32 --- /dev/null +++ b/src/views/dashboard/PieChart.vue @@ -0,0 +1,79 @@ + + + diff --git a/src/views/dashboard/RaddarChart.vue b/src/views/dashboard/RaddarChart.vue new file mode 100644 index 0000000..6823af3 --- /dev/null +++ b/src/views/dashboard/RaddarChart.vue @@ -0,0 +1,116 @@ + + + diff --git a/src/views/dashboard/mixins/resize.js b/src/views/dashboard/mixins/resize.js new file mode 100644 index 0000000..b1e76e9 --- /dev/null +++ b/src/views/dashboard/mixins/resize.js @@ -0,0 +1,56 @@ +import { debounce } from '@/utils' + +export default { + data() { + return { + $_sidebarElm: null, + $_resizeHandler: null + } + }, + mounted() { + this.initListener() + }, + activated() { + if (!this.$_resizeHandler) { + // avoid duplication init + this.initListener() + } + + // when keep-alive chart activated, auto resize + this.resize() + }, + beforeDestroy() { + this.destroyListener() + }, + deactivated() { + this.destroyListener() + }, + methods: { + // use $_ for mixins properties + // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential + $_sidebarResizeHandler(e) { + if (e.propertyName === 'width') { + this.$_resizeHandler() + } + }, + initListener() { + this.$_resizeHandler = debounce(() => { + this.resize() + }, 100) + window.addEventListener('resize', this.$_resizeHandler) + + this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0] + this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler) + }, + destroyListener() { + window.removeEventListener('resize', this.$_resizeHandler) + this.$_resizeHandler = null + + this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler) + }, + resize() { + const { chart } = this + chart && chart.resize() + } + } +} diff --git a/src/views/monitor/druid/index.vue b/src/views/monitor/druid/index.vue new file mode 100644 index 0000000..c6ad585 --- /dev/null +++ b/src/views/monitor/druid/index.vue @@ -0,0 +1,15 @@ + + diff --git a/src/views/monitor/job/index.vue b/src/views/monitor/job/index.vue new file mode 100644 index 0000000..818a00f --- /dev/null +++ b/src/views/monitor/job/index.vue @@ -0,0 +1,515 @@ + + + diff --git a/src/views/monitor/job/log.vue b/src/views/monitor/job/log.vue new file mode 100644 index 0000000..80795cd --- /dev/null +++ b/src/views/monitor/job/log.vue @@ -0,0 +1,295 @@ + + + diff --git a/src/views/monitor/server/index.vue b/src/views/monitor/server/index.vue new file mode 100644 index 0000000..b122edf --- /dev/null +++ b/src/views/monitor/server/index.vue @@ -0,0 +1,207 @@ + + + \ No newline at end of file diff --git a/src/views/oms/aftersale/detail.vue b/src/views/oms/aftersale/detail.vue new file mode 100644 index 0000000..df48a29 --- /dev/null +++ b/src/views/oms/aftersale/detail.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/views/oms/aftersale/index.vue b/src/views/oms/aftersale/index.vue new file mode 100644 index 0000000..1a4fdc1 --- /dev/null +++ b/src/views/oms/aftersale/index.vue @@ -0,0 +1,492 @@ + + + diff --git a/src/views/oms/aftersaleItem/index.vue b/src/views/oms/aftersaleItem/index.vue new file mode 100644 index 0000000..e5074c6 --- /dev/null +++ b/src/views/oms/aftersaleItem/index.vue @@ -0,0 +1,291 @@ + + + diff --git a/src/views/oms/order/detail.vue b/src/views/oms/order/detail.vue new file mode 100644 index 0000000..42712c3 --- /dev/null +++ b/src/views/oms/order/detail.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/oms/order/index.vue b/src/views/oms/order/index.vue new file mode 100644 index 0000000..8fc2550 --- /dev/null +++ b/src/views/oms/order/index.vue @@ -0,0 +1,759 @@ + + + + diff --git a/src/views/oms/orderDeliveryHistory/index.vue b/src/views/oms/orderDeliveryHistory/index.vue new file mode 100644 index 0000000..ac7eb6f --- /dev/null +++ b/src/views/oms/orderDeliveryHistory/index.vue @@ -0,0 +1,258 @@ + + + diff --git a/src/views/oms/orderItem/index.vue b/src/views/oms/orderItem/index.vue new file mode 100644 index 0000000..43269fa --- /dev/null +++ b/src/views/oms/orderItem/index.vue @@ -0,0 +1,424 @@ + + + diff --git a/src/views/oms/orderOperateHistory/index.vue b/src/views/oms/orderOperateHistory/index.vue new file mode 100644 index 0000000..153c6d8 --- /dev/null +++ b/src/views/oms/orderOperateHistory/index.vue @@ -0,0 +1,287 @@ + + + diff --git a/src/views/oms/wechatPaymentHistory/index.vue b/src/views/oms/wechatPaymentHistory/index.vue new file mode 100644 index 0000000..8f9ba69 --- /dev/null +++ b/src/views/oms/wechatPaymentHistory/index.vue @@ -0,0 +1,395 @@ + + + diff --git a/src/views/pms/brand/index.vue b/src/views/pms/brand/index.vue new file mode 100644 index 0000000..4cda587 --- /dev/null +++ b/src/views/pms/brand/index.vue @@ -0,0 +1,257 @@ + + + diff --git a/src/views/pms/product/AddProduct.vue b/src/views/pms/product/AddProduct.vue new file mode 100644 index 0000000..070ea6c --- /dev/null +++ b/src/views/pms/product/AddProduct.vue @@ -0,0 +1,371 @@ + + + + + diff --git a/src/views/pms/product/index.vue b/src/views/pms/product/index.vue new file mode 100644 index 0000000..da1bd1f --- /dev/null +++ b/src/views/pms/product/index.vue @@ -0,0 +1,220 @@ + + + diff --git a/src/views/pms/product/productSelect.vue b/src/views/pms/product/productSelect.vue new file mode 100644 index 0000000..26d612b --- /dev/null +++ b/src/views/pms/product/productSelect.vue @@ -0,0 +1,131 @@ + + + + diff --git a/src/views/pms/productCategory/index.vue b/src/views/pms/productCategory/index.vue new file mode 100644 index 0000000..68fe43f --- /dev/null +++ b/src/views/pms/productCategory/index.vue @@ -0,0 +1,320 @@ + + + diff --git a/src/views/pms/sku/index.vue b/src/views/pms/sku/index.vue new file mode 100644 index 0000000..8c29556 --- /dev/null +++ b/src/views/pms/sku/index.vue @@ -0,0 +1,282 @@ + + + diff --git a/src/views/set/integralSetting.vue b/src/views/set/integralSetting.vue new file mode 100644 index 0000000..ec179fd --- /dev/null +++ b/src/views/set/integralSetting.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/set/setting.vue b/src/views/set/setting.vue new file mode 100644 index 0000000..9326853 --- /dev/null +++ b/src/views/set/setting.vue @@ -0,0 +1,68 @@ + + + diff --git a/src/views/ums/feedback/index.vue b/src/views/ums/feedback/index.vue new file mode 100644 index 0000000..c777c86 --- /dev/null +++ b/src/views/ums/feedback/index.vue @@ -0,0 +1,219 @@ + + + diff --git a/src/views/ums/member/index.vue b/src/views/ums/member/index.vue new file mode 100644 index 0000000..5343fc1 --- /dev/null +++ b/src/views/ums/member/index.vue @@ -0,0 +1,414 @@ + + + diff --git a/src/views/ums/memberAddress/index.vue b/src/views/ums/memberAddress/index.vue new file mode 100644 index 0000000..abdf13b --- /dev/null +++ b/src/views/ums/memberAddress/index.vue @@ -0,0 +1,350 @@ + + + diff --git a/src/views/ums/memberCart/index.vue b/src/views/ums/memberCart/index.vue new file mode 100644 index 0000000..17e0644 --- /dev/null +++ b/src/views/ums/memberCart/index.vue @@ -0,0 +1,295 @@ + + + + diff --git a/src/views/ums/memberLogininfor/index.vue b/src/views/ums/memberLogininfor/index.vue new file mode 100644 index 0000000..0540819 --- /dev/null +++ b/src/views/ums/memberLogininfor/index.vue @@ -0,0 +1,274 @@ + + + diff --git a/src/views/ums/memberWechat/index.vue b/src/views/ums/memberWechat/index.vue new file mode 100644 index 0000000..4444edf --- /dev/null +++ b/src/views/ums/memberWechat/index.vue @@ -0,0 +1,404 @@ + + + diff --git a/vite.config.ts b/vite.config.ts index 0eb5f0c..eb8e1d2 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -42,7 +42,8 @@ export default defineConfig(({ mode, command }) => { // additionalData: '@use "@/assets/styles/variables.module.scss as *";' // javascriptEnabled: true api: 'modern-compiler' - } + }, + styl: {} }, postcss: { plugins: [