|
@@ -5,12 +5,13 @@
|
|
<el-form ref="form" :model="formData" :rules="formRules" :validate-on-rule-change="false" label-position="right"
|
|
<el-form ref="form" :model="formData" :rules="formRules" :validate-on-rule-change="false" label-position="right"
|
|
label-width="70px">
|
|
label-width="70px">
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
- <el-col :span="14">
|
|
|
|
|
|
+ <el-col :span="24">
|
|
<el-form-item prop="username" label="姓 名">
|
|
<el-form-item prop="username" label="姓 名">
|
|
<el-input type="text" v-model="formData.username" placeholder="请输入姓名"></el-input>
|
|
<el-input type="text" v-model="formData.username" placeholder="请输入姓名"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="10">
|
|
|
|
|
|
+ <!-- 暂时不需要学年,学年从年级上选择 -->
|
|
|
|
+ <el-col v-if="false" :span="10">
|
|
<el-form-item prop="year" label="学 年">
|
|
<el-form-item prop="year" label="学 年">
|
|
<el-select v-model="formData.year" placeholder="请选择学年">
|
|
<el-select v-model="formData.year" placeholder="请选择学年">
|
|
<el-option v-for="(y, idx) in yearOptions" :key="idx" :label="y" :value="y"></el-option>
|
|
<el-option v-for="(y, idx) in yearOptions" :key="idx" :label="y" :value="y"></el-option>
|
|
@@ -47,10 +48,10 @@
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
<el-form-item v-if="isFrontStudent" prop="clazzId" label="班 级">
|
|
<el-form-item v-if="isFrontStudent" prop="clazzId" label="班 级">
|
|
<el-cascader
|
|
<el-cascader
|
|
- v-model="formData.clazzId"
|
|
|
|
- :disabled="!formData.schoolId"
|
|
|
|
- :placeholder="formData.schoolId?'选择年级-班级':'请先选择学校'"
|
|
|
|
- :options="classTree"
|
|
|
|
|
|
+ v-model="formData.clazzId"
|
|
|
|
+ :disabled="!formData.schoolId"
|
|
|
|
+ :placeholder="formData.schoolId?'选择年级-班级':'请先选择学校'"
|
|
|
|
+ :options="classTree"
|
|
></el-cascader>
|
|
></el-cascader>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -59,12 +60,12 @@
|
|
<!-- 这里的name另外定义了一个,因为内部for循环+v-model方式会引发循环赋值(uni-app的实现问题) -->
|
|
<!-- 这里的name另外定义了一个,因为内部for循环+v-model方式会引发循环赋值(uni-app的实现问题) -->
|
|
<el-form-item prop="gradeClass" label="年级组">
|
|
<el-form-item prop="gradeClass" label="年级组">
|
|
<el-cascader
|
|
<el-cascader
|
|
- v-model="formData.gradeClass"
|
|
|
|
- :disabled="!formData.schoolId"
|
|
|
|
- :options="classTree"
|
|
|
|
- :placeholder="formData.schoolId?'选择年级组':'请先选择学校'"
|
|
|
|
- :props="{multiple:true}"
|
|
|
|
- class="width100"
|
|
|
|
|
|
+ v-model="formData.gradeClass"
|
|
|
|
+ :disabled="!formData.schoolId"
|
|
|
|
+ :options="classTree"
|
|
|
|
+ :placeholder="formData.schoolId?'选择年级组':'请先选择学校'"
|
|
|
|
+ :props="{multiple:true}"
|
|
|
|
+ class="width100"
|
|
></el-cascader>
|
|
></el-cascader>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
@@ -76,12 +77,12 @@
|
|
<el-col :span="18">
|
|
<el-col :span="18">
|
|
<el-form-item v-if="formData.isHeadteacher" prop="headteacherClassId" label="带 班" required>
|
|
<el-form-item v-if="formData.isHeadteacher" prop="headteacherClassId" label="带 班" required>
|
|
<el-cascader
|
|
<el-cascader
|
|
- :disabled="!formData.schoolId"
|
|
|
|
- :options="classTree"
|
|
|
|
- v-model="formData.headteacherClassId"
|
|
|
|
- :placeholder="formData.schoolId?'选择年级-班级':'请先选择学校'"
|
|
|
|
- :props="{emitPath: false}"
|
|
|
|
- class="width100"
|
|
|
|
|
|
+ :disabled="!formData.schoolId"
|
|
|
|
+ :options="classTree"
|
|
|
|
+ v-model="formData.headteacherClassId"
|
|
|
|
+ :placeholder="formData.schoolId?'选择年级-班级':'请先选择学校'"
|
|
|
|
+ :props="{emitPath: false}"
|
|
|
|
+ class="width100"
|
|
></el-cascader>
|
|
></el-cascader>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -98,10 +99,10 @@
|
|
<div class="fx-row fx-bet-cen">
|
|
<div class="fx-row fx-bet-cen">
|
|
<el-input type="text" v-model="formData.code" placeholder="请输入验证码" class="fx-1"></el-input>
|
|
<el-input type="text" v-model="formData.code" placeholder="请输入验证码" class="fx-1"></el-input>
|
|
<el-button
|
|
<el-button
|
|
- type="primary"
|
|
|
|
- class="mx-send"
|
|
|
|
- :class="{'inactive':countdown>0}"
|
|
|
|
- @click="handleSendSms"
|
|
|
|
|
|
+ type="primary"
|
|
|
|
+ class="mx-send"
|
|
|
|
+ :class="{'inactive':countdown>0}"
|
|
|
|
+ @click="handleSendSms"
|
|
>{{ countdown > 0 ? `(${countdown})秒` : '获取' }}
|
|
>{{ countdown > 0 ? `(${countdown})秒` : '获取' }}
|
|
</el-button>
|
|
</el-button>
|
|
</div>
|
|
</div>
|
|
@@ -123,12 +124,7 @@ import transferMixin from '@/components/mx-transfer-mixin.js'
|
|
import userValidateMixin from '@/views/components/user-validation-mixin.js'
|
|
import userValidateMixin from '@/views/components/user-validation-mixin.js'
|
|
import { getSubjectsList } from '@/api/webApi/system'
|
|
import { getSubjectsList } from '@/api/webApi/system'
|
|
import { getAllGradeClasses } from '@/api/webApi/grade'
|
|
import { getAllGradeClasses } from '@/api/webApi/grade'
|
|
-import {
|
|
|
|
- getAreaSchoolAndYears,
|
|
|
|
- improveUserInfo,
|
|
|
|
- sendSms,
|
|
|
|
- validateSms
|
|
|
|
-} from '@/api/login'
|
|
|
|
|
|
+import { getAreaSchoolAndYears, improveUserInfo, sendSms, validateSms } from '@/api/login'
|
|
import { mapGetters } from 'vuex'
|
|
import { mapGetters } from 'vuex'
|
|
|
|
|
|
export default {
|
|
export default {
|
|
@@ -171,9 +167,9 @@ export default {
|
|
},
|
|
},
|
|
groupedSchoolOptions() {
|
|
groupedSchoolOptions() {
|
|
return this.schoolOptions.groupBy(
|
|
return this.schoolOptions.groupBy(
|
|
- (sc) => sc.area,
|
|
|
|
- 'label',
|
|
|
|
- 'options'
|
|
|
|
|
|
+ (sc) => sc.area,
|
|
|
|
+ 'label',
|
|
|
|
+ 'options'
|
|
)
|
|
)
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -206,7 +202,7 @@ export default {
|
|
this.rawClassTree = res.data
|
|
this.rawClassTree = res.data
|
|
// 挂载动态属性,用于表单校验
|
|
// 挂载动态属性,用于表单校验
|
|
this.rawClassTree.forEach(
|
|
this.rawClassTree.forEach(
|
|
- (grade) => (this.formData.gradeClass[grade.name] = [])
|
|
|
|
|
|
+ (grade) => (this.formData.gradeClass[grade.name] = [])
|
|
)
|
|
)
|
|
})
|
|
})
|
|
},
|
|
},
|
|
@@ -235,28 +231,28 @@ export default {
|
|
code: this.formData.code
|
|
code: this.formData.code
|
|
}
|
|
}
|
|
validateSms(validateData)
|
|
validateSms(validateData)
|
|
- .then((_) => {
|
|
|
|
- // 从formData到提交结构还需要轻微转换
|
|
|
|
- const postData = this.formDataToPostData(
|
|
|
|
- this.formData,
|
|
|
|
- this.rawClassTree
|
|
|
|
- )
|
|
|
|
- console.log(
|
|
|
|
- 'sms code valid & will post data',
|
|
|
|
- postData
|
|
|
|
- )
|
|
|
|
- improveUserInfo(postData)
|
|
|
|
- .then((res) => {
|
|
|
|
- // reset login token
|
|
|
|
- auth.setToken(res.data.token)
|
|
|
|
- this.$store.dispatch('GetInfo').then((_) => {
|
|
|
|
- // to index page
|
|
|
|
- this.$emit('completed')
|
|
|
|
- })
|
|
|
|
- })
|
|
|
|
- .finally(() => this.loading = false)
|
|
|
|
- })
|
|
|
|
- .finally(() => this.loading = false)
|
|
|
|
|
|
+ .then((_) => {
|
|
|
|
+ // 从formData到提交结构还需要轻微转换
|
|
|
|
+ const postData = this.formDataToPostData(
|
|
|
|
+ this.formData,
|
|
|
|
+ this.rawClassTree
|
|
|
|
+ )
|
|
|
|
+ console.log(
|
|
|
|
+ 'sms code valid & will post data',
|
|
|
|
+ postData
|
|
|
|
+ )
|
|
|
|
+ improveUserInfo(postData)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ // reset login token
|
|
|
|
+ auth.setToken(res.data.token)
|
|
|
|
+ this.$store.dispatch('GetInfo').then((_) => {
|
|
|
|
+ // to index page
|
|
|
|
+ this.$emit('completed')
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ .finally(() => this.loading = false)
|
|
|
|
+ })
|
|
|
|
+ .finally(() => this.loading = false)
|
|
})
|
|
})
|
|
},
|
|
},
|
|
beginCountDown() {
|
|
beginCountDown() {
|