lex-xin 5 年之前
父節點
當前提交
53b37a98d0
共有 4 個文件被更改,包括 219 次插入126 次删除
  1. 9 9
      src/common/axios.js
  2. 29 15
      src/views/app/AppRecord.vue
  3. 162 102
      src/views/app/ExamRecord.vue
  4. 19 0
      src/views/app/appApi.js

+ 9 - 9
src/common/axios.js

@@ -66,15 +66,15 @@ _axios.interceptors.response.use(
           api: 'login'
         }))
       } else {
-        const examId = window.localStorage.getItem("examId")
-        const organId = window.localStorage.getItem("organId")
-        router.replace({
-          path: 'signUpAccount',
-          query: {
-            examId: examId,
-            organId: organId
-          }
-        })
+        // const examId = window.localStorage.getItem("examId")
+        // const organId = window.localStorage.getItem("organId")
+        // router.replace({
+        //   path: 'signUpAccount',
+        //   query: {
+        //     examId: examId,
+        //     organId: organId
+        //   }
+        // })
       }
     }
     return response;

+ 29 - 15
src/views/app/AppRecord.vue

@@ -4,10 +4,14 @@
 		<van-tabs sticky title-active-color="var(--main-color)" color="var(--main-color)" line-width="50">
             <van-tab title="已缴费">
                 <van-cell-group class="section" v-for="(item, index) in payList" :key="index">
-                    <van-cell :value="item.name" title="考级名称" />
-                    <van-cell :value="item.orderNo" title="订单编号" />
-                    <van-cell :value="item.level | formatLevel" title="专业等级" />
-                    <van-cell :value="item.examTime" title="考试日期" />
+                    <van-cell :value="item.examBaseName" title="考级名称" />
+                    <van-cell :value="item.paymentOrderNo" title="订单编号" />
+                    <van-cell title="专业等级">
+                        <template #default>
+                            {{ item.level | formatLevel }}
+                        </template>
+                    </van-cell>
+                    <van-cell :value="item.examStartTime" title="考试日期" />
                     <van-button type="default" @click="onDetail" block>查看资料</van-button>
                 </van-cell-group>
             </van-tab>
@@ -26,22 +30,14 @@
 <script>
 import MHeader from '@/components/MHeader'
 // import { browser } from '@/common/common'
+import { applyList, examList } from './appApi'
+import setLoading from '@/utils/loading'
 export default {
     name: 'appRecord',
 	components: { MHeader },
     data () {
         return {
-            payList: [{
-                name: "大白来了大白来了大白",
-                orderNo: "12121212121212",
-                level: 1,
-                examTime: "2020-05-20~2020-05-30"
-            }, {
-                name: "大白来了大白来了大白",
-                orderNo: "12121212121212",
-                level: 1,
-                examTime: "2020-05-20~2020-05-30"
-            }], // 已缴费
+            payList: [], // 已缴费
             notPayList: [{
                 name: "大白来了大白来了大白",
                 payTime: "2020-05-20",
@@ -57,8 +53,26 @@ export default {
         //     localStorage.setItem('Authorization', decodeURI(params.Authorization))
         // }
         document.title = "报考记录"
+
+        this.__init()
     },
     methods: {
+        async __init() {
+            setLoading(true)
+            try {
+                const res = await examList()
+                setLoading(false)
+                const result = res.data
+                if(result.code == 200) {
+                    this.payList = result.data.rows
+                } else {
+                    this.$toast(result.msg)
+                }
+            } catch(err) {
+                setLoading(false)
+            }
+            
+        },
         onDetail() {
             this.$router.push({
                 path: '/appDetail'

+ 162 - 102
src/views/app/ExamRecord.vue

@@ -1,108 +1,168 @@
 <template>
-    <div class="appRecord">
-        <m-header />
+	<div class="appRecord">
+		<m-header />
 		<div class="container">
-            <van-cell-group class="section" v-for="(item, index) in payList" :key="index">
-                <van-cell :value="item.examTime" title="考试日期" />
-                <van-cell :value="item.level | formatLevel" title="专业等级" />
-                <!-- <transition name="fade"> -->
-                    <div v-if="item.status">
-                        <van-cell :value="item.name" title="准考证号" />
-                        <van-cell :value="item.orderNo" t itle="专业等级" />
-                        <van-cell :value="item.examTime" title="乐理等级" />
-                        <van-cell :value="item.level | formatLevel" title="考试地点" />
-                    </div>
-                <!-- </transition> -->
-                <van-cell :value="item.name" title="考试状态" />
-                <van-cell :value="item.orderNo" title="考试结果" :border="!item.status" />
-                <!-- <transition name="fade"> -->
-                    <div v-if="item.status">
-                        <van-button type="default" class="van-hairline--top-bottom" block>考级回看</van-button>
-                    </div>
-                <!-- </transition> -->
-                <van-button type="default" v-if="item.status" @click="onDetail(item)" block>点击收起<van-icon class="arrow" name="arrow-up" /></van-button>
-                <van-button type="default" v-else @click="onDetail(item)" block>展开全部<van-icon class="arrow" name="arrow-down" /></van-button>
-            </van-cell-group>
-        </div>
-    </div>
+			<div v-if="dataShow" key="data">
+				<van-list v-model="loading" :finished="finished" finished-text=" " @load="getList">
+					<van-cell-group class="section" v-for="(item, index) in payList" :key="index">
+						<van-cell :value="item.examTime" title="考试日期" />
+						<van-cell :value="item.level | formatLevel" title="专业等级" />
+						<!-- <transition name="fade"> -->
+						<div v-if="item.status">
+							<van-cell :value="item.name" title="准考证号" />
+							<van-cell :value="item.orderNo" t itle="专业等级" />
+							<van-cell :value="item.examTime" title="乐理等级" />
+							<van-cell :value="item.level | formatLevel" title="考试地点" />
+						</div>
+						<!-- </transition> -->
+						<van-cell :value="item.name" title="考试状态" />
+						<van-cell :value="item.orderNo" title="考试结果" :border="!item.status" />
+						<!-- <transition name="fade"> -->
+						<div v-if="item.status">
+							<van-button type="default" class="van-hairline--top-bottom" block>考级回看</van-button>
+						</div>
+						<!-- </transition> -->
+						<van-button type="default" v-if="item.status" @click="onDetail(item)" block>
+							点击收起
+							<van-icon class="arrow" name="arrow-up" />
+						</van-button>
+						<van-button type="default" v-else @click="onDetail(item)" block>
+							展开全部
+							<van-icon class="arrow" name="arrow-down" />
+						</van-button>
+					</van-cell-group>
+				</van-list>
+			</div>
+			<m-empty class="empty" v-else key="data" />
+		</div>
+	</div>
 </template>
 <script>
-import MHeader from '@/components/MHeader'
-// import { browser } from '@/common/common'
-export default {
-    name: 'appRecord',
-	components: { MHeader },
-    data () {
-        return {
-            payList: [{
-                name: "大白来了大白来了大白",
-                orderNo: "12121212121212",
-                level: 1,
-                status: false,
-                examTime: "2020-05-20~2020-05-30"
-            }, {
-                name: "大白来了大白来了大白",
-                orderNo: "12121212121212",
-                level: 1,
-                status: false,
-                examTime: "2020-05-20~2020-05-30"
-            }], // 已缴费
-            show: false
-        }
-    },
-    mounted() {
-        // 插入token
-        // let params = this.$route.query
-        // if(params.Authorization) {
-        //     localStorage.setItem('Authorization', decodeURI(params.Authorization))
-        // }
-        document.title = "考试记录"
-    },
-    methods: {
-        onDetail(item) {
-            item.status = !item.status
-        }
-    }
-}
+	import MHeader from "@/components/MHeader";
+    // import { browser } from '@/common/common'
+    import MEmpty from "@/components/MEmpty"
+	import {
+		applyList
+	} from "./appApi";
+	import setLoading from "@/utils/loading";
+	export default {
+		name: "appRecord",
+		components: {
+            MHeader,
+            MEmpty
+		},
+		data() {
+			return {
+				dataShow: true, // 是否有数据
+				loading: false,
+				finished: false,
+				payList: [],
+				show: false
+			};
+		},
+		mounted() {
+			// 插入token
+			// let params = this.$route.query
+			// if(params.Authorization) {
+			//     localStorage.setItem('Authorization', decodeURI(params.Authorization))
+			// }
+			document.title = "考试记录";
+		},
+		methods: {
+			getList() {
+				// this.finished = true
+				let params = this.params;
+				applyList(params).then(res => {
+					let result = res.data;
+					this.loading = false;
+					if (result.code == 200) {
+						// 判断是否有统计数据
+						if (result.data.stat && result.data.stat.length > 0) {
+							this.statistics = result.data.stat
+							let counts = {
+								courseTimes: 0,
+								totalActualSalary: 0
+							}
+							result.data.stat.forEach(item => {
+								counts.courseTimes += item.courseTimes
+								counts.totalActualSalary += item.totalActualSalary
+							})
+							this.allMoney = counts.totalActualSalary
+						}
+						let pageInfo = result.data.pageInfo
+						params.page = pageInfo.pageNo
+						this.confirmStatus = result.data.confirmStatus
+						this.haveComplaints = result.data.haveComplaints
+						this.dataList = this.dataList.concat(pageInfo.rows)
+						if (params.page >= pageInfo.totalPage) {
+							this.finished = true;
+						}
+						this.params.page++;
+					} else {
+						this.finished = true;
+					}
+					// 判断是否有数据
+					if (this.dataList.length <= 0) {
+						this.dataShow = false;
+					}
+				}).catch(err => {
+                    console.log(err)
+                    this.finished = true
+                    this.dataShow = false
+				})
+			},
+			onDetail(item) {
+				item.status = !item.status;
+			}
+		}
+	};
 </script>
 <style lang="less" scoped>
-.appRecord {
-    min-height: 100vh;
-    .container {
-        margin-bottom: 20px;
-    }
-}
-/deep/.van-cell {
-    padding: 14px 16px;
-    font-size: 16px;
-    color: var(--font-main-color);
-    .van-cell__value {
-        width: 40%;
-        text-align: left;
-        flex: auto;
-        color: var(--font-second-color);
-    }
-    .payTime {
-        color: var(--red-color);
-    }
-}
-.section {
-    margin-top: 10px;
-}
-.van-button--default {
-    border: 0;
-    color: var(--main-color);
-    font-size: 15px;
-    height: .5rem;
-    line-height: .52rem;
-}
-/deep/.van-button__text {
-    display: flex;
-}
-.arrow {
-    min-width: 1em;
-    font-size: 1.2em;
-    line-height: inherit;
-    margin-left: 5px;
-}
-</style>
+	.appRecord {
+		min-height: 100vh;
+
+		.container {
+			margin-bottom: 20px;
+		}
+	}
+
+	/deep/.van-cell {
+		padding: 14px 16px;
+		font-size: 16px;
+		color: var(--font-main-color);
+
+		.van-cell__value {
+			width: 40%;
+			text-align: left;
+			flex: auto;
+			color: var(--font-second-color);
+		}
+
+		.payTime {
+			color: var(--red-color);
+		}
+	}
+
+	.section {
+		margin-top: 10px;
+	}
+
+	.van-button--default {
+		border: 0;
+		color: var(--main-color);
+		font-size: 15px;
+		height: 0.5rem;
+		line-height: 0.52rem;
+	}
+
+	/deep/.van-button__text {
+		display: flex;
+	}
+
+	.arrow {
+		min-width: 1em;
+		font-size: 1.2em;
+		line-height: inherit;
+		margin-left: 5px;
+	}
+</style>

+ 19 - 0
src/views/app/appApi.js

@@ -0,0 +1,19 @@
+import qs from 'qs'
+const axios = require('@/common/axios').default
+// 手学生端学员报名记录查询
+export function applyList(data) {
+    return axios({
+        url: '/api-user/examRegistration/applyList',
+        method: 'get',
+        params: data
+    })
+}
+
+// 学生端获取学员考试记录
+export function examList(data) {
+    return axios({
+        url: '/api-user/examRegistration/examList',
+        method: 'post',
+        data: data
+    })
+}