From 0bfd176a6ce29e88b1ec509853a451d3d66fa782 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期三, 30 十月 2024 22:10:14 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/class-management/ClassStaff.vue | 155 +++++++++++++++++++++++++++++++++------------------ 1 files changed, 100 insertions(+), 55 deletions(-) diff --git a/src/views/class-management/ClassStaff.vue b/src/views/class-management/ClassStaff.vue index 0df8115..53ae6fc 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> @@ -65,7 +65,7 @@ title="纭畾瑕佸垹闄よ鎴愬憳鍚楋紵" @confirm="remove(scope.row.id)" > - <el-button slot="reference" type="danger" size="small">鍒犻櫎</el-button> + <el-button slot="reference" type="danger" size="small" v-show="false">鍒犻櫎</el-button> </el-popconfirm> </template> </el-table-column> @@ -85,24 +85,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 +150,7 @@ <script> // 寮曞叆褰堝嚭绐楀彛绲勪欢 import UserApi from '@/api/user' +import { mapGetters, mapState } from 'vuex' import { updateClassesUser, getClassesUsers, @@ -147,33 +159,57 @@ 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}$/; + if (!value) { + callback(new Error('璇疯緭鍏ユ墜鏈哄彿')); + } else if (!phoneRegex.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 +232,9 @@ formLabelAlign: { type: '', user: '', - region: '', + region: '' }, - tableData: [], + tableData: [] } }, mounted () { @@ -208,6 +244,10 @@ this.getStudentList() }, methods: { + openManage () { + this.getClassesCurrentUserList(this.classes.id) + this.open = true + }, handlerEditStudent (row) { this.studentForm = row this.studentTitle = '缂栬緫瀛﹀憳' @@ -222,30 +262,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 +357,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 +397,3 @@ margin-right: 5px; } </style> - -- Gitblit v1.8.0