lex-xin %!s(int64=5) %!d(string=hai) anos
pai
achega
31cbaee468
Modificáronse 5 ficheiros con 149 adicións e 57 borrados
  1. 2 2
      src/main.js
  2. 22 0
      src/views/Home.vue
  3. 119 45
      src/views/order.vue
  4. 1 1
      src/views/register.vue
  5. 5 9
      vue.config.js

+ 2 - 2
src/main.js

@@ -4,9 +4,9 @@ import App from './App.vue'
 import store from './store'
 import router from './router'
 
-import { Button, Popup, Toast, Dialog, Field, CellGroup, Cell, ActionSheet, DatetimePicker, CountDown, Loading, Overlay} from 'vant'
+import { Button, Popup, Toast, Dialog, Field, CellGroup, Cell, ActionSheet, DatetimePicker, CountDown, Loading, Overlay, Tab, Tabs} from 'vant'
 
-Vue.use(Button).use(Popup).use(Toast).use(Dialog).use(Field).use(CellGroup).use(Cell).use(ActionSheet).use(DatetimePicker).use(CountDown).use(Loading).use(Overlay)
+Vue.use(Button).use(Popup).use(Toast).use(Dialog).use(Field).use(CellGroup).use(Cell).use(ActionSheet).use(DatetimePicker).use(CountDown).use(Loading).use(Overlay).use(Tab).use(Tabs)
 
 Vue.config.productionTip = false
 

+ 22 - 0
src/views/Home.vue

@@ -2,6 +2,10 @@
     <div class="home">
         <header>乐团注册</header>
 
+        <div class="noticeInfo">
+            <i class="trumpet_icon"></i>请家长确认您孩子的声部,名额有限请点击购买后五分钟之内完成支付,如支付失败可能被调剂至其他声部或报名失败的情况。
+        </div>
+
         <div class="section">
             <h2 class="title line_bottom">课程</h2>
             <!-- <p class="indate" v-if="result.payMethod >= 26" key="indate-price"><span>现价:¥{{ result.classAmount }}</span></p> -->
@@ -595,6 +599,24 @@ export default {
         margin-bottom: .06rem;
     }
 
+    .noticeInfo {
+        position: relative;
+        margin-bottom: .1rem;
+        background: #fff;
+        padding: .1rem .22rem .1rem .32rem; 
+        font-size: .12rem;
+        color: #FA101D;
+        .trumpet_icon {
+            width: .14rem;
+            height: .12rem;
+            background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAYCAYAAADpnJ2CAAAAAXNSR0IArs4c6QAAAyZJREFUSA21Vk1IVFEUPufOezNilJXQD2UQRERamWhBaUWOSS3U0SawdgZai2gR0aoQXPSDm3JRCbm0xZBjbkQZS0KDjKywDCIIkoKKEIkm35uZezr32X0jQ+bY2IU359xzzj3fPXe++4PwDy0W8JdKgjYCWOkzzWIM9X5NN42RbqCKoxOHl1nR2FVJ1MRgqGzxhCxg8VDp6TSRTpCKsQL+aitqjwPRKQ3mjCVygFPz2MGKQqvG/zxW56+c7ZsXkIJH1liB8hARdQPButmD59WR8mUCuqy6ynwd686OmpsN++XjLUiYrZ0g5E6SdJmAVri2FMWDnnIz3P8gxex07Rp/owS6jQij3h1lu7G5Oe5UOF1bcc5+MTRFlBiTEH/iflLe+htYKsh0oHwzBcpztd3bHWlHxPtEUMTFHFV2YdceOglStnLiZGV6xEIlwbBF+JQaqpa6Qw246OiUOKOkICnPus4MFYGik7m80Z6MXtCpfKHIGBN6kIm2x66tLBJM7q3amak0DbqEgD84eQNzwiUkE+Wmk1vGjwtmnydTID0eQ5EpLoDZTGvjr4b2absXzGdKlwC73FloZ6aSSTKocjC7kyu3Ku8D2xOAuOk/ANKEAwhivZKqYXt7jFdyAnl7LTrgDMTcv4sOyCddnlOVnKlU6dTYaPKS5hHg5IIO77nnnfTw0h1QPTTgjWv9MrGB97ki5zvh/JmuJzOFgv4cPm9rGO6TUVD6SGezhV2sdF7OEcEB49qRqbRi0MKVLEEBHXxu8i6YabzMpx1NGJ18OIjr2pG5pHqu7r13efY1ncsK+rfxvtzPW2LY29U3Krxd/Xe4c55PiKgO+meJsNeHVIIdPd/dHHFoUToitSnpsDQrHGn1FpbmoMcoEIJPA/0BNvFEJlVgOi0rPPAWwwPfdKy6nphE1c71tL3snrK796EOSpVUX7Xano628cBgqk/157oP1Y1PcTkChDEwzRJfqNfhyrz7EO/2fPaFI8dAiGqe3sc/gc5pI3wtPFCrwVTcvBXOTuY8on7GrqBMvms8wjhodvWl/YhaEKAG//1MvMHXUO5Cn4m/ACXBMJBwQaFpAAAAAElFTkSuQmCC) no-repeat center;
+            background-size: contain;
+            position: absolute;
+            left: .1rem;
+            top: .14rem;
+        }
+    }
+
     .section {
         padding: .16rem .22rem .1rem;
         background: #fff;

+ 119 - 45
src/views/order.vue

@@ -2,70 +2,145 @@
     <div class="order">
         <header>支付列表</header>
         <h2>{{schoolName}}</h2>
-        <div class="orderList">
-            <div class="table">
-                <div class="title">
-                    <span></span>
-                    <span>姓名</span>
-                    <span>声部</span>
-                    <span>支付金额</span>
-                    <span>到账时间</span>
+        <van-tabs :active="1">
+            <van-tab title="订单信息">
+                <div class="orderList">
+                    <div class="table">
+                        <div class="title">
+                            <span></span>
+                            <span>姓名</span>
+                            <span>声部</span>
+                            <span>支付金额</span>
+                            <span>到账时间</span>
+                        </div>
+                        <div class="content">
+                            <div v-for="(data, index) in dataList" :key="data.id">
+                            <!-- <div> -->
+                                <span> {{ ++index }} </span>
+                                <span> {{ data.userName }} </span>
+                                <span> {{ data.voicyPart }} </span>
+                                <span> {{ data.amount }} </span>
+                                <span> {{ data.payTime }} </span>
+                            </div>
+                            
+                        </div>
+                    </div>
                 </div>
-                <div class="content">
-                    <div v-for="(data, index) in dataList" :key="data.id">
-                    <!-- <div> -->
-                        <span> {{ ++index }} </span>
-                        <span> {{ data.userName }} </span>
-                        <span> {{ data.voicyPart }} </span>
-                        <span> {{ data.amount }} </span>
-                        <span> {{ data.payTime }} </span>
+            </van-tab>
+            <van-tab title="学生信息">
+                <div class="table">
+                    <div class="title">
+                        <span></span>
+                        <span>姓名</span>
+                        <span>班级</span>
+                        <span>声部</span>
+                        <span>调剂</span>
+                    </div>
+                    <div class="content">
+                        <div v-for="(data, index) in studentList" :key="data.id">
+                        <!-- <div> -->
+                            <span> {{ ++index }} </span>
+                            <span> {{ data.name }} </span>
+                            <span> {{ data.gClass }} </span>
+                            <span> {{ data.subName ? data.subName.split('.').reverse()[0] : data.subName }} </span>
+                            <span> <van-button 
+                                    :disabled="data.pushStatus <= 1 && data.status == 0 ? false : true" 
+                                    round 
+                                    @click = "adjust(data)"
+                                    type = "danger" 
+                                    size = "small">调剂</van-button> 
+                            </span>
+                        </div>
                     </div>
-                    
                 </div>
-
-                
-            </div>
-        </div>
+                <van-action-sheet
+                    v-model="adjustStatus"
+                    :actions="couresList"
+                    cancel-text="取消"
+                    @cancel="adjustStatus = false"
+                    @select="adjustSelect" />
+            </van-tab>
+        </van-tabs>
     </div>
 </template>
 
 <script>
+import { Toast } from 'vant'
 import qs from 'qs'
 export default {
     name: 'order',
+    components: { Toast },
     data() {
         return {
-            classId: null,
-            schoolName: null,
-            dataList: {}
+            classId: this.$route.query.classId,
+            schoolName: this.$route.query.schoolName,
+            dataList: {}, // 订单列表
+            studentList: {}, // 学生列表
+            couresList: [], // 课程列表
+            adjustStatus: false, //
+            changeStudent: null, // 修改的学生对象
         }
     },
     mounted() {
-        // let schoolId = this.$route.query.schoolId
-        // axios.post(`/user/getClassDetail`, qs.stringify({
-        //     schoolId: schoolId
-        // })).then((response) => {
-        //     let result = response.data
-        //     this.schoolName = result.data.name
-        //     axios.post('/order/checkOrderList', qs.stringify({
-        //         classId: result.data.id,
-        //         type: 1
-        //     })).then(r => {
-        //         this.dataList = r.data.data
-        //     })
-        // })
-
-        let classIds = this.$route.query.classId
-        this.schoolName = this.$route.query.schoolName
-        // console.log(classId)
+        // 获取订单信息
         axios.post('/order/checkOrderList', qs.stringify({
-            classId: classIds,
+            classId: this.classId,
             type: 1
         })).then(r => {
             this.dataList = r.data.data
         })
-
+        // 获取所有课程
+        axios.post('/user/getCourses ', qs.stringify({
+            clazzId: this.classId
+        })).then(c => {
+            let result = c.data.data
+            result.forEach(r => {
+                this.couresList.push({
+                    name: r.subName.split('.').reverse()[0],
+                    subId: r.subId 
+                })
+            })
+        })
         
+        // 获取学生列表信息
+        this.getStudents()
+    },
+    methods: {
+        getStudents(item) {
+            if(!item) {
+                item = {}
+            }
+            axios.post('/user/getMusicTeamStu', qs.stringify({
+                musicTeamId: this.classId, // 乐团Id
+                name: '', // 学生姓名
+                status: '', // 学生状态
+                subId: '', // 声部编号
+                page: item.page ? item.page : 1, //默认1第一页
+                rows: item.rows ? item.rows : 100 // 默认20条数据
+            })).then(r => {
+                this.studentList = r.data.data.rows
+            })
+        },
+        adjustSelect(item) {
+            axios.post('/user/updateUserSub', qs.stringify({
+                courseId: this.changeStudent.courseId,
+                subId: item.subId,
+                userId: this.changeStudent.id
+            })).then(student => {
+                if(student.data.code == 200) {
+                    Toast(student.data.msg)
+                    this.changeStudent.subName = item.name
+                    this.adjustStatus = false
+                }
+            })
+        },
+        adjust(item) {
+            // 开始调剂
+            if(item.pushStatus <= 1 && item.status == 0) {
+                this.adjustStatus = true
+                this.changeStudent = item
+            }
+        }
     }
 }
 </script>
@@ -83,7 +158,6 @@ header {
     background: #fff;
     box-shadow: 0px 1px 8px 0px rgba(0,0,0,0.07);
     text-align: center;
-    margin-bottom: .06rem;
 }
 h2 {
     font-size: .16rem;
@@ -105,7 +179,7 @@ h2 {
     span {
         flex: 1;
         padding: .08rem 0;
-
+        font-size: .14rem;
         &:first-child {
             width: .3rem;
             flex: inherit;

+ 1 - 1
src/views/register.vue

@@ -202,7 +202,7 @@ export default {
                 subId: this.stuIndex.subNo,
                 branchId: params.branchId,
                 schoolId: params.schoolId,
-                grade:  s.school + s.class,
+                grade: s.class,
                 gClass: s.grade,
                 isAdjust: this.stuIndex.adjustNo,
                 patriarchPhone: s.phone,

+ 5 - 9
vue.config.js

@@ -1,3 +1,5 @@
+let targetUrl = 'http://testpay.dayaedu.com'
+// let targetUrl = 'http://192.168.3.38:8088'
 module.exports = {
     devServer: {
         open: process.platform === 'darwin',
@@ -7,27 +9,21 @@ module.exports = {
         // 查阅 https://github.com/vuejs/vue-doc-zh-cn/vue-cli/cli-service.md#配置代理
         proxy: {
             '/user': {
-                target: 'http://testpay.dayaedu.com',
-                // target: 'http://192.168.3.38:9000',
-                // target: 'http://192.168.3.28:8005',
+                target: targetUrl,
                 changeOrigin: true,
                 ws: true,
                 '^/user': '/user',
                 xfwd: true
             },
             '/yqpay': {
-                target: 'http://testpay.dayaedu.com',
-                // target: 'http://192.168.3.38:9000',
-                // target: 'http://192.168.3.27:9000',
+                target: targetUrl,
                 changeOrigin: true,
                 ws: true,
                 '^/yqpay': '/yqpay',
                 xfwd: true
             },
             '/order': {
-                target: 'http://testpay.dayaedu.com',
-                // target: 'http://192.168.3.38:9000',
-                // target: 'http://192.168.3.27:9000',
+                target: targetUrl,
                 changeOrigin: true,
                 ws: true,
                 '^/order': '/order',