Files
kefu/deploy/review-visibility-20260916/frontend_uncertain_cancel_patch.py
T
2026-09-21 10:34:06 +08:00

43 lines
2.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.')