From cfa8eb6d8d35b58bb025cf4a2f3fab5e52c1ed7f Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Thu, 29 Oct 2026 22:00:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=BC=8F=E6=B4=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/admin/user.ts | 3 +- src/views/admin/system/user/index.vue | 139 ++------------------------ 2 files changed, 11 insertions(+), 131 deletions(-) diff --git a/src/api/admin/user.ts b/src/api/admin/user.ts index 5378b37..cc2780d 100644 --- a/src/api/admin/user.ts +++ b/src/api/admin/user.ts @@ -170,7 +170,7 @@ export function getSimpleUserAll(params?: { name?: string; mobile?: string; user /** 按原筛选条件提交后台分批导出。 */ export const submitUserExport = (query: Record) => submitExportTask("/admin/user/export-async", query) -/** 异步修复「密码=手机号」弱口令,返回任务进度(轮询 /admin/async-task/progress) */ +/** 线上已执行完,暂时关闭修复弱口令接口 export const fixPhoneAsPassword = (password: string) => { return request({ url: "/admin/user/fix-phone-as-password", @@ -178,3 +178,4 @@ export const fixPhoneAsPassword = (password: string) => { data: { password }, }) } +*/ diff --git a/src/views/admin/system/user/index.vue b/src/views/admin/system/user/index.vue index 9c2f819..c75280d 100644 --- a/src/views/admin/system/user/index.vue +++ b/src/views/admin/system/user/index.vue @@ -75,6 +75,7 @@ > 审批 +
@@ -236,33 +238,17 @@ - + -

{{ fixWeakPwdResultMessage }}

- - + ...
+ + --> -
@@ -270,9 +256,8 @@ import AsyncTaskProgressComponent from "/@/components/AsyncTaskProgress.vue" import { useBatchExport } from "/@/hooks/batchExport" import { submitUserExport as submitBatchExport } from "/@/api/admin/user" -import type { AsyncTaskPollingConfig, AsyncTaskProgress } from "/@/api/asyncTask" -import { delObj, pageList, putObj, fixPhoneAsPassword } from "/@/api/admin/user" +import { delObj, pageList, putObj } from "/@/api/admin/user" import { putGlobalFace } from "/@/api/admin/userFace" import { BasicTableProps, useTable } from "/@/hooks/table" import { useMessage, useMessageBox } from "/@/hooks/message" @@ -281,8 +266,6 @@ import { auth } from "/@/utils/authFunction" import { getDicts } from "/@/api/admin/dict" import ProcessDrawer from "/@/components/processDrawer/index.vue" import { useDict } from "/@/hooks/dict" -import { downloadExportFile } from "/@/utils/exportDownload" -import other from "/@/utils/other" const UserForm = defineAsyncComponent(() => import("./form.vue")) const FaceManage = defineAsyncComponent(() => import("./face-manage.vue")) @@ -444,109 +427,5 @@ const changePassword = async (row: any) => { getDataList() } -const fixWeakPwdVisible = ref(false) -const fixWeakPwdLoading = ref(false) -const fixWeakPwdForm = reactive({ password: "" }) -const fixWeakPwdResultVisible = ref(false) -const fixWeakPwdResultMessage = ref("") -const fixWeakPwdResultText = ref("") -const fixWeakPwdResultFileUrl = ref("") -const fixWeakPwdResultFileName = ref("弱口令修复名单.txt") -const fixWeakPwdProgressRef = ref>() -const fixWeakPwdTaskConfig: AsyncTaskPollingConfig = { - progressUrl: "/admin/async-task/progress", - redisKey: "admin:fix:phone-password", - waitingMessage: "正在后台分页扫描用户密码,人多时可能较久,请勿关闭页面", - downloadButtonText: "下载名单", - pollTimeoutMs: 6 * 60 * 60 * 1000, -} - -const openFixWeakPwdDialog = () => { - fixWeakPwdForm.password = "" - fixWeakPwdVisible.value = true -} - -const resolveFileAbsoluteUrl = (fileUrl: string) => { - if (!fileUrl) return "" - if (/^https?:\/\//i.test(fileUrl)) return fileUrl - return `${String(import.meta.env.VITE_API_URL || "").replace(/\/$/, "")}${other.adaptationUrl(fileUrl)}` -} - -const submitFixWeakPwd = async () => { - const pwd = (fixWeakPwdForm.password || "").trim() - if (!pwd || pwd.length < 8) { - useMessage().error("新密码长度不能少于8位") - return - } - if (!/[A-Za-z]/.test(pwd) || !/[0-9]/.test(pwd)) { - useMessage().error("新密码必须同时包含字母和数字") - return - } - try { - await useMessageBox().confirm("确认将所有「密码=手机号」账号重置为该统一新密码?此操作不可撤销,将在后台异步执行。") - } catch { - return - } - fixWeakPwdLoading.value = true - fixWeakPwdProgressRef.value?.startSubmitting("修复弱口令") - try { - const { data } = await fixPhoneAsPassword(pwd) - if (!data?.taskId) throw new Error("任务响应缺少任务 ID") - fixWeakPwdVisible.value = false - fixWeakPwdProgressRef.value?.start(data) - } catch (err: any) { - const message = err.msg || err.message || "修复任务提交失败" - fixWeakPwdProgressRef.value?.submissionFailed(message) - useMessage().error(message) - } finally { - fixWeakPwdLoading.value = false - } -} - -const handleFixWeakPwdSuccess = async (progress: AsyncTaskProgress) => { - fixWeakPwdResultMessage.value = progress.message || "修复完成" - fixWeakPwdResultFileUrl.value = progress.resultFileUrl || "" - fixWeakPwdResultFileName.value = progress.resultFileName || "弱口令修复名单.txt" - fixWeakPwdResultText.value = "" - if (progress.resultFileUrl) { - try { - downloadExportFile(progress.resultFileUrl, fixWeakPwdResultFileName.value) - } catch { - /* 下载失败仍展示结果弹窗 */ - } - try { - const abs = resolveFileAbsoluteUrl(progress.resultFileUrl) - const resp = await fetch(abs) - if (resp.ok) { - fixWeakPwdResultText.value = await resp.text() - } - } catch { - /* 跨域或鉴权失败时靠下载的 txt */ - } - } - fixWeakPwdResultVisible.value = true - useMessage().success(progress.message || "修复完成") -} - -const handleFixWeakPwdFailure = (progress: AsyncTaskProgress) => { - useMessage().error(progress.message || "修复弱口令失败") -} - -const downloadFixWeakPwdResult = () => { - if (!fixWeakPwdResultFileUrl.value) return - try { - downloadExportFile(fixWeakPwdResultFileUrl.value, fixWeakPwdResultFileName.value) - } catch (error: any) { - useMessage().error(error?.message || "下载名单失败") - } -} - -const copyFixWeakPwdResult = async () => { - try { - await navigator.clipboard.writeText(fixWeakPwdResultText.value) - useMessage().success("名单已复制") - } catch { - useMessage().error("复制失败,请手动全选复制或下载名单") - } -} +// 线上已执行完,暂时注释修复弱口令入口相关逻辑(按钮/弹窗/异步进度)