From 6933fb79ec734d46b828893d5523ef678ed53e5f Mon Sep 17 00:00:00 2001 From: "pikachu1995@126.com" Date: Tue, 11 Aug 2026 15:16:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(distribution):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=88=86=E9=94=80=E6=8F=90=E7=8E=B0=E9=A1=B5=E9=9D=A2=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20fix(setting):=20=E6=9B=B4=E6=96=B0=E6=B5=B7?= =?UTF-8?q?=E6=8A=A5=E5=92=8C=E9=82=80=E8=AF=B7=E5=8D=A1=E8=83=8C=E6=99=AF?= =?UTF-8?q?=E5=9B=BE=E5=B0=BA=E5=AF=B8=E8=AF=B4=E6=98=8E=20style(table):?= =?UTF-8?q?=20=E7=BB=9F=E4=B8=80=E5=85=A8=E5=B1=80=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E8=A1=A8=E5=A4=B4=E6=A0=B7=E5=BC=8F=20refactor(home):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=A6=96=E9=A1=B5=E5=BE=85=E5=8A=9E=E4=BA=8B?= =?UTF-8?q?=E9=A1=B9=E7=82=B9=E5=87=BB=E8=B7=B3=E8=BD=AC=20refactor(main):?= =?UTF-8?q?=20=E4=BC=98=E5=8C=96=E4=B8=BB=E5=B8=83=E5=B1=80=E4=BE=A7?= =?UTF-8?q?=E8=BE=B9=E6=A0=8F=E6=94=B6=E8=B5=B7=E5=8A=A8=E7=94=BB=20chore(?= =?UTF-8?q?menu):=20=E4=BC=98=E5=8C=96=E8=8F=9C=E5=8D=95=E5=AF=BC=E8=88=AA?= =?UTF-8?q?=E7=BB=93=E6=9E=84=20docs(readme):=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=87=E6=A1=A3=E4=BF=A1=E6=81=AF=20feat(t?= =?UTF-8?q?ask):=20=E6=96=B0=E5=A2=9E=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 92 +++-- manager/src/api/timedTask.js | 11 + manager/src/libs/util.js | 15 +- manager/src/views/Main.vue | 5 +- .../views/distribution/distributionCash.vue | 315 +++++++++++++----- .../distribution/distributionSetting.vue | 4 +- manager/src/views/home/home.vue | 9 +- .../shrinkable-menu/shrinkable-menu.vue | 13 +- manager/src/views/main.scss | 16 +- manager/src/views/sys/timed-task/index.vue | 91 +++++ seller/src/styles/element.scss | 14 + 11 files changed, 435 insertions(+), 150 deletions(-) create mode 100644 manager/src/api/timedTask.js create mode 100644 manager/src/views/sys/timed-task/index.vue diff --git a/README.md b/README.md index 218bbf72..ecdcdc5b 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,14 @@ # Lilishop(PickMall) 开源商城系统 -[![GitHub Stars](https://img.shields.io/github/stars/hongyehuicheng/lilishop.svg?style=social&logo=github)](https://github.com/hongyehuicheng/lilishop) +[![GitHub Stars](https://img.shields.io/github/stars/lilishop/lilishop.svg?style=social&logo=github)](https://github.com/lilishop/lilishop) [![Gitee Stars](https://gitee.com/beijing_hongye_huicheng/lilishop/badge/star.svg?theme=dark)](https://gitee.com/beijing_hongye_huicheng/lilishop) +[![License](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](./LICENSE) +[![Vue](https://img.shields.io/badge/Vue-3-brightgreen.svg)](https://vuejs.org/) +

简体中文 | English

-## All-In-One 一键启动 - -如果只是想快速体验完整商城,不需要分别部署后端、PC、商家端、运营端、IM Web、H5、MySQL 和 Redis。安装 Docker Desktop 后,可以直接下载 `docker` 仓库 `allinone-lite-mysql-redis` 分支的一键安装脚本,按提示输入 IP/域名、端口、密码和数据目录,即可启动单镜像单容器体验环境。 - -macOS / Linux: - -```bash -curl -fsSL https://gitee.com/beijing_hongye_huicheng/docker/raw/allinone-lite-mysql-redis/install/install-lilishop.sh -o install-lilishop.sh -chmod +x install-lilishop.sh -./install-lilishop.sh -``` - -Windows PowerShell: - -```powershell -Invoke-WebRequest -Uri "https://gitee.com/beijing_hongye_huicheng/docker/raw/allinone-lite-mysql-redis/install/install-lilishop.ps1" -OutFile "install-lilishop.ps1" -Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -.\install-lilishop.ps1 -``` - -默认镜像:`ccr.ccs.tencentyun.com/lilishop/lilishop-all-in-one:lite`。启动后可访问买家 PC、商家端、运营端、IM Web 会话/消息页、uniapp H5 和后端 API。更多说明见 [docker/all-in-one 文档](https://gitee.com/beijing_hongye_huicheng/docker/tree/allinone-lite-mysql-redis/all-in-one)。 - -All-In-One `lite` 是本地体验和演示形态:一个容器内包含应用、前端资源、H5、MariaDB、Redis 和本地文件存储。它不是生产高可用架构,也不内置 Elasticsearch、RocketMQ、XXL-Job、Kibana、Logstash 或 RocketMQ Dashboard;搜索、消息和定时任务逻辑在 lite 环境中使用 MySQL / Redis / 本地调度兼容实现。 LILISHOP 是基于 Spring Boot / Spring Cloud / Vue / Uniapp 开发的 Java 开源商城系统,支持 B2B2C 多商户商城、小程序商城、微服务商城、直播电商、分销返佣、秒杀活动、Docker 私有化部署。 @@ -36,7 +16,7 @@ LILISHOP 是基于 Spring Boot / Spring Cloud / Vue / Uniapp 开发的 Java 开 - Java商城系统 - 开源商城系统 -- SpringBoot商城系统 +- Spring Boot 4商城系统 - SpringCloud微服务商城 - B2B2C商城源码 - 多商户商城系统 @@ -58,14 +38,15 @@ LILISHOP 是基于 Spring Boot / Spring Cloud / Vue / Uniapp 开发的 Java 开 ### 1. 项目简介 **Lilishop** 是一款功能完善的B2B2C多商户商城系统,采用前后端分离架构,全端代码开源。 -后端基于 **SpringBoot3** 构建,具备高内聚、低耦合的特性,支持分布式部署。 +后端基于 **Spring Boot 4**(Java 21)构建,具备高内聚、低耦合的特性,支持分布式部署。 前端覆盖PC、H5、小程序和APP,基于 **Vue** 和 **uni-app** 开发。 - **官方网站**: - **官方文档**: -- **Gitee 仓库**: +- **Gitee 仓库**: - **GitHub 仓库**: +本仓库为 **PC / 商家端 / 运营端 / IM Web** 源码(`lilishop-ui`)。 --- @@ -103,30 +84,10 @@ LILISHOP 是基于 Spring Boot / Spring Cloud / Vue / Uniapp 开发的 Java 开 [**部署文档 -> 环境准备**](https://docs.pickmall.cn/deply/deply.html) #### 数据库初始化 -- **推荐方式**: 使用 [`docker`](https://gitee.com/beijing_hongye_huicheng/docker) 仓库中的 `docker-compose`,可自动完成 **MySQL、Redis** 等中间件的部署与初始化。 +- **推荐方式**: 使用项目提供的 `docker-compose` 配置,可自动完成数据库(MySQL、Redis 等)的部署与初始化。 - **手动方式**: 如果您选择手动部署,SQL脚本位于以下地址。请确保获取与您代码版本一致的SQL文件。 [**数据库脚本 (Gitee)**](https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql) -#### 后端服务与端口(`vue3` 分支) - -| 服务 | 端口 | 说明 | -| :--- | :--- | :--- | -| buyer-api | 8888 | 买家端 API | -| manager-api | 8887 | 平台 + 商家 API(`/manager/**`、`/store/**`) | -| im-api | 8885 | 客服 IM / WebSocket | - -运行依赖:**MySQL + Redis**。商品搜索使用 MySQL;异步消息使用 Redis 队列;定时任务使用 Spring `@Scheduled`(内嵌在 manager-api)。 - -#### 前端 API 路径约定 - -| 端 | 公共接口前缀 | -| :--- | :--- | -| 买家 PC/H5 | `{buyerUrl}/buyer/common/*` | -| 商家端 | `{sellerUrl}/store/common/*` | -| 平台端 | `{managerUrl}/manager/common/*` | - -`common-api` 已下线,请勿再使用 `/common/common/*` 旧路径。 - --- ### 5. 架构文档边界 @@ -140,10 +101,13 @@ LILISHOP 是基于 Spring Boot / Spring Cloud / Vue / Uniapp 开发的 Java 开 - H5 / 小程序 / APP:`lilishop-uniapp` - 部署、SQL、镜像与启动脚本:`docker` +--- + ### 6. 功能列表 [功能清单](https://bdwx2tfwwt.feishu.cn/sheets/FFQKscQKDhUx60to1k9cbMngnYb?from=from_copylink) +--- ### 7. 开源与授权 @@ -160,6 +124,34 @@ LILISHOP 是基于 Spring Boot / Spring Cloud / Vue / Uniapp 开发的 Java 开 我们欢迎任何形式的交流与贡献。在提问前,请先查阅 [官方文档](https://docs.pickmall.cn/) ,并参考 [《提问的智慧》](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md) 以便高效沟通。 - **[在线客服](https://work.weixin.qq.com/kfid/kfc4d8dc24a73c15f44)** -- **微信交流1群(已满)** -- **微信交流2群**: +- **微信交流群**: ![微信群](https://lilishop-wechat.oss-cn-beijing.aliyuncs.com/wechat.jpg) + +--- + +### 9. 升级计划 + +以下功能将陆续在后续版本中发布:✅ 已完成 · 🔜 规划中 + +- ✅ 商品定时上下架 +- ✅ 商品分组 +- ✅ 会员分组 +- ✅ 商品虚拟销量 +- ✅ 专用发票(发票上传) +- ✅ 置顶评论 +- ✅ 客户等级 +- ✅ 购物卡 +- ✅ 腾讯云-云直播 +- ✅ 统计:营业概况、商品概况、会员概况、积分分析、储值分析、营销概况、分销统计 +- ✅ 经营报表(店铺业绩报表、商品同比环比报表、销售订单明细报表、商品销售汇总报表) +- ✅ 卡密商品 +- ✅ 二级分销 +- ✅ 定时任务管理 +- 🔜 主题色管理 +- 🔜 店铺结算汇总 +- 🔜 支付方式汇总 +- 🔜 结算台账 +- 🔜 钱包流水 +- 🔜 财务汇总 +- 🔜 微信小店对接 +- 🔜 抖店对接 diff --git a/manager/src/api/timedTask.js b/manager/src/api/timedTask.js new file mode 100644 index 00000000..7b838365 --- /dev/null +++ b/manager/src/api/timedTask.js @@ -0,0 +1,11 @@ +import { managerApiUrl, getRequest, postRequest } from '@/libs/axios'; + +// 获取定时任务列表 +export const getTimedTaskList = () => { + return getRequest(`${managerApiUrl}/manager/setting/timed-task`); +}; + +// 手动触发定时任务 +export const triggerTimedTask = (type) => { + return postRequest(`${managerApiUrl}/manager/setting/timed-task/trigger/${type}`); +}; diff --git a/manager/src/libs/util.js b/manager/src/libs/util.js index 8e155bad..60151925 100644 --- a/manager/src/libs/util.js +++ b/manager/src/libs/util.js @@ -333,8 +333,8 @@ util.initAllMenuData = function(constRoutes, data) { util.initMenuData = function(vm, data) { const menuRoutes = []; let menuData = data; - // 顶部菜单 - let navList = []; + // 顶部菜单 —— 首页固定置顶 + let navList = [{ name: 'home_index', title: '首页' }]; menuData.forEach(e => { let nav = { name: e.name, @@ -357,11 +357,16 @@ util.initMenuData = function(vm, data) { } } } else { - // 默认第一个 - currNav = navList[0].name; - vm.$store.commit("setCurrNavTitle", navList[0].title); + // 默认首页 + currNav = 'home_index'; + vm.$store.commit("setCurrNavTitle", '首页'); } vm.$store.commit("setCurrNav", currNav); + // 首页不需要二级菜单 + if (currNav === 'home_index') { + vm.$store.commit("updateMenulist", []); + return; + } for (let item of menuData) { if (item.name == currNav) { // 过滤 diff --git a/manager/src/views/Main.vue b/manager/src/views/Main.vue index d2072feb..79c1b402 100644 --- a/manager/src/views/Main.vue +++ b/manager/src/views/Main.vue @@ -2,7 +2,7 @@ @import "./main.scss";