feat(design): 原型三域回填对齐真实端 + 授权管理提升独立一级屏(三 tab,桌面+移动)

三域回填(原型=真实 100% 一致铁律首轮集中对齐):
- 库存域:多选筛选 chip(N 项摘要+×单清)/抽屉打印标签/成本按角色标注/移动三态筛选入口/共享抽屉生产日期行
- 设置授权关于域:授权信息三格横排/购买卡三阶段同构/iOS 合规双态/隐私同意弹窗/注销账号入口/客服邮箱统一/关于页按钮规格
- 日期组件域:扁平滚轮面板(输入框+滚轮同宽居中)/范围起止双窗格并排锚定下拉/移动 sheet 纵排,.wheel-* 提升 atoms 并登记

授权管理提升(design-first,评审通过):
- 新增 license.html 独立一级屏(侧边栏「系统」组):授权信息/在线购买续费/订单管理三 tab
- m-license.html 同构三 tab;订单管理 tab=license_purchases 流水(KPI/筛选/表格·卡流/详情)
- settings 子导航摘除授权项;iOS 合规态隐藏购买 tab;index 登记更新

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-07-10 20:19:03 +08:00
parent adfa0ca34c
commit 13b7274dbd
19 changed files with 969 additions and 189 deletions
+17 -3
View File
@@ -54,15 +54,29 @@ svg{fill:none; stroke:currentColor;}
.datefield.gci-date:hover{background:var(--bg);}
.datefield.gci-date:focus{background:var(--surface); border-color:var(--primary); box-shadow:0 0 0 2px var(--brand50);}
.datefield.gci-date.error{border-color:var(--danger); background:var(--danger-bg); box-shadow:none;}
.wheel-pop{position:fixed; z-index:var(--z-pop); background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--sh-3); padding:8px; width:248px; display:none;}
/* 面板(扁平,2026-07-04 拍板;镜像 client wheel_date_picker.dart):卡壳 surface+1px 边框+r-lg 无阴影;
窗格 .wheel-pane = 可输入框 + 三列滚轮(同宽 248 居中);范围 .wheel-range 双窗格并排 + 共用底栏;
移动 sheet 纵排复用挂 .wheel-sheet(窗格纵排居中,底栏与窗格同宽) */
.wheel-pop{position:fixed; z-index:var(--z-pop); background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:12px; display:none;}
.wheel-pop.show{display:block;}
.wheel-pane{width:248px;}
.wheel-pane-title{font-size:var(--fs-sm); font-weight:600; color:var(--muted); padding-left:2px; margin-bottom:6px;}
.wheel-input{display:block; width:100%; box-sizing:border-box; height:34px; margin-bottom:6px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); outline:none; text-align:center; font-size:var(--fs-body); color:var(--text); font-family:var(--font-mono);}
.wheel-input:focus{border-color:var(--primary);}
.wheel-input::placeholder{color:var(--faint); font-family:var(--font);}
.wheel-box{border:1px solid var(--border); border-radius:var(--r-md); padding:4px;}
.wheel-cols{position:relative; display:flex; height:180px; overflow:hidden;}
.wheel-center{position:absolute; left:4px; right:4px; top:72px; height:36px; border-radius:var(--r-md); background:var(--bg); border-top:1px solid var(--border); border-bottom:1px solid var(--border); pointer-events:none; z-index:0;}
.wheel-center{position:absolute; left:4px; right:4px; top:72px; height:36px; border-radius:var(--r-md); background:var(--bg); pointer-events:none; z-index:0;}
.wheel-col{position:relative; z-index:1; flex:1; height:100%; overflow-y:scroll; scroll-snap-type:y mandatory; padding:72px 0; text-align:center; scrollbar-width:none; -ms-overflow-style:none;}
.wheel-col::-webkit-scrollbar{display:none;}
.wheel-item{height:36px; line-height:36px; scroll-snap-align:center; font-size:var(--fs-body); color:var(--muted); font-family:var(--font-mono); transition:color .12s,font-size .12s;}
.wheel-item.on{color:var(--primary); font-weight:700; font-size:16px;}
.wheel-foot{display:flex; justify-content:space-between; align-items:center; padding:8px 4px 2px; margin-top:6px; border-top:1px solid var(--border-subtle);}
.wheel-range{display:flex; align-items:flex-start; gap:12px;}
.wheel-sheet{display:flex; flex-direction:column; align-items:center;}
.wheel-sheet .wheel-range{flex-direction:column; align-items:center; gap:14px;}
.wheel-sheet .wheel-foot{width:248px; box-sizing:border-box;}
.wheel-foot{display:flex; justify-content:space-between; align-items:center; margin-top:10px; padding-top:10px; border-top:1px solid var(--border-subtle);}
.wheel-foot .wheel-preview{flex:1; font-size:var(--fs-sm); color:var(--muted); font-family:var(--font-mono);}
.wheel-foot .wheel-today{font-size:var(--fs-sm); color:var(--muted); cursor:pointer; padding:4px 10px; border-radius:var(--r-sm);}
.wheel-foot .wheel-today:hover{background:var(--bg); color:var(--text);}
.wheel-foot .wheel-ok{font-size:var(--fs-sm); color:var(--on-primary); background:var(--primary); font-weight:600; cursor:pointer; padding:5px 16px; border-radius:var(--r-sm);}