diff --git a/.superpowers/prototype/index.html b/.superpowers/prototype/index.html index 8532fc1..9bc91c4 100644 --- a/.superpowers/prototype/index.html +++ b/.superpowers/prototype/index.html @@ -393,8 +393,8 @@

提示条

.notice info/danger(草稿恢复 / 驳回)
-
检测到未提交的入库单草稿(06-21 11:20),是否恢复?
恢复放弃
-
单据被驳回:单价高于近期采购价,请核实后重报。
+
检测到未提交的入库单草稿(06-21 11:20),是否恢复?
恢复放弃
+
单据被驳回:单价高于近期采购价,请核实后重报。

单据明细行(商品 / 系列规格分列)

.lines .lr · .lcell .ln/.lcode/.lser/.lspec
商品 · 编码系列 / 规格数量单价金额
diff --git a/.superpowers/prototype/screens/icons.js b/.superpowers/prototype/screens/icons.js index 4a5b5e8..aab40b7 100644 --- a/.superpowers/prototype/screens/icons.js +++ b/.superpowers/prototype/screens/icons.js @@ -1,8 +1,8 @@ // 图标 sprite —— 单一真源(Lucide 官方图标,ISC 许可) // 所有屏用 引用;改此处一个 symbol,全局生效。 -// 共 102 个:99 个源自 lucide-static,另有平台品牌图标 i-apple / i-android(simple-icons,填充式,path 自带 fill 覆盖描边样式)与 i-tablet-smartphone(lucide)。新增图标先在此登记 symbol,再用 use 引用。 +// 共 104 个:99 个源自 lucide-static,i-info/i-alert 为点改实心圆的清晰变体,,另有平台品牌图标 i-apple / i-android(simple-icons,填充式,path 自带 fill 覆盖描边样式)与 i-tablet-smartphone(lucide)。新增图标先在此登记 symbol,再用 use 引用。 (function(){ - var SPRITE=''; + var SPRITE=''; function inject(){ if(document.getElementById('ym-icon-sprite'))return; var d=document.createElement('div'); d.id='ym-icon-sprite'; d.style.cssText='position:absolute;width:0;height:0'; d.innerHTML=SPRITE; document.body.insertBefore(d,document.body.firstChild); } if(document.readyState!=='loading')inject(); else document.addEventListener('DOMContentLoaded',inject); })(); diff --git a/.superpowers/prototype/screens/m-stock-in-list.html b/.superpowers/prototype/screens/m-stock-in-list.html index 569d1e4..020443c 100644 --- a/.superpowers/prototype/screens/m-stock-in-list.html +++ b/.superpowers/prototype/screens/m-stock-in-list.html @@ -94,7 +94,7 @@ function render(){
${icoB(o.status)}${o.ret?icoB(o.ret):''}${o.pending?icoB('待定价'):''}
${o.amount}
-
${o.date} · 经手人 ${o.by}${o.auditor?' · 审核 '+o.auditor:''}
+
${o.date} · 经手人 ${o.by}${o.auditor?' · 审核 '+o.auditor:''}
`).join(''); } function setSt(s){ state.status=s; render(); } @@ -153,7 +153,7 @@ function openOrder(no){ const o=ORDERS.find(x=>x.no===no); } /* ---- 确认进价(对齐桌面 ovConfirm,简化为 sheet) ---- */ function openConfirm(no){ const o=ORDERS.find(x=>x.no===no); const pend=(o.lines||[]).filter(l=>l.pend); - openSheet('确认进价', `
调货「先卖后定价」:填写真实进价后,系统前向补齐库存成本、已出库成本快照,并按差额补一条应付流水——不反审核、不影响售价 / 应收。
` + openSheet('确认进价', `
调货「先卖后定价」:填写真实进价后,系统前向补齐库存成本、已出库成本快照,并按差额补一条应付流水——不反审核、不影响售价 / 应收。
` +pend.map(l=>`
`).join('') +`
取消
确认并补差额
`); } @@ -165,7 +165,7 @@ function setRetQty(i,v,max){ retStage[i]=Math.min(Math.max(1,Math.floor(+v||0)), function stageAllRet(){ const o=ORDERS.find(x=>x.no===retNo); (o.lines||[]).forEach((l,i)=>retStage[i]=l.q); drawReturn(); } function drawReturnSummary(){ const el=document.getElementById('retSum'); if(!el)return; const keys=Object.keys(retStage); const qty=keys.reduce((s,k)=>s+(+retStage[k]||0),0); el.textContent=keys.length?`已退单 ${keys.length} 项 · 从库存移除 −${qty} 件`:'未选择退单明细'; } function drawReturn(){ const o=ORDERS.find(x=>x.no===retNo); - openSheet('退单', `
提交后,退单明细对应的库存将「从库存删除」。退单明细不会删除,以红色「已退单」标注,且不可撤销。
` + openSheet('退单', `
提交后,退单明细对应的库存将「从库存删除」。退单明细不会删除,以红色「已退单」标注,且不可撤销。
` +(o.lines||[]).map((l,i)=>{ const st=retStage[i]!=null; return `
`; }).join('') +`
全部退单
未选择退单明细
diff --git a/.superpowers/prototype/screens/m-stock-out-list.html b/.superpowers/prototype/screens/m-stock-out-list.html index 2822a21..2cfd042 100644 --- a/.superpowers/prototype/screens/m-stock-out-list.html +++ b/.superpowers/prototype/screens/m-stock-out-list.html @@ -93,7 +93,7 @@ function render(){
${icoB(o.status)}${o.ret?icoB(o.ret):''}${o.pending?icoB('待定价'):''}
${o.amount}
-
${o.date} · 经手人 ${o.by}${o.auditor?' · 审核 '+o.auditor:''}
+
${o.date} · 经手人 ${o.by}${o.auditor?' · 审核 '+o.auditor:''}
`).join(''); } function setSt(s){ state.status=s; render(); } @@ -153,7 +153,7 @@ function openOrder(no){ const o=ORDERS.find(x=>x.no===no); } /* ---- 确认售价(对齐桌面 ovConfirmSale,简化为 sheet) ---- */ function openConfirm(no){ const o=ORDERS.find(x=>x.no===no); const pend=(o.lines||[]).filter(l=>l.pend); - openSheet('确认售价', `
「先卖后定价」:填写真实售价后,系统按售价×数量结算应收并补应收流水——不反审核、不影响成本 / 应付。
` + openSheet('确认售价', `
「先卖后定价」:填写真实售价后,系统按售价×数量结算应收并补应收流水——不反审核、不影响成本 / 应付。
` +pend.map(l=>`
`).join('') +`
取消
确认并补应收
`); } @@ -165,7 +165,7 @@ function setRetQty(i,v,max){ retStage[i]=Math.min(Math.max(1,Math.floor(+v||0)), function stageAllRet(){ const o=ORDERS.find(x=>x.no===retNo); (o.lines||[]).forEach((l,i)=>retStage[i]=l.q); drawReturn(); } function drawReturnSummary(){ const el=document.getElementById('retSum'); if(!el)return; const keys=Object.keys(retStage); const qty=keys.reduce((s,k)=>s+(+retStage[k]||0),0); el.textContent=keys.length?`已退单 ${keys.length} 项 · 退回库存 +${qty} 件`:'未选择退单明细'; } function drawReturn(){ const o=ORDERS.find(x=>x.no===retNo); - openSheet('退单', `
提交后,退单明细的数量将「加回库存」。退单明细不会删除,以红色「已退单」标注,且不可撤销。
` + openSheet('退单', `
提交后,退单明细的数量将「加回库存」。退单明细不会删除,以红色「已退单」标注,且不可撤销。
` +(o.lines||[]).map((l,i)=>{ const st=retStage[i]!=null; return `
`; }).join('') +`
全部退单
未选择退单明细
diff --git a/.superpowers/prototype/screens/stock-in-list.html b/.superpowers/prototype/screens/stock-in-list.html index 7818a52..2293431 100644 --- a/.superpowers/prototype/screens/stock-in-list.html +++ b/.superpowers/prototype/screens/stock-in-list.html @@ -82,7 +82,7 @@