谁用
店长、服务顾问、前台收银、库管。同一个浏览器,按角色分权限,看得到的东西不一样。
总部不自己修车。总部提供三样东西,向门店收钱:品牌与获客、集中采购的价格、一套能管住人的系统。门店出场地、出人、出服务,赚修理费和配件差价。车主只面对门店,感受上是一家店,不是一家平台。
这意味着:系统的权威在总部,执行在门店,证据在单据。总部能下发规则、能看结果、能算钱,但不能替门店按鼠标;门店能操作一切现场的事,但改不动总部定死的价目和口径。这条边界决定了下面六个端的权限划分。
| 环节 | 谁付 | 谁收 | 怎么算 |
|---|---|---|---|
| 车主修车 | 车主 | 门店 | 四类承担方各自结算:自费 / 挂账 / 保险 / 三包,四项合计必须等于报价总额 |
| 总部服务费 | 门店 | 总部 | 按单或按营业额抽成,比例后台可配 |
| 配件货款 | 门店 | 供应商 | 集采价,按对账结果结算,账期可配 |
| 分销佣金 | 门店(默认) | 推荐人 | 按接车单归因,从门店毛利扣,平台不垫资 |
最后一行是待拍板项之一。四种钱分开记账,任何一笔都不能混进另一个口袋——这是财务页和供应商端能不能对上的前提。
| 人 | 在哪端 | 一天里最关心的那件事 | 最怕什么 |
|---|---|---|---|
| 店长 | E1 门店(主) | 今天在修几台、有没有要出事的、钱收回来了没有 | 车压在工位上不动、账对不上、客户投诉没人管 |
| 服务顾问 | E1 门店 | 这台车该报多少钱、客户什么时候确认 | 报价改来改去、客户不认账、增项说不清 |
| 前台 / 收银 | E1 门店 | 这单怎么结、谁来取车、签字了没有 | 四类钱混着收、取车人不核验、事后追不回来 |
| 库管 | E1 门店 | 料领走了没有、库存对不对得上 | 技师直接动手拿件、退料不登记 |
| 技师 | E4 接单(主) | 今天派给我的是哪几台、几点要交、这单我挣多少 | 油手上划半天屏、被要求自己报价、干完没人认、看到别人(别的工种)的活 |
| 班组长 | E4 接单(主)+ E1 车间 | 本组几台、先派哪台、超领批了没有 | 跨组的活混进来看不清、替技师代签派工单、钣喷质检自己签 |
| 总部运营 | E2 总部 | 哪家店今天不对,我要打给谁 | 看了一堆总数,落不到一个动作上 |
| 总部财务 | E2 总部 | 该收的收了吗、该结的结了吗 | 门店对账扯皮、发票开不出来 |
| 供应链 | E2 总部 | 集中采购的价和量、断货预警 | 门店私下拿货、集采承诺兑不了 |
| 车主 | E3 C 端 | 报价确认了没有、车好了没有 | 被临时加价、不知道进度、取车要跑两趟 |
| 推荐人 | E5 分销(内嵌 C 端) | 我这月能提多少 | 带来的单不认账、提现拖着 |
| 供应商业务员 | E6 供应商 | 我要发什么、什么时候能收到钱 | 订单改来改去、对账拖着不结 |
只写到「交」,做出来是一套收银系统;补上「分」和「留」,才知道总部后台要看什么、分销账挂在哪、供应商为什么需要一个端。六个端不是六个系统,是同一条线上六种人的视线。
门店 PC 的四屏(预约 / 接车 / 车间 / 交车)不是四个都能改的地方:接车页管到报价为止,生产段和交车段只放只读摘要 + 跳转;派工、领料、日报、完工、质检、置可交车只在车间页改;结算、取车人、放车只在交车页改。否则同一台车在四页里有四个状态、四个金额。车单主线规划(车单状态机 + 四页分工 + 六处数字矛盾)→
店长、服务顾问、前台收银、库管。同一个浏览器,按角色分权限,看得到的东西不一样。
08:30 开门看工作台 → 客户到店接车开单 → 派工盯进度 → 交车核验放行 → 收工日结看单车毛利。
「今天要处理的事」——按「不处理会出事」排序,不是按金额排序。下面四个数:在修几台、今日产值、今日实收、应收未收。
门店的场地和人都会变——添一间喷漆房、临时借隔壁的房、施工期间停一个钣金位、招一个会喷漆的人、带一个徒弟、有人请假、把做不完的送出去。所以「几间房、几个人能独立干」只能维护出来,不能写死在页面里。位置在员工与班组 → 班组与工位。
| 能改什么 | 怎么改 | 改完哪里跟着变 |
|---|---|---|
| 加工位 | 选类型(喷漆 / 钣金 / 机修 / 三电 / 接待)、归属班组、名称(留空自动编号,如「喷漆房 B」)、来源(自有 / 借用隔壁 / 临时隔出)。 | 工作台的工位占用多一行;车间看板能往里头排车;预约的可约时段按新容量算;接单端「还剩几间房」变数。 |
| 停用工位 | 点「停用」,不删除。 | 不再参与排产与预约容量;但它接过的单和工时还挂在名下,历史报表不会断。 |
| 加人 / 带徒 | 填姓名、工种、班组、能独立上工还是带徒。 | 能同时干几台立刻重算;派工下拉里多一个人。带徒不单独顶一台车,出师时改成「独立」产能才上来。 |
| 停用人(请假 / 离职) | 同工位一样是停用,不是删除。 | 当天不再派活、不算产能;他干过的活和工时还挂在名下。 |
| 加外协厂 | 填厂名、能接的活(喷漆 / 钣金 / 三电 / 机修)、结算口径(例:按面计价 ¥260/面)。 | 「车间 → 委外送修」开单时可选;喷漆技师在单上能直接提「这台送外协」。 |
能同时干几台 = min(工位, 能独立上工的人)。多加一间房但只有一个人会喷,还是只能开一台——系统会直说「房够了,人不够」;反过来人多房少就说「人够了,房不够」。不让老板以为加了一头产量就上去了。三条解法都留着:加房、加人(招/借调/徒弟出师)、外协。
给 E3 报价待确认与进度;给 E4 派工单与领料申请;给 E6 采购单;收 E2 价目与分账结果。
总部运营(招商、门店成功)、财务、商品与价格、供应链、数据分析。每人只进自己那几组菜单。
看异常门店榜 → 处理申请(加盟、开业审核、巡检、闭店)→ 下发价目与政策 → 对账与分账 → 供应链跟单。
异常门店榜,不是总营业额大屏。总部看的每个数都要能直接点到一个动作:今天没开单的门店、毛利为负的单、断货、证照快到期、客诉未处理。
收 E1 按天汇总的经营数据(不看明细工单)、收 E6 供货与发票;给 E1 价目与政策,给 E3 活动与门店列表。
车主本人;企业车队管理员(一个人管多台车)。
想修车 → 约门店和时间 → 到店看检测与报价 → 等待时看进度 → 取车付款签字 → 之后保养提醒与评价。
我的车 + 一张「现在到哪一步」的卡 + 一个下一步按钮。任何时刻只突出一个动作:确认报价 / 去支付 / 预约取车。
给 E1 预约、报价确认、支付结果、评价;收 E1 检测结果、进度、交车照片、结算金额;收 E2 活动与卡种。
技师(机修、钣金、喷漆、三电)、班组长,八个账号、八张不同的屏。身份由登录账号决定,页面里不提供切换。手上有机油,一只手操作。
上班打开工作台(只到手上这几台)→ 看已确认的报价知道干什么 → 领料 → 干活报工拍照 → 完工,前台亮「可交车」。班组长先派工、批超领、盯本组交车。
工作台——不是「本工种的活」,是派给这个人的活;同一工种的两个人看到的也不一样。组长进同一屏,看到的是本组待派、超领待批、组内工时率,入口名不随身份变,否则换个身份就得重新找菜单。同一屏上还有一句「今天最急的一件事」,这句话按身份写:技师写交车时间,喷漆写喷漆房和第几台,三电写报告几点出,组长写先派哪两台。
导航不变,变的是每一项里面的内容。原因很实在:车间里换个人用同一台备用机、或者新人第一次上手,位置不能变;不然「消息在第三个」这种肌肉记忆就废了。
领料页第一件事是选车,不是选件。选了车才知道这台车是哪个工种的活,才出得对这份清单——同一台车,机修看油水和滤芯,喷漆看漆和辅料,两人打开的根本不是一张单。
| 工种 | 清单里有什么 | 用量怎么算 |
|---|---|---|
| 机修 | 机油、机油滤清器、空调滤芯、前刹车片、冷却液 | 按报价行找对应件,只认材料行——「更换刹车片工时」那行名字里也带件名,算进去就多领一倍 |
| 钣金 | 后保险杠总成等钣金件、原子灰、结构胶 | 件按报价行;辅料按面算(本单几个喷漆/钣金行就是几个面) |
| 喷漆 | 砂纸、环氧底漆、色漆(按色号调)、清漆、遮蔽胶带 | 漆与辅料按面算:一面 3 张砂纸、0.3 桶底漆、0.25 桶色漆、0.2 桶清漆、1 卷胶带 |
| 三电 | 高压绝缘手套、电池包密封胶、绝缘检测耗材包 | 按台算(整车一套),不按面 |
三条不能省的规则:① 没有在办的单就不出清单,提交按钮直接灰掉——否则领出来的料没有车可挂,仓管不知道发给谁;② 领料单上必须带车单号(车单号 + 车牌 + 领料人 + 工种),仓管照单发料,回头对不上账时这是唯一的凭据;③ 救援单不算在办——车不在店里,出车用料是回店补单,不是从库房扫码领。
超出报价用量怎么办:不另开一张单、也不弹「确认一下」糊弄过去。同一张领料单照常提交,报价内的量仓管直接发;超出的那部分在单上标「超领待批」,进本组组长的待批池,批了才补发。技师的活不用停,账也清楚。
| 身份 / 账号 | 工作台(只到这) | 提醒与消息(只收这些) | 多出来的能力 |
|---|---|---|---|
| 机修技师 王磊 A008·刘强 A010 |
只有派给本人的机修单。两人看到的不一样:王磊手上是那台常规保养,刘强手上是那台等前刹车片的。 | 派工单待本人确认;顾问确认的增项(哪个件、多少钱、哪台车);件已到(只推给等这台车的人);本人计的件被扣的申诉结果。 | — |
| 钣金技师 周涛 A012 |
只有派给本人的钣金单;能看到同台车「喷漆有没有开工」——钣金没交,喷漆不能上。 | 超领被驳回 → 生成退库待办(只有申请人收得到);前道件未到不能开工;返工驳回原因原文。 | — |
| 喷漆技师 刘洋 A009 |
只有派给本人的喷漆单;列表里排在前面的永远是「喷漆房空出来了没」。 | 喷漆房占用与排队(第几台在房、还要多久);色差 / 流挂类返工(返工只回到做这道工序的人);房数、能独立上漆的人数都从门店资源读——房多人少它会直说「房够了,人不够」,不只给个漂亮数字;房不够或排不下时,可在这台单上直接提「送外协」,选名录里的外协厂、开委外申请单,不用干等撞房。 | — |
| 三电技师 赵鹏 A011·周敏 A014 |
只有派给本人的三电单,且只派给持有效高压证的人;证过期当天,单子从列表里消失。 | 高压操作证到期预警(本人收,剩 ≤60 天就出现——续证要走体检和培训,30 天不够);三电检测 9 项要出的报告几点交;客户确认了哪几项检测。 | — |
| 机电组组长 张建国 A005 |
本组的活,不是全店的:机电组三台(含他兼的救援车)。钣喷组的单他看不见。 | 待派工几台;超领待批;组员的计件申诉待复核;组员证件到期(组员本人收一条,组长收一条「组员证件 · 周敏」——她一到期组里就只剩一个持证人);救援单押金是否收齐。 | 派工(三电单只列持证的人)、超领审批、组员工时查看、计件申诉复核。 |
| 钣喷组组长 李海 A003 |
本组钣金 + 喷漆的单。钣喷串行,所以他这屏天然要看「钣金交了几台、喷漆房还剩几个档」。 | 超领待批(钣喷组);钣金已完工 → 待质检,提示他转专职质检员而不是自己签;喷漆的房数与人数风险(房和人都能加,加完这行就变;人不加就得排外协)。 | 派工、超领审批、组员工时;但钣喷质检他不能代签——按设置页的质检分级规则,钣金/喷漆必须过专职质检员。 |
三条划分依据(不是拍脑袋加的字段):① 活按人分,不按工种分——同一工种两人手上不一样,否则「派给你的」这句就是假的;② 提醒按「谁要动手」分——返工回给做那道工序的人,退库回给申请人,件已到回给等这台车的人,证件到期回给本人;③ 组长只到本组,不到全店——跨组派工和跨组调人是店长的活(E1),放到技师端会让组长以为自己在管全店。
组长在手机上下派(只列本组的、三电单只列持有效高压证的人)→ 单子立刻进被派那个人的列表,标「派了未确认」→ 技师自己点开、自己确认,才算真接手。中间这一步不能省,也不能由组长代劳:
| 关键点 | 为什么要这样 |
|---|---|
| 派出去就进对方列表 | 如果等确认才写进去,技师手机上什么都没有,他既看不到、也没法确认,单子就卡死在「已派」这一步。所以派出的那一刻就落库,状态是「待接 · 未确认」。 |
| 组长不能代签 | 派工单点确认时,系统拦一句「派工单要 X 本人确认,不能代签」。代签等于「我替你答应了这活」,出了工期问题责任说不清。 |
| 已派过的单再派同一个人要拦 | 提示「这张单已经是 X 的,不用重派」,防止重复生成派工单、重复计件。 |
| 派错人能改 | 本人还没确认时可以重派给别人,前一张派工单作废留痕;一旦本人确认,改派要走店长(E1)的调派,不能再从技师端改。 |
同一个位置一句话,三种情况三种说法。写错了技工会以为「我的证被吊销了」或者「我该去考但我不用考」:
| 情况 | 「我的」页显示 | 影响 |
|---|---|---|
| 从没考过高压证 机修、钣金、喷漆技师 | 高压(三电)操作证 · 未持证,不涉及三电 | 不影响接活。绝不能显示「已过期」——那会让人以为被停了资格。 |
| 有证但已过期 | 高压(三电)操作证 · 已过期,停派三电 | 三电单从列表消失,也不出现在派工候选里。 |
| 有证且在有效期 | 高压(三电)操作证 · 已持证,YYYY-MM-DD 到期 | 剩 ≤60 天在「待你在办」里出现一条,只有本人看得到自己的。 |
组长看的是组员的证,不看自己的——三电组长自己持证 2028 年才到期,他真正要盯的是组里另一个人 12-31 到期;那个人一到期,组里就只剩他一个能接三电单。
喷漆这条最容易出错的地方,是把「只有一间喷漆房、只有一个人会喷漆」当成不会变的事实写进页面和文案里。门店是会变的:添房、借房、停位、招人、带徒、外协都是常态。所以技师这屏的数从门店资源维护里读,不硬编码:
| 技师看到的 | 取自哪 | 为什么不能写死 |
|---|---|---|
| 喷漆房 N 间 | 员工与班组 → 班组与工位 → 工位表(启用的喷漆类) | 添 / 借 / 临时隔出一间,这里立刻变;停用一间也一样。 |
| 会喷漆 N 人 | 同页「会干这个活的人」→ 能独立上工的人(带徒不算) | 招人、借调、徒弟出师、有人请假,人数都要能跟着变。 |
| 可并行 N 台 | min(房数,能独立上漆的人数) | 房多但只有一个人会,还是只能开一台——必须直说,别让老板以为加了房产量就上去。 |
| 可外协 N 家 | 同一页维护的外协厂名录(能接喷漆的) | 送出去是正常经营手段,不是例外;名录为空时按钮置灰并提示去找店长加。 |
| 这道工序还能不能接 | 单子上的「这台送外协」→ 委外申请单 → 店长开单 | 让干活的技师自己提,比等前台想起来更快。客户看到的仍是原报价和原交车时间。 |
同一条规矩适用于所有工种:机修工位、钣金位、高压工位同理。全站术语统一叫喷漆房,不混用「油漆房」「烤漆房」。
给 E1 领料申请、增项申请、报工与照片、完工信号;收 E1 派工单与已锁定报价;备件到货间接经 E1 入库。派工单要技师本人在自己手机上确认,组长代签无效。
老客户、车队、门店员工、合作修理厂。不单独装 App,就住在 E3 里多一个入口。
生成海报带自己的码 → 朋友下单到店 → 按接车单归因 → 佣金入账 → 提现。
可提现金额 + 本月带来几单。先说钱,再说怎么推。
归因写进 E1 接车单;佣金规则由 E2 算;提现结果回到 E5 自己。
配件供应商的业务员(跟单)和财务(对账开票),两种角色两套菜单。
收到门店采购单 → 确认价格库存交期 → 发货填物流 → 月度对账 → 开票。
待确认订单 + 逾期未发。供应商只关心两件事:我要发什么、我什么时候能收到钱。
收 E1 采购单;给 E1 发货与到货、发票;给 E2 对账与集采数据。
| 数据 | E1 门店 | E2 总部 | E3 车主 | E4 技师 | E5 分销 | E6 供应商 |
|---|---|---|---|---|---|---|
| 接车单 | 录入 | 汇总 | 自己的 | 只读 | 归因 | — |
| 报价与增项 | 出 | 监督 | 确认 | 只读 | — | — |
| 成本与毛利 | 限角色 | 看 | 无 | 无 | 无 | 无 |
| 备件库存 | 管 | 集采 | 无 | 领 | 无 | 供 |
| 收款与分账 | 收 | 算 | 付 | 无 | 佣金 | 货款 |
| 客户资料 | 全 | 脱敏 | 自己 | 脱敏 | 自己的 | 无 |
| 技师工时 | 审 | 定口径 | 无 | 报 | 无 | 无 |
| 售后与三包 | 受理 | 审核 | 看进度 | 只读 | — | — |
| 评价与推荐 | 看 | 统计 | 提交 | 无 | 归因 | 无 |
「限角色」的意思是同一个端里也要分人:技师和顾问看不到成本列,店长和老板看得到。这条必须在接口层就拦住,不能只靠前端藏起来。
一是让技师端显示成本参加提成——技师一看到进价就会自己算毛利,价格体系立刻崩。
二是让总部后台能代替门店操作——总部一能改,责任就说不清,门店会拿「总部改的」当挡箭牌。
对应的导航原则:一级导航不超过 12 项,超过就说明有一个模块该拆成独立端;二级导航不留空,点进去没内容是设计问题,不是数据问题;每个页面只有一个蓝色主按钮,两个就等于没有主次。
同一样东西在六个端必须同一个词。同一个端的菜单、页标题、面包屑必须是同一个词——标签写「我的活」、进去标题写「派工看板」,等于让用户重新找一次。
| 规矩 | 怎么用 | 为什么 |
|---|---|---|
| 第一项永远是「工作台」 | E1 门店 PC、E2 总部、E4 技师手机、E6 供应商,第一项都叫工作台,且都是首屏默认 | 「我的活」「首页」「看板」各叫一套,同一家店的人在四个端之间切换就要重新认一次路。工作台 = 今天要我出手的事,这个词在四个端含义完全一致。 |
| C 端例外用「首页」 | E3 车主端第一项叫首页,不叫工作台 | 车主不是来上班的。给他的词必须是「看看我的车、约个保养」,不是「待办」。 |
| 菜单名 = 页内标题 = 浏览器标题 | 三项必须是同一个词。改了菜单就要同时改另外两处 | 这是最常见的错位来源:标签改了、标题忘改,用户以为自己点错了。 |
| 不按角色改菜单名 | 组长和技师都点「工作台」,进去内容不同——组长看到本组待派和超领审批,技师看到派给自己的单 | 导航是肌肉记忆。变的只能是里面的内容,不是入口的名字;名字一改,组长换个身份就得重新数一遍菜单位置。 |
| 分组名用名词,不用句子 | 「车辆作业 / 资料 / 收支 / 门店」,不写「按一台车走」 | 分组名是路牌不是说明书。一句解释性的话放在这一组的第一页里,不挂在导航上。 |
| 不写口语 | 「应收应付」不写「钱」;「采购与库存」不写「生意」;「待办」不写「我的活」 | 口语词在门店内部能懂,但换一个人、换一家加盟店、或者给总部看,就得重新解释。系统是长期资产,用行业词。 |
| 同一件事只有一个词 | 喷漆房(不叫油漆房/烤漆房)、接车单(不叫工单/维修单)、领料单(不叫出库单)、委外(不叫外协送修以外的新词) | 术语一散,搜索搜不到、报表对不上、培训要教两遍。 |
| 带数字的菜单才带角标 | 角标 = 需要我处理的数量,不是记录总数。为 0 就不显示 | 角标一律显示总数,用户会习惯性忽略它,等于没有提醒。 |
| 端 | 第一项 | 各项菜单(分组用「·」隔开) |
|---|---|---|
| E1 门店 PC | 工作台 | 车辆作业:预约 / 接车 / 车间 / 交车 · 资料:客户 / 库存 · 收支:财务 / 定价 · 门店:会员卡 / 员工与班组 / 绩效提成 / 设置 |
| E2 总部 | 工作台 | 总览:工作台 · 业务:门店 / 商品与价格 / 供应链 / 财务 / 会员与营销 · 平台:数据 / 系统 |
| E3 车主(C 端) | 首页 | 首页 / 服务 / 订单 / 我的 |
| E4 技师手机 | 工作台 | 工作台 / 领料 / 消息 / 我的 |
| E6 供应商 | 工作台 | 订单 / 商品与价格 / 发货 / 对账与发票 / 账户 |
E4 组长身份进「工作台」看到的是本组待派与超领审批,技师看到的是派给自己的单——入口名不变,内容变。E5 分销内嵌在 E3 的「我的」里,不单独占端。
| 状态 | 颜色 | 含义 |
|---|---|---|
| 进行中 / 待接 / 待发货 | 黄 | 需要人动手,超时会出问题 |
| 已确认 / 已完工 / 已结算 | 绿 | 这一段走完了,可以往下走 |
| 已取消 / 已拒绝 / 已关闭 | 红 | 结束了,不再参与流程 |
| 已发货 / 已派工 / 处理中 | 蓝 | 在别人手上,等你这边 |
| 挂起 / 等件 / 争议 | 灰 | 卡住了,需要有人拍板 |
颜色含义全局统一,六个端不许各定一套。用户跨端使用时不需要重新学一遍。
store/ui.css 一个文件里,改一处全站生效。参照 D:\项目\style-gallery 里的样式库,选 Stripe 那一套(靛蓝体系),不是因为它好看,是因为我们现有的界面有三个真实缺陷,只有这一套能同时修掉:
| 现有缺陷 | 具体表现 | 这套怎么解决 |
|---|---|---|
| 品牌蓝和状态蓝撞色 | 旧品牌色 #1677ff 与「在别人手上 / 处理中」的状态蓝几乎同色。用户分不清「这是个按钮」还是「这是个状态」。 | 品牌换成靛蓝 #533afd(色相 249°),状态蓝移到 #1a56b3(色相 218°)。相差 30° 以上,一眼可分。 |
| C 端绿色既是品牌又是状态 | 车主端旧品牌色 #0a9e63 和「已完成」的成功绿几乎一样。同一个绿既表示「这是为盛」又表示「这单完成了」。 | 全平台品牌统一靛蓝;绿色只表示成功,不再承担品牌职能。车主端也跟着变成靛蓝。 |
| 侧栏和正文不同源,整屏发灰 | 旧侧栏 #001529 是纯冷黑,正文是中性灰 #1f2329,两者不在一个色系,看久了整屏灰扑扑。 | 侧栏改为深靛 #1c1e54,与正文同属蓝族。视觉上是一整块,不是两块拼起来。 |
另有一条硬指标:旧的浅灰正文 #8f959e 在白底上对比度只有 3.02:1,达不到无障碍 AA(要求 4.5:1)——车间有顶灯反光、屏幕又常调暗,11.5px 的提示字直接看不清。新 #6b7688 是 4.59:1,过 AA。
表单里的值就是写进 store/ui.css 的值。页面里不许出现十六进制色值,一律写 var(--ui-…)。
#533afd#4b34e4#eeebff#061b31#4d5f78#6b7688#f6f9fc#ffffff#fafbfc#e5edf5#d3dfec每组状态色有三个值,不能混用:-bg 是浅底、-text 是深字(放在浅底上)、-bd 是描边。直接拿 --ui-success(饱和绿)当文字色写在小字上,白底对比度不够。
#e0a02a#24b47e#dc2626#1a56b3#eef2f7正文 13px 是桌面端的底。手机端(E3 / E4)用系统字号,正文字号下限 13px、点击热区下限 44px——技师戴手套操作,热区小了按不准。金额一律等宽数字(font-variant-numeric: tabular-nums),上下对齐才对得上账。
| 档位 | 值 | 用在哪 |
|---|---|---|
--ui-r-xs | 3px | 小徽标、勾选框、细分隔块 |
--ui-r-sm | 4px | 按钮、输入框、小的可点区块 |
--ui-r-md / lg | 5 / 8px | KPI 卡、表格容器、筛选条、toast |
--ui-r-xl | 10px | 只有弹窗。别的地方不用 |
阴影同理三档:--ui-shadow-sm 给主按钮(轻微浮起)、-md 给可交互卡片悬停、-lg 只给弹窗和 toast。静态卡片不加阴影,加了就到处在飘,用户不知道哪个能点。这一套的阴影带蓝调(rgba(50,50,93,…)),和底色同族,不会出现脏灰边。
颜色和字号只解决「看起来像一套」,翻页面时还是会觉得「这不是一个系统」。真正的割裂感来自骨架:同一个位置的页头,在 A 页 34px、B 页 26px;同一张列表,A 页一条搜索框、B 页两条叠在一起;同一排卡片,左边那张比右边高 40px。这些都不显眼,但一页一页翻就露馅。下面五条是量出来的,不是审美判断,每条都有一个可跑的检查。
| 骨架规则 | 不对的时候会怎样 | 怎么写 |
|---|---|---|
| 页头定高 | 页头里有没有放按钮,决定了标题基线差 8px。12 个页面来回翻,标题像在跳。 | .pt{min-height:var(--ui-btn-h);align-items:flex-end}——不管有没有按钮,标题一律贴底对齐,翻页时页头不动。 |
| 一张表一条筛选条 | 页面自己手写了一条筛选栏,注入的列表工具条又插一条,上下两排搜索框,用户不知道哪个管用。 | 列表页不写静态筛选栏。搜索 / 分组 / 状态 chip / 条数 / 翻页全部交给 store/list.js 往 table[data-list] 上挂。页面上只保留「只看未转车单」这类单个开关,放进卡片标题条里。 |
| 列表卡必须有标题条 | 没有标题条,工具条失去锚点,插上去悬在表上方,和表格读起来像两个东西。 | 每张列表卡都写 .card-h:左边标题(这张表是什么)、一句灰色说明(怎么读它),需要时右边放一个汇总标签。工具条固定插在标题条下沿。 |
| 网格列宽写 minmax(0,1fr) | 裸 1fr 的下限是 min-content,哪一列装了个长金额或长占位文字,它就把自己撑胖,隔壁列被挤窄 2px。看不出来,但输入框右边缘一行对不齐一行。 |
所有 grid-template-columns 一律 repeat(n,minmax(0,1fr))。只有故意不等宽的布局(流程泳道的标签列、地图的 1.05fr、工作台的 1.35fr)才写固定值或不等分。 |
| 同排卡片等高 | 卡片自带 margin-bottom,网格的 stretch 就被这个外边距吃掉,同一排卡片下边缘参差。 |
网格容器统一 align-items:stretch,并加一条 .grid > *{margin-bottom:0},间距只由网格的 gap 出。 |
这几条不是写在纸上靠人记的:gate.mjs 逐页扫 CSS,发现裸 1fr 直接判失败;verify-ui.mjs 用无头浏览器点完每个 tab,量每张列表的筛选条数量、卡片标题条、页头高度和详情页两栏的实际像素。原型改坏了,这两条命令会红。规范里写「不许」,检查里就必须有一条能变红的断言——否则规范只是愿望。
交车结算是全系统最重的一屏。过去的做法是从上往下摞一整列全宽卡片,收银员要滚到页面最底部才看到「还差什么才能放车」和「钱怎么收」——而这两件才是他打开这一页要办的事。
现在拆成两栏:左栏是核对(这笔钱谁出、保险定损与差额、交车单与照片),右栏是决策(放车前的门禁在最上,收款单在其下)。右栏把门禁放第一个,是因为收银员在这一页最常问的不是「收了多少」,而是「还差什么才能放车」。窄于 1180px 退回单栏,顺序不变。
railTop=-118——门禁卡(右栏第一块、这一页最该被完整看到的判断依据)上沿被切掉 118px;不钉则 railTop=-352,两张卡各自在滚动过程中都有完整出现的一刻。两卡不可能整屏放下时,宁可选「各自能被看全」,不选「第一张永远缺一截」。
第二条已经落地的详情页是车间工单:左栏「施工进度」(干到哪了),右栏「填生产日报」(技师点开这一单唯一必做的事)。技师在车间平板上看,所以断点放在 900px,低于 900 就退回单栏;收银台是 1100 以上的笔记本,断点放在 1180。断点按这台设备的最小宽度定,不按「大屏 / 小屏」拍脑袋定。其余详情页(客户、会员卡)沿用同一条原则:把「用户在这一页必须做的判断」放右边或最上,把「用来核对的资料」放左边。这不是给所有页面套同一个模板——是决定信息先后顺序的规则。
| 层级 | 长什么样 | 什么时候用 |
|---|---|---|
| 主按钮 | 靛蓝实心 + 白字 | 这一屏用户最该做的那一件事。一屏只能有一个,两个就等于没有主次。 |
| 次按钮 | 白底 + 描边 + 深色字 | 和主按钮并列的第二选择(取消、暂存、返回)。 |
| 文字按钮 | 无边框,悬停才出浅底 | 行内的「查看 / 编辑 / 诊断」。表格里全用这个,不用实心按钮。 |
| 危险按钮 | 浅红底 + 深红字 | 作废、驳回、删除。不做红实心——红实心看起来太像主按钮,会误点。 |
所有会提交的按钮:点下去变「提交中…」并禁用,成功给 toast,失败给红色 toast 并说明原因。不许点了没反应——那是让用户重复点、重复提交的开始。
--ui-surface-2;表体 13px、行高够一拇指点准| 动作 | 表现 |
|---|---|
| 成功 | 深底 toast,3 秒自动消失,写清做了什么(「已派给王磊 · 待他确认」) |
| 失败 | 红底 toast,不自动消失,必须写原因(「库存不足:只剩 0.5L」) |
| 要确认的 | 弹窗,标题写动作名,正文写后果(「作废后该单报价不再生效,已领的料需退库」),按钮写动词不写「确定」 |
| 加载中 | 按钮转圈并禁用;页面级超过 300ms 用骨架屏,不用居中转圈 |
2px 靛蓝实线,不许 outline:none只有一个文件定颜色:store/ui.css。它是全站颜色的唯一来源,24 个页面都引它,页面自己的 <style> 里不许再写 :root。改一个 token,六个端一起变。
| 层 | 文件 | 管什么 |
|---|---|---|
| token 层 | store/ui.css | 全部颜色 / 字号 / 圆角 / 阴影;全局基线;无障碍;打印规则 |
| 桌面组件层 | store/proto.css | 侧栏、顶栏、按钮、表格、卡片、弹窗、toast 的结构与尺寸。只消费 token,不定义颜色 |
| 手机组件层 | store/mobile.css | 车主端与接单端的手机壳:44px 热区、16px 输入框(低于 16 iOS 会放大整页)、底部 tab。两个手机端共用这一份,不各写一套 |
| 行为层 | store/list.js · print.js | 列表工具条(搜索 / 分组 / 状态 / 翻页)与打印排版。页面只给表加 data-list,不再手写第二套 |
| 页面层 | 各 *.html | 只写这一页特有的布局。要新颜色 → 先加 token,再引用 |
另外保留了旧变量名的兼容别名(--p、--t1、--okbg 等),全部指回新 token。这样老页面不改一行也能吃到新视觉,改造可以一页一页做,不会因为改色把功能改坏。
不做的部分不是不重要,是没有真实流程支撑就只能凭空设计。比如厂家三包在线申报,各家厂的接口和单据要求完全不同,现在做一定是假的,不如一期先用手工登记加附件,跑三个月再定。
| 顺序 | 端 / 模块 | 为什么这个顺序 |
|---|---|---|
| 01 | E1 门店端 | 所有数据的源头,其他端都在读它产出的单据 |
| 02 | E4 技师端 | 门店端做完才能派工,是最短的一条闭环 |
| 03 | E2 总部端 | 要有门店数据才有得看,先做门店档案与价目下发 |
| 04 | E6 供应商端 | 依赖门店采购单,接在 E1 的库存之后 |
| 05 | E3 + E5 车主端 | 放最后,因为它读的东西全在前面,改一次要牵动四个端 |
| 事项 | 影响什么 | 我按这个先做 |
|---|---|---|
| 1. 分账规则 总部怎么向门店收钱 |
E2 财务、门店财务页、加盟商最关心的那张单 | 按单抽平台服务费(比例后台配),供应商货款账期可配,先按记账不碰真资金流 |
| 2. 分销佣金谁出 总部还是门店 |
E5 的账挂在哪、门店毛利怎么算 | 门店出,从门店毛利扣,平台不垫资;佣金在结算时分账,不在支付时扣 |
| 3. 三包索赔谁报 门店自己报还是总部统一报 |
E2 要不要做工单、E1 四类承担方怎么走 | 门店报、总部审、钱归门店;E1 先做手工登记加附件,不做厂家接口 |
| 4. 技师计件口径 按工时、按项目还是按产值 |
E4「我的」显示什么数、员工页的参与产值怎么算 | 按完工工时 × 岗位系数,返工不计件;成本不参与提成计算 |
| 5. 返佣按什么算、多久发一次 计提基数与结算周期 |
E1 门店财务返佣结算、E2 总部返佣批次、E5 车主端佣金明细 | 只按实际到账计提(开单不算、报价不算);周期后台可配半个月(1 日 / 16 日)或一个月(次月 1 日)出一次批次,已发放的批次不追溯;介绍奖励按受益人选形式(卡余额 / 积分 / 下次折扣 / 现金),改形式只对下一单生效 |
这五项每项都只影响局部,不阻塞别的开发。我按默认往下做,你哪天改,改的是配置和两三个页面的显示,不动数据结构。
这四件决定的是「同一台车在几个页面里谁说了算」,细则和落地位置见 车单主线规划 第 08、09 节。
| 已定口径 | 具体怎么落 |
|---|---|
| A. 检测和报价保留两段,不合并 | 检测段只出「结论 + 建议项」,不出现金额;报价段才出单价、数量、承担方。「客户暂不处理」的项自动进沟通单,沟通单必须客户签字,否则报价不能锁定。检测可中途停下、下次接着做。 |
| B. 质检按服务类别分级 | 小事故单(单工种、非钣喷)由本班组班组长自检;钣金 / 喷漆 / 大修 / 三电 / 涉保险定损的结构件必须过专职质检,班组长不能代签,质检照片留档。类别由报价行的服务类别自动判定,顾问不能手改。 |
| C. 保险单能「车先走、钱后到」 | 客户/取车人签的是「认可维修金额,并认可未付部分向保险公司索赔、由门店代收」,签完即可放车;缺口挂财务保险应收台账,超期亮红。签字单上禁止出现「已结清 / 已付清 / 无欠款」。自费部分例外:自费没结清,放车按钮就是灰的,不因老客户放宽。 |
| D. 取车人身份证全号加密存,界面只显示后 6 位 | 录入收 18 位全号,入库即加密,接口只回「后 6 位 + 调阅凭据」。门店端页面、交车单打印、导出表、消息推送一律只出现 ************011234 这种形态。要看全号须点「申请查看」并填理由,每次查看写操作日志。保存期限:交车满 2 年打码归档,满 5 年删除全号。 |
| 验什么 | 怎么验 | 过不了怎么办 |
|---|---|---|
| 首屏是否真的是「今天的事」 | 打开第一屏,能不能 10 秒内说出今天最急的一件事 | 改首屏,不是加引导文案 |
| 导航项够不够、多不多 | 把一天的活在里面走一遍,有没有要绕路的地方 | 多了合并,少了拆端 |
| 不该出现的有没有漏进来 | 逐页搜「成本」「毛利」「进价」「手机号全号」 | 接口层就不下发 |
| 主线断没断 | 从预约走到分账,每一步都能在某个端找到入口 | 补交接,不改主线 |
| 同一个数据对不对得上 | 同一台车、同一个金额,四个端显示一致 | 改数据源,不做多套 |
目前的状态:六端都已出可点原型——E1 门店管理 13 屏(逐屏入口)、E2 总部后台(hq-app.html)、E3 车主端 + E5 分销(c-app.html)、E4 门店接单端(store-app.html)、E6 供应商工作台(supplier-app.html)。用 角色演练 按真实场景走了两遍,第一遍挖出 12 个漏洞,全部修完并留了对照表;单据确认方式 说明七类单据的线上签 / 打印签两种做法;业务流审计 说明哪一步在手机上上传、哪一步在 PC 上打印;字段与控件口径 规定每个字段是下拉还是填写,并把「标签说要日期、控件却给文本框」做成门禁检查。
本轮细节补齐包括:七类单据可真的调起浏览器打印(A4 纵向,出纸只有那一张)、列表页统一有搜索 / 状态筛选 / 分组 / 空状态 / 分页、全站不再有「原型:xxx 未做」的占位提示。
钱这条线已经打通到底:接车开单时把车怎么来的(直接进店 / 预约转入 / 救援拖回 / 平台派单 / 同行送来 / 连锁内转)和这单谁带来的(自然进店 / 老客 / 转介绍 / 分销 / 平台导流 / 保险 / 合作单位 / 同行转介)分成两个字段,凭证不填齐不让进检测;财务页按实际到账出返佣台账,钱没到的单进「不计佣」表、永远不进批次;周期开关一拨,台账和批次表同时按半个月 / 一个月重排,已发放的批次不动;同行转厂按「客户报价 − 同行结算价 − 介绍费」算我方毛利、连锁内转按内部结算价认收入并把差价留给转出门店,两处都堵了「客户报价当成自己产值」的重复计算。