feat(backend): implement task creation and admin web
This commit is contained in:
@@ -38,14 +38,14 @@
|
||||
</section>
|
||||
<section class="panel" id="requirement" aria-labelledby="requirementTitle">
|
||||
<h2 id="requirementTitle">管理员原始要求</h2>
|
||||
<dl class="facts"><dt>商品</dt><dd>透明抽屉式收纳盒</dd><dt>SKU</dt><dd>白色 · 中号</dd><dt>数量</dt><dd>2 件</dd><dt>最高预算</dt><dd>¥ 48.00 / 件</dd></dl>
|
||||
<dl class="facts"><dt>商品</dt><dd>透明抽屉式收纳盒</dd><dt>SKU</dt><dd>白色 · 中号</dd><dt>数量</dt><dd>2 件</dd><dt>最高商品总预算</dt><dd>¥ 96.00</dd></dl>
|
||||
</section>
|
||||
<section class="panel" id="candidate" aria-labelledby="candidateTitle">
|
||||
<h2 id="candidateTitle">候选 1 / 3</h2>
|
||||
<div class="evidence" role="img" aria-label="脱敏的候选商品截图占位">脱敏候选截图<br>证据占位</div>
|
||||
<dl class="facts"><dt>候选标题</dt><dd>透明可叠放抽屉收纳盒</dd><dt>单价</dt><dd class="price" id="price">¥ 39.90</dd></dl>
|
||||
<h3>匹配与风险</h3>
|
||||
<ul class="checks" id="checks"><li><span class="ok">符合</span> 颜色:白色</li><li><span class="ok">符合</span> 规格:中号</li><li><span class="ok">符合</span> 单价未超过预算</li></ul>
|
||||
<ul class="checks" id="checks"><li><span class="ok">符合</span> 颜色:白色</li><li><span class="ok">符合</span> 规格:中号</li><li><span class="ok">符合</span> 商品总价 ¥ 79.80 未超过预算</li></ul>
|
||||
</section>
|
||||
<section class="panel">
|
||||
<h2>人员结论</h2>
|
||||
@@ -65,7 +65,7 @@
|
||||
</dialog>
|
||||
<script>
|
||||
const scenario=document.querySelector("#scenario"),candidate=document.querySelector("#candidate"),accept=document.querySelector("#accept"),reject=document.querySelector("#reject"),noneAction=document.querySelector("#noneAction"),price=document.querySelector("#price"),checks=document.querySelector("#checks"),dialog=document.querySelector("#confirmDialog"),cancel=document.querySelector("#cancel"),completion=document.querySelector("#completion");let pending="";
|
||||
function render(){const v=scenario.value,missing=v==="none";candidate.hidden=missing;noneAction.disabled=!missing;accept.disabled=v!=="valid";reject.disabled=missing;if(v==="over"){price.textContent="¥ 56.00";checks.innerHTML='<li><span class="ok">符合</span> 颜色:白色</li><li><span class="ok">符合</span> 规格:中号</li><li><span class="risk">不符合</span> 单价超过最高预算,不能接受</li>'}else if(v==="unknown"){price.textContent="¥ 41.00";checks.innerHTML='<li><span class="ok">符合</span> 颜色:白色</li><li><span class="risk">未知</span> 规格无法确认,不能接受</li><li><span class="ok">符合</span> 单价未超过预算</li>'}else{price.textContent="¥ 39.90";checks.innerHTML='<li><span class="ok">符合</span> 颜色:白色</li><li><span class="ok">符合</span> 规格:中号</li><li><span class="ok">符合</span> 单价未超过预算</li>'}}
|
||||
function render(){const v=scenario.value,missing=v==="none";candidate.hidden=missing;noneAction.disabled=!missing;accept.disabled=v!=="valid";reject.disabled=missing;if(v==="over"){price.textContent="¥ 56.00";checks.innerHTML='<li><span class="ok">符合</span> 颜色:白色</li><li><span class="ok">符合</span> 规格:中号</li><li><span class="risk">不符合</span> 商品总价 ¥ 112.00 超过总预算,不能接受</li>'}else if(v==="unknown"){price.textContent="¥ 41.00";checks.innerHTML='<li><span class="ok">符合</span> 颜色:白色</li><li><span class="risk">未知</span> 规格无法确认,不能接受</li><li><span class="ok">符合</span> 商品总价 ¥ 82.00 未超过总预算</li>'}else{price.textContent="¥ 39.90";checks.innerHTML='<li><span class="ok">符合</span> 颜色:白色</li><li><span class="ok">符合</span> 规格:中号</li><li><span class="ok">符合</span> 商品总价 ¥ 79.80 未超过总预算</li>'}}
|
||||
document.querySelectorAll("[data-action]").forEach(button=>button.addEventListener("click",()=>{pending=button.dataset.action;document.querySelector("#dialogText").textContent="选择:"+pending;dialog.showModal();setTimeout(()=>cancel.focus(),0)}));
|
||||
scenario.addEventListener("change",render);cancel.addEventListener("click",()=>dialog.close());dialog.addEventListener("cancel",e=>{e.preventDefault();dialog.close()});document.querySelector("#confirm").addEventListener("click",()=>{dialog.close();completion.classList.add("show");document.querySelector("#completionText").textContent="“"+pending+"”已记录,结果正在同步。";completion.scrollIntoView({behavior:"smooth",block:"start"})});render();
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user