浏览代码

学员信息

zs 3 年之前
父节点
当前提交
8db84e24ff
共有 8 个文件被更改,包括 102 次插入81 次删除
  1. 15 25
      pages/sstudent/add.js
  2. 4 0
      pages/sstudent/add.less
  3. 27 7
      pages/sstudent/add.wxml
  4. 4 0
      pages/sstudent/add.wxss
  5. 10 7
      pages/sstudent/list.js
  6. 22 22
      pages/sstudent/list.less
  7. 8 8
      pages/sstudent/list.wxml
  8. 12 12
      pages/sstudent/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;

+ 10 - 7
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,
@@ -20,20 +22,20 @@ Page({
     toCommon: function (e) {
         const that = this;
         that.setData({ skip: 0, page: 0, list: [] })
-        const { route, id } = e.currentTarget.dataset;
-        if (id) wx.navigateTo({ url: `/pages/sstudent/${route}?id=${id}` })
+        const { route, item } = e.currentTarget.dataset;
+        if (item) wx.navigateTo({ url: `/pages/sstudent/${route}?id=${item._id}` })
         else wx.navigateTo({ url: `/pages/sstudent/${route}` })
     },
     // 删除
     toDel: async function (e) {
         const that = this;
-        const { id } = e.currentTarget.dataset;
+        const { item } = e.currentTarget.dataset;
         wx.showModal({
             title: '提示',
             content: '是否确认删除该条数据?',
             async success(res) {
                 if (res.confirm) {
-                    const arr = await app.$delete(`/student/${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: [] })
@@ -64,7 +66,7 @@ Page({
      * 生命周期函数--监听页面加载
      */
     onLoad: function (options) {
-      
+
     },
     // 监听用户是否登录
     watchLogin: async function () {
@@ -73,8 +75,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;
                 }

+ 8 - 8
pages/sstudent/list.wxml

@@ -14,17 +14,17 @@
                     <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">
-                            <button size="mini" type="primary" bindtap="toCommon" data-route="add" data-id="{{item._id}}">信息维护</button>
-                            <button size="mini" type="primary" bindtap="toDel" data-id="{{item._id}}">信息删除</button>
+                            <button size="mini" type="primary" bindtap="toCommon" data-route="add" data-item="{{item}}">信息维护</button>
+                            <button size="mini" type="primary" bindtap="toDel" data-item="{{item}}">信息删除</button>
                         </view>
                     </view>
                 </view>

+ 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;
 }