score.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <template>
  2. <div class="form">
  3. <el-form ref="form" :model="form" :rules="rules" label-width="120px">
  4. <el-form-item label="您的总分" prop="score">
  5. <el-input v-model="form.score" placeholder="请输入分数"></el-input>
  6. </el-form-item>
  7. <el-form-item label="您的首选科目" prop="firstSubject">
  8. <el-radio-group v-model="form.firstSubject" >
  9. <el-radio label="物理"></el-radio>
  10. <el-radio label="历史"></el-radio>
  11. </el-radio-group>
  12. </el-form-item>
  13. <el-form-item label="您的次选科目" prop="lastSubject">
  14. <el-checkbox-group v-model="form.lastSubject" :max="2">
  15. <el-checkbox label="化学" name="type"></el-checkbox>
  16. <el-checkbox label="生物" name="type"></el-checkbox>
  17. <el-checkbox label="政治" name="type"></el-checkbox>
  18. <el-checkbox label="地理" name="type"></el-checkbox>
  19. </el-checkbox-group>
  20. </el-form-item>
  21. <el-form-item label="您的位次">
  22. <el-input disabled placeholder="当前为估分模拟,不需填写位次"></el-input>
  23. <span class="f12 f-666 ml10">当前为估分模拟,不需填写排名</span>
  24. </el-form-item>
  25. <el-form-item label="">
  26. <el-button type="primary" class="btn" @click="next" >下一步</el-button>
  27. </el-form-item>
  28. </el-form>
  29. </div>
  30. </template>
  31. <script>
  32. export default {
  33. data() {
  34. var coustomValid = (rule, value, callback) => {
  35. if (rule.field == 'score' && value > 750) {
  36. return callback(new Error('成绩超出当前省份满分'));
  37. }
  38. if (rule.field == 'lastSubject' && value.length < 2) {
  39. return callback(new Error('请选择两项次选科目'));
  40. }
  41. callback();
  42. };
  43. return {
  44. form: {
  45. score: '',
  46. firstSubject: '',
  47. lastSubject: []
  48. },
  49. list: [],
  50. rules: {
  51. score: [
  52. { required: true, message: '请输入你的总分', trigger: 'blur' },
  53. { validator: coustomValid, trigger: 'blur' }
  54. ],
  55. firstSubject: [
  56. { required: true, message: '请选择首选科目', trigger: 'change' }
  57. ],
  58. lastSubject:[
  59. { required: true, message: '请选择次选科目', trigger: 'change' },
  60. { validator: coustomValid, trigger: 'change' }
  61. ]
  62. }
  63. }
  64. },
  65. methods: {
  66. next() {
  67. this.$refs.form.validate((valid) => {
  68. console.log(valid)
  69. if (valid) {
  70. this.$router.push({ path:'/zhiyuan/phase', query:{...this.form} })
  71. console.log('success submit!!');
  72. } else {
  73. console.log('error submit!!');
  74. return false;
  75. }
  76. })
  77. }
  78. }
  79. }
  80. </script>
  81. <style scoped lang="scss">
  82. .form{
  83. position: relative;
  84. padding: 40px 280px 10px 280px;
  85. }
  86. .form {
  87. ::v-deep {
  88. .el-form-item__label {
  89. padding-right: 25px;
  90. }
  91. .el-input {
  92. width: 300px;
  93. }
  94. }
  95. }
  96. .btn{
  97. width: 120px;
  98. margin-left: 83px;
  99. margin-top: 30px;
  100. }
  101. </style>