| 16 | |
| 17 | /** 创建答题预处理信息 */ |
| 18 | export function workPreCheckMessage( |
| 19 | options: CommonWorkOptions & { |
| 20 | start_delay_seconds?: number; |
| 21 | onrun: (opts: CommonWorkOptions) => void; |
| 22 | /** |
| 23 | * 当没有题库配置时的回调 |
| 24 | */ |
| 25 | onNoAnswererWrappers?: (opts: CommonWorkOptions) => void; |
| 26 | /** |
| 27 | * 手动关闭时的回调 |
| 28 | */ |
| 29 | onclose?: (opts: CommonWorkOptions, closedMessage: MessageElement) => void; |
| 30 | } |
| 31 | ) { |
| 32 | const { onrun, onNoAnswererWrappers, onclose, ...opts } = options; |
| 33 | |
| 34 | if (opts.answererWrappers.length === 0) { |
| 35 | onNoAnswererWrappers?.(opts); |
| 36 | return answerWrapperEmptyWarning(0); |
| 37 | } else { |
| 38 | options.start_delay_seconds = options.start_delay_seconds ?? 5; |
| 39 | return $message.info({ |
| 40 | duration: options.start_delay_seconds, |
| 41 | content: h('span', [ |
| 42 | `${options.start_delay_seconds}秒后自动答题,`, |
| 43 | $ui.preventText({ |
| 44 | name: '点击取消', |
| 45 | delay: options.start_delay_seconds, |
| 46 | ondefault: (span) => { |
| 47 | onrun(opts); |
| 48 | }, |
| 49 | onprevent(span) { |
| 50 | const closedMessage = $message.warn({ |
| 51 | content: '已关闭此次的自动答题,请手动开启或者忽略此警告。', |
| 52 | duration: 0 |
| 53 | }); |
| 54 | if (closedMessage) { |
| 55 | onclose?.(opts, closedMessage); |
| 56 | } |
| 57 | } |
| 58 | }) |
| 59 | ]) |
| 60 | }); |
| 61 | } |
| 62 | } |
| 63 | |
| 64 | /** |
| 65 | * 创造范围选择器的提示 |