43 lines
2.8 KiB
Python
43 lines
2.8 KiB
Python
from pathlib import Path
|
||
import hashlib,json
|
||
folder=Path('C:/kefu/deploy/review-visibility-20260916')
|
||
for root in [Path('C:/wechat_rpa'),Path('C:/kefu/wechat_rpa')]:
|
||
p=root/'assets/ui/console-app.js';s=p.read_text(encoding='utf-8')
|
||
needle='function taskHandoffLabel(task)'
|
||
assert s.count(needle)==1
|
||
s=s.replace(needle,'''function taskCancelButton(task, label="取消任务"){
|
||
return task.deliveryUncertain ? "" : `<button class="btn danger" data-action="cancel-task" data-key="${esc(task.key || "")}">${icon("stop")}${label}</button>`;
|
||
}
|
||
'''+needle)
|
||
replacements={
|
||
'<button class="btn small danger" data-action="cancel-task" data-key="${esc(task.key || "")}">${icon("stop")}终止本任务</button>':'${taskCancelButton(task,"终止本任务")}',
|
||
'<button class="btn danger" data-action="cancel-task" data-key="${esc(task.key || "")}">× 取消任务</button>':'${taskCancelButton(task)}',
|
||
' "cancel-task": () => callBridge("cancelTask", key),':''' "cancel-task": () => {
|
||
if (STATE.task && STATE.task.key === key && STATE.task.deliveryUncertain) return toast("请先在企业微信核对发送结果,再选择核对后转人工。");
|
||
callBridge("cancelTask", key);
|
||
},'''
|
||
}
|
||
for old,new in replacements.items():
|
||
assert s.count(old)==1,old
|
||
s=s.replace(old,new)
|
||
p.write_text(s,encoding='utf-8',newline='\n')
|
||
test=folder/'frontend-test.mjs';s=test.read_text(encoding='utf-8')
|
||
needle=" await check('可重试生成失败任务提供重试并传递正确key',async()=>{"
|
||
assert s.count(needle)==1
|
||
s=s.replace(needle,''' await check('未知回执在自动页与队列页只能核对后转人工',async()=>{
|
||
for(const view of ['auto','queue']){
|
||
const p=await page(view,{task:{...task,awaitingReview:false,needsHuman:true,canRetry:true,deliveryUncertain:true,reviewReason:'发送结果待人工核对'}});
|
||
assert.equal(await p.locator('[data-action="approve-task"],[data-action="retry-task"],[data-action="cancel-task"]').count(),0);
|
||
assert.equal(await p.locator('[data-action="handoff-task"]').count(),1);
|
||
assert.match(await p.locator('[data-action="handoff-task"]').innerText(),/核对后转人工/);await p.close();
|
||
}
|
||
});
|
||
'''+needle)
|
||
test.write_text(s,encoding='utf-8')
|
||
screens=folder/'frontend-final-screenshots.mjs';s=screens.read_text(encoding='utf-8');s=s.replace('[data-action="approve-task"],[data-action="retry-task"]','[data-action="approve-task"],[data-action="retry-task"],[data-action="cancel-task"]');screens.write_text(s,encoding='utf-8')
|
||
manifest=folder/'frontend-files.json';results=json.loads(manifest.read_text(encoding='utf-8'))
|
||
for result in results:
|
||
for f in result['files']: f['sha256']=hashlib.sha256((Path(result['root'])/f['path']).read_bytes()).hexdigest()
|
||
manifest.write_text(json.dumps(results,ensure_ascii=False,indent=2),encoding='utf-8')
|
||
print('Hidden uncertain-delivery cancellation in both views and updated manifest.')
|