【修改】试卷任务共享,知识点全选,操作题试题考点的移动,考点设置的题干位置,监控管理更新时间,清除缓存去掉提示

This commit is contained in:
huababa1
2025-10-16 19:15:32 +08:00
parent 6d6fb0b04a
commit 450d458d08
46 changed files with 1064 additions and 163 deletions

View File

@@ -7,8 +7,8 @@
:rules="formRules"
label-width="120px"
>
<el-form-item label="学校用户名" prop="name">
<el-input v-model="formData.name" placeholder="请输入学校用户名" />
<el-form-item label="学校名" prop="name">
<el-input v-model="formData.name" placeholder="请输入学校名" />
</el-form-item>
<el-form-item label="学校用户权限" prop="packageId">
<el-select v-model="formData.packageId" clearable placeholder="请选择学校用户权限">
@@ -26,13 +26,13 @@
<el-form-item label="联系手机" prop="contactMobile">
<el-input v-model="formData.contactMobile" placeholder="请输入联系手机" />
</el-form-item>
<el-form-item v-if="formData.id === undefined" label="用户名称" prop="username">
<el-input v-model="formData.username" placeholder="请输入用户名称" />
<el-form-item v-if="formData.id === undefined" label="管理员账号" prop="username">
<el-input v-model="formData.username" placeholder="管理员账号" />
</el-form-item>
<el-form-item v-if="formData.id === undefined" label="用户密码" prop="password">
<el-form-item v-if="formData.id === undefined" label="管理员密码" prop="password">
<el-input
v-model="formData.password"
placeholder="请输入用户密码"
placeholder="请输入管理员密码"
show-password
type="password"
/>
@@ -54,8 +54,8 @@
value-format="x"
/>
</el-form-item>
<el-form-item label="绑定域名" prop="website">
<el-input v-model="formData.website" placeholder="请输入绑定域名" />
<el-form-item label="绑定MAC地址" prop="website">
<el-input v-model="formData.website" placeholder="请输入绑定MAC地址" />
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="formData.status">
@@ -111,14 +111,14 @@ const formData = ref({
password: undefined
})
const formRules = reactive({
name: [{ required: true, message: '学校用户名不能为空', trigger: 'blur' }],
name: [{ required: true, message: '学校名不能为空', trigger: 'blur' }],
packageId: [{ required: true, message: '学校用户权限不能为空', trigger: 'blur' }],
contactName: [{ required: true, message: '联系人不能为空', trigger: 'blur' }],
status: [{ required: true, message: '状态不能为空', trigger: 'blur' }],
expireTime: [{ required: true, message: '过期时间不能为空', trigger: 'blur' }],
website: [{ required: true, message: '绑定域名不能为空', trigger: 'blur' }],
username: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }],
password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }]
website: [{ required: true, message: '绑定MAC地址不能为空', trigger: 'blur' }],
username: [{ required: true, message: '管理员账号不能为空', trigger: 'blur' }],
password: [{ required: true, message: '管理员密码不能为空', trigger: 'blur' }]
})
const formRef = ref() // 表单 Ref
const packageList = ref([] as TenantPackageApi.TenantPackageVO[]) // 租户套餐

View File

@@ -10,10 +10,10 @@
:inline="true"
label-width="68px"
>
<el-form-item label="学校用户名" prop="name">
<el-form-item label="学校名" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入学校用户名"
placeholder="请输入学校名"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
@@ -125,7 +125,8 @@
width="180"
:formatter="dateFormatter"
/>
<el-table-column label="绑定域名" align="center" prop="website" width="180" />
<el-table-column label="绑定MAC地址" align="center" prop="website" width="180" />
<el-table-column label="管理员账号" align="center" prop="username" width="180" />
<el-table-column label="状态" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
@@ -138,20 +139,20 @@
width="180"
:formatter="dateFormatter"
/>
<el-table-column
<!-- <el-table-column
label="连接状态(需点击状态刷新)"
align="center"
prop="websiteStatus"
width="180"
/>
/> -->
<el-table-column label="操作" align="center" min-width="110" fixed="right">
<template #default="scope">
<el-button
link
type="primary"
@click="openStatus(scope.row)"
@click="setPassword(scope.row.contactUserId)"
>
状态
重置密码
</el-button>
<el-button
link
@@ -260,6 +261,55 @@ const openStatus = (row: any) => {
}
})
}
const setPassword = async (id) => {
if (!id) return
try {
// 1⃣ 弹出输入框,让管理员输入新密码
const { value: newPassword } = await ElMessageBox.prompt('请输入新的密码:', '重置密码', {
confirmButtonText: '下一步',
cancelButtonText: '取消',
inputType: 'password',
inputPlaceholder: '请输入新密码',
inputValidator: (val) => {
if (!val) return '密码不能为空'
if (val.length < 4) return '密码至少 4 位'
return true
},
})
// 2⃣ 再次确认是否要重置
await ElMessageBox.confirm(
`确认将该用户密码重置为:${newPassword}`,
'确认操作',
{
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
}
)
// 3⃣ 调用后端接口发请求
const data = {
id,
password: newPassword,
}
const res = await TenantApi.resetPassword(data) d
// 4⃣ 显示成功提示
ElMessage.success(res?.msg || '密码重置成功!')
} catch (err) {
if (err === 'cancel' || err === 'close') {
// 用户取消操作
return
}
console.error('重置密码失败:', err)
ElMessage.error('操作失败,请重试')
}
}
/** 获取时分秒 */
const getTimeWithAmPm = (): string => {
const now = new Date()