@@ -4,8 +4,9 @@ import type { Browser, Page } from 'puppeteer'
44import puppeteer from 'puppeteer'
55import type { Ora } from 'ora'
66import ora from 'ora'
7+ import prompts from 'prompts'
78import { ACTION , VIEWPORT , WEIXIN_URL , __DEV__ } from '../constants'
8- import { pathResolve , showQrCodeToTerminal , sleep } from '../utils'
9+ import { onCancel , pathResolve , showQrCodeToTerminal , sleep } from '../utils'
910
1011let browser : Browser
1112let page : Page
@@ -73,18 +74,47 @@ export async function jumpToVersions() {
7374 * 跳转确认提交审核界面
7475 */
7576export async function jumpToConfirmPage ( ) {
76- const submitReviewBtn = await page . waitForSelector ( '.mod_default_box.code_version_dev .weui-desktop-btn.weui-desktop-btn_primary' )
77+ const submitReviewBtnSelector = '.mod_default_box.code_version_dev .weui-desktop-btn.weui-desktop-btn_primary'
78+ let submitReviewBtn = await page . waitForSelector ( submitReviewBtnSelector )
7779 if ( ! submitReviewBtn ) {
7880 spinner . fail ( '未找到提交审核按钮' )
7981 throw new Error ( '未找到提交审核按钮' )
8082 }
83+ const isSubmitReviewBtnDisabled = await submitReviewBtn . evaluate ( btn => btn . classList . contains ( 'weui-desktop-btn_disabled' ) )
8184 // 判断是否有提交审核中的版本
8285 const testVersion = await page . $ ( '.mod_default_bd.default_box.test_version' )
8386 if ( testVersion && ! await testVersion . evaluate ( el => el . textContent ?. includes ( '你暂无提交审核的版本或者版本已发布上线' ) ) ) {
84- spinner . warn ( '存在提交审核中的版本' )
85- throw new Error ( '存在提交审核中的版本' )
87+ if ( ! options . forceSubmit ) {
88+ spinner . stop ( )
89+ const result : prompts . Answers < 'forceSubmit' > = await prompts ( [
90+ {
91+ type : 'confirm' ,
92+ name : 'forceSubmit' ,
93+ message : '当前已存在版本,是否继续强制提交审核?' ,
94+ initial : false ,
95+ } ,
96+ ] , {
97+ onCancel,
98+ } )
99+ if ( ! result . forceSubmit )
100+ throw new Error ( '退出提审' )
101+ else
102+ spinner . start ( )
103+ }
104+ }
105+ if ( isSubmitReviewBtnDisabled ) {
106+ // 撤回
107+ await page . evaluate ( ( ) => {
108+ const el : HTMLButtonElement | null = document . querySelector ( '.mod_default_bd.default_box.test_version .weui-desktop-dropdown__list-ele__text' )
109+ el ! . click ( )
110+ } )
111+ await sleep ( )
112+ const confirm = await page . $ ( 'body > div:nth-child(9) > div.weui-desktop-dialog__wrp.self-weui-modal > div > div.weui-desktop-dialog__ft > div > div:nth-child(2) > button' )
113+ await confirm ?. click ( )
114+ await sleep ( 2000 )
115+ submitReviewBtn = await page . waitForSelector ( submitReviewBtnSelector )
86116 }
87- await submitReviewBtn . click ( )
117+ await submitReviewBtn ! . click ( )
88118 await sleep ( 1200 ) // 可能会报错
89119 spinner . start ( '正在提交审核中...' )
90120 const agreeCheckbox = await page . waitForSelector ( '.weui-desktop-icon-checkbox' )
0 commit comments