guhongwei 3 年之前
父节点
当前提交
95bcdd2d48

+ 14 - 31
pages/scoach/add.js

@@ -1,5 +1,4 @@
 const app = getApp()
-const { gender } = require('../../utils/dict')
 import WxValidate from '../../utils/wxValidate'
 
 Page({
@@ -12,12 +11,13 @@ Page({
         id: '',
         form: { icon: [] },
         // 性别
-        genderList: gender,
+        genderList: [],
+        levelList: [],
     },
     initValidate() {
-        const rules = { icon: { required: true }, name: { required: true }, card: { required: true }, gender: { required: true }, phone: { required: true, tel: true } }
+        const rules = { icon: { required: true }, name: { required: true }, gender: { required: true }, age: { required: true }, phone: { required: true, tel: true } }
         // 验证字段的提示信息,若不传则调用默认的信息
-        const messages = { icon: { required: '请选择头像', }, name: { required: '请输入用户姓名', }, card: { required: '请输入身份证号', }, gender: { required: '请选择性别', }, phone: { required: '请输入手机号', } };
+        const messages = { icon: { required: '请选择头像', }, name: { required: '请输入用户姓名', }, gender: { required: '请选择性别', }, age: { required: '请输入年龄', }, phone: { required: '请输入手机号', } };
         this.WxValidate = new WxValidate(rules, messages)
     },
     // 返回
@@ -43,32 +43,13 @@ Page({
         let data = that.data.genderList[e.detail.value];
         if (data) that.setData({ 'form.gender': data.value });
     },
-    // 输入身份证号获取性别年龄
-    toCard: function (e) {
+    //选择等级
+    coachChange: function (e) {
         const that = this;
-        let card = e.detail.value;
-        if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(card)) {
-            wx.showToast({ title: `请输入有效身份证号码`, icon: 'none', duration: 2000 })
-        } else {
-            var IDCard = e.detail.value;
-            var birth = IDCard.substring(6, 10) + "-" + IDCard.substring(10, 12) + "-" + IDCard.substring(12, 14);
-            var sex = "";
-            if (parseInt(IDCard.substr(16, 1)) % 2 == 1) {
-                sex = "0";
-            } else {
-                sex = "1";
-            }
-            this.setData({ 'form.gender': sex })
-            var myDate = new Date();
-            var month = myDate.getMonth() + 1;
-            var day = myDate.getDate();
-            var age = myDate.getFullYear() - IDCard.substring(6, 10) - 1;
-            if (IDCard.substring(10, 12) < month || IDCard.substring(10, 12) == month && IDCard.substring(12, 14) <= day) {
-                age++;
-            }
-            this.setData({ 'form.age': age })
-        }
+        let data = that.data.levelList[e.detail.value];
+        if (data) that.setData({ 'form.level': data.value });
     },
+
     // 提交登录
     onSubmit: async function (e) {
         const that = this;
@@ -106,10 +87,12 @@ Page({
             success: async res => {
                 if (that.data.id) {
                     const arr = await app.$get(`/coach/${that.data.id}`);
-                    if (arr.errcode == '0') {
-                        that.setData({ form: arr.data });
-                    }
+                    if (arr.errcode == '0') that.setData({ form: arr.data });
                 }
+                const aee = await app.$get(`/dict`, { code: "coach_grade" });
+                if (aee.errcode == '0') that.setData({ levelList: aee.data[0].list });
+                const ree = await app.$get(`/dict`, { code: "gender" });
+                if (ree.errcode == '0') that.setData({ genderList: ree.data[0].list });
             },
             fail: res => {
                 wx.redirectTo({ url: '/pages/index/index', })

+ 27 - 9
pages/scoach/add.less

@@ -1,6 +1,11 @@
 .main {
     background-color: var(--mainColor);
+    height: var(--twoHeight);
 
+    .one {
+        flex-grow: 1;
+        position: relative;
+        height: 81vh;
 
         .content {
             display: flex;
@@ -12,19 +17,32 @@
             .value {
                 flex-grow: 1;
                 color: var(--blackColor);
-
             }
         }
+    }
 
-        .btn {
-            text-align: center;
-            margin: 5vw 0 0 0;
+    .btn {
+        text-align: center;
+        margin: 5vw 0 0 0;
 
-            button {
-                width: 40vw;
-                margin: 0 2vw;
-                padding: 1vw 0;
-            }
+        button {
+            width: 40vw;
+            margin: 0 2vw;
+            padding: 1vw 0;
         }
+    }
+
+}
+
+.scroll-view {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
 
+    .list-scroll-view {
+        display: flex;
+        flex-direction: column;
+    }
 }

+ 63 - 43
pages/scoach/add.wxml

@@ -1,49 +1,69 @@
 <mobile-main frameStyle="{{frameStyle}}" bind:back="back">
     <view slot="info" class="container main">
         <form catchsubmit="onSubmit">
-            <view class="content">
-                <view class="label">头像:</view>
-                <view class="value">
-                    <upload list="{{form.icon}}" count="{{1}}" previewSize="{{30}}" bind:imgUpload="imgUpl" bind:imgDel="imgDel"></upload>
-                </view>
-            </view>
-            <view class="content">
-                <view class="label">姓名:</view>
-                <view class="value">
-                    <input name="name" value="{{form.name}}" placeholder="请输入姓名" />
-                </view>
-            </view>
-            <view class="content">
-                <view class="label">身份证号:</view>
-                <view class="value">
-                    <input name="card" maxlength="18" type="idcard" value="{{form.card}}" placeholder="请输入身份证号" bindblur="toCard" />
-                </view>
-            </view>
-            <view class="content">
-                <view class="label">性别:</view>
-                <view class="value">
-                    <picker mode="selector" bindchange="genderChange" name="gender" value="{{form.gender}}" range="{{genderList}}" range-key="label">
-                        <view class="picker">{{form.gender=='0'?'男':form.gender=='1'?'女':form.gender=='2'?'未知':'请选择性别'}}</view>
-                    </picker>
-                </view>
-            </view>
-            <view class="content">
-                <view class="label">年龄:</view>
-                <view class="value">
-                    <input name="age" value="{{form.age}}" placeholder="请输入年龄" />
-                </view>
-            </view>
-            <view class="content">
-                <view class="label">手机号:</view>
-                <view class="value">
-                    <input name="phone" maxlength="11" value="{{form.phone}}" placeholder="请输入手机号" />
-                </view>
-            </view>
-            <view class="content">
-                <view class="label">专业技能:</view>
-                <view class="value">
-                    <input name="skill" value="{{form.skill}}" placeholder="请输入专业技能" />
-                </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">
+                                <upload list="{{form.icon}}" count="{{1}}" previewSize="{{30}}" bind:imgUpload="imgUpl" bind:imgDel="imgDel"></upload>
+                            </view>
+                        </view>
+                        <view class="content">
+                            <view class="label">姓名:</view>
+                            <view class="value">
+                                <input name="name" value="{{form.name}}" placeholder="请输入姓名" />
+                            </view>
+                        </view>
+                        <view class="content">
+                            <view class="label">性别:</view>
+                            <view class="value">
+                                <picker mode="selector" bindchange="genderChange" name="gender" value="{{form.gender}}" range="{{genderList}}" range-key="label">
+                                    <view class="picker">{{form.gender=='0'?'男':form.gender=='1'?'女':form.gender=='2'?'未知':'请选择性别'}}</view>
+                                </picker>
+                            </view>
+                        </view>
+                        <view class="content">
+                            <view class="label">年龄:</view>
+                            <view class="value">
+                                <input name="age" value="{{form.age}}" placeholder="请输入年龄" />
+                            </view>
+                        </view>
+                        <view class="content">
+                            <view class="label">手机号:</view>
+                            <view class="value">
+                                <input name="phone" maxlength="11" value="{{form.phone}}" placeholder="请输入手机号" />
+                            </view>
+                        </view>
+                        <view class="content">
+                            <view class="label">教练等级:</view>
+                            <view class="value">
+                                <picker mode="selector" bindchange="coachChange" name="level" value="{{form.level}}" range="{{levelList}}" range-key="label">
+                                    <view class="picker">{{form.level=='0'?'助教':form.level=='1'?'专业一级':form.level=='2'?'专业二级':'请选择教练等级'}}</view>
+                                </picker>
+                            </view>
+                        </view>
+                        <view class="content">
+                            <view class="label">教练简介:</view>
+                            <view class="value">
+                                <textarea name="brief" value="{{form.brief}}" auto-height maxlength="-1" placeholder="请输入教练简介" />
+                            </view>
+                        </view>
+                        <view class="content">
+                            <view class="label">过往荣誉:</view>
+                            <view class="value">
+                                <textarea name="honor" value="{{form.honor}}" auto-height maxlength="-1" placeholder="请输入过往荣誉" />
+                            </view>
+                        </view>
+                        <view class="content">
+                            <view class="label">教学经历:</view>
+                            <view class="value">
+                                <textarea name="exp" value="{{form.exp}}" auto-height maxlength="-1" placeholder="请输入教学经历" />
+                            </view>
+                        </view>
+                    </view>
+                </scroll-view>
             </view>
             <view class="btn">
                 <button type="primary" size="mini" formType="submit">提交保存</button>

+ 19 - 2
pages/scoach/add.wxss

@@ -1,14 +1,20 @@
 .main {
   background-color: var(--mainColor);
+  height: var(--twoHeight);
 }
-.main .content {
+.main .one {
+  flex-grow: 1;
+  position: relative;
+  height: 81vh;
+}
+.main .one .content {
   display: flex;
   flex-direction: row;
   border-bottom: 1px dashed var(--f1Color);
   padding: 2vw 0;
   margin: 0 2vw 2vw 2vw;
 }
-.main .content .value {
+.main .one .content .value {
   flex-grow: 1;
   color: var(--blackColor);
 }
@@ -21,3 +27,14 @@
   margin: 0 2vw;
   padding: 1vw 0;
 }
+.scroll-view {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.scroll-view .list-scroll-view {
+  display: flex;
+  flex-direction: column;
+}

文件差异内容过多而无法显示
+ 23 - 5
pages/scoach/list.less


+ 2 - 2
pages/scoach/list.wxml

@@ -11,7 +11,7 @@
         <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 {{item.level=='0'?'level_0':item.level=='1'?'level_1':item.level=='2'?'level_2':'level_3'}}" wx:for="{{list}}" wx:key="item">
                         <view class="list_1">
                             <view class="icon">
                                 <image src="{{item.icon&&item.icon.length>0?item.icon[0].url:''}}">
@@ -19,7 +19,7 @@
                             </view>
                             <view class="content">
                                 <view class="name textOver">{{item.name}}</view>
-                                <view class="other">身份证号:<text>{{item.card}}</text></view>
+                                <view class="other">教练等级:<text>{{item.level=='0'?'助教':item.level=='1'?'专业一级':item.level=='2'?'专业二级':'暂无'}}</text></view>
                                 <view class="other">联系电话:<text>{{item.phone}}</text>
                                 </view>
                             </view>

文件差异内容过多而无法显示
+ 15 - 5
pages/scoach/list.wxss


+ 15 - 25
pages/sstudent/add.js

@@ -1,20 +1,21 @@
 const app = getApp()
 import WxValidate from '../../utils/wxValidate';
-const { gender } = require('../../utils/dict')
 Page({
     data: {
         frameStyle: { useTop: true, name: '学员信息管理', leftArrow: true, useBar: false },
         form: { icon: [] },
         // 性别
-        genderList: gender,
+        genderList: [],
+        //运动等级
+        levelList: [],
         id: '',
         //用户id
         user_id: ''
     },
     initValidate() {
-        const rules = { icon: { required: true }, name: { required: true }, card: { required: true, idcard: true }, age: { required: true }, gender: { required: true }, phone: { required: true, tel: true } }
+        const rules = { icon: { required: true }, name: { required: true }, age: { required: true }, gender: { required: true }, phone: { required: true, tel: true } }
         // 验证字段的提示信息,若不传则调用默认的信息
-        const messages = { icon: { required: '请选择头像', }, name: { required: '请输入学员姓名', }, card: { required: '请输入身份证号', }, age: { required: '请输入年龄', }, gender: { required: '请选择性别', }, phone: { required: '请输入手机号', } };
+        const messages = { icon: { required: '请选择头像' }, name: { required: '请输入学员姓名' }, age: { required: '请输入年龄' }, gender: { required: '请选择性别' }, phone: { required: '请输入手机号' } };
         this.WxValidate = new WxValidate(rules, messages)
     },
     // 返回
@@ -35,33 +36,18 @@ Page({
         let arr = list.filter((i, index) => index != e.detail.index)
         that.setData({ 'form.icon': arr })
     },
-    //填写身份信息
-    cardChange: function (e) {
-        const that = this;
-        let card = e.detail.value;
-        if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(card)) {
-            wx.showToast({ title: `请输入有效身份证号码`, icon: 'none', duration: 2000 })
-        } else {
-            //获取出生日期
-            let birth = card.substring(6, 10) + "-" + card.substring(10, 12) + "-" + card.substring(12, 14);
-            //获取性别
-            if (parseInt(card.substr(16, 1)) % 2 == 1) that.setData({ 'form.gender': '0' });
-            else that.setData({ 'form.gender': '1' });
-            //获取年龄
-            var myDate = new Date();
-            var month = myDate.getMonth() + 1;
-            var day = myDate.getDate();
-            var age = myDate.getFullYear() - card.substring(6, 10) - 1;
-            if (card.substring(10, 12) < month || card.substring(10, 12) == month && card.substring(12, 14) <= day) age++;
-            that.setData({ 'form.age': parseFloat(age) });
-        }
-    },
     // 选择性别
     genderChange: function (e) {
         const that = this;
         let data = that.data.genderList[e.detail.value];
         if (data) that.setData({ 'form.gender': data.value });
     },
+    // 选择等级
+    levelChange: function (e) {
+        const that = this;
+        let data = that.data.levelList[e.detail.value];
+        if (data) that.setData({ 'form.level': data.value });
+    },
     //提交
     onSubmit: async function (e) {
         const that = this;
@@ -99,6 +85,10 @@ Page({
             key: 'user',
             success: async res => {
                 that.setData({ user_id: res.data._id });
+                let gender = await app.$get(`/dict`, { code: "gender" });
+                if (gender.errcode == '0') that.setData({ genderList: gender.data[0].list });
+                let student = await app.$get(`/dict`, { code: "student_grade" });
+                if (student.errcode == '0') that.setData({ levelList: student.data[0].list });
                 if (that.data.id) {
                     const arr = await app.$get(`/student/${that.data.id}`);
                     if (arr.errcode == '0') {

+ 4 - 0
pages/sstudent/add.less

@@ -14,6 +14,10 @@
                 flex-grow: 1;
                 color: var(--blackColor);
 
+                textarea {
+                    position: static;
+                    width: 72vw;
+                }
             }
         }
 

+ 27 - 7
pages/sstudent/add.wxml

@@ -14,12 +14,6 @@
                         <input type="text" name="name" value="{{form.name}}" placeholder="请输入姓名" />
                     </view>
                 </view>
-                <view class="content">
-                    <view class="label">身份证号:</view>
-                    <view class="value">
-                        <input type="text" name="card" value="{{form.card}}" bindblur="cardChange" placeholder="请输入身份证号" />
-                    </view>
-                </view>
                 <view class="content">
                     <view class="label">年龄:</view>
                     <view class="value">
@@ -30,7 +24,7 @@
                     <view class="label">性别:</view>
                     <view class="value">
                         <picker mode="selector" bindchange="genderChange" name="gender" value="{{form.gender}}" range="{{genderList}}" range-key="label">
-                            <view class="picker">{{form.gender=='0'?'男':form.gender=='1'?'女':form.gender=='2'?'未知':'请选择性别'}}</view>
+                            <view class="picker">{{genderList[form.gender].label||'请选择性别'}}</view>
                         </picker>
                     </view>
                 </view>
@@ -40,6 +34,32 @@
                         <input type="text" name="phone" value="{{form.phone}}" placeholder="请输入手机号" />
                     </view>
                 </view>
+                <view class="content">
+                    <view class="label">运动等级:</view>
+                    <view class="value">
+                        <picker mode="selector" bindchange="levelChange" name="level" value="{{form.level}}" range="{{levelList}}" range-key="label">
+                            <view class="picker">{{levelList[form.level].label||'请选择运动等级'}}</view>
+                        </picker>
+                    </view>
+                </view>
+                <view class="content">
+                    <view class="label">学员简介:</view>
+                    <view class="value">
+                        <textarea name="brief" maxlength="-1" auto-height value="{{form.brief}}" placeholder="请输入学员简介" />
+                    </view>
+                </view>
+                <view class="content">
+                    <view class="label">过往荣誉:</view>
+                    <view class="value">
+                        <textarea name="honer" maxlength="-1" auto-height value="{{form.honer}}" placeholder="请输入过往荣誉" />
+                    </view>
+                </view>
+                <view class="content">
+                    <view class="label">训练经历:</view>
+                    <view class="value">
+                        <textarea name="exp" maxlength="-1" auto-height value="{{form.exp}}" placeholder="请输入训练经历" />
+                    </view>
+                </view>
                 <view class="btn">
                     <button type="primary" size="mini" formType="submit">提交保存</button>
                 </view>

+ 4 - 0
pages/sstudent/add.wxss

@@ -13,6 +13,10 @@
   flex-grow: 1;
   color: var(--blackColor);
 }
+.main .one .content .value textarea {
+  position: static;
+  width: 72vw;
+}
 .main .one .btn {
   text-align: center;
   margin: 5vw 0 0 0;

+ 6 - 3
pages/sstudent/list.js

@@ -7,6 +7,8 @@ Page({
     data: {
         frameStyle: { useTop: true, name: '学员信息', leftArrow: true, useBar: false },
         list: [],
+        //运动等级
+        levelList: [],
         total: 0,
         page: 0,
         skip: 0,
@@ -33,7 +35,7 @@ Page({
             content: '是否确认删除该条数据?',
             async success(res) {
                 if (res.confirm) {
-                    const arr = await app.$delete(`/student/${item.id}`);
+                    const arr = await app.$delete(`/student/${item._id}`);
                     if (arr.errcode == '0') {
                         wx.showToast({ title: `删除信息成功`, icon: 'success', duration: 2000 })
                         that.setData({ skip: 0, page: 0, list: [] })
@@ -79,8 +81,9 @@ Page({
             key: 'user',
             success: async res => {
                 let info = { skip: that.data.skip, limit: that.data.limit };
-                let arr;
-                arr = await app.$get(`/student`, { ...info });
+                let student = await app.$get(`/dict`, { code: "student_grade" });
+                if (student.errcode == '0') that.setData({ levelList: student.data[0].list });
+                let arr = await app.$get(`/student`, { ...info });
                 if (arr.errcode == '0') {
                     that.setData({ list: [...that.data.list, ...arr.data] })
                     that.setData({ total: arr.total })

+ 22 - 22
pages/sstudent/list.less

@@ -38,53 +38,53 @@
 
         .list {
             display: flex;
-            flex-direction: row;
-            flex-wrap: wrap;
-            justify-content: space-around;
-            align-items: center;
+            flex-direction: column;
             border: 2px dashed #FFA500;
             padding: 2vw;
             margin: 0 0 2vw 0;
             border-radius: 10px;
 
             .list_1 {
+                display: flex;
+                justify-content: space-around;
+
                 .image {
                     width: 60px;
                     height: 60px;
                     border-radius: 90px;
                 }
-            }
 
-            .list_2 {
-                width: 60vw;
+                .content {
+                    width: 62vw;
 
-                .name {
-                    font-size: var(--font16Size);
-                    font-weight: bold;
-                    margin: 0 0 1vw 0;
-                }
+                    .name {
+                        font-size: var(--font16Size);
+                        font-weight: bold;
+                        margin: 0 0 1vw 0;
+                    }
 
-                .other {
-                    font-size: var(--font14Size);
-                    margin: 0 0 1vw 0;
+                    .other {
+                        font-size: var(--font14Size);
+                        margin: 0 0 1vw 0;
 
-                    .other_1 {
-                        padding: 0 0 1vw 0;
-                    }
+                        .other_1 {
+                            padding: 0 0 1vw 0;
+                        }
 
-                    .other_1 text:nth-child(1) {
-                        color: #666;
+                        .other_1 text:nth-child(1) {
+                            color: #666;
+                        }
                     }
                 }
+
             }
 
             .btn {
-                width: 96vw;
                 margin: 2vw 0 0 0;
                 text-align: center;
 
                 button {
-                    margin: 0 0 0 1vw;
+                    margin: 0 0 0 2vw;
                     background-color: #FFA500;
                     border-radius: 25px;
                 }

+ 6 - 6
pages/sstudent/list.wxml

@@ -14,12 +14,12 @@
                     <view class="list" wx:for="{{list}}" wx:key="item">
                         <view class="list_1">
                             <image class="image" src="{{item.icon&&item.icon.length>0?item.icon[0].url:''}}"></image>
-                        </view>
-                        <view class="list_2">
-                            <view class="name textOver">{{item.name||'暂无'}}</view>
-                            <view class="other">
-                                <view class="other_1 textOver"><text>身份证号:</text><text>{{item.card||'暂无'}}</text></view>
-                                <view class="other_1 textOver"><text>联系电话:</text><text>{{item.phone||'暂无'}}</text></view>
+                            <view class="content">
+                                <view class="name textOver">{{item.name||'暂无'}}</view>
+                                <view class="other">
+                                    <view class="other_1 textOver"><text>运动等级:</text><text>{{levelList[item.level].label||'暂无'}}</text></view>
+                                    <view class="other_1 textOver"><text>联系电话:</text><text>{{item.phone||'暂无'}}</text></view>
+                                </view>
                             </view>
                         </view>
                         <view class="btn">

+ 12 - 12
pages/sstudent/list.wxss

@@ -33,45 +33,45 @@
 }
 .main .two .list {
   display: flex;
-  flex-direction: row;
-  flex-wrap: wrap;
-  justify-content: space-around;
-  align-items: center;
+  flex-direction: column;
   border: 2px dashed #FFA500;
   padding: 2vw;
   margin: 0 0 2vw 0;
   border-radius: 10px;
 }
+.main .two .list .list_1 {
+  display: flex;
+  justify-content: space-around;
+}
 .main .two .list .list_1 .image {
   width: 60px;
   height: 60px;
   border-radius: 90px;
 }
-.main .two .list .list_2 {
-  width: 60vw;
+.main .two .list .list_1 .content {
+  width: 62vw;
 }
-.main .two .list .list_2 .name {
+.main .two .list .list_1 .content .name {
   font-size: var(--font16Size);
   font-weight: bold;
   margin: 0 0 1vw 0;
 }
-.main .two .list .list_2 .other {
+.main .two .list .list_1 .content .other {
   font-size: var(--font14Size);
   margin: 0 0 1vw 0;
 }
-.main .two .list .list_2 .other .other_1 {
+.main .two .list .list_1 .content .other .other_1 {
   padding: 0 0 1vw 0;
 }
-.main .two .list .list_2 .other .other_1 text:nth-child(1) {
+.main .two .list .list_1 .content .other .other_1 text:nth-child(1) {
   color: #666;
 }
 .main .two .list .btn {
-  width: 96vw;
   margin: 2vw 0 0 0;
   text-align: center;
 }
 .main .two .list .btn button {
-  margin: 0 0 0 1vw;
+  margin: 0 0 0 2vw;
   background-color: #FFA500;
   border-radius: 25px;
 }