SAP物料编号范围设计原理与实战配置指南
简介本资源是一份面向SAP ABAP开发人员、后勤模块顾问及系统实施工程师的实操型配置指南聚焦物料主数据编号范围的后台维护方法与典型问题处理。针对ERP 6.0 EHP7版本详细讲解如何通过MMNR/SNRO事务码创建号码组、定义内外部编号段支持数字/字母/下划线/连接线组合、分配物料类型如HAWA贸易物品并提供冲突识别、原段修改、新组插入及物料类型重分配的完整操作路径与界面截图说明。资源为1个494KB的Word文档.docx内容结构清晰含示例数据表、TCODE对照、IMG路径指引及分步图示共14张关键界面截图覆盖从准备到验证的全流程。目前已有810人学习下载适合需快速掌握编号范围配置逻辑、规避编码重复风险、支撑多物料类型差异化管理的中高级SAP用户。1. 编号范围不是“填个数字就完事”它决定你后续所有物料创建的成败逻辑很多人第一次在 SAP 里点开 MMNR以为只是给 HAWA 类型“配个号段”填个起始号、终止号、点保存——结果第二天业务同事就来问“为什么新建物料时系统不自动编号”“为什么我输 RT-M10001 提示‘编号格式错误’”“为什么两个不同物料类型居然生成了同一个号”这不是操作手误而是编号范围设计底层逻辑没立住。它根本不是“后台小配置”而是整套物料主数据生命周期的第一道闸门它强制约束编码唯一性、决定创建方式自动 or 手动、绑定物料类型语义、甚至影响后续批次管理、BOM 展开和报表取数逻辑。本文讲的不是“怎么点按钮”而是如何用一套可复用、可审计、可扩展的编号范围方案把“枫竹丹青集团专用”这种业务诉求真正落地为 ERP 系统里稳定运行的规则引擎。适合正在做 SAP ABAP/SD/MM 模块毕设、课设或刚接手某高校实验室/某公司 SAP 后台配置任务的工程师——你不需要懂 ABAP 开发但必须清楚每一步配置背后的系统级影响。2. 总体架构设计三层结构与四个核心控制点的职责划分SAP 物料主数据编号范围不是扁平化配置而是一个有明确层级关系的三层结构号码组Number Range Group→ 号码段Number Range Interval→ 物料类型Material Type。这三层之间不是简单映射而是通过四个关键控制点实现强约束段类型判定、编号生成策略、格式校验规则、Client 级唯一性保障。理解这四点才能避开“改了 A 却崩了 B”的典型翻车现场。2.1 号码组业务语义容器不是技术分组号码组如示例中的“枫竹丹青集团专用”本质是业务域的抽象。它不存储编号值只定义“谁可以用这段号”。一个号码组可挂多个号码段内部外部但每个段只能属于一个组一个物料类型只能分配给一个组但一个组可分配给多个物料类型。提示组名必须全局唯一且具备业务可读性。避免用“GROUP01”“TEST_NR”这类命名——上线后查问题时运维人员根本无法从日志里反推这是哪个业务线的规则。2.2 号码段物理编号池含两套独立规则引擎每个号码段由三要素构成段标识Internal/External、起始号、终止号。注意内部段Internal和外部段External是两套完全独立的编号生成与校验机制内部段纯数字系统自增。创建物料时不输入物料号系统从当前最大已用号1 取值如当前最大为 RT-M10050则下一条为 RT-M10051。其“当前编号”值Current Number在表NAST中维护每次取号后自动更新。外部段支持字母、数字、-、_但需预定义格式模板。例如RT-M####表示前缀 RT-M 四位数字用户输入RT-M10001合法RT-M1001少一位或RT-X10001前缀错则报错。格式规则在事务码SNRO的“格式”页签中配置非简单正则而是 SAP 内置的模式解析器。* 示例外部段格式模板配置逻辑SNRO 中实际配置项 FORMAT_PATTERN RT-M#### 四位数字占位符 CHECK_DIGITS X X 表示必须为数字不可为空格 LEADING_ZEROES X 允许前导零如 RT-M0001该配置直接影响MARA-MATNR字段的输入校验且在BAPI_MATERIAL_SAVEDATA等标准接口中被调用。若此处配错所有集成接口都会批量报错。2.3 物料类型业务行为触发器绑定编号策略物料类型如 HAWA本身不存编号规则它只是“开关”。当用户在MM01创建物料时系统根据所选物料类型反查其分配的号码组再根据组内是否含内部/外部段动态决定若仅含内部段 → 隐藏 MATNR 输入框自动填充若仅含外部段 → 强制显示 MATNR 输入框提交时校验格式若两者兼有 → 显示 MATNR 输入框但允许留空留空则走内部段逻辑。注意此行为不可通过用户参数覆盖是硬编码在标准程序SAPLMGMM中的。因此若业务要求“HAWA 必须手动输号”就不能给它配内部段——哪怕只配一个 0~0 的无效段也会触发自动填充逻辑。2.4 Client 级唯一性跨模块共享的底层铁律所有编号范围配置均作用于 Client 级别如 800这意味着同一 Client 下任意物料类型分配的号码段其编号区间绝对不能重叠如 HAWA 用 RT-M10000~RT-M19999HAUL 用 RT-M15000~RT-M25000 就会冲突该唯一性由系统在保存时强制校验事务码MMNR保存即触发CHECK_NUMBER_RANGE_CONFLICT函数而非靠人工肉眼比对跨 Client 不共享Client 800 的 RT-M10000 和 Client 900 的 RT-M10000 是完全独立的。这一设计保障了多组织架构下的数据隔离但也意味着若某集团有 5 个子公司5 个 Client每个子公司的“贸易物品”类型都需要独立配置编号范围无法一套配置全集团复用。3. 关键配置实现从冲突排查到三步落地的完整实操链本章不罗列菜单路径而是聚焦“为什么这样点”——把示例中“修改原号码段”“新建号码组”“分配物料类型”三个动作还原成可验证、可回滚、可写进配置文档的标准流程。所有操作均基于 ERP 6.0 EHP7早期版本如 SR3因界面控件差异需微调但底层逻辑一致。3.1 冲突诊断用系统自带工具定位“隐形重叠”新手常犯错误只看“起始号 终止号”就认为无冲突却忽略 SAP 对“段类型混合”的严格判定。例如现有段 A内部段10000~19999新建段 B外部段RT-M15000~RT-M19999表面看数字区间重叠但 SAP 认为“内部段数字”和“外部段字符串”属不同命名空间不冲突而若新建段 C外部段RT-M10000~RT-M19999则与段 A冲突——因为 SAP 规定同一号码组内内部段与外部段的数字部分即####解析出的纯数字不得重叠。正确诊断步骤进入MMNR→ 点击“显示间隔”Display Intervals在列表中勾选“显示所有段类型”Show All Types确保 Internal/External 均可见对目标物料类型如 HAWA点击右侧“详细信息”Details→ 查看其分配的号码组下所有段的NUMMIN/NUMMAX值重点检查所有内部段的NUMMIN/NUMMAX数值区间与所有外部段解析出的数字区间如RT-M15000→15000是否重叠。3.2 修改现有号码段安全覆盖的三步确认法示例中采用“修改原号码段”解决冲突这是最稳妥的方案相比新建组因其不改变历史数据引用关系。但必须执行三重确认业务确认检查该号码段当前是否已被使用。执行事务码SE16N查表NAST输入OBJNR MATERIALNR和NRGEN 你的号码组名查看CURRNR当前号是否小于新终止号。若CURRNR 19999而新终止号设为18000则保存必失败。技术确认修改时必须勾选“更改当前编号”Change Current Number复选框。否则系统仅更新NUMMIN/NUMMAXCURRNR仍指向旧值下次取号可能越界。传输确认保存后弹出的“传输需知”对话框图6不可跳过。该提示意味着此配置变更需通过 Transport Request传输请求发布到生产系统。若在开发客户端直接点“是”却未关联有效 TR配置将仅在当前 Client 生效上线后失效。* 修改后保存时系统实际执行的隐式检查无需代码但需理解 IF NEW_NUMMAX CURRNR. MESSAGE 终止号不能小于当前编号 TYPE E. ENDIF. IF OVERLAP_WITH_OTHER_INTERVALS( ). MESSAGE 与其它号码段重叠 TYPE E. ENDIF.3.3 新建号码组及段模板化配置防错清单按示例新建“枫竹丹青集团专用”组需严格遵循以下顺序缺一不可步骤操作位置关键字段必填说明防错要点1MMNR→ “编辑组” → “组→创建”组名Group Name必须唯一建议加业务前缀如FZDQ_避免空格、中文标点长度≤10字符2组创建后点“插入间隔”段类型Interval TypeInternal 或 External不可同时选一个段只能是一种类型混合需建两个段3同一界面起始号From、终止号To外部段需按格式填写如RT-M10000内部段只输数字10000外部段必须带前缀4点“格式”页签仅外部段格式模式Format Pattern如RT-M#####代表数字位####表示4位#####表示5位不可错位血泪经验外部段格式模式一旦保存无法直接修改。若配错如写成RT-M###却需5位只能删除该段重建——而删除前必须确保无物料使用此段否则报错Number range interval is in use。因此首次配置务必用测试物料类型如 ZTEST验证格式。3.4 分配物料类型双向绑定与权限控制将 HAWA 分配至新组表面是拖拽操作实则涉及两层校验前端校验MMNR界面中物料类型列表右侧有“已分配”与“未分配”两个区域。拖拽时系统实时检查目标组是否已存在该物料类型若存在禁止重复分配避免脏数据。后端校验保存时调用函数NUMBER_RANGE_ASSIGNMENT_CHECK验证该物料类型当前是否被其他事务锁定如某用户正在用MM01创建 HAWA 物料若锁定则报错Material type is locked for number assignment。此外分配操作受权限对象S_NUMR控制。标准权限字段为ACTVT 02更改OBJID MATERIALNR对象 IDGRPID FZDQ_GROUP组名若用户无对应GRPID权限即使能看到分配按钮点击后也会提示No authorization to assign material type to number range group。4. 常见问题排查5 个高频翻车点与根因解法编号范围配置看似简单却是 SAP 后台最易“静默失效”的模块之一。以下问题均来自某高校实验室真实课设场景学生反复调试 3 天未解最终发现是底层逻辑误解。4.1 现象新建物料时 MATNR 输入框灰色不可编辑但系统未自动填号原因物料类型分配的号码组中仅含外部段且外部段格式模式未启用。SAP 规则若组内无有效内部段且外部段格式模式为空即未配置FORMAT_PATTERN则默认禁用所有编号功能MATNR 字段强制隐藏且不填充。解决进入SNRO→ 输入对象MATERIALNR→ 点“格式”页签 → 为对应号码组填写合法格式模式如RT-M####→ 保存。4.2 现象输入RT-M10001保存成功但查询MARA表发现MATNR 000000000010001左侧补零原因外部段格式模式中启用了LEADING_ZEROES X但MARA-MATNR字段为 CHAR18系统自动左补零至18位。业务上显示RT-M10001存储却是000000000010001。解决在SNRO格式页签中将LEADING_ZEROES设为SPACE空格或改用CONVERSION_EXIT_MATN1_INPUT退出函数做显示层转换切勿直接改MARA-MATNR存储逻辑。4.3 现象修改号码段终止号后MM01创建物料报错Number range interval exhausted原因CURRNR当前编号值大于新终止号。例如原CURRNR 19999新终止号设为18000系统拒绝生成新号。解决进入SNRO→ 输入MATERIALNR→ 点“当前编号”页签 → 手动将CURRNR改为小于等于新终止号的值如17999→ 保存。注意此操作需S_NUMR权限且谨慎评估避免跳号。4.4 现象同一 Client 下HAWA 和 HAUL 两个物料类型分配了相同号码组但创建 HAUL 时提示Number range not assigned to material type原因号码组分配是“单向绑定”即组→物料类型但系统校验时需反查。若 HAUL 未在MMNR列表中显式分配即使数据库表T141中存在记录前台也不识别。解决在MMNR界面确保 HAUL 条目出现在目标组下方非“未分配”区若不在需手动拖拽分配并保存。4.5 现象开发 Client 配置完成传输到质量 Client 后MM01创建物料仍走旧编号规则原因传输请求TR未包含T141物料类型-号码组分配表和NAST号码段主数据表的变更。MMNR配置涉及多张表仅传界面配置不够。解决在传输请求中手动添加对象R3TR TABU T141表结构R3TR TABU NAST表结构R3TR PROG SNRO程序含格式规则传输后在质量 Client 执行SE09检查 TR 内容完整性。5. 验收与答辩用三份交付物证明你真懂这套编号逻辑毕设/课设答辩时老师最常问“这个配置上线后怎么验证它真的生效”“如果业务说编号乱了你怎么快速定位”——答案不是背步骤而是拿出三份可执行、可演示、可归档的交付物。下面是我带某高校实验室项目时要求学生必须产出的硬核材料。5.1 验收检查表一份让 QA 工程师能照着打钩的清单不要交“我配置完了”的截图交一份带验证方法的表格。以下为某次课设验收表节选共12项此处列核心5项序号验证项预期结果验证方法实际结果备注1HAWA 物料类型是否分配至FZDQ_GROUPT141-GRPID FZDQ_GROUPSE16N查T141MTART HAWA✅2FZDQ_GROUP是否含外部段RT-M10000~RT-M99999NAST-NUMMIN 10000,NAST-NUMMAX 99999SE16N查NASTGRPID FZDQ_GROUP✅注意NUMMIN是数字非字符串3外部段格式模式是否生效SNRO中FORMAT_PATTERN RT-M####SNRO→MATERIALNR→ “格式”页签✅4创建 HAWA 物料时 MATNR 是否可输入且校验输入RT-M0001报错RT-M10001通过MM01→ 选 HAWA → 输号测试✅5内部段是否自动填充若配置留空 MATNR保存后MARA-MATNR为RT-M10001MM01→ 留空 → 保存 → 查MARA✅提示答辩时把这张表打印出来老师指哪条你就现场打开SE16N或MM01演示。比讲一百遍“我做了什么”更有说服力。5.2 场景化测试用例覆盖业务全路径的 4 个黄金用例配置不是目的支撑业务才是。必须设计能体现业务价值的测试用例而非单纯测技术点用例编号业务场景操作步骤预期结果关键验证点TC-01新供应商首单入库MM01创建 HAWA 物料手动输RT-M10001成功保存MARA-MATNR RT-M10001外部段格式校验TC-02内部研发物料快速建档MM01创建 HAWA 物料MATNR 留空自动填充RT-M10002假设当前号为10001内部段自增逻辑TC-03跨类型编号隔离MM01创建 HAUL 物料输RT-M10001成功因 HAUL 分配不同组Client 级唯一性TC-04边界值压力测试MM01创建 HAWA 物料输RT-M99999成功输RT-M100000报错终止号边界控制这些用例要写进你的毕设文档“测试章节”并附上MM01截图遮挡敏感信息和MARA查询结果。老师一眼看出你懂业务闭环。5.3 配置文档一份让继任者三天上手的交接指南很多学生交的“配置文档”只有菜单路径毫无维护价值。合格的文档必须包含配置快照用SE16N导出T141和NAST的关键字段MTART,GRPID,NUMMIN,NUMMAX,OBJNR保存为 Excel依赖说明明确写出“此配置依赖SNRO中MATERIALNR的格式模式”避免后续人只改MMNR忘记同步SNRO回滚方案若上线后出问题如何快速恢复例如“删除FZDQ_GROUP分配将 HAWA 重新分配至原GROUP01命令UPDATE T141 SET GRPID GROUP01 WHERE MTART HAWA”。从那以后我每次做完编号范围配置都强制走一遍这三份交付物先填验收表自检再跑四条测试用例录屏最后用SE16N导出数据存档。不是为了应付老师而是当某天凌晨接到电话说“新物料号重复了”我能 5 分钟内打开文档精准定位是NAST的NUMMAX设小了还是SNRO的格式模式漏配了。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

LeetCode反转链表:迭代法详解与指针操作避坑指南

LeetCode反转链表:迭代法详解与指针操作避坑指南

1. 反转链表到底在反转什么 链表反转是LeetCode上出镜率最高的题目之一,没有之一。我刷了这么多题,面试里被问到的链表题,十道里有六道跟反转沾边——要么是完整反转,要么是反转前K个,要么是两两交换,要么是…

2026/10/19 13:51:40 阅读更多 →
MobileNetV2端到端部署实战:猫狗分类与模型量化

MobileNetV2端到端部署实战:猫狗分类与模型量化

1. 项目背景与技术选型思路一直在做端侧视觉类项目,说实话,猫狗图像分类这种题目听起来很“教学”,可真要把它做成一套能跑的轻量级系统,反而比想象中更能暴露问题。很多人一上来就往 VGG、ResNet 这种大模型上靠,训练…

2026/10/19 13:51:40 阅读更多 →
进口阀门选型与采购实务:极端工况应用与避坑指南

进口阀门选型与采购实务:极端工况应用与避坑指南

进口阀门这些年一直是工业项目里绕不开的话题。做设备采购的、搞工艺设计的、管工厂运维的,几乎都跟它打过交道。很多人一听到“进口阀门”就想到贵、货期长、售后麻烦,但实际上它能在国内重工业场景里占据一席之地,靠的是极端工况下那份稳定…

2026/10/19 13:50:38 阅读更多 →

最新新闻

多智能体协作模式深度解析:主从、对等与混合架构选型指南

多智能体协作模式深度解析:主从、对等与混合架构选型指南

多智能体协作这个题目,最近在项目里几乎是绕不开的。不管是机器人编队、物流调度,还是现在热门的多个AI智能体共同跑一个业务流程,本质上都要回答同一个问题:让一堆各自有感知、有决策的个体一起干活,到底怎么组织它们…

2026/10/19 14:39:53 阅读更多 →
Flume+HBase+Spark2.2构建秒级新闻热点实时分析链路

Flume+HBase+Spark2.2构建秒级新闻热点实时分析链路

简介:这是一份面向高校计算机专业本科生及大数据初学者的毕业设计级实战源码,聚焦基于Spark 2.2构建新闻网实时分析系统的完整实现,解决新闻用户行为日志的采集、存储、流式处理与热点挖掘等典型大数据场景问题。资源共43个文件,含…

2026/10/19 14:39:53 阅读更多 →
pymoo实战:车辆与无人机协同配送集中式模型复现

pymoo实战:车辆与无人机协同配送集中式模型复现

最近总有人拿着低空经济方向的新论文来问:车辆与无人机协同配送的优化模型,到底怎么用代码实现?尤其论文里常见的"集中式协同配送模式",听起来就是车辆带着无人机送货,真到复现的时候却要同时处理车辆路径、…

2026/10/19 14:39:53 阅读更多 →
OpenCode 美化增强指南:用 AI 一键装好 oh-my-opencode

OpenCode 美化增强指南:用 AI 一键装好 oh-my-opencode

最近很多朋友开始折腾 OpenCode,原因很直白:它能直接用 AI 帮你写代码、改配置、跑命令,确实比传统编辑器省事。但省事归省事,刚装完的 OpenCode 默认界面和默认快捷键都比较朴素,用起来总有那么点“不够顺手”。oh-my…

2026/10/19 14:39:53 阅读更多 →
VS Code数据科学提效插件DST:AST解析+内核探针+安全沙箱

VS Code数据科学提效插件DST:AST解析+内核探针+安全沙箱

1. 这不是又一个“语法高亮插件”:它重新定义了VS Code里的数据分析工作流你有没有过这样的时刻:在VS Code里打开一个Jupyter Notebook,写完一段pandas数据清洗代码,想立刻看df.head()结果,却得切到右侧的交互窗口——…

2026/10/19 14:39:53 阅读更多 →
离线环境二进制部署Kubernetes集群完整指南

离线环境二进制部署Kubernetes集群完整指南

做私有化交付这几年,“离线部署K8S集群,而且还得用二进制方式”基本上是隔离网络项目里躲不掉的一关。所谓离线,就是目标机房跟互联网物理隔离,或者网络策略收得很紧,你没法在目标环境直接拉依赖;所谓二进制…

2026/10/19 14:38:52 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →