luohairen
2024-10-30 aed4c4e0513ac51226e690606ff3797f5355a750
src/views/class-management/ClassStaff.vue
@@ -85,16 +85,16 @@
      :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" required>
        <el-form-item label="真实姓名:" prop="realName">
        <el-input v-model="studentForm.realName"></el-input>
      </el-form-item>
      <el-form-item label="手机号码:" prop="phone" required>
      <el-form-item label="手机号码:" prop="phone">
        <el-input v-model="studentForm.phone"></el-input>
      </el-form-item>
      <el-form-item label="登录账号:" prop="userName" required>
      <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" required>
      <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="年龄:">
@@ -109,7 +109,7 @@
        <el-date-picker v-model="studentForm.birthDay" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"/>
      </el-form-item>
      <el-form-item label="状态:" required>
      <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>
@@ -163,6 +163,30 @@
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('手机号格式不正确'));
      } else {
        callback();
      }
    }
    return {
      studentForm: {
        id: null,
@@ -175,17 +199,17 @@
        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' }
        ],
        userName: [
          { required: true, message: '请填写学员登录账号', trigger: 'blur' }
          { validator: validatePhone, trigger: 'blur' }
        ]
      },
      studentTitle: '新增学员',
@@ -238,23 +262,12 @@
        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()
            })
            window.location.reload()
          } else {
            addClassesUser(this.studentForm).then(res => {
              this.addOpen = false
              this.$message.success(res.data.message)
              this.page()
              this.resetStudentForm()
            })
            window.location.reload()
          }
          addClassesUser(this.studentForm).then(res => {
            this.addOpen = false
            this.$message.success(res.data.message)
            this.page()
            this.resetStudentForm()
          })
        }
      })
    },