docs(design): 澄清回滚——去图标仅限状态筛选钮,其余恢复图标形态

状态筛选钮保持纯文字无箭头;详细搜索钮/卡片图标徽章/详情 sheet 图标+文字徽章/
卡片 › 箭头恢复上一版;+ 移除与搜索行位于 KPI 下不变

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JJ1g8XV1YhhmHRzhwWEW7o
This commit is contained in:
wangjia
2026-07-04 10:06:56 +08:00
parent 5036c0ba42
commit aa3aad417c
2 changed files with 16 additions and 14 deletions
@@ -29,7 +29,7 @@
<div style="display:flex;gap:8px;align-items:stretch;margin:10px 0">
<div class="m-search" style="flex:1;min-width:0"><svg viewBox="0 0 24 24"><use href="#i-search"/></svg><input id="q" placeholder="搜索单号 / 供应商 / 酒名" oninput="state.q=this.value;render()"></div>
<div class="btn ghost" id="stSel" style="height:auto;flex:none" onclick="openStatusSheet()"><span id="stVal">全部</span></div>
<div class="btn ghost" id="advBtn" style="height:auto;flex:none" onclick="openAdv()"><span id="advTxt">详细搜索</span></div>
<div class="btn ghost" id="advBtn" style="height:auto;flex:none;padding:0 12px" onclick="openAdv()" title="详细搜索"><svg viewBox="0 0 24 24"><use href="#i-ic21"/></svg></div>
</div>
<div class="m-section" id="cnt">入库单</div>
<div id="list"></div>
@@ -56,9 +56,10 @@ const OPS=['全部','王经理','李采购'];
const REVIEWERS=['全部','张主管','王经理'];
const DATES=['全部时间','近 7 天','近 30 天','本月'];
const state={q:'',status:'全部'};
/* ---- 徽章:纯文字(2026-07-04 用户拍板移动端不用图标;.bi 抑制圆点,enhancer 跳过 ---- */
function icoB(v){ return `<span class="badge bi b-${v}">${v}</span>`; }
function biB(v){ return `<span class="badge bi b-${v}">${v}</span>`; }
/* ---- 状态代表图标(移动纯图标 .ico / 图标+文字 .bi;状态筛选钮为纯文字——用户拍板 ---- */
const STICON={'草稿':'i-ic06','待审核':'i-ic04','已审核':'i-check','已拒绝':'i-close','部分退单':'i-undo','已退单':'i-undo','待定价':'i-yen'};
function icoB(v){ return `<span class="badge ico b-${v}" title="${v}"><svg class="ic"><use href="#${STICON[v]}"/></svg></span>`; }
function biB(v){ return `<span class="badge bi b-${v}"><svg class="ic"><use href="#${STICON[v]}"/></svg>${v}</span>`; }
/* ---- 详细搜索条件(与 Flutter _AdvSearchDialog 同一字段集,移动为竖排简化版) ---- */
const ADV_DEF={no:'',product:'',batch:'',party:'全部',series:'全部',spec:'全部',op:'全部',reviewer:'全部',status:'全部',date:'全部时间'};
let adv={...ADV_DEF};
@@ -80,7 +81,6 @@ function render(){
document.getElementById('stVal').textContent=state.status;
const ss=document.getElementById('stSel');
ss.classList.toggle('primary',state.status!=='全部'); ss.classList.toggle('ghost',state.status==='全部');
document.getElementById('advTxt').textContent='详细搜索'+(n?' · '+n:'');
const ab=document.getElementById('advBtn');
ab.classList.toggle('primary',n>0); ab.classList.toggle('ghost',n===0);
const rows=filtered();
@@ -90,7 +90,8 @@ function render(){
L.innerHTML=rows.map(o=>`<a class="m-card" onclick="openOrder('${o.no}')">
<div class="m-row">
<div class="mc-main"><div class="mc-nm">${o.no}</div><div class="mc-sub">${o.party} · ${o.items} 项</div></div>
<div class="mc-right"><div style="display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end">${icoB(o.status)}${o.ret?icoB(o.ret):''}${o.pending?icoB('待定价'):''}</div><span class="mc-amt">${o.amount}</span></div>
<div class="mc-right"><div style="display:flex;gap:5px">${icoB(o.status)}${o.ret?icoB(o.ret):''}${o.pending?icoB('待定价'):''}</div><span class="mc-amt">${o.amount}</span></div>
<div class="mc-chev"><svg viewBox="0 0 24 24"><use href="#i-chevron-right"/></svg></div>
</div>
<div class="mc-foot"><svg width="13" height="13" viewBox="0 0 24 24" stroke-width="1.9" style="color:var(--muted)"><use href="#i-info"/></svg>${o.date} · 经手人 ${o.by}${o.auditor?' · 审核 '+o.auditor:''}</div>
</a>`).join('');
@@ -98,7 +99,7 @@ function render(){
function setSt(s){ state.status=s; render(); }
/* ---- 状态下拉(底部选项 sheet ---- */
function openStatusSheet(){
openSheet('状态筛选', ST.map(s=>`<div class="m-opt ${s===state.status?'sel':''}" onclick="setSt('${s}');closeSheet()">${s}<svg class="ck" viewBox="0 0 24 24"><use href="#i-check"/></svg></div>`).join(''));
openSheet('状态筛选', ST.map(s=>`<div class="m-opt ${s===state.status?'sel':''}" onclick="setSt('${s}');closeSheet()">${s!=='全部'?`<span class="badge ico b-${s}"><svg class="ic"><use href="#${STICON[s]}"/></svg></span>`:''}${s}<svg class="ck" viewBox="0 0 24 24"><use href="#i-check"/></svg></div>`).join(''));
}
/* ==================== 详细搜索(底部 sheet,竖排单列) ==================== */
@@ -29,7 +29,7 @@
<div style="display:flex;gap:8px;align-items:stretch;margin:10px 0">
<div class="m-search" style="flex:1;min-width:0"><svg viewBox="0 0 24 24"><use href="#i-search"/></svg><input id="q" placeholder="搜索单号 / 客户 / 酒名" oninput="state.q=this.value;render()"></div>
<div class="btn ghost" id="stSel" style="height:auto;flex:none" onclick="openStatusSheet()"><span id="stVal">全部</span></div>
<div class="btn ghost" id="advBtn" style="height:auto;flex:none" onclick="openAdv()"><span id="advTxt">详细搜索</span></div>
<div class="btn ghost" id="advBtn" style="height:auto;flex:none;padding:0 12px" onclick="openAdv()" title="详细搜索"><svg viewBox="0 0 24 24"><use href="#i-ic21"/></svg></div>
</div>
<div class="m-section" id="cnt">出库单</div>
<div id="list"></div>
@@ -55,9 +55,10 @@ const OPS=['全部','王经理','李销售'];
const REVIEWERS=['全部','张主管','王经理'];
const DATES=['全部时间','近 7 天','近 30 天','本月'];
const state={q:'',status:'全部'};
/* ---- 徽章:纯文字(2026-07-04 用户拍板移动端不用图标;.bi 抑制圆点,enhancer 跳过 ---- */
function icoB(v){ return `<span class="badge bi b-${v}">${v}</span>`; }
function biB(v){ return `<span class="badge bi b-${v}">${v}</span>`; }
/* ---- 状态代表图标(移动纯图标 .ico / 图标+文字 .bi;状态筛选钮为纯文字——用户拍板 ---- */
const STICON={'草稿':'i-ic06','待审核':'i-ic04','已审核':'i-check','已拒绝':'i-close','部分退单':'i-undo','已退单':'i-undo','待定价':'i-yen'};
function icoB(v){ return `<span class="badge ico b-${v}" title="${v}"><svg class="ic"><use href="#${STICON[v]}"/></svg></span>`; }
function biB(v){ return `<span class="badge bi b-${v}"><svg class="ic"><use href="#${STICON[v]}"/></svg>${v}</span>`; }
/* ---- 详细搜索条件(与 Flutter _AdvancedSearchDialog 同一字段集,移动为竖排简化版) ---- */
const ADV_DEF={no:'',product:'',batch:'',party:'全部',series:'全部',spec:'全部',op:'全部',reviewer:'全部',status:'全部',date:'全部时间'};
let adv={...ADV_DEF};
@@ -79,7 +80,6 @@ function render(){
document.getElementById('stVal').textContent=state.status;
const ss=document.getElementById('stSel');
ss.classList.toggle('primary',state.status!=='全部'); ss.classList.toggle('ghost',state.status==='全部');
document.getElementById('advTxt').textContent='详细搜索'+(n?' · '+n:'');
const ab=document.getElementById('advBtn');
ab.classList.toggle('primary',n>0); ab.classList.toggle('ghost',n===0);
const rows=filtered();
@@ -89,7 +89,8 @@ function render(){
L.innerHTML=rows.map(o=>`<a class="m-card" onclick="openOrder('${o.no}')">
<div class="m-row">
<div class="mc-main"><div class="mc-nm">${o.no}</div><div class="mc-sub">${o.party} · ${o.items} 项</div></div>
<div class="mc-right"><div style="display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end">${icoB(o.status)}${o.ret?icoB(o.ret):''}${o.pending?icoB('待定价'):''}</div><span class="mc-amt">${o.amount}</span></div>
<div class="mc-right"><div style="display:flex;gap:5px">${icoB(o.status)}${o.ret?icoB(o.ret):''}${o.pending?icoB('待定价'):''}</div><span class="mc-amt">${o.amount}</span></div>
<div class="mc-chev"><svg viewBox="0 0 24 24"><use href="#i-chevron-right"/></svg></div>
</div>
<div class="mc-foot"><svg width="13" height="13" viewBox="0 0 24 24" stroke-width="1.9" style="color:var(--muted)"><use href="#i-info"/></svg>${o.date} · 经手人 ${o.by}${o.auditor?' · 审核 '+o.auditor:''}</div>
</a>`).join('');
@@ -97,7 +98,7 @@ function render(){
function setSt(s){ state.status=s; render(); }
/* ---- 状态下拉(底部选项 sheet ---- */
function openStatusSheet(){
openSheet('状态筛选', ST.map(s=>`<div class="m-opt ${s===state.status?'sel':''}" onclick="setSt('${s}');closeSheet()">${s}<svg class="ck" viewBox="0 0 24 24"><use href="#i-check"/></svg></div>`).join(''));
openSheet('状态筛选', ST.map(s=>`<div class="m-opt ${s===state.status?'sel':''}" onclick="setSt('${s}');closeSheet()">${s!=='全部'?`<span class="badge ico b-${s}"><svg class="ic"><use href="#${STICON[s]}"/></svg></span>`:''}${s}<svg class="ck" viewBox="0 0 24 24"><use href="#i-check"/></svg></div>`).join(''));
}
/* ==================== 详细搜索(底部 sheet,竖排单列) ==================== */