Ver código fonte

Merge branch 'master' of http://git.cc-lotus.info/ball-court/ball-applet

zs 2 anos atrás
pai
commit
a8e22405a6

+ 48 - 25
pages/schAdmin/courseexam/info.js

@@ -6,38 +6,42 @@ Page({
      * 页面的初始数据
      */
     data: {
-        frameStyle: { useTop: true, name: '审核入学', leftArrow: true, useBar: false },
+        frameStyle: { useTop: true, name: '学员课程详细信息', leftArrow: true, useBar: false },
         id: '',
-        form: {},
+        // 选中
+        tabs: {
+            active: '0',
+            menu: [
+                { title: '学生信息', active: '0' },
+                { title: '课程信息', active: '1' },
+            ]
+        },
+        // 学员信息
+        stuInfo: {},
+        // 课程信息
+        lesInfo: {},
+        // 学生id
         student_id: '',
+        // 课程id
+        lesson_id: '',
+        // 学员等级
+        levelList: [],
+        // 学员性别
+        genderList: [],
+        // 状态列表
+        statusList: [],
+        // 类型列表
+        typeList: [],
     },
     // 返回
     back: function () {
         wx.navigateBack({ delta: 1 })
     },
-
-    // 审核
-    toEdit: function (e) {
+    // 选项卡选择
+    tabsChange: function (e) {
         const that = this;
-        let params = {};
-        const { try_status } = e.currentTarget.dataset;
-        wx.showModal({
-            title: '提示',
-            content: '是否审核该条数据',
-            async success(res) {
-                if (res.confirm) {
-                    params.try_status = try_status
-                    if (that.data.id) {
-                        const arr = await app.$post(`/lessonStudent/${that.data.id}`, params);
-                        if (arr.errcode == '0') {
-                            wx.showToast({ title: `维护信息完成`, icon: 'success', duration: 2000 }); that.back();
-                        }
-                        else wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 })
-                    }
-                } else if (res.cancel) {
-                }
-            }
-        })
+        let data = e.detail;
+        that.setData({ 'tabs.active': data.active })
     },
     /**
      * 生命周期函数--监听页面加载
@@ -55,22 +59,41 @@ Page({
             key: 'user',
             success: async res => {
                 that.setData({ school_id: res.data.info.id })
+                // 学员等级
                 const aee = await app.$get(`/dict`, { code: "student_grade" });
                 if (aee.errcode == '0' && aee.total > 0) that.setData({ levelList: aee.data[0].list });
+                // 学员性别
                 const ree = await app.$get(`/dict`, { code: "gender" });
                 if (ree.errcode == '0' && ree.total > 0) that.setData({ genderList: ree.data[0].list });
+                // 课程状态
+                const aff = await app.$get(`/dict`, { code: "lesson_status" });
+                if (aff.errcode == '0' && aff.total > 0) that.setData({ statusList: aff.data[0].list });
+                // 课程列表
+                const acc = await app.$get(`/dict`, { code: "lesson_type" });
+                if (acc.errcode == '0' && aee.total > 0) that.setData({ typeList: acc.data[0].list });
                 if (that.data.id) {
                     const aee = await app.$get(`/lessonStudent/${that.data.id}`);
                     if (aee.errcode == '0') {
                         that.setData({ student_id: aee.data.student_id })
+                        that.setData({ lesson_id: aee.data.lesson_id })
                     }
+                    // 学员信息
                     const arr = await app.$get(`/student/${that.data.student_id}`);
                     if (arr.errcode == '0') {
                         let gender = that.data.genderList.find(i => i.value == arr.data.gender)
                         if (gender) arr.data.zhGender = gender.label;
                         let level = that.data.levelList.find(i => i.value == arr.data.level)
                         if (level) arr.data.zhLevel = level.label;
-                        that.setData({ form: arr.data });
+                        that.setData({ stuInfo: arr.data });
+                    }
+                    // 课程信息
+                    const abb = await app.$get(`/lesson/${that.data.lesson_id}`);
+                    if (abb.errcode == '0') {
+                        let status = that.data.statusList.find(i => i.value == abb.data.status)
+                        if (status) abb.data.zhstatus = status.label;
+                        let type = that.data.typeList.find(i => i.value == abb.data.type)
+                        if (type) abb.data.zhtype = type.label;
+                        that.setData({ lesInfo: abb.data });
                     }
                 }
             },

+ 2 - 1
pages/schAdmin/courseexam/info.json

@@ -1,6 +1,7 @@
 {
     "component": true,
     "usingComponents": {
-        "mobile-main": "/commpents/mobile-frame/index"
+        "mobile-main": "/commpents/mobile-frame/index",
+        "s-tab": "/commpents/tabs/index"
     }
 }

+ 30 - 32
pages/schAdmin/courseexam/info.less

@@ -2,49 +2,47 @@
     background-color: var(--mainColor);
     height: var(--twoHeight);
 
-    .one {
-        flex-grow: 1;
+    .two {
         position: relative;
-        height: 81vh;
+        flex-grow: 1;
 
-        .content {
-            display: flex;
-            flex-direction: row;
-            border-bottom: 1px dashed var(--f1Color);
-            padding: 2vw 0;
-            margin: 0 2vw 2vw 2vw;
+        .a {
+            height: 83vh;
 
-            .value {
-                flex-grow: 1;
-                color: var(--blackColor);
 
-                textarea {
-                    position: static;
-                    width: 73vw;
-                }
 
-                image {
-                    width: 100px;
-                    height: 100px;
+            .one {
+                flex-grow: 1;
+                position: relative;
+                height: 81vh;
+
+                .content {
+                    display: flex;
+                    flex-direction: row;
+                    border-bottom: 1px dashed var(--f1Color);
+                    padding: 2vw 0;
+                    margin: 0 2vw 2vw 2vw;
+
+                    .value {
+                        flex-grow: 1;
+                        color: var(--blackColor);
+
+                        textarea {
+                            position: static;
+                            width: 73vw;
+                        }
+
+                        image {
+                            width: 100px;
+                            height: 100px;
+                        }
+                    }
                 }
             }
         }
     }
 
-    .btn {
-        text-align: center;
-        margin: 5vw 0 0 0;
 
-        button {
-            width: 40vw;
-            margin: 0 2vw;
-            padding: 1vw 0;
-        }
-
-        button:last-child {
-            background-color: #FF7F50;
-        }
-    }
 
 }
 

+ 115 - 52
pages/schAdmin/courseexam/info.wxml

@@ -1,62 +1,125 @@
 <mobile-main frameStyle="{{frameStyle}}" bind:back="back">
     <view slot="info" class="container main">
         <view class="one">
-            <scroll-view scroll-y="true" class="scroll-view">
-                <view class="list-scroll-view">
-                    <view class="content">
-                        <view class="label">头像:</view>
-                        <view class="value">
-                            <image src="{{form.icon&&form.icon.length>0?form.icon[0].url:''}}">
-                            </image>
-                        </view>
-                    </view>
-                    <view class="content">
-                        <view class="label">姓名:</view>
-                        <view class="value">{{form.name}}</view>
-                    </view>
-                    <view class="content">
-                        <view class="label">性别:</view>
-                        <view class="value">{{form.zhGender||'暂无'}} </view>
-                    </view>
-                    <view class="content">
-                        <view class="label">年龄:</view>
-                        <view class="value">{{form.age}}
-                        </view>
-                    </view>
-                    <view class="content">
-                        <view class="label">联系电话:</view>
-                        <view class="value">{{form.phone}}
-                        </view>
-                    </view>
-                    <view class="content">
-                        <view class="label">运动等级:</view>
-                        <view class="value">{{form.zhLevel||'暂无'}}
-                        </view>
-                    </view>
-                    <view class="content">
-                        <view class="label">学员简介:</view>
-                        <view class="value">{{form.brief}}
-                            <textarea name="brief" maxlength="-1" auto-height value="{{form.brief}}" disabled placeholder="请输入学员简介" />
-                        </view>
-                    </view>
-                    <view class="content">
-                        <view class="label">过往荣誉:</view>
-                        <view class="value">
-                            <textarea name="honer" maxlength="-1" auto-height value="{{form.honer}}" disabled placeholder="请输入过往荣誉" />
+            <s-tab tabs="{{tabs}}" bind:tabsChange="tabsChange"></s-tab>
+        </view>
+        <view class="two">
+            <view wx:if="{{tabs.active=='0'}}" class="a">
+                <scroll-view scroll-y="true" class="scroll-view">
+                    <view class="list-scroll-view">
+                        <view class="one">
+                            <scroll-view scroll-y="true" class="scroll-view">
+                                <view class="list-scroll-view">
+                                    <view class="content">
+                                        <view class="label">头像:</view>
+                                        <view class="value">
+                                            <image src="{{stuInfo.icon&&stuInfo.icon.length>0?stuInfo.icon[0].url:''}}">
+                                            </image>
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">姓名:</view>
+                                        <view class="value">{{stuInfo.name}}</view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">性别:</view>
+                                        <view class="value">{{stuInfo.zhGender||'暂无'}} </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">年龄:</view>
+                                        <view class="value">{{stuInfo.age}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">联系电话:</view>
+                                        <view class="value">{{stuInfo.phone}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">运动等级:</view>
+                                        <view class="value">{{stuInfo.zhLevel||'暂无'}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">学员简介:</view>
+                                        <view class="value">{{stuInfo.brief}}
+                                            <textarea name="brief" maxlength="-1" auto-height value="{{stuInfo.brief}}" disabled placeholder="请输入学员简介" />
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">过往荣誉:</view>
+                                        <view class="value">
+                                            <textarea name="honer" maxlength="-1" auto-height value="{{stuInfo.honer}}" disabled placeholder="请输入过往荣誉" />
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">训练经历:</view>
+                                        <view class="value">
+                                            <textarea name="exp" maxlength="-1" auto-height value="{{stuInfo.exp}}" disabled placeholder="请输入训练经历" />
+                                        </view>
+                                    </view>
+                                </view>
+                            </scroll-view>
                         </view>
                     </view>
-                    <view class="content">
-                        <view class="label">训练经历:</view>
-                        <view class="value">
-                            <textarea name="exp" maxlength="-1" auto-height value="{{form.exp}}" disabled placeholder="请输入训练经历" />
+                </scroll-view>
+            </view>
+            <view wx:elif="{{tabs.active=='1'}}" class="a">
+                <scroll-view scroll-y="true" class="scroll-view">
+                    <view class="list-scroll-view">
+                        <view class="one">
+                            <scroll-view scroll-y="true" class="scroll-view">
+                                <view class="list-scroll-view">
+                                    <view class="content">
+                                        <view class="label">课程名称:</view>
+                                        <view class="value">
+                                            {{lesInfo.title}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">课程类型:</view>
+                                        <view class="value">
+                                            {{lesInfo.zhtype}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">课程简介:</view>
+                                        <view class="value">{{lesInfo.brief}}</view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">人数限制:</view>
+                                        <view class="value">{{lesInfo.limit||'暂无'}}人 </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">金额:</view>
+                                        <view class="value">{{lesInfo.money||'暂无'}}元 /人</view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">开始时间:</view>
+                                        <view class="value">{{lesInfo.time_start}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">结束时间:</view>
+                                        <view class="value">{{lesInfo.time_end}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">退款期限:</view>
+                                        <view class="value">{{lesInfo.refund_hour||'暂无'}}前
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">状态:</view>
+                                        <view class="value">{{lesInfo.zhstatus}}
+                                        </view>
+                                    </view>
+                                </view>
+                            </scroll-view>
                         </view>
                     </view>
-                </view>
-            </scroll-view>
-        </view>
-        <view class="btn">
-            <button type="primary" size="mini" bindtap="toEdit" data-try_status="1">通过</button>
-            <button type="primary" size="mini" bindtap="toEdit" data-try_status="-1">拒绝</button>
+                </scroll-view>
+            </view>
         </view>
     </view>
 </mobile-main>

+ 12 - 17
pages/schAdmin/courseexam/info.wxss

@@ -2,42 +2,37 @@
   background-color: var(--mainColor);
   height: var(--twoHeight);
 }
-.main .one {
+.main .two {
+  position: relative;
+  flex-grow: 1;
+}
+.main .two .a {
+  height: 83vh;
+}
+.main .two .a .one {
   flex-grow: 1;
   position: relative;
   height: 81vh;
 }
-.main .one .content {
+.main .two .a .one .content {
   display: flex;
   flex-direction: row;
   border-bottom: 1px dashed var(--f1Color);
   padding: 2vw 0;
   margin: 0 2vw 2vw 2vw;
 }
-.main .one .content .value {
+.main .two .a .one .content .value {
   flex-grow: 1;
   color: var(--blackColor);
 }
-.main .one .content .value textarea {
+.main .two .a .one .content .value textarea {
   position: static;
   width: 73vw;
 }
-.main .one .content .value image {
+.main .two .a .one .content .value image {
   width: 100px;
   height: 100px;
 }
-.main .btn {
-  text-align: center;
-  margin: 5vw 0 0 0;
-}
-.main .btn button {
-  width: 40vw;
-  margin: 0 2vw;
-  padding: 1vw 0;
-}
-.main .btn button:last-child {
-  background-color: #FF7F50;
-}
 .scroll-view {
   position: absolute;
   top: 0;

+ 2 - 12
pages/schAdmin/courseexam/list.js

@@ -1,5 +1,4 @@
 const app = getApp()
-import QRCode from '../../../utils/weapp-qrcode.js';
 
 Page({
     data: {
@@ -9,8 +8,6 @@ Page({
         page: 0,
         skip: 0,
         limit: 5,
-        // 等级列表
-        // levelList: [],
     },
     // 返回
     back: function () {
@@ -52,16 +49,9 @@ Page({
         wx.getStorage({
             key: 'user',
             success: async res => {
-                // 学员等级
-                // let aee = await app.$get(`/dict`, { code: 'student_grade' });
-                // if (aee.errcode == '0' && aee.total > 0) that.setData({ levelList: aee.data[0].list })
-                let info = { skip: that.data.skip, limit: that.data.limit, school_id: res.data.info.id, is_try: 0 };
-                const arr = await app.$get(`/lessonStudent`, { ...info });
+                let info = { skip: that.data.skip, limit: that.data.limit, school_id: res.data.info.id };
+                const arr = await app.$get(`/tempLessonApply`, { ...info });
                 if (arr.errcode == '0') {
-                    // for (const val of arr.data) {
-                    //     let level = that.data.levelList.find(i => i.value == val.student_id_level)
-                    //     if (level) val.zhLevel = level.label;
-                    // }
                     that.setData({ list: [...that.data.list, ...arr.data] });
                     that.setData({ total: arr.total });
                 }

+ 2 - 6
pages/schAdmin/courseexam/list.wxml

@@ -16,17 +16,13 @@
                             </view>
                             <view class="content">
                                 <view class="name textOver">{{item.student_id_name||'学员姓名'}}</view>
-                                <view class="other">学员等级:<text>{{item.zhLevel||'一级'}}</text>
-                                </view>
+                                <view class="other">课程名称:<text>{{item.lesson_id||'一级'}}</text></view>
                                 <view class="other">联系电话:{{item.student_id_phone||'暂无'}}
                                 </view>
-                                <view class="other">状态:
-                                    <text>{{item.try_status==1?'已通过':item.try_status==-1?'已拒绝':'未审核'}}</text>
-                                </view>
                             </view>
                         </view>
                         <view class="btn">
-                            <button bindtap="toEdit" data-item="{{item}}" wx:if="{{item.try_status==0}}">审核信息</button>
+                            <button bindtap="toEdit" data-item="{{item}}">详细信息</button>
                         </view>
                     </view>
                 </view>

+ 100 - 13
pages/schAdmin/coursestu/info.js

@@ -1,66 +1,153 @@
-// pages/schAdmin/coursestu/info.js
+const app = getApp()
+
 Page({
 
     /**
      * 页面的初始数据
      */
     data: {
-
+        frameStyle: { useTop: true, name: '学员课程详细信息', leftArrow: true, useBar: false },
+        id: '',
+        // 选中
+        tabs: {
+            active: '0',
+            menu: [
+                { title: '学生信息', active: '0' },
+                { title: '课程信息', active: '1' },
+            ]
+        },
+        // 学员信息
+        stuInfo: {},
+        // 课程信息
+        lesInfo: {},
+        // 学生id
+        student_id: '',
+        // 课程id
+        lesson_id: '',
+        // 学员等级
+        levelList: [],
+        // 学员性别
+        genderList: [],
+        // 状态列表
+        statusList: [],
+        // 类型列表
+        typeList: [],
+    },
+    // 返回
+    back: function () {
+        wx.navigateBack({ delta: 1 })
+    },
+    // 选项卡选择
+    tabsChange: function (e) {
+        const that = this;
+        let data = e.detail;
+        that.setData({ 'tabs.active': data.active })
     },
-
     /**
      * 生命周期函数--监听页面加载
      */
-    onLoad(options) {
-
+    onLoad: function (options) {
+        const that = this;
+        that.setData({ id: options.id || '' })
+        // 监听用户是否登录
+        that.watchLogin();
+    },
+    // 监听用户是否登录
+    watchLogin: async function () {
+        const that = this;
+        wx.getStorage({
+            key: 'user',
+            success: async res => {
+                that.setData({ school_id: res.data.info.id })
+                // 学员等级
+                const aee = await app.$get(`/dict`, { code: "student_grade" });
+                if (aee.errcode == '0' && aee.total > 0) that.setData({ levelList: aee.data[0].list });
+                // 学员性别
+                const ree = await app.$get(`/dict`, { code: "gender" });
+                if (ree.errcode == '0' && ree.total > 0) that.setData({ genderList: ree.data[0].list });
+                // 课程状态
+                const aff = await app.$get(`/dict`, { code: "lesson_status" });
+                if (aff.errcode == '0' && aff.total > 0) that.setData({ statusList: aff.data[0].list });
+                // 课程列表
+                const acc = await app.$get(`/dict`, { code: "lesson_type" });
+                if (acc.errcode == '0' && aee.total > 0) that.setData({ typeList: acc.data[0].list });
+                if (that.data.id) {
+                    const aee = await app.$get(`/lessonStudent/${that.data.id}`);
+                    if (aee.errcode == '0') {
+                        that.setData({ student_id: aee.data.student_id })
+                        that.setData({ lesson_id: aee.data.lesson_id })
+                    }
+                    // 学员信息
+                    const arr = await app.$get(`/student/${that.data.student_id}`);
+                    if (arr.errcode == '0') {
+                        let gender = that.data.genderList.find(i => i.value == arr.data.gender)
+                        if (gender) arr.data.zhGender = gender.label;
+                        let level = that.data.levelList.find(i => i.value == arr.data.level)
+                        if (level) arr.data.zhLevel = level.label;
+                        that.setData({ stuInfo: arr.data });
+                    }
+                    // 课程信息
+                    const abb = await app.$get(`/lesson/${that.data.lesson_id}`);
+                    if (abb.errcode == '0') {
+                        let status = that.data.statusList.find(i => i.value == abb.data.status)
+                        if (status) abb.data.zhstatus = status.label;
+                        let type = that.data.typeList.find(i => i.value == abb.data.type)
+                        if (type) abb.data.zhtype = type.label;
+                        that.setData({ lesInfo: abb.data });
+                    }
+                }
+            },
+            fail: res => {
+                wx.redirectTo({ url: '/pages/index/index', })
+            }
+        })
     },
-
     /**
      * 生命周期函数--监听页面初次渲染完成
      */
-    onReady() {
+    onReady: function () {
 
     },
 
     /**
      * 生命周期函数--监听页面显示
      */
-    onShow() {
+    onShow: function () {
 
     },
 
     /**
      * 生命周期函数--监听页面隐藏
      */
-    onHide() {
+    onHide: function () {
 
     },
 
     /**
      * 生命周期函数--监听页面卸载
      */
-    onUnload() {
+    onUnload: function () {
 
     },
 
     /**
      * 页面相关事件处理函数--监听用户下拉动作
      */
-    onPullDownRefresh() {
+    onPullDownRefresh: function () {
 
     },
 
     /**
      * 页面上拉触底事件的处理函数
      */
-    onReachBottom() {
+    onReachBottom: function () {
 
     },
 
     /**
      * 用户点击右上角分享
      */
-    onShareAppMessage() {
+    onShareAppMessage: function () {
 
     }
 })

+ 5 - 1
pages/schAdmin/coursestu/info.json

@@ -1,3 +1,7 @@
 {
-    "usingComponents": {}
+    "component": true,
+    "usingComponents": {
+        "mobile-main": "/commpents/mobile-frame/index",
+        "s-tab": "/commpents/tabs/index"
+    }
 }

+ 60 - 0
pages/schAdmin/coursestu/info.less

@@ -0,0 +1,60 @@
+.main {
+    background-color: var(--mainColor);
+    height: var(--twoHeight);
+
+    .two {
+        position: relative;
+        flex-grow: 1;
+
+        .a {
+            height: 83vh;
+
+
+
+            .one {
+                flex-grow: 1;
+                position: relative;
+                height: 81vh;
+
+                .content {
+                    display: flex;
+                    flex-direction: row;
+                    border-bottom: 1px dashed var(--f1Color);
+                    padding: 2vw 0;
+                    margin: 0 2vw 2vw 2vw;
+
+                    .value {
+                        flex-grow: 1;
+                        color: var(--blackColor);
+
+                        textarea {
+                            position: static;
+                            width: 73vw;
+                        }
+
+                        image {
+                            width: 100px;
+                            height: 100px;
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+
+
+}
+
+.scroll-view {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+
+    .list-scroll-view {
+        display: flex;
+        flex-direction: column;
+    }
+}

+ 125 - 2
pages/schAdmin/coursestu/info.wxml

@@ -1,2 +1,125 @@
-<!--pages/schAdmin/coursestu/info.wxml-->
-<text>pages/schAdmin/coursestu/info.wxml</text>
+<mobile-main frameStyle="{{frameStyle}}" bind:back="back">
+    <view slot="info" class="container main">
+        <view class="one">
+            <s-tab tabs="{{tabs}}" bind:tabsChange="tabsChange"></s-tab>
+        </view>
+        <view class="two">
+            <view wx:if="{{tabs.active=='0'}}" class="a">
+                <scroll-view scroll-y="true" class="scroll-view">
+                    <view class="list-scroll-view">
+                        <view class="one">
+                            <scroll-view scroll-y="true" class="scroll-view">
+                                <view class="list-scroll-view">
+                                    <view class="content">
+                                        <view class="label">头像:</view>
+                                        <view class="value">
+                                            <image src="{{stuInfo.icon&&stuInfo.icon.length>0?stuInfo.icon[0].url:''}}">
+                                            </image>
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">姓名:</view>
+                                        <view class="value">{{stuInfo.name}}</view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">性别:</view>
+                                        <view class="value">{{stuInfo.zhGender||'暂无'}} </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">年龄:</view>
+                                        <view class="value">{{stuInfo.age}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">联系电话:</view>
+                                        <view class="value">{{stuInfo.phone}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">运动等级:</view>
+                                        <view class="value">{{stuInfo.zhLevel||'暂无'}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">学员简介:</view>
+                                        <view class="value">{{stuInfo.brief}}
+                                            <textarea name="brief" maxlength="-1" auto-height value="{{stuInfo.brief}}" disabled placeholder="请输入学员简介" />
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">过往荣誉:</view>
+                                        <view class="value">
+                                            <textarea name="honer" maxlength="-1" auto-height value="{{stuInfo.honer}}" disabled placeholder="请输入过往荣誉" />
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">训练经历:</view>
+                                        <view class="value">
+                                            <textarea name="exp" maxlength="-1" auto-height value="{{stuInfo.exp}}" disabled placeholder="请输入训练经历" />
+                                        </view>
+                                    </view>
+                                </view>
+                            </scroll-view>
+                        </view>
+                    </view>
+                </scroll-view>
+            </view>
+            <view wx:elif="{{tabs.active=='1'}}" class="a">
+                <scroll-view scroll-y="true" class="scroll-view">
+                    <view class="list-scroll-view">
+                        <view class="one">
+                            <scroll-view scroll-y="true" class="scroll-view">
+                                <view class="list-scroll-view">
+                                    <view class="content">
+                                        <view class="label">课程名称:</view>
+                                        <view class="value">
+                                            {{lesInfo.title}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">课程类型:</view>
+                                        <view class="value">
+                                            {{lesInfo.zhtype}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">课程简介:</view>
+                                        <view class="value">{{lesInfo.brief}}</view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">人数限制:</view>
+                                        <view class="value">{{lesInfo.limit||'暂无'}}人 </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">金额:</view>
+                                        <view class="value">{{lesInfo.money||'暂无'}}元 /人</view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">开始时间:</view>
+                                        <view class="value">{{lesInfo.time_start}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">结束时间:</view>
+                                        <view class="value">{{lesInfo.time_end}}
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">退款期限:</view>
+                                        <view class="value">{{lesInfo.refund_hour||'暂无'}}前
+                                        </view>
+                                    </view>
+                                    <view class="content">
+                                        <view class="label">状态:</view>
+                                        <view class="value">{{lesInfo.zhstatus}}
+                                        </view>
+                                    </view>
+                                </view>
+                            </scroll-view>
+                        </view>
+                    </view>
+                </scroll-view>
+            </view>
+        </view>
+    </view>
+</mobile-main>

+ 46 - 1
pages/schAdmin/coursestu/info.wxss

@@ -1 +1,46 @@
-/* pages/schAdmin/coursestu/info.wxss */
+.main {
+  background-color: var(--mainColor);
+  height: var(--twoHeight);
+}
+.main .two {
+  position: relative;
+  flex-grow: 1;
+}
+.main .two .a {
+  height: 83vh;
+}
+.main .two .a .one {
+  flex-grow: 1;
+  position: relative;
+  height: 81vh;
+}
+.main .two .a .one .content {
+  display: flex;
+  flex-direction: row;
+  border-bottom: 1px dashed var(--f1Color);
+  padding: 2vw 0;
+  margin: 0 2vw 2vw 2vw;
+}
+.main .two .a .one .content .value {
+  flex-grow: 1;
+  color: var(--blackColor);
+}
+.main .two .a .one .content .value textarea {
+  position: static;
+  width: 73vw;
+}
+.main .two .a .one .content .value image {
+  width: 100px;
+  height: 100px;
+}
+.scroll-view {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.scroll-view .list-scroll-view {
+  display: flex;
+  flex-direction: column;
+}

+ 70 - 28
pages/schAdmin/coursestu/list.js

@@ -1,66 +1,108 @@
-// pages/schAdmin/coursestu/list.js
-Page({
+const app = getApp()
+import QRCode from '../../../utils/weapp-qrcode.js';
 
-    /**
-     * 页面的初始数据
-     */
+Page({
     data: {
-
+        frameStyle: { useTop: true, name: '学员信息', leftArrow: true, useBar: false },
+        list: [],
+        total: 0,
+        page: 0,
+        skip: 0,
+        limit: 5,
+    },
+    // 返回
+    back: function () {
+        wx.navigateBack({ delta: 1 })
+    },
+    // 审核
+    toEdit: function (e) {
+        const that = this;
+        let { item } = e.currentTarget.dataset;
+        that.setData({ skip: 0, page: 0, list: [] })
+        wx.navigateTo({ url: `/pages/schAdmin/coursestu/info?id=${item._id}` })
+    },
+    // 分页
+    toPage: function () {
+        const that = this;
+        let list = that.data.list;
+        let limit = that.data.limit;
+        if (that.data.total > list.length) {
+            wx.showLoading({ title: '加载中', mask: true })
+            let page = that.data.page + 1;
+            that.setData({ page: page })
+            let skip = page * limit;
+            that.setData({ skip: skip })
+            that.watchLogin();
+            wx.hideLoading()
+        } else { wx.showToast({ title: '没有更多数据了', icon: 'none', duration: 2000 }) }
+    },
+    // 返回
+    back(e) {
+        wx.navigateBack({ delta: 1 })
     },
-
     /**
      * 生命周期函数--监听页面加载
      */
-    onLoad(options) {
-
+    onLoad: function (options) { },
+    // 监听用户是否登录
+    watchLogin: async function () {
+        const that = this;
+        wx.getStorage({
+            key: 'user',
+            success: async res => {
+                let info = { skip: that.data.skip, limit: that.data.limit, school_id: res.data.info.id };
+                const arr = await app.$get(`/lessonStudent`, { ...info });
+                if (arr.errcode == '0') {
+                    that.setData({ list: [...that.data.list, ...arr.data] });
+                    that.setData({ total: arr.total });
+                }
+                else { wx.showToast({ title: `${arr.errmsg}`, icon: 'error', duration: 2000 }) }
+            },
+            fail: async res => {
+                wx.redirectTo({ url: '/pages/index/index' })
+            }
+        })
     },
-
     /**
      * 生命周期函数--监听页面初次渲染完成
      */
-    onReady() {
-
-    },
-
+    onReady: function () { },
     /**
      * 生命周期函数--监听页面显示
      */
-    onShow() {
-
+    onShow: function () {
+        const that = this;
+        // 监听用户是否登录
+        that.watchLogin();
     },
-
+    /**
+     * 页面上拉触底事件的处理函数
+     */
     /**
      * 生命周期函数--监听页面隐藏
      */
-    onHide() {
+    onHide: function () {
 
     },
 
     /**
      * 生命周期函数--监听页面卸载
      */
-    onUnload() {
+    onUnload: function () {
 
     },
 
     /**
      * 页面相关事件处理函数--监听用户下拉动作
      */
-    onPullDownRefresh() {
-
-    },
-
-    /**
-     * 页面上拉触底事件的处理函数
-     */
-    onReachBottom() {
+    onPullDownRefresh: function () {
 
     },
 
     /**
      * 用户点击右上角分享
      */
-    onShareAppMessage() {
+    onShareAppMessage: function () {
 
     }
 })

+ 5 - 2
pages/schAdmin/coursestu/list.json

@@ -1,3 +1,6 @@
 {
-    "usingComponents": {}
-}
+    "component": true,
+    "usingComponents": {
+      "mobile-main": "/commpents/mobile-frame/index"
+    }
+  }

+ 158 - 0
pages/schAdmin/coursestu/list.less

@@ -0,0 +1,158 @@
+.main {
+    height: var(--twoHeight);
+    background-color: var(--mainColor);
+
+    .one {
+        display: flex;
+        flex-direction: row;
+        padding: 2vw;
+        border-bottom: 1px solid var(--f1Color);
+
+        .one_1 {
+            flex-grow: 1;
+
+            input {
+                padding: 1vw 0 2vw 2vw;
+                background-color: var(--f1Color);
+                border-radius: 5px;
+            }
+        }
+
+        .one_2 {
+            width: 20vw;
+
+            button {
+                width: 100%;
+                padding: 2vw;
+                font-size: var(--font14Size);
+            }
+        }
+    }
+
+    .two {
+        flex-grow: 1;
+        position: relative;
+
+        .list {
+            display: flex;
+            flex-direction: column;
+            padding: 2vw;
+            margin: 2vw 2vw 0;
+            border-radius: 10px;
+            border: 1px dashed var(--blackColor);
+
+
+            .list_1 {
+                display: flex;
+                flex-direction: row;
+                margin: 0 0 2vw 0;
+                border: 2px dashed var(--blackColor);
+                border-radius: 10px;
+
+                .icon {
+                    width: 18vw;
+                    height: 18vw;
+                    margin-top: 2vw;
+                    margin-left: 2vw;
+
+                    image {
+                        width: 100%;
+                        height: 100%;
+                        border-radius: 50%;
+                        background-color: var(--f85Color);
+                    }
+                }
+
+                .content {
+                    display: flex;
+                    flex-direction: column;
+                    margin: 0 0 0 3vw;
+
+                    .name {
+                        font-weight: 700;
+                        font-size: var(--font18Szie);
+                        color: var(--blackColor);
+                        margin: 1vw 0;
+                    }
+
+                    .other {
+                        font-size: var(--font15Size);
+                        color: var(--f85Color);
+                        margin: 0.5vw 0 1vw 0;
+
+                        text {
+                            color: var(--redColor);
+                        }
+                    }
+                }
+            }
+
+            .btn {
+                display: flex;
+                flex-direction: row;
+
+                button {
+                    width: 100%;
+                    padding: 2vw;
+                    font-size: var(--font14Size);
+                    color: var(--whiteColor);
+                    border-radius: 50px;
+                    margin: 0 2vw;
+                    background-color: #35d4bd;
+                    box-sizing: content-box;
+                    border: 2px dashed var(--whiteColor);
+                }
+
+                button:nth-child(2n) {
+                    background-color: #f860df;
+                }
+
+                button:last-child {
+                    background-color: #FF7F50;
+                }
+            }
+        }
+    }
+}
+
+.scroll-view {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+
+    .list-scroll-view {
+        display: flex;
+        flex-direction: column;
+    }
+}
+
+.dialog {
+    .dialog_1 {
+        .name {
+            text-align: center;
+            font-size: var(--font18Szie);
+            font-weight: bold;
+            margin: 3vw 0;
+        }
+
+        .image {
+            text-align: center;
+            height: 18vh;
+            overflow: hidden;
+
+            .qrcode {
+                height: 22vh;
+                position: absolute;
+                left: 32vw;
+            }
+        }
+
+        .remark {
+            text-align: center;
+            font-size: 15px;
+            margin: 0 0 4vw 0;
+        }
+    }
+}

+ 32 - 2
pages/schAdmin/coursestu/list.wxml

@@ -1,2 +1,32 @@
-<!--pages/schAdmin/coursestu/list.wxml-->
-<text>pages/schAdmin/coursestu/list.wxml</text>
+<mobile-main frameStyle="{{frameStyle}}" bind:back="back">
+    <view slot="info" class="container main">
+        <view class="one">
+            <view class="one_1">
+                <input type="text" placeholder="请输入关键词" />
+            </view>
+        </view>
+        <view class="two">
+            <scroll-view scroll-y="true" class="scroll-view" bindscrolltolower="toPage">
+                <view class="list-scroll-view">
+                    <view class="list" wx:for="{{list}}" wx:key="item">
+                        <view class="list_1">
+                            <view class="icon">
+                                <image src="{{item.student_id_icon&&item.student_id_icon.length>0?item.student_id_icon[0].url:''}}">
+                                </image>
+                            </view>
+                            <view class="content">
+                                <view class="name textOver">{{item.student_id_name||'学员姓名'}}</view>
+                                <view class="other">课程名称:<text>{{item.lesson_id||'一级'}}</text></view>
+                                <view class="other">联系电话:{{item.student_id_phone||'暂无'}}
+                                </view>
+                            </view>
+                        </view>
+                        <view class="btn">
+                            <button bindtap="toEdit" data-item="{{item}}">查看详情</button>
+                        </view>
+                    </view>
+                </view>
+            </scroll-view>
+        </view>
+    </view>
+</mobile-main>

+ 129 - 1
pages/schAdmin/coursestu/list.wxss

@@ -1 +1,129 @@
-/* pages/schAdmin/coursestu/list.wxss */
+.main {
+  height: var(--twoHeight);
+  background-color: var(--mainColor);
+}
+.main .one {
+  display: flex;
+  flex-direction: row;
+  padding: 2vw;
+  border-bottom: 1px solid var(--f1Color);
+}
+.main .one .one_1 {
+  flex-grow: 1;
+}
+.main .one .one_1 input {
+  padding: 1vw 0 2vw 2vw;
+  background-color: var(--f1Color);
+  border-radius: 5px;
+}
+.main .one .one_2 {
+  width: 20vw;
+}
+.main .one .one_2 button {
+  width: 100%;
+  padding: 2vw;
+  font-size: var(--font14Size);
+}
+.main .two {
+  flex-grow: 1;
+  position: relative;
+}
+.main .two .list {
+  display: flex;
+  flex-direction: column;
+  padding: 2vw;
+  margin: 2vw 2vw 0;
+  border-radius: 10px;
+  border: 1px dashed var(--blackColor);
+}
+.main .two .list .list_1 {
+  display: flex;
+  flex-direction: row;
+  margin: 0 0 2vw 0;
+  border: 2px dashed var(--blackColor);
+  border-radius: 10px;
+}
+.main .two .list .list_1 .icon {
+  width: 18vw;
+  height: 18vw;
+  margin-top: 2vw;
+  margin-left: 2vw;
+}
+.main .two .list .list_1 .icon image {
+  width: 100%;
+  height: 100%;
+  border-radius: 50%;
+  background-color: var(--f85Color);
+}
+.main .two .list .list_1 .content {
+  display: flex;
+  flex-direction: column;
+  margin: 0 0 0 3vw;
+}
+.main .two .list .list_1 .content .name {
+  font-weight: 700;
+  font-size: var(--font18Szie);
+  color: var(--blackColor);
+  margin: 1vw 0;
+}
+.main .two .list .list_1 .content .other {
+  font-size: var(--font15Size);
+  color: var(--f85Color);
+  margin: 0.5vw 0 1vw 0;
+}
+.main .two .list .list_1 .content .other text {
+  color: var(--redColor);
+}
+.main .two .list .btn {
+  display: flex;
+  flex-direction: row;
+}
+.main .two .list .btn button {
+  width: 100%;
+  padding: 2vw;
+  font-size: var(--font14Size);
+  color: var(--whiteColor);
+  border-radius: 50px;
+  margin: 0 2vw;
+  background-color: #35d4bd;
+  box-sizing: content-box;
+  border: 2px dashed var(--whiteColor);
+}
+.main .two .list .btn button:nth-child(2n) {
+  background-color: #f860df;
+}
+.main .two .list .btn button:last-child {
+  background-color: #FF7F50;
+}
+.scroll-view {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.scroll-view .list-scroll-view {
+  display: flex;
+  flex-direction: column;
+}
+.dialog .dialog_1 .name {
+  text-align: center;
+  font-size: var(--font18Szie);
+  font-weight: bold;
+  margin: 3vw 0;
+}
+.dialog .dialog_1 .image {
+  text-align: center;
+  height: 18vh;
+  overflow: hidden;
+}
+.dialog .dialog_1 .image .qrcode {
+  height: 22vh;
+  position: absolute;
+  left: 32vw;
+}
+.dialog .dialog_1 .remark {
+  text-align: center;
+  font-size: 15px;
+  margin: 0 0 4vw 0;
+}

+ 8 - 5
pages/schAdmin/coursetryexam/info.js

@@ -20,15 +20,18 @@ Page({
     toEdit: function (e) {
         const that = this;
         let params = {};
-        const { try_status } = e.currentTarget.dataset;
+        const { result } = e.currentTarget.dataset;
         wx.showModal({
             title: '提示',
-            content: '是否审核该条数据',
+            editable: true,
+            content: '',
+            placeholderText: '请输入审核意见',
             async success(res) {
                 if (res.confirm) {
-                    params.try_status = try_status
+                    params.result = result
+                    params.reason = res.content
                     if (that.data.id) {
-                        const arr = await app.$post(`/lessonStudent/${that.data.id}`, params);
+                        const arr = await app.$post(`/tryLessonApply/${that.data.id}`, params);
                         if (arr.errcode == '0') {
                             wx.showToast({ title: `维护信息完成`, icon: 'success', duration: 2000 }); that.back();
                         }
@@ -60,7 +63,7 @@ Page({
                 const ree = await app.$get(`/dict`, { code: "gender" });
                 if (ree.errcode == '0' && ree.total > 0) that.setData({ genderList: ree.data[0].list });
                 if (that.data.id) {
-                    const aee = await app.$get(`/lessonStudent/${that.data.id}`);
+                    const aee = await app.$get(`/tryLessonApply/${that.data.id}`);
                     if (aee.errcode == '0') {
                         that.setData({ student_id: aee.data.student_id })
                     }

+ 2 - 2
pages/schAdmin/coursetryexam/info.wxml

@@ -55,8 +55,8 @@
             </scroll-view>
         </view>
         <view class="btn">
-            <button type="primary" size="mini" bindtap="toEdit" data-try_status="1">通过</button>
-            <button type="primary" size="mini" bindtap="toEdit" data-try_status="-1">拒绝</button>
+            <button type="primary" size="mini" bindtap="toEdit" data-result="1">通过</button>
+            <button type="primary" size="mini" bindtap="toEdit" data-result="-1">拒绝</button>
         </view>
     </view>
 </mobile-main>

+ 2 - 2
pages/schAdmin/coursetryexam/list.js

@@ -54,8 +54,8 @@ Page({
                 // 学员等级
                 // let aee = await app.$get(`/dict`, { code: 'student_grade' });
                 // if (aee.errcode == '0' && aee.total > 0) that.setData({ levelList: aee.data[0].list })
-                let info = { skip: that.data.skip, limit: that.data.limit, school_id: res.data.info.id, is_try: 1 };
-                const arr = await app.$get(`/lessonStudent`, { ...info });
+                let info = { skip: that.data.skip, limit: that.data.limit, school_id: res.data.info.id };
+                const arr = await app.$get(`/tryLessonApply`, { ...info });
                 if (arr.errcode == '0') {
                     // for (const val of arr.data) {
                     //     let level = that.data.levelList.find(i => i.value == val.student_id_level)

+ 2 - 2
pages/schAdmin/coursetryexam/list.wxml

@@ -21,12 +21,12 @@
                                 <view class="other">联系电话:{{item.student_id_phone||'暂无'}}
                                 </view>
                                 <view class="other">状态:
-                                    <text>{{item.try_status==1?'已通过':item.try_status==-1?'已拒绝':'未审核'}}</text>
+                                    <text>{{item.result==1?'已通过':item.result==-1?'已拒绝':'未审核'}}</text>
                                 </view>
                             </view>
                         </view>
                         <view class="btn">
-                            <button bindtap="toEdit" data-item="{{item}}" wx:if="{{item.try_status==0}}">审核信息</button>
+                            <button bindtap="toEdit" data-item="{{item}}" wx:if="{{item.result==0}}">审核信息</button>
                         </view>
                     </view>
                 </view>

+ 1 - 1
utils/dict.js

@@ -66,7 +66,7 @@ export const school_menu = [
                     { title: '课程管理', route: 'schAdmin/course/list', icon: 'icon-gongkaikekaifangke' },
                     { title: '课程学员信息', route: 'schAdmin/coursestu/list', icon: 'icon-gongkaikekaifangke' },
                     { title: '试课学员审批', route: 'schAdmin/coursetryexam/list', icon: 'icon-tianshenpi' },
-                    { title: '临时上课审批', route: 'schAdmin/courseexam/list', icon: 'icon-tianshenpi' },
+                    { title: '临时上课学员', route: 'schAdmin/courseexam/list', icon: 'icon-tianshenpi' },
                 ]
             },
             {