明珠果苑网站开发手册

农艺学堂 · 2026-10-27
mzgarden 网站文档← 全部文档

明珠果苑 · 网站文档

开发手册

重庆明珠果苑农业开发有限公司

重庆明珠果苑农业开发有限公司编制日期:2026年2月22日10 个章节12 张表格约 9024 字

一、项目概述

1.1项目背景与建设目标

重庆明珠果苑农业开发有限公司主营哈密瓜品种“玉露明珠”的种植与销售,走的是基地智慧化、数字化、精细化管理这条路。从种下去到卖出去,中间有基地档案、生产记录、渠道合作、库存出入、财务结算、内部审批一大堆事,靠人和表格撑不长久。为此我们自己搭了一套数字平台,并配套建了对外内容管理系统:对内把经营管理搬进系统,对外把品牌和内容展示出去。

本说明书讲清楚这套东西现在长成什么样、用了什么技术、哪些是我们自己设计的、以后怎么维护和扩展。它是后续接手、升级、交接的依据。

1.2建设范围

范围 说明
数字平台 基地管理、渠道管理、购销存财闭环、协同办公(OA/HRM)、工作流 BPM、权限与多租户、定时任务
对外内容管理系统 品牌展示站,自研主题 mzgy01,配套自制内容管理插件体系
内容管理 阅读权限、全屏水印、防复制、本地头像、维护模式等自制插件
基础设施 服务器环境、数据库、缓存、反向代理、安全加固、备份与监控

1.3设计原则

  • 自主可控:业务代码全部独立成模块,与底层基座解耦。基座以后升级,我们的业务代码一行不用动;业务改需求,也不牵连基座。这是这套系统能长期维护的根本;
  • 贴合业务,基地、渠道这些业务对象按我们自己的流程建模,表单、流程、报表都是照着真实经营场景做的;
  • 表扩展而非新建:业务字段在已有主表上扩展,不重复造平行主表,数据一处维护、处处可用;
  • 可回滚:所有配置改动都留 .bak 备份,出问题能逐项退回去。

二、总体架构

2.1技术栈总览

层次 技术选型
前端(平台) Vue 3 + Vite + TypeScript + Ant Design Vue v4.2.6,Monorepo(pnpm,应用 apps/web-antd),莫兰迪绿主题:主色 #5B7B5E,内容区背景 #F5F7F5,深色侧边导航 + 深色顶栏
后端(平台) Java 17 + Spring Boot 单体服务,Maven 多模块,多租户架构,内嵌定时任务执行器
数据库 PostgreSQL 16(业务库 pgsql_mzgy,94 张业务表)、Redis 8(缓存),均 Docker 容器运行
对外内容管理系统 WordPress(PHP),自研主题 mzgy01,宝塔 Nginx 虚拟主机
定时任务 XXL-Job 2.4.0 调度中心,管理后台完全集成进数字平台
服务器 新网云 Ubuntu + 宝塔 Linux 面板,Nginx 反向代理,公网 IP 117.50.73.149

前后端源码的处理路径不一样,交付物也不一样。前端没有 Java 那种独立编译步骤,但打包本身就在承担编译:.vue、.ts 浏览器不认,必须经 Vite 转成 .js、.css 才能上线。两边对照如下:

前端(Vue) 后端(Java)
源码 .vue / .ts / .css .java
处理动作 pnpm build 打包 mvn package 编译
中间产物 .js / .css / .html .class
最终产物 dist/ 文件夹 xxx.jar
上传什么 dist 里的文件 jar 包

2.2技术基座与命名沿革

我们这套系统不是从零写起的,底子是开源后台脚手架,一层一层继承下来。因此代码、文档、界面里会同时出现三个名字——若依、芋道、宇擎,它们不是三套系统,而是同一套东西的三代前身。若依(RuoYi)是 2018 年发布的开源地基,国内大量后台系统都由它长出来;芋道(yudao,原名 ruoyi-vue-pro)在若依之上重构成 Spring Boot 3 + JDK 17 + Vue 3 的模块化骨架,把单体拆成可插拔模块;宇擎(RuoYi Office)再在芋道之上封装成带业务模块的发行版,2026 年 2 月改成现在这个名字。我们是从宇擎这一代接过来用的。

记一条原则就够用:名字越往下越管底层,越往上越管业务。多租户、权限、工作流、代码生成这些框架机制,按芋道去找;业务模块怎么用、菜单怎么配,按宇擎去找;碰到 sys_ 开头的表、老式后台写法这类底层细节,才回到若依。版本号只认芋道那条线(2026.01-SNAPSHOT),若依时代的写法不能套在现在的代码上。

三者的身份,以及各自在本系统里留下的痕迹,对照如下:

名称 在链条上的位置 在本系统里的痕迹
若依 RuoYi 第一代地基:2018 年开源的国产后台脚手架,包名 com.ruoyi 部分 system 表、老式后台写法、个别目录名仍带 ruoyi;只作底层参考,不作版本依据
芋道 yudao 第二代骨架:原名 ruoyi-vue-pro,重构为 Spring Boot 3 + JDK 17 + Vue 3 的模块化结构 后端包名 cn.iocoder.cloud、模块 yudao-*、产物 yudao-server.jar、执行器注册名 yudao-server:9999、版本 2026.01-SNAPSHOT
宇擎 RuoYi Office 第三代发行版:在芋道之上封装业务模块,2026 年 2 月改名,也是我们的起点 界面品牌与模块清单;我们的业务模块 mzgy-module-base、mzgy-module-channel 挂在这一层
Vue Vben Admin 5.5.9 前端骨架,与后端不是一条线,但同属继承来的基座 前端工程 ruoyi-office-vben,包名 vben-admin-monorepo,前端技术体系全部落在这一层

工程目录也留着历史痕迹:后端在 H:\Ruoyi Office\ruoyi-office(目录名带 Ruoyi,编译产物却是 yudao-server.jar),前端在 H:\Ruoyi Office\ruoyi-office-vben。目录名不影响使用,不必改;备份、部署、找文件时认这两个路径就对了。

2.3前端技术体系

前端采用 Vue 3 全家桶,Vite 做构建,TypeScript 全程类型约束,组件库用 Ant Design Vue v4.2.6。工程上走 Monorepo,pnpm 管理依赖,实际应用在 apps/web-antd。

工程目录分三层,各管各的:apps 装可以跑起来的产品外壳,packages 装框架内核,internal 装构建工具链。apps 下面有五个应用,分别是 web-antd、web-ele、web-naive、web-tdesign、web-antdv-next,对应不同的 UI 组件库;真正编译部署的只有 web-antd,其余四个是框架自带的示例,留着备查。三者职责和升级时的处置方式如下表:

目录 装什么 升级时是否替换
apps/ 可以运行的产品外壳。web-antd 是本平台(Ant Design Vue 版);另有 web-ele、web-naive、web-tdesign、web-antdv-next 四个框架自带示例,不参与构建 不替换
packages/ 框架内核。@core(preferences、ui-kit、base)、effects(布局、通用组件、认证页、工具栏)、stores、locales、styles、utils、types、icons 整目录替换
internal/ 构建工具链。vite-config、tsconfig、tailwind-config、lint-configs 整目录替换
docs/、scripts/ 文档站与脚手架脚本 跟随上游替换

依赖是单向的:apps/web-antd 调 packages/effects/layouts,packages/effects/layouts 再调 packages/@core,一层比一层底层。升级的方向正好相反,只替换下游的框架包,apps 里的业务代码不在升级包内——vben 官方发布的升级内容只含 packages、internal 和根配置,不含各应用的 src/views、src/layouts 这些业务页面。所以框架升完级,我们在 apps 层写的东西还在;反过来,改在 packages 里的东西会被整体还原,一行都不留。

这里有两条要记牢。第一,不被覆盖是约定,不是机制保证:如果有人图省事整仓覆盖(git checkout 上游分支 — . 或整包解压),apps 一样会被冲掉,升级只能按目录挑选着替换。第二,apps/web-antd 里混着一批上游模板文件,src/views/_core、src/layouts、src/adapter、src/router/routes/core.ts 这些文件虽然在我们的目录里,内容却是框架自带的,我们只在上面改过一部分;升级时若上游也动了它们,git 合并会报冲突,必须逐个手工确认,不能一律取上游,也不能一律取本地。

按这条边界,我们自己的东西一律落在 apps 层。自定义配色板 mzgy-palette.ts 放在 apps/web-antd/src/,登录页改版也按这个走——整块舞台在 apps/web-antd/src/layouts/auth.vue 里自己实现,不去动 packages/effects/layouts 下的认证布局。需要改框架行为时,优先用插槽、覆盖配置、运行时替换来解决;确实非改 packages 不可的,改完要在这里补一笔,并在升级检查单里加一条“升级后需重新应用”。

主题不是简单换个色值:我们把整套莫兰迪绿做成 CSS 变量,侧边导航和顶栏统一深色,内容区浅灰绿底,登录页是独立舞台,样式和配色自成一套,不受后台布局主题影响。全局行为(比如官方文档提示条开关)通过 .env.production 环境变量控制,构建时一键切换,不用改代码。

权限菜单是登录后动态下发的:登录拿到身份,后端按角色返回可见菜单,前端据此渲染路由和按钮,不在前端写死权限表。

2.4后端技术体系

后端是 Java 17 + Spring Boot 单体服务,Maven 多模块组织,我们的业务代码放在独立模块里。多租户靠拦截器在请求层统一处理,每个租户看到自己的数据。Redis 8 做缓存,会话、字典、热点数据都走它,数据库压力小很多。

定时任务执行器内嵌在后端服务里,和调度中心之间走令牌鉴权,不开放裸端口。

整个系统代码规模:后端约 4680 个文件、40.5 万行(Java/XML/SQL/配置),前端约 4908 个文件、61.9 万行(Vue/TypeScript/样式),定时任务调度中心约 149 个文件、1.6 万行;合计约 9700 个源文件、104 万行代码。其中我们的业务代码在独立模块和前端应用目录里,框架自带模块不改动。

2.5数据与存储

业务库 PostgreSQL 16,库名 pgsql_mzgy,94 张业务表一次导入到位,跑在本机 Docker 容器里。Redis 8 同样容器化。两个库都只绑定本机回环地址,外网直接摸不到。

2.6域名与访问规划

用途 域名 说明
数字平台 sys.明珠果苑.com 前端静态 + /admin-api 反代后端
对外内容管理系统 www.明珠果苑.com punycode:xn--2hvo8ae1wg5o.xn--fiqs8s;www 与 http 均 301 跳转至 https 裸域

中文域名转 punycode 后用于服务器配置和证书申请。平台租户 ID = 1(明珠果苑),超管账号 yanghsia(id=1)。

三、数字平台开发说明

3.1功能模块清单

模块 功能要点
基地管理 合作管理(基地档案、合作申请、资质管理、考核管理);生产管理(生产计划、茬次、生产记录、环境监测、病虫害);设备、人员、物料;复盘分析(数据采集、复盘看板、对比分析、情景分析)
渠道管理 渠道档案、合作申请、资质管理、跟进记录、考核管理;打通采购、库存、销售、财务流程,形成从产品到收款的完整链路
协同办公与人力 流程审批、工作流 BPM、组织人员管理
基础设施 定时任务平台内管理、代码生成、系统配置、报表、CRM、资产、仓储等模块按需启用

3.2核心设计方法:业务对象映射

这是我们整套业务建模最关键的一个判断:现实中的“基地”映射成供应商对象,“渠道”映射成客户对象。这么做的好处是,采购、库存、销售、财务那套流程不用重写,天然就能跑通基地和渠道的业务。我们要做的是在这些对象上按自己的需求扩字段、加页面,而不是从零造一套主数据。

比如渠道管理,就是把渠道当客户经营:渠道档案、合作申请、资质审核、跟进记录、考核五个页面,加上原有的采购入库、销售出库、库存盘点、往来财务,正好拼成我们要的“产品—采购—库存—销售—财务”链路。需求长什么样,页面就长成什么样,没有为了通用而通用的多余功能。

接口上也有两条我们自己踩出来的规矩:下拉、选择类数据走不分页接口(/simple-list),不拿分页接口硬塞大 pageSize(后端单页上限 200);批量查询先判空,列表空了就别生成 WHERE id IN () 这种非法 SQL。

3.3玉露明珠经营分析模型

这是我们围绕“玉露明珠”哈密瓜自己搭的一套经营分析模型,从田间数据一直通到利润决策。整体分四层,一层喂一层:

  • 数据采集层:种植计划、茬次记录、生产日志、环境监测、病虫害、收购入库、销售出库,全量进系统,不事后补台账;
  • 复盘看板层:单基地、单茬次一屏看全——投入多少、产量多少、卖了多少、剩多少;
  • 横向对比层:多基地、多茬次放一起比,哪个基地成本高、哪个茬次卖得好,数字说话;
  • 情景模拟层:两个我们自己设计的核心模型——盈亏平衡分析,算清楚一亩地、一茬瓜做到什么产量什么价才不亏;价格×产量敏感性矩阵,价格和产量两个变量一动,利润怎么变一眼看出来。

模型要准,靠数据“喂”。明年春茬开始录入真实生产数据,每一茬的单产、成本构成、损耗率、收购价都进库,模型参数随之校准。录得越全、茬次越多,模型越接近真实经营,往后是早种晚种、扩不扩基地、定价定多少,都拿它当尺子。

另外,平台物联管理模块已预留设备接入、告警中心、规则引擎,等基地环境监测设备上线,温湿度、土壤数据直接进库,模型的数据采集层还能再自动一截。

3.4哈密瓜病虫害识别辅助模型

这是我们给基层技术人员做的一件实事:在田间遇到病瓜病叶,掏出手机就能知道是什么病、该用什么药。模型围绕“玉露明珠”主栽品种和重庆本地气候建,不是通用识别工具,只认我们这块地常见的那些病。

分两步走:

  • 第一步,特征知识库:先把常见病害(茎腐病、蔓枯病、白粉病、霜霉病、蚜虫等)整理成特征卡——病斑颜色、形状、位置(茎杆流油还是叶片发黄)、发生条件,基层人员按症状勾选或描述,模型给出候选病害、典型特征对照和防治用药方案;
  • 第二步,图像识别:积累足够多田间照片后,再上拍照识别,拍病斑直接出结果,识别结果带置信度,拿不准的转人工复核。

每次诊断都和生产记录联动:自动落到对应基地、茬次、地块,形成“哪块地哪茬容易生什么病”的历史台账。诊断结果经技术人员复核后回流成样本,越用越准。

目前先把特征知识库跑起来,明年春茬边用边攒照片,为后续图像识别打基础。

3.5权限与多租户模型

平台是多租户架构,明珠果苑自己是租户 ID = 1。权限设计我们想清楚了两件事:什么样的关系用“租户”,什么样的关系用“部门树”。

  • 平级隔离用租户:每个基地、每个伙伴一个独立租户,数据按 tenant_id 硬隔离,基地之间、伙伴之间互不可见;租户配独立套餐(menuIds),套餐里有什么菜单,这个租户才能看见什么;
  • 上下级用部门树:渠道体系有一、二、三级,上级要看下级的数。这套不走租户,走系统租户里的部门树加数据权限——渠道角色数据权限设为“本部门及以下”,一级渠道能看自己加所有下级,二级、三级层层收敛,同级之间天然互不可见,这是原生能力,零开发;
  • C 端与后台分离:游客和商城会员走会员体系(member_user),不给 C 端建后台账号;员工、渠道人员都在系统租户内,靠角色分菜单、靠部门分数据;
  • 超管看全局:明珠果苑作为系统租户,admin 跨租户汇总看全部数据,出汇总报表。

角色已按业务配好:技术总监、人事总监、市场总监、访客等五套角色,菜单批量授权,分别约 315、246、500、473 项,该看的能看、不该看的摸不着。后续新增菜单要同步进租户套餐,租户才看得见。

3.6定时任务平台化

定时任务以前是散在服务器 crontab 里的,看不见、管不着。我们把 XXL-Job 2.4.0 调度中心部署在本机,9090 端口只绑回环地址,systemd 托管,单独一个 xxl_job 库,跟业务库物理隔离。

管理后台是我们自己集成进数字平台的:任务列表、手动执行、启停、执行日志(时长、状态、结果)全在平台页面上完成,不用再登录调度中心。执行器内嵌在后端服务里,端口 9999,走令牌鉴权。对接过程中我们修了三个坑:分页接口返回 DataTables 格式解析错误、执行时长显示 null、多租户结果把原始 JSON 直接吐出来。现在这套东西在平台里已经能用了。

3.7菜单配置与占位页规范

平台的菜单不是写死在前端,也不在后端源码里,而是由数据库 system_menu 表驱动:登录后后端按角色查表下发,前端据此渲染路由和按钮。所以增删改菜单只改库,不用重新打包后端,也不用动前端源码。菜单分三类:目录只做分组、菜单对应一个页面、按钮对应一个权限点。

落库后现状:一级菜单 8 个,全部条目 1307 条,其中目录 90、菜单 322、按钮 895;322 个页面里有 62 个挂的是统一占位组件,6 个是外链。完整结构见附录 A,落库的执行步骤见《部署手册》5.6。

图标统一用 Element Plus 的 ep: 前缀,当前 185 条在用。补图标前先核对图标名在当前版本里真实存在——ep:storage、ep:code 在现用版本中并不存在,已分别换成 ep:files、ep:magic-stick,凭印象写只会留下空白。按钮不需要图标,留空字符串即可;空值不渲染,比写“#”干净。

目录已建、页面未开发的,统一挂 common/coming-soon/index 占位页:莫兰迪绿、文案“功能建设中·敬请期待”,并关闭缓存。页面开发完成后,把该菜单的 component 改指真实页面即可,不必新建目录、不必调整层级。这 62 个菜单点开看到占位页是预期,不是故障。

四、内容管理系统开发说明

4.1部署与目录

内容管理系统跑在 WordPress 上,站点根目录是服务器 /www/wwwroot/明珠果苑.com,主题是我们自己写的 mzgy01。前后台都按莫兰迪品牌色系定制。我们不直接动生产目录的文件,成品在独立目录做好,确认无误再覆盖上去。

4.2主题开发 mzgy01

前期前台顶部管理栏,视觉不佳,还跟主题导航抢层级,导致注销按钮看得见点不着。我们干脆把前台管理栏整个关掉,头部模板做成两套分支:没登录显示注册/登录按钮;登录后显示圆形头像、用户名和下拉菜单(个人资料、进入后台、退出登录),菜单支持点击展开、点空白和 Esc 关闭。退出链接专门的函数生成,带校验参数,安全上有保障。

后台也历经修改:管理栏通栏拉通,侧栏退到顶栏下面;顶栏高度收敛成一个样式变量,全站(侧栏定位、内容区偏移、按钮尺寸)都认这一个数,移动端只改变量就行,不再各处硬编码。这个改动顺手把编辑文章时工具条被顶栏压住的毛病也治了。

后台界面的样式——标徽、侧栏、一级与二级菜单、悬停态——全部收在一个文件里:wp-content/themes/mzgy01/assets/css/admin.css,前台样式各管各的,改后台不影响前台。样式表版本号改用 filemtime() 取文件修改时间,改完保存即生效,不用手动改版本号,也不用让访客强刷缓存。

这套皮肤有三处要留意,都是 WordPress 核心自带的装饰和我们自己的样式叠在一起造成的。一是菜单右侧的三角:7.x 起核心不再输出 .wp-menu-arrow 元素,改用纯 CSS 边框画三角,分别落在 a::after(当前项,浅色)和 li::after(悬停态,深色)上,而主题又用 a::after 放自己的「>」箭头,两者会叠;凡自绘箭头的主题都要把这两层 border 清零,并把 position、top、right、margin-top 复位,否则箭头会被核心的 absolute 加 right:0 加 margin-top:-8px 挪出正常位置。二是子菜单悬停时左侧会出现一撇白色「(」:核心 #adminmenu a:hover 带 box-shadow: inset 4px 0 0 0 currentColor,是 WP 原生的悬停亮条,它本要求直角,但主题给子菜单设了 9px 圆角,4px 竖条两端被裁成圆弧,就成了括号;子菜单项必须显式写 box-shadow:none。三是侧栏滚动条滑块:4px 宽、白色半透明、带圆角,贴在侧栏最右缘,很容易被当成菜单上的杂色符号,现已隐藏滚动条本身,滚轮照常可滚。

4.3插件体系

主题管外观,插件管行为。我们自己增写了三个插件:

插件 版本 设计要点
明珠果苑内容卫士 mzgy-guard 1.2.0 游客阅读权限:没登录看文章详情直接返 403 和说明页,登录后自动跳回原文,固定链接和 /article/xxx.html 两种地址都认;全屏水印:用 CSS 伪元素平铺“明珠果苑”四个字,倾斜 30°、透明度 0.05,鼠标穿透,不占带宽、不发额外请求;防复制:详情页禁右键、选中、复制、剪切,屏蔽 F12、Ctrl+U、Ctrl+S 等快捷键,管理员账号放行,方便自己编辑
明珠果苑维护模式 mzgy-maintenance 1.0.0 后台“设置”里一个勾选框,勾上就进维护模式:未登录访客统一跳维护页,返 503 + Retry-After 头,搜索引擎不会把它误判成宕机;后台、登录页、接口不受影响,管理员照常浏览前台;顶栏多一个红色“维护模式:已开启”标记,防止忘关
明珠果苑分类排序 mzgy-category-order 1.9 分类列表拖拽调序,只允许同层内移动,跨父级自动取消;每行可直接填排序号,回车提交;点表头临时按名称或文章数排序;有下级的分类可逐个折叠,折叠状态记在浏览器里,刷新不丢;取消分页,一页看全所有分类;顺序存在 term meta 里,后台列表与前台分类列表同步生效,顶部导航另由菜单决定,需在菜单里单独调
Simple Local Avatars 2.6.6 第三方插件,上传本地头像替代 Gravatar,没动它

内容卫士这套设计的好处是换主题也不会把权限控制弄丢——判断逻辑在插件钩子里,不在主题文件里。以后要按角色细分(比如只让订阅者以上看文章),把登录判断换成权限判断就行,改动很小。

4.4内容访问控制

内容以“是否登录”划线:列表页谁都能看标题,文章详情必须登录。正文上叠了全屏水印又禁了复制,外面想扒内容不容易。管理员账号不受这套限制,日常编辑不受影响。

4.5维护模式操作说明

  • 开启:后台 → 设置 → 明珠果苑维护,勾选“网站维护中”保存,访客即见维护页;
  • 关闭:取消勾选即恢复;
  • 页面切换:插件目录有“建设中maintenance.php”“维护中maintenance.php”两个候选,把要用的那个重命名为 maintenance.php(去掉中文前缀)即生效,同目录只能有一个 maintenance.php,是重命名切换、不是覆盖;
  • 改文案:直接编辑对应候选文件(维护中maintenance.php / 建设中maintenance.php),配色已按 #5B7B5E 配好;
  • 如果以前用过静态 index.html 维护页,启用插件后把 Nginx index 顺序改回 index.php 优先,静态页改名留存,别让两套机制打架。

4.6后台界面与菜单机制

后台的视觉与交互都收在 admin.css 一个文件里,改后台不会牵动前台。侧栏顶部留出一块放标徽,正常状态 64×64、圆角 18 像素,侧栏折成图标条时缩到 50×50,侧栏内容整体下移到 104 像素处,标徽不压第一条菜单。一级菜单悬停只做背景与文字的颜色过渡,0.18 秒完成,不做位移——早先试过向右挪 3 像素的跳动效果,鼠标沿菜单往下扫时整列文字来回晃,眼睛累,已去掉。侧栏滚动条本身隐藏,滚轮照常可滚。

一级菜单的开合由两个类名区分:mzgy-open 是点开的,mzgy-collapsed 是点收的,两个都不带的是没动过的。没动过的菜单里,只有当前页所在的那一条默认展开,判定用 WordPress 自带的 wp-has-current-submenu。除此之外不再有别的规则,系统不会因为“你到了某个页面”去替你展开或收起已经点过的菜单。

点击的规则按当下是否展开分两种。收着的父菜单,点一下先展开,再照常跳到它的第一个子菜单——父菜单的链接地址本来就是第一个子项的地址,不需要另外计算;已经展开的父菜单,点一下就是收起,停在原地不跳转。每次点击的结果写进浏览器本地(localStorage,键名 mzgyAdminMenuStateV1,按菜单 id 记 1 或 0),刷新页面、跳到别的菜单页都按记忆还原。因此展开的菜单不会因为换了页面就自己合上,点开另一条也不会把这条收掉,多条菜单可以同时展开。要恢复成默认状态(只展开当前页那一条),在后台按 F12 打开控制台,执行 localStorage.removeItem('mzgyAdminMenuStateV1') 后刷新即可。

这套开合机制改过四轮,两次偏差值得记下。一次只按“当前页”展开,跳转到子菜单后父项自己弹开,想合上却合不了,因为它在那一页仍然被判定为当前页;另一次补上了“点一下收起”的类名,样式表里却没有对应的规则,页面看着毫无反应——实际是脚本和样式没有同一批上线。凡是“点了没反应”的交互,先确认类名有没有加上去,再确认那个类名在样式表里有没有对应规则,两件事都成立才谈得上生效。

分类目录页由自制插件 mzgy-category-order 接管,当前版本 1.9。有下级的分类行前有一个 20×20 的方块按钮,点一下收起它全部子孙,再点展开;没有下级的行补一个同尺寸的隐形占位,保证同一列的分类名左右对齐,不补会差出 35 像素。列表顶部有“全部折叠 / 全部展开”,并显示“共 N 个分类,当前显示 M 个”。每页条数放到 999,避免父子分类被分页切开、上下级分在两页。

五、开发规范与约束

5.1操作规范

  • 命令单行、简短、一次一条;临时文件用完就删,要新建先打招呼;
  • 文件一律本地交付(.docx/.xlsx 等),不用在线协作文档;
  • 工作日志命名 工作日志YYYYMMDD.docx,成品拿到手就能用。

5.2凭证与账号管理

数据库、Redis、调度中心这些敏感凭证专人保管,这份文档里不落明文。接环境用最小权限账号,定期轮换。超管账号 yanghsia 属明珠果苑租户(tenant_id=1)。

六、建设历程与里程碑

阶段 时间 主要成果
平台搭建与上线 9-18 至 9-23 服务器环境、PG16/Redis8 容器、94 张表导入、源码与前端部署、首次登录;登录页莫兰迪绿主题;启用 OA、HR、资产、仓储、报表、CRM 等模块;配合内容管理系统完成环境搭建
流程与基础体验 9-24 至 9-28 修 BPM 404 并补齐流程表;面板升级与服务器重启后的恢复手册;全模块打通;全局关掉官方提示条;工作台换成真实数据
权限与组织模型 9-29 至 9-30 权限模型落地:超管跨租户、渠道租户安全、五角色改名排序与菜单批量授权、租户分类;基地管理第一期(申请准入—资质审核—考核评级全生命周期)
核心业务与安全 10-01 至 10-03 基地复盘分析闭环;渠道管理打通购销存财;系统性安全加固;XXL-Job 打通;全量备份与垃圾清理
内容管理系统与插件体系 10-06 至 10-20 内容管理系统建成;主题 mzgy01 前后台改造;内容卫士、维护模式两个自制插件交付;本地头像插件就位

七、当前状态

7.1已完成并验证

平台搭建与上线、基地管理、渠道管理(购销存财闭环)、工作流 BPM、权限与多租户模型、定时任务平台内管理、系统性安全加固、全量备份体系、内容管理系统及配套插件体系。

附录 A平台菜单结构(八个一级菜单)

平台菜单按八个一级菜单组织,依次为管理首页、内容管理、商城管理、公司管理、基地管理、渠道管理、系统管理、平台运维。下表为 2026 年 10 月 26 日菜单重构落库后的实际结构,以生产库 system_menu 为准;表中“三级菜单”即挂在二级目录下的页面,标“—”的表示该二级项本身就是一个页面,不再分层。

一级菜单 二级菜单 三级菜单
管理首页 工作台 —
内容管理 官网内容 官网首页、管理后台、文章管理、页面管理、媒体仓库、评论管理
内容管理 微信公众号 账号管理、数据统计、标签管理、粉丝管理、消息管理、模版消息、菜单管理、自动回复、素材管理、图文草稿箱、图文发表记录
商城管理 商城首页 —
商城管理 商城设置 商城装修、配送管理、交易配置
商城管理 商品中心 商品列表、商品分类、商品品牌、商品属性、商品评论
商城管理 交易订单 订单列表、售后退款
商城管理 营销中心 优惠券、秒杀活动、拼团活动、砍价活动、优惠活动、积分商城、分销管理、内容管理
商城管理 会员中心 会员配置、会员管理、会员标签、会员等级、会员分组、会员积分、会员签到
商城管理 支付管理 应用信息、支付订单、退款订单、转账订单、钱包管理、回调通知、接入示例
商城管理 商城数据 会员统计、商品统计、交易统计
商城管理 客服中心 会话查询、会话更新、会话删除、消息查询、消息更新、消息发送
公司管理 协同办公 工作流程(审批)、日程安排、工作任务、工作汇报、会议管理、文档知识库、行政事务、通讯录、智能办公(AI)
公司管理 进销用存(ERP) 产品管理、采购管理、销售管理、领用消耗(用)、库存管理、财务管理、报表统计
公司管理 人力资源 员工档案管理、员工关系、考勤管理、薪酬管理、绩效管理、招聘管理、培训管理、人事报表
公司管理 客户关系(CRM) 待办事项、线索管理、客户管理、联系人管理、客户公海、商机管理、合同管理、回款管理、回款计划、产品管理、数据统计、系统配置
公司管理 行政资产 资产台账、资产分类、资产领用/归还、资产维修、资产折旧、资产盘点
公司管理 经营分析 报表管理、数据看板
基地管理 合作管理 基地档案、合作申请、资质管理、考核管理
基地管理 生产管理 大棚/地块、生产计划、生产茬次、作物字典、品种字典、生产记录、环境监测、植保记录、植株状态、采收产量
基地管理 设备管理 设备档案、维修记录
基地管理 人员管理 人员档案、出勤记录
基地管理 物料管理 物料档案、出入库记录
基地管理 复盘分析 费用明细、基地销售、复盘看板、对比分析、情景分析
基地管理 智慧农业 驾驶舱(首页)、物联网 IoT、农业机器人、病虫害智能识别
渠道管理 渠道首页 —
渠道管理 渠道合作 渠道档案、合作申请、资质管理、跟进记录、考核管理
渠道管理 渠道运营(远期) 商品授权、渠道订单归集、铺货与终端库存、结算对账、返利与佣金、风控预警、第三方平台对接
系统管理 组织权限 用户管理、角色管理、菜单管理、部门管理、岗位管理
系统管理 租户与账号 租户管理、第三方授权、三方登录
系统管理 基础数据 数据字典、地区管理
系统管理 消息渠道 短信管理、邮件管理、站内信
系统管理 日志审计 操作日志、登录日志
系统管理 通知公告 公告查询、公告新增、公告修改、公告删除
平台运维 开发工具 代码生成、代码生成案例、数据源配置、表单构建、接口文档、数据库文档
平台运维 任务调度 定时任务
平台运维 存储与参数 文件管理、参数配置、WebSocket
平台运维 监控中心 服务监控、Redis 监控、Java 监控、API 日志、链路追踪
平台运维 流程引擎配置 流程模型、流程表单、流程分类、用户分组、流程监听器、流程表达式、流程实例、流程任务

附录 B软件与依赖清单

本附录列出本地开发机实际安装的软件、版本与用途,以及前后端的关键框架依赖。版本以实际安装为准,升级前请对照本表确认兼容性。生产环境的软件清单见《明珠果苑网站部署手册》附录 C。

(一)本地开发环境

软件 版本 用途
Node.js 22.22.2 前端构建运行时
pnpm 10.28.2(工程锁定) 前端包管理,由 packageManager 字段固定
npm 10.9.7 辅助工具
OpenJDK 17.0.20.1 后端编译与运行
Maven 3.9.16 后端依赖管理与打包
Git 2.55.0 版本管理
Python 3.13.14 辅助脚本、文档处理
Docker 29.1.3 本地容器,WSL 后端
PostgreSQL 客户端 13.23 连库执行 SQL、备份导出
Redis 客户端 8.10.1 缓存数据排查
VS Code 当前版本 开发编辑器,装 Volar 等插件
Postman、pgAdmin 当前版本 接口调试、数据库管理

(二)关键框架与依赖

层次 组件 版本
前端 Vue 3.5.28
前端 Vite 7.3.1
前端 TypeScript 5.9.3
前端 Ant Design Vue 4.2.6
前端 Pinia 3.0.4
前端 Vue Router 4.6.4
前端 Tailwind CSS 3.4.19
前端 ECharts 6.0.0
后端 Spring Boot 3.5.9
后端 MyBatis-Plus 3.5.15
后端 Druid 1.2.27
后端 Redisson 3.52.0
后端 Flowable 7.2.0
后端 XXL-Job 2.4.0
后端 Hutool 5.8.42
后端 Knife4j 4.5.0

附录 C菜单结构规划(交互式页面)

本附录为《数字管理平台菜单规划》交互式页面入口,文件位于 H:\系统备忘\常用\。该页面以独立 HTML 维护,作规划依据;实际结构以生产库 system_menu 为准,落库后回文档更新,双击下方链接可用浏览器打开。

数字管理平台菜单规划.html

重庆明珠果苑农业开发有限公司开发手册 · 内部技术文档

栏目建设中,敬请期待