From baf2ef9b6cff8e34af2e6d6a9588b757800eef73 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 04 十一月 2024 07:57:03 +0800
Subject: [PATCH] 考试开始就能阅卷
---
src/views/class-management/ClassStaff.vue | 173 ++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 103 insertions(+), 70 deletions(-)
diff --git a/src/views/class-management/ClassStaff.vue b/src/views/class-management/ClassStaff.vue
index 0df8115..99739bf 100644
--- a/src/views/class-management/ClassStaff.vue
+++ b/src/views/class-management/ClassStaff.vue
@@ -3,14 +3,14 @@
<div class="app-container">
<div style="display: flex; flex-direction: row">
<div style="padding-bottom:20px">
- <span class="item">{{ title }}</span>
+ <span class="item">{{ this.$route.query.className }}</span>
<el-button class="item" @click="handlerAddStudent" type="primary" size="small">鏂板瀛﹀憳</el-button>
- <el-button class="item" @click="open = true" type="primary" size="small">瀛﹀憳璋冩暣</el-button>
+ <el-button class="item" @click="openManage" type="primary" size="small">瀛﹀憳璋冩暣</el-button>
</div>
<div>
<el-form :inline="true" :model="searchForm" class="demo-form-inline">
<el-form-item label="瀛﹀憳濮撳悕">
- <el-input v-model="searchForm.studentName" size="small" clearable @clear="page"
+ <el-input v-model="searchForm.studentName" size="small" clearable @clear="page" @input="page"
placeholder="瀛﹀憳濮撳悕"></el-input>
</el-form-item>
<el-form-item>
@@ -53,22 +53,6 @@
label="鐢佃瘽"
>
</el-table-column>
- <el-table-column
- label="鎿嶄綔"
- align="center"
- width="300px"
- >
- <template slot-scope="scope">
- <el-button @click="handlerEditStudent(scope.row)" type="warning" size="small">缂栬緫</el-button>
- <el-popconfirm
- style="margin: 0 5px"
- title="纭畾瑕佸垹闄よ鎴愬憳鍚楋紵"
- @confirm="remove(scope.row.id)"
- >
- <el-button slot="reference" type="danger" size="small">鍒犻櫎</el-button>
- </el-popconfirm>
- </template>
- </el-table-column>
</el-table>
<div
class="block"
@@ -85,24 +69,35 @@
:before-close="handleAddClose"
:close-on-click-modal="false">
<el-form :model="studentForm" :rules="studentRules" ref="studentForm" label-width="100px" class="demo-ruleForm">
- <el-form-item label="濮撳悕" prop="realName">
- <el-input v-model="studentForm.realName"></el-input>
- </el-form-item>
- <el-form-item label="鎬у埆" prop="sex">
- <el-select v-model="studentForm.sex">
- <el-option label="鐢�" :value="1"></el-option>
- <el-option label="濂�" :value="2"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鐢佃瘽" prop="phone">
- <el-input v-model="studentForm.phone"></el-input>
- </el-form-item>
- <el-form-item label="鐧诲綍璐﹀彿" prop="account">
- <el-input v-model="studentForm.account"></el-input>
- </el-form-item>
- <el-form-item label="鐧诲綍瀵嗙爜" prop="password">
- <el-input v-model="studentForm.password" show-password placeholder="涓嶅~鍐欎細浣跨敤榛樿202406"></el-input>
- </el-form-item>
+ <el-form-item label="鐪熷疄濮撳悕锛�" prop="realName">
+ <el-input v-model="studentForm.realName"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵嬫満鍙风爜锛�" prop="phone">
+ <el-input v-model="studentForm.phone"></el-input>
+ </el-form-item>
+ <el-form-item label="鐧诲綍璐﹀彿锛�" prop="userName">
+ <el-input v-model="studentForm.userName" autocomplete="off"></el-input>
+ </el-form-item>
+ <el-form-item v-if="!studentForm.id" label="鐧诲綍瀵嗙爜锛�" prop="password">
+ <el-input v-model="studentForm.password" show-password autocomplete="off"></el-input>
+ </el-form-item>
+ <el-form-item label="骞撮緞锛�">
+ <el-input v-model="studentForm.age"></el-input>
+ </el-form-item>
+ <el-form-item label="鎬у埆锛�">
+ <el-select v-model="studentForm.sex" placeholder="鎬у埆" clearable>
+ <el-option v-for="item in sexEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍑虹敓鏃ユ湡锛�">
+ <el-date-picker v-model="studentForm.birthDay" type="date" value-format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡"/>
+ </el-form-item>
+
+ <el-form-item label="鐘舵�侊細">
+ <el-select v-model="studentForm.status" placeholder="鐘舵��">
+ <el-option v-for="item in statusEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
+ </el-select>
+ </el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="handleAddClose">鍙� 娑�</el-button>
@@ -139,6 +134,7 @@
<script>
// 寮曞叆褰堝嚭绐楀彛绲勪欢
import UserApi from '@/api/user'
+import { mapGetters, mapState } from 'vuex'
import {
updateClassesUser,
getClassesUsers,
@@ -147,33 +143,61 @@
editClassesUser
} from '@/api/classesUser'
import Pagination from '@/components/Pagination'
-import {deleteExamById} from "@/api/exam";
export default {
components: { Pagination },
data () {
+ var validatePassword = (rule, value, callback) => {
+ if (value === '') {
+ callback(new Error('璇疯緭鍏ョ櫥褰曞瘑鐮�'))
+ } else if (!/[A-Z]/.test(value)) {
+ callback(new Error('瀵嗙爜蹇呴』鍖呭惈鑷冲皯涓�涓ぇ鍐欏瓧姣�'))
+ } else if (!/[a-z]/.test(value)) {
+ callback(new Error('瀵嗙爜蹇呴』鍖呭惈鑷冲皯涓�涓皬鍐欏瓧姣�'))
+ } else if (!/[0-9]/.test(value)) {
+ callback(new Error('瀵嗙爜蹇呴』鍖呭惈鑷冲皯涓�涓暟瀛�'))
+ } else {
+ callback()
+ }
+ }
+ var validatePhone = (rule, value, callback) => {
+ // 鎵嬫満鍙峰拰搴ф満鍙烽獙璇侀�昏緫
+ const phoneRegex = /^1[3-9]\d{9}$/; // 鎵嬫満鍙锋牸寮�
+ const landlineRegex = /^\d{3,4}-?\d{7,8}$/; // 搴ф満鍙锋牸寮忥紝鍙互鍖呭惈鍖哄彿鍜屽彲閫夌殑杩炲瓧绗�
+
+ if (!value) {
+ callback(new Error('璇疯緭鍏ユ墜鏈哄彿鎴栧骇鏈哄彿'));
+ } else if (!phoneRegex.test(value)) {
+ if (!landlineRegex.test(value)){
+ callback(new Error('鎵嬫満鍙锋垨搴ф満鍙锋牸寮忎笉姝g‘'));
+ }
+ } else {
+ callback();
+ }
+ }
return {
studentForm: {
id: null,
realName: '',
sex: 1,
phone: '',
+ birthDay: '',
age: null,
- account: '',
+ userName: '',
password: ''
},
studentRules: {
- realName: [
- { required: true, message: '璇峰~鍐欏鍛樺鍚�', trigger: 'blur' },
+ userName: [
+ { required: true, message: '璇疯緭鍏ョ櫥褰曡处鍙�', trigger: 'blur' }
],
- sex: [
- { required: true, message: '璇烽�夋嫨瀛﹀憳鎬у埆', trigger: 'change' },
+ realName: [
+ { required: true, message: '璇疯緭鍏ョ湡瀹炲鍚�', trigger: 'blur' }
+ ],
+ password: [
+ { validator: validatePassword, trigger: 'blur' }
],
phone: [
- { required: true, message: '璇峰~鍐欏鍛樼數璇�', trigger: 'blur' },
- ],
- account: [
- { required: true, message: '璇峰~鍐欏鍛樼櫥褰曡处鍙�', trigger: 'blur' },
+ { validator: validatePhone, trigger: 'blur' }
]
},
studentTitle: '鏂板瀛﹀憳',
@@ -196,9 +220,9 @@
formLabelAlign: {
type: '',
user: '',
- region: '',
+ region: ''
},
- tableData: [],
+ tableData: []
}
},
mounted () {
@@ -208,6 +232,10 @@
this.getStudentList()
},
methods: {
+ openManage () {
+ this.getClassesCurrentUserList(this.classes.id)
+ this.open = true
+ },
handlerEditStudent (row) {
this.studentForm = row
this.studentTitle = '缂栬緫瀛﹀憳'
@@ -222,30 +250,25 @@
console.log(this.studentForm)
if (valid) {
this.studentForm.classesId = this.classes.id
- if (this.studentForm.id) {
- editClassesUser(this.studentForm).then(res => {
- this.addOpen = false
- this.$message.success(res.data.message)
- this.page()
- this.resetStudentForm()
- })
- }else {
- addClassesUser(this.studentForm).then(res => {
- this.addOpen = false
- this.$message.success(res.data.message)
- this.page()
- this.resetStudentForm()
- })
- }
+ addClassesUser(this.studentForm).then(res => {
+ this.addOpen = false
+ this.$message.success(res.data.message)
+ this.page()
+ this.resetStudentForm()
+ })
}
})
},
resetStudentForm () {
this.studentForm = {
+ id: null,
realName: '',
- sex: '',
+ sex: 1,
phone: '',
- age: null
+ birthDay: '',
+ age: null,
+ userName: '',
+ password: ''
}
},
handleAddClose () {
@@ -322,17 +345,28 @@
// 鐢熸垚璇曞嵎
getCreate () {
// 璺宠浆鍒扮敓鎴愰〉闈�
- //璺宠浆鍒板搴旂殑绠$悊椤甸潰
+ // 璺宠浆鍒板搴旂殑绠$悊椤甸潰
this.$router.push({
- path: '/manage/test-paper-generation',
+ path: '/manage/test-paper-generation'
})
},
// 寮圭獥
// 鎺ユ敹寮圭獥缁勪欢杩斿洖鐨勮〃鍗曞��
parentGoods (obj) {
console.log(obj, '寮圭獥缁勪欢鐨勮〃鍗曞��')
- },
+ }
},
+ computed: {
+ ...mapGetters('enumItem', [
+ 'enumFormat'
+ ]),
+ ...mapState('enumItem', {
+ sexEnum: state => state.user.sexEnum,
+ roleEnum: state => state.user.roleEnum,
+ statusEnum: state => state.user.statusEnum,
+ levelEnum: state => state.user.levelEnum
+ })
+ }
}
</script>
<style scoped lang="scss">
@@ -351,4 +385,3 @@
margin-right: 5px;
}
</style>
-
--
Gitblit v1.8.0