|
|
@@ -302,6 +302,13 @@
|
|
|
<a-form-item field="student_num" label="学号">
|
|
|
<a-input v-model="form.student_num" placeholder="账号所有者学号,填写错误将无法登录" allow-clear />
|
|
|
</a-form-item>
|
|
|
+ <a-form-item field="jw_password" label="教务密码" :required="!form.id">
|
|
|
+ <a-input-password v-model="form.jw_password" placeholder="统一身份认证密码(登录名与上方学号相同)" allow-clear />
|
|
|
+ <template #extra>
|
|
|
+ <span v-if="!form.id">新绑定必填;服务端将校验并通过 WebVPN 访问乐跑接口。</span>
|
|
|
+ <span v-else>留空则不修改已保存的教务密码;填写则更新并重新校验。</span>
|
|
|
+ </template>
|
|
|
+ </a-form-item>
|
|
|
<a-form-item field="notice_type" label="通知方式">
|
|
|
<a-radio-group v-model="form.notice_type">
|
|
|
<a-radio value="email"><icon-email /> 邮件</a-radio>
|
|
|
@@ -510,6 +517,7 @@ const autoFillText = ref('')
|
|
|
const form = reactive({
|
|
|
id: null,
|
|
|
student_num: '',
|
|
|
+ jw_password: '',
|
|
|
email: '',
|
|
|
area: '',
|
|
|
auto_time: -1,
|
|
|
@@ -603,6 +611,7 @@ const editAccount = (item) => {
|
|
|
if (item) {
|
|
|
form.id = item.id
|
|
|
form.student_num = item.student_num
|
|
|
+ form.jw_password = ''
|
|
|
form.email = item.email
|
|
|
form.area = item.area
|
|
|
form.auto_time = item.auto_time
|
|
|
@@ -615,6 +624,7 @@ const editAccount = (item) => {
|
|
|
} else {
|
|
|
form.id = null
|
|
|
form.student_num = ''
|
|
|
+ form.jw_password = ''
|
|
|
form.email = ''
|
|
|
form.auto_run = 1
|
|
|
form.auto_time = -1
|
|
|
@@ -643,16 +653,23 @@ const handleBeforeOk = async (done) => {
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
+ const jwPlain = (form.jw_password || '').trim()
|
|
|
+ if (!form.id && !jwPlain) {
|
|
|
+ Message.error('请填写教务系统密码(统一身份认证密码)')
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
|
|
|
if (notice_type === 'email' && !emailRegex.test(email)) {
|
|
|
Message.error('请检查邮箱格式是否正确')
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
- let data = {
|
|
|
- ...form
|
|
|
+ const data = { ...form }
|
|
|
+ delete data.jw_password
|
|
|
+ if (jwPlain) {
|
|
|
+ data.jw_password = btoa(jwPlain)
|
|
|
}
|
|
|
-
|
|
|
const res = await addAccount(data)
|
|
|
if (!res || res.code !== 0) {
|
|
|
Notification.error({
|