Browse Source

修改报名逻辑

lex-xin 4 years ago
parent
commit
6876135e5a

File diff suppressed because it is too large
+ 0 - 0
dist/app.4a237fd600648e23df6a.js


BIN
dist/app.4a237fd600648e23df6a.js.gz


File diff suppressed because it is too large
+ 0 - 0
dist/app.ba7d64c3c02dfb59f515.js


BIN
dist/app.ba7d64c3c02dfb59f515.js.gz


+ 1 - 0
dist/css/AppDetail.cc1096d7.css

@@ -0,0 +1 @@
+.mheader[data-v-9865a7b0]{height:.44rem;overflow:hidden}.m-nav-header[data-v-9865a7b0]{position:absolute;left:0;top:0;width:100%;height:.44rem;line-height:.44rem;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#1a1a1a;background:#fff}.m-nav-header.fixed[data-v-9865a7b0]{position:fixed;z-index:99}.m-nav-header.headerColor[data-v-9865a7b0]{background-color:#14928a;color:#fff}.m-nav-header.headerColor .m-nav-bar__title[data-v-9865a7b0]{color:#fff;font-size:.18rem}.m-nav-header .m-nav-bar__title[data-v-9865a7b0]{max-width:60%;margin:0 auto;color:#333;font-weight:500;font-size:.18rem}.m-nav-header .m-nav-bar__left[data-v-9865a7b0],.m-nav-header .m-nav-bar__right[data-v-9865a7b0]{position:absolute;bottom:0}.m-nav-header .m-nav-bar__left[data-v-9865a7b0]{left:.12rem}.m-nav-header .m-nav-bar__left .arrow-left[data-v-9865a7b0]{font-size:.21rem;vertical-align:middle}.m-nav-header .m-nav-bar__right[data-v-9865a7b0]{right:.12rem}.appDetail[data-v-55a83729]{min-height:100vh;overflow:hidden}[data-v-55a83729] .van-cell{padding:14px 16px;font-size:16px;color:var(--font-main-color)}[data-v-55a83729] .van-cell .van-cell__value{width:40%;text-align:left;-webkit-box-flex:1;-ms-flex:auto;flex:auto;color:var(--font-second-color)}[data-v-55a83729] .van-cell .van-cell__right-icon{position:absolute;right:16px}[data-v-55a83729] .van-cell .payTime{color:var(--red-color)}.section[data-v-55a83729]{margin-top:10px}.van-button--primary[data-v-55a83729]{margin:.15rem 0 .2rem;background-color:var(--main-color);border:1px solid var(--main-color);color:#fff;font-size:.18rem;height:.5rem;line-height:.52rem;width:90%;margin-left:5%}

+ 1 - 0
dist/css/AppRecord.2920600d.css

@@ -0,0 +1 @@
+.mheader[data-v-9865a7b0]{height:.44rem;overflow:hidden}.m-nav-header[data-v-9865a7b0]{position:absolute;left:0;top:0;width:100%;height:.44rem;line-height:.44rem;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#1a1a1a;background:#fff}.m-nav-header.fixed[data-v-9865a7b0]{position:fixed;z-index:99}.m-nav-header.headerColor[data-v-9865a7b0]{background-color:#14928a;color:#fff}.m-nav-header.headerColor .m-nav-bar__title[data-v-9865a7b0]{color:#fff;font-size:.18rem}.m-nav-header .m-nav-bar__title[data-v-9865a7b0]{max-width:60%;margin:0 auto;color:#333;font-weight:500;font-size:.18rem}.m-nav-header .m-nav-bar__left[data-v-9865a7b0],.m-nav-header .m-nav-bar__right[data-v-9865a7b0]{position:absolute;bottom:0}.m-nav-header .m-nav-bar__left[data-v-9865a7b0]{left:.12rem}.m-nav-header .m-nav-bar__left .arrow-left[data-v-9865a7b0]{font-size:.21rem;vertical-align:middle}.m-nav-header .m-nav-bar__right[data-v-9865a7b0]{right:.12rem}.appRecord[data-v-02d2085a]{min-height:100vh}[data-v-02d2085a] .van-cell{padding:14px 16px;font-size:16px;color:var(--font-main-color)}[data-v-02d2085a] .van-cell .van-cell__value{width:40%;text-align:left;-webkit-box-flex:1;-ms-flex:auto;flex:auto;color:var(--font-second-color)}[data-v-02d2085a] .van-cell .payTime{color:var(--red-color)}.section[data-v-02d2085a]{margin-top:10px}.van-button--primary[data-v-02d2085a]{margin:.35rem 0 .1rem;background-color:var(--main-color);border:1px solid var(--main-color);color:#fff;font-size:.18rem;height:.5rem;line-height:.52rem;width:90%;margin-left:5%}

File diff suppressed because it is too large
+ 0 - 0
dist/css/LevelMusic.f55bc231.css


+ 0 - 0
dist/css/SignUpAccount.759c1cae.css → dist/css/SignUpAccount.9ab34cb1.css


+ 0 - 0
dist/css/SignUpBaseInfo.9696939c.css → dist/css/SignUpBaseInfo.b4e3c97a.css


File diff suppressed because it is too large
+ 0 - 0
dist/css/SignUpLevel.6001c4c3.css


+ 0 - 0
dist/css/SignUpPayment.90f7d3c8.css → dist/css/SignUpPayment.4fc155a0.css


+ 0 - 1
dist/css/app.16e19a78.css

@@ -1 +0,0 @@
-:root{--main-color:#2dc7aa;--main-bg-color:#f3f4f8;--font-main-color:#333;--font-second-color:#999}.m-shadow{-webkit-box-shadow:0 0 .17rem 0 hsla(0,0%,79.2%,.42);box-shadow:0 0 .17rem 0 hsla(0,0%,79.2%,.42)}.m-shadow-small{-webkit-box-shadow:0 .04rem .06rem 0 rgba(0,0,0,.1);box-shadow:0 .04rem .06rem 0 rgba(0,0,0,.1)}.m-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}[v-cloak]{display:none}[class*=m-hairline]:after{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #ebedf0;-webkit-transform:scale(.5);transform:scale(.5)}.orangeStatus{color:#f97215!important}.redStatus{color:#f85043!important}.blueStatus{color:#14928a!important}.defaultStatus{color:#777!important}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f3f4f8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-size-adjust:none!important}.fade-enter-active,.fade-leave-active{-webkit-transition:opacity .5s;transition:opacity .5s}.fade-enter,.fade-leave-active{opacity:0}body{-webkit-text-size-adjust:none!important}.svg-icon[data-v-73e75cfd]{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}

+ 1 - 0
dist/css/app.9c581cd1.css

@@ -0,0 +1 @@
+:root{--main-color:#2dc7aa;--main-bg-color:#f3f4f8;--font-main-color:#333;--font-second-color:#999;--red-color:#ff3535}.m-shadow{-webkit-box-shadow:0 0 .17rem 0 hsla(0,0%,79.2%,.42);box-shadow:0 0 .17rem 0 hsla(0,0%,79.2%,.42)}.m-shadow-small{-webkit-box-shadow:0 .04rem .06rem 0 rgba(0,0,0,.1);box-shadow:0 .04rem .06rem 0 rgba(0,0,0,.1)}.m-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}[v-cloak]{display:none}[class*=m-hairline]:after{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #ebedf0;-webkit-transform:scale(.5);transform:scale(.5)}.orangeStatus{color:#f97215!important}.redStatus{color:#f85043!important}.blueStatus{color:#14928a!important}.defaultStatus{color:#777!important}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f3f4f8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-size-adjust:none!important}.fade-enter-active,.fade-leave-active{-webkit-transition:opacity .5s;transition:opacity .5s}.fade-enter,.fade-leave-active{opacity:0}body{-webkit-text-size-adjust:none!important}.svg-icon[data-v-73e75cfd]{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}

File diff suppressed because it is too large
+ 0 - 0
dist/index.html


File diff suppressed because it is too large
+ 0 - 0
dist/js/AppDetail.02bb2d0e.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/AppRecord.50366e76.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/LevelMusic.2182a51f.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/SignUpLevel.2756a915.js


BIN
dist/js/SignUpLevel.2756a915.js.gz


File diff suppressed because it is too large
+ 0 - 0
dist/js/SignUpLevel.4a303827.js


BIN
dist/js/SignUpLevel.4a303827.js.gz


+ 1 - 0
src/assets/commonLess/common.less

@@ -3,6 +3,7 @@
     --main-bg-color: #F3F4F8; // 主背景色
     --font-main-color: #333333; //
     --font-second-color: #999999; //
+    --red-color: #FF3535;
 }
 
 // 阴影

+ 1 - 0
src/main.js

@@ -6,6 +6,7 @@ import router from './router/index'
 import "@babel/polyfill"
 import Es6Promise from 'es6-promise'
 Es6Promise.polyfill()
+import './utils/filters'
 import { Button, Icon, Tag, Popup, Picker, Form,
     Search, PullRefresh, Toast, List, Collapse, CollapseItem,
     Tab, Tabs, Row, Col, Cell, CellGroup, NavBar,

+ 21 - 0
src/router/appRouter.js

@@ -0,0 +1,21 @@
+let appRouter = [{
+	path: "/appRecord",
+	name: "appRecord",
+	component: () =>
+		import( /* webpackChunkName: "AppRecord" */ "@/views/app/AppRecord"),
+	meta: {
+		description: "报考记录",
+		weight: 2 // 页面权重
+	}
+}, {
+	path: "/appDetail",
+	name: "appDetail",
+	component: () =>
+		import( /* webpackChunkName: "AppDetail" */ "@/views/app/AppDetail"),
+	meta: {
+		description: "报考详情",
+		weight: 3 // 页面权重
+	}
+}]
+
+export default appRouter

+ 2 - 0
src/router/index.js

@@ -3,6 +3,7 @@ import Router from 'vue-router'
 import LevelRouter from './levelRouter'
 import ApplyRouter from './applyRouter'
 import AdapayRouter from './adapayRouter'
+import AppRouter from './appRouter'
 
 Vue.use(Router)
 
@@ -36,6 +37,7 @@ let defaultRouter = [
 defaultRouter = defaultRouter.concat(LevelRouter)
                 .concat(ApplyRouter)
                 .concat(AdapayRouter)
+                .concat(AppRouter)
 
 const router = new Router({
   // mode: 'history',

+ 18 - 0
src/utils/filters.js

@@ -0,0 +1,18 @@
+import Vue from 'vue'
+
+// 乐团状态
+Vue.filter('formatLevel', value => {
+    const seriesItems = {
+        1: '一级',
+        2: '二级',
+        3: '三级',
+        4: '四级',
+        5: '五级',
+        6: '六级',
+        7: '七级',
+        8: '八级',
+        9: '九级',
+        10: '十级',
+      }
+    return seriesItems[value]
+})

+ 1 - 1
src/views/LevelMusic.vue

@@ -33,7 +33,7 @@ export default {
         // if(params.Authorization) {
         //     localStorage.setItem('Authorization', decodeURI(params.Authorization))
         //     localStorage.setItem('userInfo', decodeURI(params.Authorization))
-        // }
+		// }
     },
     methods: {
     }

+ 87 - 0
src/views/app/AppDetail.vue

@@ -0,0 +1,87 @@
+<template>
+    <div class="appDetail">
+        <m-header />
+		<van-cell-group>
+            <van-field v-model="form.name" disabled label="订单编号" />
+            <van-field v-model="form.name" disabled label="考级名称" />
+            <van-field v-model="form.name" disabled label="考试日期" />
+            <van-field v-model="form.name" disabled label="专业等级" />
+            <van-field v-model="form.name" disabled label="练习曲" is-link />
+            <van-field v-model="form.name" disabled label="练习曲" is-link />
+            <van-field v-model="form.name" disabled label="演奏曲" is-link />
+            <van-field v-model="form.name" disabled label="演奏曲" is-link />
+            <van-field v-model="form.name" disabled label="考级证书" />
+            <van-field v-model="form.name" disabled label="乐理等级" />
+            <van-field v-model="form.name" disabled label="乐理证书" />
+        </van-cell-group>
+
+        <van-cell-group style="margin-top: 20px">
+            <van-field v-model="form.name" disabled label="报名审核" />
+            <van-field v-model="form.name" disabled label="备注" />
+        </van-cell-group>
+        <van-button type="primary" round block>重新提交</van-button>
+    </div>
+</template>
+<script>
+import MHeader from '@/components/MHeader'
+// import { browser } from '@/common/common'
+export default {
+    name: 'appDetail',
+	components: { MHeader },
+    data () {
+        return {
+            form: {
+                name: '测试测试测试'
+            }
+        }
+    },
+    mounted() {
+        // 插入token
+        // let params = this.$route.query
+        // if(params.Authorization) {
+        //     localStorage.setItem('Authorization', decodeURI(params.Authorization))
+        // }
+        document.title = "报考详情"
+    },
+    methods: {
+    }
+}
+</script>
+<style lang="less" scoped>
+.appDetail {
+    min-height: 100vh;
+    overflow: hidden;
+}
+/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);
+    }
+    .van-cell__right-icon {
+        position: absolute;
+        right: 16px;
+    }
+    .payTime {
+        color: var(--red-color);
+    }
+}
+.section {
+    margin-top: 10px;
+}
+.van-button--primary {
+    margin: .15rem 0 .2rem;
+    background-color: var(--main-color);
+    border: 1px solid var(--main-color);
+    color: #FFFFFF;
+    font-size: .18rem;
+    height: .5rem;
+    line-height: .52rem;
+    width: 90%;
+    margin-left: 5%;
+}
+</style>

+ 102 - 0
src/views/app/AppRecord.vue

@@ -0,0 +1,102 @@
+<template>
+    <div class="appRecord">
+        <m-header />
+		<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-group>
+                <van-button type="primary" @click="onDetail" round block>查看资料</van-button>
+            </van-tab>
+            <van-tab title="未缴费">
+                <van-cell-group class="section" v-for="(item, index) in notPayList" :key="index">
+                    <van-cell :value="item.name" title="考级名称" />
+                    <van-cell value-class="payTime" :value="item.payTime" title="缴费截止时间" />
+                    <van-cell :value="item.level | formatLevel" title="专业等级" />
+                    <van-cell :value="item.examTime" title="考试日期" />
+                </van-cell-group>
+                <van-button type="primary" @click="onDetail" round block>查看报名</van-button>
+            </van-tab>
+        </van-tabs>
+    </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,
+                examTime: "2020-05-20~2020-05-30"
+            }, {
+                name: "大白来了大白来了大白",
+                orderNo: "12121212121212",
+                level: 1,
+                examTime: "2020-05-20~2020-05-30"
+            }], // 已缴费
+            notPayList: [{
+                name: "大白来了大白来了大白",
+                payTime: "2020-05-20",
+                level: 1,
+                examTime: "2020-05-20~2020-05-30"
+            }], // 未缴费
+        }
+    },
+    mounted() {
+        // 插入token
+        // let params = this.$route.query
+        // if(params.Authorization) {
+        //     localStorage.setItem('Authorization', decodeURI(params.Authorization))
+        // }
+        document.title = "报考记录"
+    },
+    methods: {
+        onDetail() {
+            this.$router.push({
+                path: '/appDetail'
+            })
+        }
+    }
+}
+</script>
+<style lang="less" scoped>
+.appRecord {
+    min-height: 100vh;
+}
+/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--primary {
+    margin: .35rem 0 .1rem;
+    background-color: var(--main-color);
+    border: 1px solid var(--main-color);
+    color: #FFFFFF;
+    font-size: .18rem;
+    height: .5rem;
+    line-height: .52rem;
+    width: 90%;
+    margin-left: 5%;
+}
+</style>

+ 128 - 0
src/views/downLoad.vue

@@ -0,0 +1,128 @@
+<template>
+  <div class="studentDownLoad" :class="[wxStatus ? 'wxContainer' : '']">
+    <div class="container">
+      <div class="logo_bg"></div>
+      <div class="banner"></div>
+      <!-- <a :href="src" ></a> -->
+      <div class="btn" @click="downloadClick">点击下载APP</div>
+    </div>
+    <div class="wxpopup" v-if="wxStatus" @click="wxStatus = false">
+      <img src="../assets/images/wx_bg.png" alt />
+    </div>
+  </div>
+</template>
+<script>
+import { browser } from "@/common/common";
+export default {
+  data() {
+    return {
+      isAndroid: false,
+      isiOS: false,
+      wxStatus: false,
+      msg: "此浏览器不支持自动转发,请更换浏览器尝试",
+      src: ""
+    };
+  },
+  created() {
+  },
+  mounted() {
+    this.downloadApp();
+    // let u = navigator.userAgent;
+    // this.isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //android终端
+    // this.isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
+  },
+  methods: {
+    downloadApp() {
+      let str = "";
+      let params = this.$route.query
+      if(params.url && params.hash) {
+        str = params.url + '/#/' + params.hash
+      }
+      // memo:1?http://mkjtest.dayaedu.com/#/appDetail?id=xxx
+      // http://mkjtest.dayaedu.com/#/downLoad?url=http://mkjtest.dayaedu.com&hash=appDetail&id=xxx&memo=1
+      //http://192.168.1.34:9001&hash=reportDetail&classGroupId=13905
+      if(params.classGroupId){
+         str+='?classGroupId='+params.classGroupId
+      }
+      str = encodeURIComponent(str);
+      // console.log(str)
+      if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
+        window.location.href = `StudentsDaya://linkUrl=${str}`;
+      } else if (/(Android)/i.test(navigator.userAgent)) {
+        window.location.href = `studentdaya://html:8888/SplashActivity?url=${str}`;
+      } else {
+        this.$toast("请用手机或移动设备打开");
+      }
+    },
+    downloadClick() {
+      if (browser().weixin) {
+        this.wxStatus = true;
+        return;
+      }
+
+      if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
+          window.location.href =
+            "https://apps.apple.com/cn/app/%E7%AE%A1%E4%B9%90%E8%BF%B7/id1487054260";
+        // this.src = "https://apps.apple.com/cn/app/管乐迷/id1487054260";
+      } else if (/(Android)/i.test(navigator.userAgent)) {
+         window.location = "https://sj.qq.com/myapp/detail.htm?apkName=com.daya.studaya_android"; //如果超时就跳转到app下载页
+      } else {
+        this.$toast("请用手机或移动设备打开");
+      }
+    }
+  }
+};
+</script>
+<style lang="less" scoped>
+.container {
+  overflow: hidden;
+  background: url("../assets/images/download/bg.png") top center no-repeat #fff;
+  background-size: contain;
+  min-height: 100vh;
+}
+.logo_bg {
+  background: url("../assets/images/download/logo.png") center center no-repeat;
+  background-size: contain;
+  width: 2.21rem;
+  height: 1.38rem;
+  margin: 0.43rem auto 0;
+}
+.banner {
+  background: url("../assets/images/download/banner.png") center center
+    no-repeat;
+  background-size: contain;
+  width: 2.13rem;
+  height: 3.04rem;
+  margin: 0.24rem auto 0;
+}
+.btn {
+  font-size: 0.18rem;
+  background: #14928a;
+  padding: 0.12rem 0.24rem;
+  border-radius: 0.5rem;
+  display: table;
+  color: #fff;
+  margin: 0.5rem auto 0;
+  cursor: pointer;
+  &.disabled {
+    background: #ccc;
+  }
+}
+
+.wxContainer {
+  overflow: hidden;
+  height: 100vh;
+}
+.wxpopup {
+  width: 100%;
+  height: 100vh;
+  position: absolute;
+  top: 0;
+  left: 0;
+  background: rgba(0, 0, 0, 0.5);
+  img {
+    width: 88%;
+    margin: 0 6%;
+  }
+}
+</style>

+ 22 - 7
src/views/signup/SignUpLevel.vue

@@ -266,6 +266,7 @@ export default {
                     if(!orderNo) {
                         return
                     }
+                    localStorage.removeItem("examRegistrationParams")
                     this.onCloseOrder(orderNo)
                 })
             } else {
@@ -310,13 +311,14 @@ export default {
                     tempPerformArr = [],
                     tempPerformStr = []
                 songJsonParse.forEach(item => {
+                    const str = item.songName + (item.songAuthor ? "-" + item.songAuthor : "")
                     if(item.type == "PERFORM") {
                         tempPerformArr.push(item)
-                        tempPerformStr.push(item.songName + '-' + item.songAuthor)
+                        tempPerformStr.push(str)
                         this.performNumSelectIds.push(item.id)
                     } else if(item.type == "PRACTICE") {
                         tempPracticeArr.push(item)
-                        tempPracticeStr.push(item.songName + '-' + item.songAuthor)
+                        tempPracticeStr.push(str)
                         this.practiceSelectIds.push(item.id)
                     }
                 })
@@ -336,6 +338,7 @@ export default {
                             })
                         })
                         this.practiceUpload.push(tempUrl)
+                        this.practiceUploadTemp.push(tempUrl)
                     })
                     this.practiceSelectUploadList = tempPracticeArr
                 }
@@ -355,6 +358,7 @@ export default {
                             })
                         })
                         this.performNumUpload.push(tempUrl)
+                        this.performNumUploadTemp.push(tempUrl)
                     })
                     this.performNumSelectUploadList = tempPerformArr
                 }
@@ -497,10 +501,15 @@ export default {
                     this.practiceSongIdList = null
                     this.performNum = 0 // 演奏曲数量
                     this.performSongIdList = null
+                    this.onResetSong()
                     this.getExamSubjectLevel() // 请求专业级别
                 }
                 sheetForm.sheetStatus = false
             } else if(sheetForm.currentType == 'level') {
+                sheetForm.sheetStatus = false
+                if(form.levelId === value.value) { // 判断两次选择是否是一样
+                    return
+                }
                 form.levelId = value.value
                 form.examSubjectSongId = value.id
                 form.levelFee = value.registrationFee // 级别费用
@@ -510,12 +519,8 @@ export default {
                 this.practiceSongIdList = value.practiceSongIdList
                 this.performNum = value.performNum
                 this.performSongIdList = value.performSongIdList
-                sheetForm.sheetStatus = false
 
-                this.practiceSelect = []
-                this.practiceUpload = []
-                this.performNumSelect = []
-                this.performNumUpload = []
+                this.onResetSong()
                 this.getExamSubjectSong()
             } else if(sheetForm.currentType == "examMusicTheory") {
                 form.examMusicTheoryId = value.value
@@ -526,6 +531,16 @@ export default {
                 sheetForm.sheetStatus = false
             }
         },
+        onResetSong() { // 重置报考曲目数据
+            this.practiceSelect = []
+            this.practiceUpload = []
+            this.practiceUploadTemp = []
+            this.practiceSelectUploadList = []
+            this.performNumSelectUploadList = []
+            this.performNumSelect = []
+            this.performNumUpload = []
+            this.performNumUploadTemp = []
+        },
         async getExamSubjectLevel(callBack) {
             setLoading(true)
             try {

Some files were not shown because too many files changed in this diff