显示明文密码
This commit is contained in:
@@ -5,29 +5,13 @@ const message = useMessage()
|
|||||||
const prefix = ref("")
|
const prefix = ref("")
|
||||||
const rawInput = ref("")
|
const rawInput = ref("")
|
||||||
const [needKs] = useToggle(true)
|
const [needKs] = useToggle(true)
|
||||||
|
const [loading, toggleLoading] = useToggle()
|
||||||
const users = shallowRef<string[][]>([])
|
const users = shallowRef<string[][]>([])
|
||||||
|
|
||||||
const columns: DataTableColumn[] = [
|
|
||||||
{ title: "用户名", key: "username" },
|
|
||||||
{ title: "密码", key: "password" },
|
|
||||||
{ title: "邮箱", key: "email" },
|
|
||||||
{ title: "真名", key: "realName" },
|
|
||||||
]
|
|
||||||
|
|
||||||
const usersToTable = computed(() => {
|
|
||||||
return users.value.map((u) => {
|
|
||||||
const username = u[0]
|
|
||||||
const password = u[1]
|
|
||||||
const email = u[2]
|
|
||||||
const realName = u[3]
|
|
||||||
return { username, password, realName, email }
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
function generateUsers() {
|
function generateUsers() {
|
||||||
if (!rawInput.value || !rawInput.value.trim()) {
|
if (!rawInput.value || !rawInput.value.trim()) {
|
||||||
message.info("请填写相关内容")
|
message.info("请填写相关内容")
|
||||||
return
|
return false
|
||||||
}
|
}
|
||||||
// 自动加上 ks 的开头
|
// 自动加上 ks 的开头
|
||||||
let myClass = ""
|
let myClass = ""
|
||||||
@@ -50,10 +34,12 @@ function generateUsers() {
|
|||||||
const email = `${myClass}.${i + 1}@example.com`
|
const email = `${myClass}.${i + 1}@example.com`
|
||||||
return [username, password, email, realName]
|
return [username, password, email, realName]
|
||||||
})
|
})
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
async function uploadUsers() {
|
async function uploadUsers() {
|
||||||
try {
|
try {
|
||||||
|
toggleLoading(true)
|
||||||
await importUsers(users.value)
|
await importUsers(users.value)
|
||||||
message.success("用户已上传成功")
|
message.success("用户已上传成功")
|
||||||
const csv = users.value.map((u) => u.join(",")).join("\n")
|
const csv = users.value.map((u) => u.join(",")).join("\n")
|
||||||
@@ -65,12 +51,16 @@ async function uploadUsers() {
|
|||||||
hiddenElement.remove()
|
hiddenElement.remove()
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
message.error("上传失败:" + err.data)
|
message.error("上传失败:" + err.data)
|
||||||
|
} finally {
|
||||||
|
toggleLoading(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleAll() {
|
async function submit() {
|
||||||
generateUsers()
|
const ok = generateUsers()
|
||||||
uploadUsers()
|
if (ok) {
|
||||||
|
uploadUsers()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -81,27 +71,20 @@ function handleAll() {
|
|||||||
<n-switch v-model:value="needKs" />
|
<n-switch v-model:value="needKs" />
|
||||||
<span>前面带上 ks</span>
|
<span>前面带上 ks</span>
|
||||||
</n-flex>
|
</n-flex>
|
||||||
<n-input style="width: 200px;" v-model:value="prefix" placeholder="班级号" />
|
<n-input
|
||||||
|
style="width: 200px"
|
||||||
|
v-model:value="prefix"
|
||||||
|
placeholder="班级号"
|
||||||
|
/>
|
||||||
<n-input
|
<n-input
|
||||||
type="textarea"
|
type="textarea"
|
||||||
class="inputArea"
|
class="inputArea"
|
||||||
placeholder="每行一个用户名"
|
placeholder="每行一个用户名"
|
||||||
v-model:value="rawInput"
|
v-model:value="rawInput"
|
||||||
/>
|
/>
|
||||||
</n-flex>
|
<n-button type="warning" :loading="loading" @click="submit">
|
||||||
<n-scrollbar style="max-height: calc(100vh - 34px)">
|
确定导入
|
||||||
<n-data-table
|
|
||||||
v-if="usersToTable.length"
|
|
||||||
:columns="columns"
|
|
||||||
:data="usersToTable"
|
|
||||||
/>
|
|
||||||
</n-scrollbar>
|
|
||||||
<n-flex vertical>
|
|
||||||
<n-button @click="generateUsers">让我康康</n-button>
|
|
||||||
<n-button type="warning" :disabled="!users.length" @click="uploadUsers">
|
|
||||||
上传用户
|
|
||||||
</n-button>
|
</n-button>
|
||||||
<n-button type="info" @click="handleAll">一键三连</n-button>
|
|
||||||
</n-flex>
|
</n-flex>
|
||||||
</n-space>
|
</n-space>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -33,6 +33,11 @@ const columns: DataTableColumn<User>[] = [
|
|||||||
width: 200,
|
width: 200,
|
||||||
render: (row) => h(Name, { user: row }),
|
render: (row) => h(Name, { user: row }),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "密码",
|
||||||
|
key: "raw_password",
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "创建时间",
|
title: "创建时间",
|
||||||
key: "create_time",
|
key: "create_time",
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const form = reactive({
|
|||||||
password: "",
|
password: "",
|
||||||
})
|
})
|
||||||
const classList = computed<SelectOption[]>(() => {
|
const classList = computed<SelectOption[]>(() => {
|
||||||
const defaults = [{ label: "不用填", value: "" }]
|
const defaults = [{ label: "没有我所在的班级", value: "" }]
|
||||||
const configs =
|
const configs =
|
||||||
configStore.config?.class_list.map((item) => ({
|
configStore.config?.class_list.map((item) => ({
|
||||||
label: `${item.slice(0, 2)}计算机${item.slice(2)}班`,
|
label: `${item.slice(0, 2)}计算机${item.slice(2)}班`,
|
||||||
@@ -85,9 +85,9 @@ function goSignup() {
|
|||||||
1. 如果是上课统一生成的账号,选择【相应班级】,用户名直接写自己的名字
|
1. 如果是上课统一生成的账号,选择【相应班级】,用户名直接写自己的名字
|
||||||
<br />
|
<br />
|
||||||
2.
|
2.
|
||||||
同样是上课用的号,但是没有你的班级。选择【不用填】,用户名要写:ks班级+姓名,比如23计算机1班张三,就写ks231张三
|
同样是上课用的号,但是没有你的班级。选择【没有我所在的班级】,用户名要写:ks班级+姓名,比如23计算机1班张三,就写ks231张三
|
||||||
<br />
|
<br />
|
||||||
3. 如果是自己注册的号,选择【不用填】 <br />
|
3. 如果是自己注册的号,选择【没有我所在的班级】 <br />
|
||||||
</n-alert>
|
</n-alert>
|
||||||
<n-form-item label="选择班级" path="class" :show-require-mark="false">
|
<n-form-item label="选择班级" path="class" :show-require-mark="false">
|
||||||
<n-select
|
<n-select
|
||||||
@@ -111,7 +111,6 @@ function goSignup() {
|
|||||||
clearable
|
clearable
|
||||||
type="password"
|
type="password"
|
||||||
name="login password"
|
name="login password"
|
||||||
@change="submit"
|
|
||||||
/>
|
/>
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
<n-alert v-if="msg" type="error" :show-icon="false"> {{ msg }}</n-alert>
|
<n-alert v-if="msg" type="error" :show-icon="false"> {{ msg }}</n-alert>
|
||||||
|
|||||||
Reference in New Issue
Block a user