简介:一份面向海尔内部制单调度员的SAP LES物流执行系统操作指导文档,聚焦运单制作与打印、车辆调度、不良品控制及到货及时率跟踪等日常高频作业流程。文档以VT01N事务代码为主线,说明了接收配车单后的单独凭证创建、提货时间与运输计划安排,以及提货单和运单打印方法。对于系统外操作项和非系统控制环节也做了说明,并针对库存不足提示“一次性发送不可能”、订单保存后未生成交货单等典型问题给出了可行处理策略,例如调整库存地点、部分交货以及通过“不完整日志”补齐缺失信息。
资源包为1个doc文档,大小约38KB,属轻量级操作参考;内容精炼,便于制单调度员快速对照查阅。目前已有85人查看学习,适合作为SAP LES初学者或相关物流岗位员工的操作入门与排错参考。
1. 这是给制单调度员的一本SAP LES操作手册:VT01N运单全流程与三个非系统环节
拿到这份《海尔SAP LES操作指导书-制单调度员》时,第一反应是它把物流执行系统中“最容易让人卡住”的运单制作环节压缩成了一页纸:从配车优化员的配车单开始,用VT01N创建单独运输凭证,选定交货单DN、车号、提货时间,存盘后打印提货单和运单。文档里没有讲SAP LES的宏大架构,只讲制单调度员每天要做的四件事和两页常见问题排查表。但它最大的价值在于划清了边界:哪部分在系统里做,哪部分目前还得靠GPS平台和手工台账。对刚接手海尔LES岗位的调度员,或者刚进入SAP LE/WM模块的顾问来说,这是一份能直接对着操作的场景化手册。
2. SAP LES与制单调度员岗位:VT01N运单创建的系统入口
2.1 为什么LES里的运输计划要用单独凭证:单独凭证与集体凭证的取舍
SAP LES的全称是Logistics Execution System,在SAP ECC里它管理的是从拣配、装运到运输、交货的物理流动过程,向下对接WM仓库管理,向上承接SD的交货单和MM的收货。制单调度员这个岗位在LES里接触最多的事务就是运输计划创建,而运输计划在SAP里分两种创建方式:单独凭证和集体凭证。单独凭证对应VT01N,一个装运单处理一个车次,车号、司机、提货时间直接挂在凭证头上;集体凭证对应VT20N这类批量处理,适合一次性处理几十张交货单的整车发货。海尔这份指导书写的是单独凭证,原因很实际:配送中心的制单调度员每天面对的是配车优化员给的一车一单,每张配车单上的DN数量不多,但车号、计划提货时间、计划运输时间必须按提货点精确录入,单独凭证里改一个提货点时间不至于影响整批数据。集体凭证在批量场景下效率高,但一旦其中一辆车的时间要调整,整个凭证的维护就麻烦了。
这里补一下凭证类型的背景。SAP运输计划里有装运单和运输单两套概念,海尔这里走的是装运单创建,事务代码VT01N创建的是装运单抬头加交付行。装运单的抬头记录运输方式和承运方,行项目对应到交货单DN,一个装运单可以挂多个DN,每个DN又有自己的提货点和卸货点。指导书中“根据配车单上的标识选定相应的DN”说的就是这个环节——DN是交货单(Delivery Note)的简称,在SAP SD模块里它是由销售订单或外向交货生成的物流凭证,也是后续装运单、出库过账、打印装箱单的核心单据。SD模块相关单据串联关系大致是这样的:销售订单 → 外向交货单(DN) → 装运单 → 出库过账 → 开票。制单调度员在VT01N里碰到的DN,就是这条链条里已经做过拣配、等待发运的那一单。
2.2 操作路径拆解:从后勤到VT01N的菜单位置
指导书里写的操作路径是:后勤——后勤执行——运输——运输计划——创建——单独凭证,事务代码VT01N。在SAP GUI 810上,这套路径对应的是SAP Easy Access菜单树,实际工作中没人会一层层点过去,都是直接在事务代码框里敲VT01N回车。第一次接手的人建议把VT01N、VT02N、VT03N三个事务同时加到收藏夹,VT01N创建、VT02N修改、VT03N显示装运单,这是LES运输计划模块最基础的三个操作入口。
参数方面,创建装运单时屏幕上会先出抬头信息,包括装运类型、运输区域、装运条件。指导书里没有展开字段级参数,但制单调度员要记住一个判断标准:抬头字段不全不影响保存,但保存时系统会提示装运单不完整,原因大多集中在运输方式、承运商或者交付行缺少仓库或地点信息。第一次上手的人,我一般建议进入VT01N后先把抬头和行项目界面的必填项标出来,尤其是“计划提货时间”和“计划运输时间”这两个日期时间字段,它们直接决定打印出来的运单上的时间承诺。
这里有个实务细节:VT01N进入后先维护装运类型、运输方式等抬头信息,保存抬头后再进入交付行处理界面才能看到待选的DN清单。指导书中“选定符合要求的车辆车号,输入到每个提货点的计划的提货时间和计划的运输时间”这句,翻译成界面操作就是:在交付行里选中某个DN,把车号填到对应的运输工具字段,把时间填到计划提货和运输字段。一个提货点可能对应多个DN,这时候车号在同一提货点下保持唯一,不同提货点可以用不同车,别让多辆车挤在同一个提货点上。
2.3 进入VT01N后第一件事:看懂配车单上的DN清单
配车单是配车优化员下发的纸质或电子表格,上面通常会列出计划车次、车辆要求(厢式、高栏、吨位)、对应DN号清单、提货点和预计发运时间。制单调度员在VT01N里做的第一件事不是着急创建,而是先把配车单上的DN号在VL03N或者VT01N的交付行选择界面里核对一遍,确认这些DN已经是“已拣配、准备好发运”状态,而不是还在仓库拣配中。这里有一个经验:DN状态决定你能不能把它挂到装运单上,如果DN还在创建阶段或者拣配未确认,VT01N里可能根本选不到它。
核对完DN状态之后,再按配车单上的顺序把DN选入装运单。这里面有一个和计划协议相关的细节:如果DN来源是长期计划协议,它的装运计划和仓储位置通常已经在协议里定好,VT01N选入时要确认仓位和数量没有被协议拆散。海尔这类家电制造企业,部分大客户走计划协议下单,DN是计划协议自动剥出来的,制单调度员如果发现DN数量比配车单多或者少,先去查计划协议的交货计划行,而不是直接在装运单里改数量。改数量会破坏后续开票和运输结算的对账关系。
另一个容易忽略的是DN对应的发货仓库和装运点。VT01N界面上能看到每个DN的装运点和收货方地址,配车单上写的提货点如果和DN上维护的装运点对不上,运单打印出来司机跑错库房。所以选DN之后、打印之前,务必扫一遍所有交付行的装运点,确保和配车单一致。然后是装运单号的生成逻辑,VT01N保存成功后系统回传一个装运单号,后续VT02N修改、VT03N查询、打印输出都用这个号。制单调度员最好养成习惯:每次创建完成后把装运单号手写到配车单对应位置,这和指导书“存盘后打印相应的提货单和运单”配套,纸质单和系统单对应起来,车队拿单走货才不会乱。
3. 从DN到运单:车辆选定、提货时间与打印输出
3.1 计划按钮与DN选定:标识的含义
指导书中“根据配车单上的标识选定相应的DN,点击执行列的计划按钮”是一句很容易被忽略的操作。这里“标识”指配车单上DN号旁的区分标记,比如用提货点编号或车次号标注,作用是让制单调度员快速对应到系统里的DN清单,而不是逐个点开看名称。在VT01N创建装运单的交付行选择界面,系统会把所有符合当前装运条件的DN列出来,通常带装运点、数量、仓库状态,你需要按配车单上的标识勾选对应的DN。
勾选完成后,点击“计划”按钮,系统把选中的DN从候选列表移到装运单的交付行中,并自动带入收货方、物料、数量、重量等数据。“计划”在这里的含义是:把DN的物流执行计划绑定到本次装运的运输资源上。这一步非常关键,因为只有DN进了交付行,后续才能在行项目层面定义提货时间和卸货时间。实务里经常有人跳过“计划”直接保存,结果装运单抬头建好了,交付行是空的,打印出来运单上没有货物明细,这就是典型的操作顺序翻车。
选DN时还要注意数量一致性。如果配车单上要求某张DN拆两车发运,制单调度员应该在DN层面做部分交货处理,而不是直接在VT01N里手动改交付数量。直接改交付数量能保存,但后续出库过账时系统和DN剩余数量对不上,装运单上的数量与DN数量不一致,财务对账时就会多出一堆差异单,这也是SD单据串联关系里常见的问题。
3.2 车辆车号输入与提货点时间设置
把DN选进交付行之后,接下来是维护运输资源信息。指导书里的原话是“选定符合要求的车辆车号,输入到每个提货点的计划的提货时间和计划的运输时间”。SAP装运单的运输工具页签上,通常有运输工具类型、车牌号、司机姓名、承运商等字段。制单调度员要录入的最核心字段如下:
| 字段 | 含义 | 录入建议 |
|---|---|---|
| 车牌号 | 实际派车的车号 | 按车队反馈录入,保持与GPS平台一致 |
| 计划提货时间 | 车辆到提货点装货的时间 | 用SAP时间格式HH:MM:SS,与配车单核对 |
| 计划运输时间 | 车辆从提货点出发的时间 | 必须晚于提货时间,否则运输时间校验会报错 |
| 运输方式 | 公路、铁路、水运等 | 默认公路,由运输类型配置控制 |
时间字段是最容易出错的。SAP GUI 810里日期时间字段默认显示格式通常是DD.MM.YYYY和HH:MM:SS,录入时如果只输9:00,系统可能识别为09:00:00,但如果配车单上写的是下午5点,务必输成17:00:00,否则打印出来的运单时间会白白早八个小时。这个坑看上去低级,实际在发货高峰期经常出现,尤其从Excel复制时间到SAP字段时,Excel的“5:00 PM”文本格式会直接被SAP拒收,提示字段格式错误。
计划运输时间的校验规则还和运输路径有关。SAP装运单后台会配置运输时间计算规则,如果后台定义了某条路径的标准运输时长,当你录入的计划运输时间和计划提货时间的差值小于标准时长,系统会给出警告或错误消息。警告可以忽略继续保存,但错误消息必须回退调整。遇到这种提示时,优先检查是不是日期跨天了——晚上8点提货、次日凌晨2点发运的跨天运输,时间字段容易写成同一天。
3.3 存盘后打印提货单和运单:输出类型与格式
填写完车号和时间,点击保存,装运单号生成。指导书里保存后紧接着的动作是“打印相应的提货单和运单”。在SAP运输执行中,打印输出是由装运单输出类型控制的,常见输出类型包括装运单确认、提货单(针对承运商)、运单或运输标签。海尔的实际操作通常是在VT01N保存后,用系统菜单里的“输出”功能调出打印界面,或者用事务代码VT03N进入显示后点输出、打印按钮。
打印时常见两类情况:一类是SAP标准打印程序直接输出到打印机,一类是企业自开发的打印程序,模板里带海尔LOGO和配送中心抬头。指导书没有写具体打印程序,但从操作流程看,制单调度员要关注的是打印输出状态。输出类型维护在后台NACE事务里,如果打印程序挂在消息应用“SD”或“TR”下,装运单的状态会显示输出已发出或输出未发出。打印后司机拿到的提货单上如果缺车号或时间,大概率不是打印程序丢了字段,而是装运单抬头里根本没录入车号,这是前面录入环节的问题,不是打印环节的。
打印份数也有讲究:提货单通常一式两份,仓库留存一张、司机带一张;运单是随货凭证,按卸货点数打印。首次打印不成功时,不要反复点打印按钮,先去VT03N看装运单保存状态和输出日志,确认输出是否真的传到了打印机。SAP里打印输出是异步处理的,界面提示输出已调度时,打印机那边可能因为队列问题还没出来,这时候急着重打容易打出两份。
3.4 数据流串联:配车单→DN→装运单→GPS平台
把海尔这个流程整体串起来看,数据流是这样的:配车优化员用排程逻辑生成配车单(车次、DN清单、提货点)→ 制单调度员在VT01N按配车单创建装运单(DN绑定车号、时间)→ 保存后打印提货单和运单 → 车队司机按运单到仓库提货 → 仓库过账出库 → 车辆在途由GPS平台跟踪。
指导书中特别提到,目前车辆调度是“非系统操作”,未来GPS的WEB平台完善后由车队自己进行。这句话透露了两个信息:一是海尔现在这个制单调度员岗位的运单创建动作,最终会被GPS平台或外围系统替代一部分,即车队自己根据配车单在平台上录入车号和时间,不需要再经过调度员手工录入SAP;二是在当下,SAP的装运单仍然是运单数据的权威来源,GPS平台的车号、时间数据在没有自动接口时,依靠人工从SAP搬过去。
理解这条数据流对排查问题很有帮助。比如客户投诉到货时间与运单不符,顺着链路查:装运单上的计划运输时间是否录错、打印模板时间字段取值是否正确、GPS平台人工录入是否抄错。大多数到货及时率差的根因不在运输环节,而在装运单创建时的时间承诺就不准。制单调度员如果能把VT01N里的提货时间和运输时间录准,后面的到货及时率统计就少一半麻烦。
4. 避坑指南:库存不足与不完整日志的典型排查
4.1 库存不足:“一次性发送不可能”的三种处理路径
现象:在创建发货订单时,SAP提示“一次性发送不可能”或者类似的库存不足消息。
原因:这个提示出现的位置多数在VL01N创建外向交货、或者VT01N装运单选DN、或者发货过账时,本质是系统检查后发现当前库存地点或工厂的总非限制库存不足以覆盖本次发货数量。指导书里说得很清楚:该库存地点或总非限制库存不够。“总非限制库存”是SAP库存管理里的可用库存概念,它排除了质检库存和冻结库存,只算质量状态为可用、可供发货的数量。
解决:指导书给了三条路径,按优先级排:第一条是点击“继续”,允许系统按可用的部分库存创建发货单,剩下部分等库存补足后再发,这就是部分交货;第二条是点击“其它地点”,系统会列出同一物料在其它库存地点有无可用库存,选一个可发货的地点替代原库存地点;第三条是减少发货数量,把超出可用库存的数量砍掉,保存后再按需调整。
实际处理时我的建议是:先看库存确定逻辑。用事务代码MD04或MD07查看物料库存情况,MD04是物料需求计划清单,可以看到全部库存、在途、计划交付;MD07直接给出可用库存概览。确认缺的是非限制库存还是连在途都没有。如果其它地点有库存,还要注意库存在不同地点之间的调拨时间是否赶得上发运计划,不要为了凑数量选了一个远距离地点的库存,结果车辆等半天。部分交货的坑在于:交货单上原数量是1000,第一次只发了600,剩下400会在交货单上继续挂着,后续补发要走部分交货流程。如果调度员在SAP里把交货单数量直接改成600保存而不走部分交货流程,原交货单的未交货数量就消失了,仓库会以为这单彻底发完,后续400件没人理,月底对账差异就出来了。
4.2 交货单未自动生成:不完整日志的检查流程
现象:创建订单后点击保存,系统没有自动产生交货单,后续在VT01N里根本找不到这张单对应的DN。
原因:指导书写得很直接:订单输入不完整。SAP的交货单生成规则中,销售订单保存时要通过交货状态和完整日志两个机制判断是否能触发自动交货。如果订单项目缺少关键字段,比如客户主数据里的装运条件、运送方式、交货工厂,或者销售订单行项目里的工厂或库位没有维护完整,系统不会马上报错,但会标记订单不完整,并且不触发交货单创建。
解决:按指导书的操作序列处理:执行事务代码修改订单(VA02)→ 菜单栏点击“编辑”里的“不完整日志” → 系统列出所有不完整字段的项目 → 选中不完整的项目 → 点击“完成数据”按钮补全缺失字段 → 保存。保存后系统会重新检查并尝试触发交货单。这一步结束之后,用VL04N或者VL06G批量查看交货单是否生成,也可以直接查该订单号的交货状态。
实务里还有第三种情况:订单上打了交货冻结,也会导致交货单不生成。不完整日志通常不会显示冻结标志,要再看销售订单“交货”标签页里的交货冻结字段是否为空。海尔这类角色分工明确的SAP系统里,交货冻结一般由信用管理或销售助理维护,制单调度员无权也不应该自己去解冻,正确做法是把订单号发给对应岗位处理,而不是用VA02硬改。
4.3 配车单标识与DN不匹配:两种人为失误
现象:VT01N里选DN时发现系统列出的DN和配车单上写的DN对不上,要么少了、要么状态不一致。
原因:最常见两种。第一种是配车单更新时间早于SAP交货单生成时间,配车优化员在排程时预估的DN,到制单调度员执行时还没生成,你当然选不到。第二种是配车单上写了DN号但忽略了DN的装运点,海尔配送中心如果同时处理多个装运点,系统默认按登录用户的默认装运点过滤DN,你在A装运点权限下看不到B装运点的DN。
解决:前者先用VL03N按单号查DN是否存在,如果确实不存在,回查销售订单是否触发了交货,紧急情况下用VL01N手工创建外向交货单。不要为了赶时间选一张状态不一样的DN顶上,运单发出去货不对板,后续还要做收货方退货,代价更大。后者通过VT01N界面的选择条件把装运点改成配车单对应的装运点再查询,注意修改后会影响所有DN的筛选结果,选完记得改回来。
4.4 打印输出不生效:输出类型与后台配置
现象:装运单保存了,界面上也提示输出已发出,但打印机不出单,或者打印出来的提货单缺字段。
原因:一是输出介质配置指向了错误设备;二是输出类型没有被维护到装运单凭证;三是海尔自开发的打印程序读取数据时,装运单还没有提交,读到的是空数据。
解决:先用VT03N进入装运单,在菜单“环境”里找到“输出”查看输出状态列。如果显示已传输,说明SAP标准输出已发到外设,问题在打印服务器或打印机队列;如果状态是空白或错误,用NACE事务代码调出消息控制配置,检查运输执行的输出类型是否分配了访问序列和打印程序。自开发打印程序的场景,通常需要确认装运单保存后调用的增强点是否激活,这就要IT顾问介入。制单调度员能做的事是在重打之前先确认打印队列里没有重复任务,避免重复打印导致一车货打印出多份运单。
5. 系统覆盖不到的三个环节:车辆调度、不良品与到货及时率
5.1 车辆调度为什么放在系统外:GPS WEB平台的现状
指导书第2、3、4条明确标注“非系统操作”:车辆调度、不良品控制、到货信息及到货及时率控制都不在SAP LES里做。对第一次接触海尔LES的顾问来说,这条边界比操作步骤更重要。SAP LES的标准功能覆盖到装运单管理和运输执行,但具体的车辆调度,比如哪辆车去哪、几点到、司机电话多少,在传统SAP ECC里并没有一套完整的可视化排程界面,所以海尔当时的选择是让调度员在线下排车,再把结果录进VT01N。
文档里提到GPS WEB平台是未来方向:等平台完善后,配车单生成、车辆指派、时间录入都搬到平台上,车队自己操作,制单调度员的“运单制作和打印”会退化为异常处理。这句话其实揭示了SAP LES在这套场景里的演进路径:LES不再做车辆调度,而是作为运单数据的最终存储和打印源,前端的实时调度交给专业TMS或GPS平台。如果你在给其它企业规划类似的LES项目,可以按这个思路分层:SAP承担单据流和财务控制,GPS或TMS承担执行流和位置数据,中间用接口同步车号和时间。
当前阶段,制单调度员在系统外做车辆调度的常见操作是:收到配车单后,用车队共享表格把车次、车号、司机电话、装载时间填进去,车队按表派车,司机到库后找调度员拿运单。这套流程最大的风险是信息不一致——表格里改了车号,VT01N没同步,运单上印的还是旧车号。我在实际项目里见过仓库因为运单车号和实际到库车辆不符而拒绝发货的情况,所以强烈建议:无论线下用什么方式排车,必须有一个确认动作保证VT01N里的车号与最终执行车辆一致,比如司机提货前报车号,调度员核对装运单后再放行。
5.2 不良品控制:人工台账与后续扣款逻辑
不良品控制在指导书里也是非系统操作。海尔配送中心的不良品来源主要是发货时发现的破损、客户退货、或仓库盘点发现的存储损坏。SAP标准LES在装运单层面没有“不良品”专属流程,仓库的WM模块一般用质检类型库存来管理,但配送中心的制单调度员面对的通常是已经挂在交货单上的数量与实物不符。
实务操作上,调度员一般会用Excel台账记录不良品的单号、DN、数量、原因、责任人、处置状态,同时在SAP里做红字发货或退回到相应类型的库存。如果不良品是发货后由客户退回,还需要在SD模块创建退货订单,触发一张退货交货单,仓库收货时入质检库存。这里要特别提醒:不良品数量不能直接在装运单上减,装运单上的DN数量对应的是客户应收数,随意改动会导致客户发票数量和实收数量不一致,财务扣款无据可依。
从操作指导书的角度看,制单调度员在这块的职责是发现问题、记录问题、交给对应岗位处理,而不是自己改SAP库存。常见的记录字段包括日期、配送中心、车次或装运单号、DN号、物料编码、不良数量、不良占比、原因分类、现场照片编号。这个台账如果做得细,还能反哺到货损率的分析,作为承运商考核数据的一部分,所以不要因为非系统操作就随意应付。
5.3 到货及时率统计:手工报表与日期字段的采集
到货信息及到货及时率控制在指导书里同样划为非系统操作。SAP装运单里有多个时间字段:计划提货时间、计划运输时间、实际装载时间等,但标准SAP不会自动计算到货及时率这种管理考核指标,必须靠报表开发或手工统计。海尔调度员通常的做法是每周或每月导出装运单清单,筛选计划运输时间与实际到货时间,做一个按时或延迟的对比分析。
实际到货时间的数据来源一般是GPS平台或司机签收单,需要人工回填到Excel里,这个过程比较繁琐,但却是物流绩效考核的依据。优化方向是让SAP从GPS平台读取实际到达时间,用装运单上的相关日期字段承接,再写一个自定义报表自动计算及时率。如果你在地产、制造、快消行业做过LES,会发现到货及时率的统计口径经常打架:按计划运输时间算还是按客户要求到货时间算?按实际提货时间算还是按签收时间算?海尔指导书没有定义口径,但制单调度员在填表时要和运营管理岗确认清楚,避免统计结果不可比。
我的建议是:以装运单上录入的计划运输时间为基准,实际到达时间以GPS签收或客户签收单为准,超时超过半小时算晚到,一天内的延迟单独标注。算出来之后用于反馈配车优化员和承运商考核,形成闭环。另外注意一个跨系统细节:GPS平台和SAP服务器如果时区设置不一致,同一票货在两套系统里的时间戳可能差好几个小时,手工统计到货及时率时必须统一用同一时区的时间,否则报表数据会被质疑。这也是为什么很多企业最终选择把时间字段统一由SAP主数据下发,GPS平台只提供位置数据。
6. 进阶:把关键动作固化成日终复核清单
如果要把这份指导书真正内化成肌肉记忆,我的建议不是背VT01N路径,而是把它拆成一张日终复核清单。我帮调度员梳理SAP GUI 810收藏夹时,一般只保留这六个事务:
| 事务代码 | 用途 | 使用时机 |
|---|---|---|
| VT01N | 创建装运单 | 收到配车单后 |
| VT02N | 修改装运单 | 车号或时间调整 |
| VT03N | 显示装运单 | 日终复核、打印重打 |
| VL03N | 显示外向交货 | 核对DN状态 |
| MD07 | 可用库存概览 | 库存不足排查 |
| PFCG | 角色权限维护 | 新员工授权 |
日终复核是这套流程里性价比最高的动作。每天下班前,用VT03N把当天创建的装运单号逐个打开,只看三处:车号字段是否为空,计划运输时间是否晚于计划提货时间,输出状态是否显示已发出。三分钟可以扫完当天单量,能筛掉八成运单打印问题。我在之前的项目里习惯用MD07批量查物料可用库存,反推当天因库存不足导致无法创建交货的订单,再回VT01N补建装运单,比一张张翻日志效率高很多。装运单抬头里的承运商其实对应SAP BP主数据,运单打印缺承运商时,先查BP主数据的名称字段是否维护完整。
另一个容易忽略的点是权限边界。新调度员如果保存时报权限不足,不要直接申请全部权限,用PFCG在角色里加S_TCODE的VT01N、VT02N、VT03N授权即可,运输模块还有独立的授权对象,按角色最小化授权,避免误改装运类型。这套清单是从《海尔SAP LES操作指导书》里浓缩出来的最小动作集:白天按流程走,晚上按清单复核。说到底,LES这种执行系统,数据录错的代价都是后面几道环节替你扛。从那以后我每次梳理类似的物流执行流程,都会强制把日终复核作为SOP的一步写进文档,和业务操作放同一页,不让它变成一张没人看的制度纸。希望这个习惯能帮你少踩几个坑。
本文还有配套的精品资源,点击获取