【修改】试卷任务共享,知识点全选,操作题试题考点的移动,考点设置的题干位置,监控管理更新时间,清除缓存去掉提示
This commit is contained in:
@@ -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[]) // 租户套餐
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user