Browse Source

新增预约考试入口和开放我的考试入口

xuqiaoying 3 years ago
parent
commit
54999589bd

+ 2 - 2
src/pages/person-center/index.vue

@@ -114,9 +114,9 @@
                 <router-link to="/person-center/my-classhour">
                   <div class="item">我的学时</div>
                 </router-link>
-                <!-- <router-link to="/person-center/my-examination">
+                <router-link to="/person-center/my-examination">
                   <div class="item">我的考试</div>
-                </router-link> -->
+                </router-link>
                 <router-link to="/person-center/my-mock">
                   <div class="item">我的模考</div>
                 </router-link>

+ 82 - 0
src/pages/person-center/my-course/components/AppointTest.vue

@@ -0,0 +1,82 @@
+<template>
+    <div class="appoint_test">
+        <el-dialog
+            title="预约考试"
+            :visible.sync="appointModal"
+            width="600px"
+            class="appoint-modal"
+            :close-on-click-modal="false"
+            :close-on-press-escape="false"
+            :before-close="cancel"
+        >
+            <div class="appoint-modal__content">
+                <el-radio
+                    v-for="(appointChild, appointIndex) in appointItem.examApplyGoodsList"
+                    v-model="applyId"
+                    :key="appointIndex"
+                    :label="appointChild.applyId"
+                >
+                    {{ appointChild.applyName }}
+                </el-radio>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="cancel()">取 消</el-button>
+                <el-button type="primary" @click="confirmAppoint">立即预约</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'appoint_test',
+    props: {
+        appointModal: {
+            type: Boolean,
+            default: false,
+        },
+        appointItem: {
+            type: Object,
+            default: () => {}
+        },
+    },
+    data() {
+        return {
+            applyId: "",
+        }
+    },
+    methods: {
+        cancel() {
+            this.$emit('update:appointModal', false)
+        },
+        confirmAppoint() {
+            if (!this.applyId) {
+                this.$message.warning("请选择要预约的考试");
+                return;
+            }
+            var data = {
+                goodsId: this.appointItem.goodsId,
+                gradeId: this.appointItem.gradeId,
+                applyId: this.applyId,
+                orderGoodsId: this.appointItem.orderGoodsId,
+            };
+            this.$request.getApplysubscribe(data).then((res) => {
+                this.$router.push({
+                    path: "/person-center/my-classhour/appointment",
+                    query: {
+                    goodsId: this.appointItem.goodsId,
+                    gradeId: this.appointItem.gradeId,
+                    orderGoodsId: this.appointItem.orderGoodsId,
+                    applyId: this.applyId,
+                    },
+                });
+            }).catch((err) => {
+                this.$message({
+                    type: "warning",
+                    message: err.msg,
+                });
+            });
+        },
+    }
+}
+</script>

+ 50 - 72
src/pages/person-center/my-course/courseData.vue

@@ -818,78 +818,7 @@
           </div>
         </div>
 
-        <el-dialog
-          title="实名验证确认"
-          :visible.sync="showConfirm"
-          width="600px"
-          class="showconfirm"
-          :close-on-click-modal="false"
-          :close-on-press-escape="false"
-          :show-close="false"
-        >
-          <div class="showconfirm__content">
-            <div class="text">
-              为避免个人信息不正确导致您的学习时长无效,请认真核对以下信息是否正确,如信息有误请取消当前操作,立刻联系020-38946666
-            </div>
-            <el-descriptions :column="1">
-              <el-descriptions-item label="姓名">{{
-                userInfo && userInfo.realname
-              }}</el-descriptions-item>
-              <el-descriptions-item label="手机号">{{
-                userInfo && userInfo.telphone
-              }}</el-descriptions-item>
-              <el-descriptions-item label="身份证号">{{
-                userInfo && userInfo.idCard
-              }}</el-descriptions-item>
-            </el-descriptions>
-
-            <div class="">
-              <el-checkbox v-model="confirmChecked"
-                >确认个人信息无误</el-checkbox
-              >
-            </div>
-          </div>
-          <span slot="footer" class="dialog-footer">
-            <el-button @click="showConfirm = false">取 消</el-button>
-            <el-button
-              type="primary"
-              @click="confirmUser"
-              :disabled="confirmCount > 0"
-              :loading="confirmLoading"
-              >{{
-                confirmCount > 0 ? "确 定(" + confirmCount + ")" : "确 定"
-              }}</el-button
-            >
-          </span>
-        </el-dialog>
-
-        <el-dialog
-          title="预约考试"
-          :visible.sync="appointModal"
-          width="600px"
-          class="appoint-modal"
-          :close-on-click-modal="false"
-          :close-on-press-escape="false"
-        >
-          <div class="appoint-modal__content">
-            <el-radio
-              v-for="(
-                appointChild, appointIndex
-              ) in appointItem.examApplyGoodsList"
-              v-model="applyId"
-              :key="appointIndex"
-              :label="appointChild.applyId"
-              >{{ appointChild.applyName }}</el-radio
-            >
-          </div>
-          <span slot="footer" class="dialog-footer">
-            <el-button @click="appointModal = false">取 消</el-button>
-            <el-button type="primary" @click="confirmAppoint"
-              >立即预约</el-button
-            >
-          </span>
-        </el-dialog>
-
+        
         <SelectClassModal
           ref="selectClassModal"
           @selectClassOk="selectClassOk"
@@ -903,6 +832,53 @@
         <ExercisesModal ref="exercisesModal"></ExercisesModal>
       </div>
     </el-dialog>
+    <!-- 预约考试弹窗 -->
+    <appoint-test :appointModal.sync="appointModal" :appointItem='appointItem'></appoint-test>
+
+    <el-dialog
+      title="实名验证确认"
+      :visible.sync="showConfirm"
+      width="600px"
+      class="showconfirm"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :show-close="false"
+    >
+      <div class="showconfirm__content">
+        <div class="text">
+          为避免个人信息不正确导致您的学习时长无效,请认真核对以下信息是否正确,如信息有误请取消当前操作,立刻联系020-38946666
+        </div>
+        <el-descriptions :column="1">
+          <el-descriptions-item label="姓名">{{
+            userInfo && userInfo.realname
+          }}</el-descriptions-item>
+          <el-descriptions-item label="手机号">{{
+            userInfo && userInfo.telphone
+          }}</el-descriptions-item>
+          <el-descriptions-item label="身份证号">{{
+            userInfo && userInfo.idCard
+          }}</el-descriptions-item>
+        </el-descriptions>
+
+        <div class="">
+          <el-checkbox v-model="confirmChecked"
+            >确认个人信息无误</el-checkbox
+          >
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="showConfirm = false">取 消</el-button>
+        <el-button
+          type="primary"
+          @click="confirmUser()"
+          :disabled="confirmCount > 0"
+          :loading="confirmLoading"
+          >{{
+            confirmCount > 0 ? "确 定(" + confirmCount + ")" : "确 定"
+          }}</el-button
+        >
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -912,6 +888,7 @@ import { mapGetters, mapActions } from "vuex";
 import SelectClassModal from "@/components/selectClassModal";
 import RebuildModal from "@/components/rebuildModal";
 import ExercisesModal from "@/components/exercisesModal";
+import AppointTest from './components/AppointTest.vue'
 import * as baseUrls from "@/axios.js";
 export default {
   name: "MyCourse",
@@ -919,6 +896,7 @@ export default {
     SelectClassModal,
     RebuildModal,
     ExercisesModal,
+    AppointTest,
   },
   data() {
     return {

+ 11 - 1
src/pages/person-center/my-course/index.vue

@@ -14,6 +14,8 @@
           @click="changeCourse"
           >切换科目</el-button
         >
+        <el-button size="mini" type="primary" plain style="margin-left: 14px" @click="changeTest()">预约考试
+        </el-button>
       </h4>
       <div v-for="(item, index) in courseList" :key="index">
         <p class="firstTop hoverStyle" @click="changeStatus(item)">
@@ -499,6 +501,9 @@
       ref="rebuildModal"
       @rebuildSubmit="rebuildSubmit($event)"
     ></RebuildModal>
+
+    <!-- 预约考试弹窗 -->
+    <appoint-test :appointModal.sync="appointModal" :appointItem='goodsData'></appoint-test>
   </div>
 </template>
 
@@ -506,9 +511,10 @@
 import { mapGetters, mapActions } from "vuex";
 import courseData from "./courseData.vue";
 import RebuildModal from "@/components/rebuildModal";
+import AppointTest from './components/AppointTest.vue'
 export default {
   name: "MyCourse",
-  components: { courseData, RebuildModal },
+  components: { courseData, RebuildModal, AppointTest },
   data() {
     return {
       goodsData: {},
@@ -519,6 +525,7 @@ export default {
       confirmChecked: false,
       confirmTimer: null,
       confirmLoading: false,
+      appointModal: false, // 预约考试弹窗
     };
   },
   computed: {
@@ -551,6 +558,9 @@ export default {
     changeCourse() {
       this.$refs.courseData.openBoxs(this.goodsData);
     },
+    changeTest() {
+      this.appointModal = true
+    },
     backData(item) {
       this.goodsData = item;
       this.getGoodsCourseList(item);