Browse Source

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

zs 2 years ago
parent
commit
b14eeacfd2
48 changed files with 1480 additions and 168 deletions
  1. 7 1
      app.json
  2. 40 1
      pages/setting/basic.js
  3. 2 1
      pages/setting/basic.wxml
  4. 4 1
      pagesMatch/matchAdmin/match/add.js
  5. 1 3
      pagesMatch/matchAdmin/match/list.js
  6. 0 95
      pagesMatch/matchAdmin/referee/add.js
  7. 0 17
      pagesMatch/matchAdmin/referee/add.wxml
  8. 100 0
      pagesMatch/matchAdmin/referee/info.js
  9. 7 0
      pagesMatch/matchAdmin/referee/info.json
  10. 6 8
      pagesMatch/matchAdmin/referee/add.less
  11. 24 0
      pagesMatch/matchAdmin/referee/info.wxml
  12. 3 6
      pagesMatch/matchAdmin/referee/add.wxss
  13. 73 20
      pagesMatch/matchAdmin/referee/list.js
  14. 45 0
      pagesMatch/matchAdmin/referee/list.less
  15. 8 5
      pagesMatch/matchAdmin/referee/list.wxml
  16. 33 0
      pagesMatch/matchAdmin/referee/list.wxss
  17. 66 0
      pagesMatch/userAdmin/bill/info.js
  18. 6 0
      pagesMatch/userAdmin/bill/info.json
  19. 23 0
      pagesMatch/userAdmin/bill/info.less
  20. 7 0
      pagesMatch/userAdmin/bill/info.wxml
  21. 19 0
      pagesMatch/userAdmin/bill/info.wxss
  22. 101 0
      pagesMatch/userAdmin/bill/list.js
  23. 6 0
      pagesMatch/userAdmin/bill/list.json
  24. 90 0
      pagesMatch/userAdmin/bill/list.less
  25. 31 0
      pagesMatch/userAdmin/bill/list.wxml
  26. 74 0
      pagesMatch/userAdmin/bill/list.wxss
  27. 66 0
      pagesMatch/userAdmin/schedule/list.js
  28. 6 0
      pagesMatch/userAdmin/schedule/list.json
  29. 23 0
      pagesMatch/userAdmin/schedule/list.less
  30. 7 0
      pagesMatch/userAdmin/schedule/list.wxml
  31. 19 0
      pagesMatch/userAdmin/schedule/list.wxss
  32. 66 0
      pagesMatch/userAdmin/sign/info.js
  33. 0 0
      pagesMatch/userAdmin/sign/info.json
  34. 23 0
      pagesMatch/userAdmin/sign/info.less
  35. 7 0
      pagesMatch/userAdmin/sign/info.wxml
  36. 19 0
      pagesMatch/userAdmin/sign/info.wxss
  37. 116 0
      pagesMatch/userAdmin/sign/list.js
  38. 6 0
      pagesMatch/userAdmin/sign/list.json
  39. 89 0
      pagesMatch/userAdmin/sign/list.less
  40. 36 0
      pagesMatch/userAdmin/sign/list.wxml
  41. 73 0
      pagesMatch/userAdmin/sign/list.wxss
  42. 66 0
      pagesMatch/userAdmin/team/list.js
  43. 6 0
      pagesMatch/userAdmin/team/list.json
  44. 23 0
      pagesMatch/userAdmin/team/list.less
  45. 7 0
      pagesMatch/userAdmin/team/list.wxml
  46. 19 0
      pagesMatch/userAdmin/team/list.wxss
  47. 1 1
      project.private.config.json
  48. 26 9
      utils/dict.js

+ 7 - 1
app.json

@@ -99,7 +99,7 @@
             "pages": [
                 "system/index",
                 "matchAdmin/referee/list",
-                "matchAdmin/referee/add",
+                "matchAdmin/referee/info",
                 "matchAdmin/profit/list",
                 "matchAdmin/match/list",
                 "matchAdmin/match/add",
@@ -108,6 +108,12 @@
                 "matchAdmin/project/list",
                 "matchAdmin/project/add",
                 "matchAdmin/teamapply/list",
+                "userAdmin/sign/list",
+                "userAdmin/sign/info",
+                "userAdmin/team/list",
+                "userAdmin/schedule/list",
+                "userAdmin/bill/list",
+                "userAdmin/bill/info",
                 "test/index",
                 "match/info",
                 "match/sign"

+ 40 - 1
pages/setting/basic.js

@@ -7,11 +7,16 @@ Page({
      */
     data: {
         frameStyle: { useTop: true, name: '个人信息', leftArrow: true, useBar: false },
+        // 系统用户
+        user: {},
+        // 比赛系统用户信息
+        raceuser: {},
         form: { icon: [] },
         // 性别
         genderList: [],
         // 账号绑定信息
-        bindForm: {}
+        bindForm: {},
+
     },
     initValidate() {
         const rules = { icon: { required: true }, name: { required: true }, gender: { required: true }, phone: { required: true, tel: true } }
@@ -119,6 +124,34 @@ Page({
         })
 
     },
+    // 比赛系统教练账号绑定
+    racescanCode: function () {
+        const that = this;
+        wx.showModal({
+            title: '提示',
+            content: '你确定要使用此账号绑定成为裁判吗?',
+            async success(res) {
+                if (res.confirm) {
+                    // 账号绑定
+                    that.scanCode2();
+                }
+            }
+        })
+    },
+    // 账号绑定
+    scanCode2: function () {
+        const that = this;
+        wx.scanCode({
+            async success(res) {
+                let arr = res.result.split('&&');
+                let parent_id = arr[0];
+                let type = arr[1];
+                console.log(user);
+                // const aee = await app.$post(`/utbj`, { user_id: user_id, parent_id: parent_id }, 'race')
+                // console.log(aee);
+            }
+        })
+    },
     /**
      * 生命周期函数--监听页面加载
      */
@@ -146,6 +179,7 @@ Page({
         wx.getStorage({
             key: 'user',
             success: async res => {
+                that.setData({ user: res.data })
                 const arr = await app.$get(`/user/${res.data.id}`);
                 if (arr.errcode == '0') {
                     let gender = that.data.genderList.find(i => i.value == arr.data.gender);
@@ -157,6 +191,11 @@ Page({
                 wx.redirectTo({ url: '/pages/index/index', })
             }
         })
+        wx.getStorage({
+            key: 'raceuser',
+            success: async res => { that.setData({ raceuser: res.data }) },
+            fail: res => { }
+        })
     },
     /**
      * 生命周期函数--监听页面初次渲染完成

+ 2 - 1
pages/setting/basic.wxml

@@ -43,7 +43,8 @@
                 </view>
                 <view class="btn">
                     <button type="primary" size="mini" formType="submit">提交保存</button>
-                    <button type="primary" size="mini" bindtap="scanCode">账号绑定</button>
+                    <button type="primary" size="mini" bindtap="scanCode" wx:if="{{user&&user._id}}">账号绑定</button>
+                    <button type="primary" size="mini" bindtap="racescanCode" wx:if="{{raceuser&&raceuser.type=='0'}}">裁判绑定</button>
                 </view>
             </form>
         </view>

+ 4 - 1
pagesMatch/matchAdmin/match/add.js

@@ -5,6 +5,8 @@ Page({
     data: {
         frameStyle: { useTop: true, name: '比赛信息', leftArrow: true, useBar: false },
         id: '',
+        // 所属id
+        belong_id: '',
         form: { logo: [] },
         // 状态列表
         statusList: [],
@@ -71,7 +73,7 @@ Page({
         const form = that.data.form;
         let params = e.detail.value;
         const { start_time, end_time, sign_time, logo, regular } = form
-        params = { ...params, start_time, end_time, sign_time, logo, regular }
+        params = { ...params, start_time, end_time, sign_time, logo, regular, belong_id: that.data.belong_id }
         if (!this.WxValidate.checkForm(params)) {
             const error = this.WxValidate.errorList[0];
             wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 })
@@ -111,6 +113,7 @@ Page({
         wx.getStorage({
             key: 'raceuser',
             success: async res => {
+                that.setData({ belong_id: res.data._id })
                 if (that.data.id) {
                     const arr = await app.$get(`/match/${that.data.id}`, {}, 'race');
                     if (arr.errcode == '0') {

+ 1 - 3
pagesMatch/matchAdmin/match/list.js

@@ -97,9 +97,7 @@ Page({
         wx.getStorage({
             key: 'raceuser',
             success: async res => {
-                const aee = await app.$get(`/dict`, { code: "match_status" });
-                if (aee.errcode == '0' && aee.total > 0) that.setData({ statusList: aee.data[0].list });
-                let info = { skip: that.data.skip, limit: that.data.limit };
+                let info = { skip: that.data.skip, limit: that.data.limit, belong_id: res.data._id };
                 const arr = await app.$get(`/match`, { ...info }, 'race');
                 if (arr.errcode == '0') {
                     for (const val of arr.data) {

+ 0 - 95
pagesMatch/matchAdmin/referee/add.js

@@ -1,95 +0,0 @@
-const app = getApp();
-import WxValidate from '../../../utils/wxValidate';
-import dateTimePicker from '../../../utils/dateTimePicker';
-Page({
-    data: {
-        frameStyle: { useTop: true, name: '信息维护', leftArrow: true, useBar: false },
-        id: '',
-        form: {},
-        dateTimeArray1: null,
-        dateTime1: null,
-        startYear: null,
-        endYear: null,
-    },
-    initValidate() {
-        const rules = { name: { required: true }, phone: { required: true } }
-        // 验证字段的提示信息,若不传则调用默认的信息
-        const messages = { name: { required: '用户姓名', }, phone: { required: '联系电话', } };
-        this.WxValidate = new WxValidate(rules, messages)
-    },
-    // 返回
-    back: function () { wx.navigateBack({ delta: 1 }) },
-
-    /**
-     * 生命周期函数--监听页面加载
-     */
-    onLoad: function (options) {
-        const that = this;
-        that.setData({ id: options.id || '' });
-        //验证规则函数
-        that.initValidate();
-        // 监听用户是否登录
-        that.watchLogin();
-        that.searchOther()
-    },
-    watchLogin: async function () {
-        const that = this;
-        wx.getStorage({
-            key: 'user',
-            success: async res => {
-                if (that.data.id) {
-                    console.log('信息维护');
-                } else {
-                    console.log('信息添加');
-                }
-            },
-            fail: async res => {
-                wx.redirectTo({ url: '/pages/index/index' })
-            }
-        })
-    },
-    // 其他信息
-    searchOther: function () {
-        // 获取完整的年月日 时分秒,以及默认显示的数组
-        var obj = dateTimePicker.dateTimePicker(this.data.startYear, this.data.endYear);
-        this.setData({ dateTimeArray1: obj.dateTimeArray });
-    },
-    /**
-     * 生命周期函数--监听页面初次渲染完成
-     */
-    onReady: function () { },
-    /**
-     * 生命周期函数--监听页面显示
-     */
-    onShow: function () { },
-    /**
-     * 页面上拉触底事件的处理函数
-     */
-    /**
-     * 生命周期函数--监听页面隐藏
-     */
-    onHide: function () {
-
-    },
-
-    /**
-     * 生命周期函数--监听页面卸载
-     */
-    onUnload: function () {
-
-    },
-
-    /**
-     * 页面相关事件处理函数--监听用户下拉动作
-     */
-    onPullDownRefresh: function () {
-
-    },
-
-    /**
-     * 用户点击右上角分享
-     */
-    onShareAppMessage: function () {
-
-    }
-})

+ 0 - 17
pagesMatch/matchAdmin/referee/add.wxml

@@ -1,17 +0,0 @@
-<mobile-main frameStyle="{{frameStyle}}" bind:back="back">
-    <view slot="info" class="container main">
-        <view class="one">
-            <form catchsubmit="onSubmit">
-                <view class="content">
-                    <view class="label">用户名:</view>
-                    <view class="value">
-                        <input name="name" value="{{form.name}}" placeholder="请输入用户名" />
-                    </view>
-                </view>
-                <view class="btn">
-                    <button type="primary" size="mini" formType="submit">提交保存</button>
-                </view>
-            </form>
-        </view>
-    </view>
-</mobile-main>

+ 100 - 0
pagesMatch/matchAdmin/referee/info.js

@@ -0,0 +1,100 @@
+const app = getApp()
+const moment = require("../../../utils/moment.min")
+Page({
+    data: {
+        frameStyle: { useTop: true, name: '详细信息', leftArrow: true, useBar: false },
+        id: '',
+        info: {},
+        // 性别
+        genderList: [],
+    },
+    // 跳转菜单
+    back(e) {
+        wx.navigateBack({ delta: 1 })
+    },
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad: async function (options) {
+        const that = this;
+        await that.setData({ id: options.id || '' })
+        // 查询其他信息
+        await that.searchOther();
+        // 监听用户是否登录
+        await that.watchLogin();
+    },
+    searchOther: async function () {
+        const that = this;
+        let arr;
+        // 性别
+        arr = await app.$get(`/dict`, { code: "gender" });
+        if (arr.errcode == '0' && arr.total > 0) that.setData({ genderList: arr.data[0].list });
+    },
+    // 监听用户是否登录
+    watchLogin: async function () {
+        const that = this;
+        wx.getStorage({
+            key: 'user',
+            success: async res => {
+                that.setData({ user: res.data })
+                if (that.data.id) {
+                    const arr = await app.$get(`/user/${that.data.id}`, {}, 'race');
+                    if (arr.errcode == '0') {
+                        const aee = await app.$get(`/user/${arr.data.user_id}`);
+                        if (aee.errcode == '0') {
+                            // 性别
+                            let gender = that.data.genderList.find(i => i.value == aee.data.gender)
+                            if (gender) aee.data.zhGender = gender.label;
+                            that.setData({ info: aee.data })
+                        }
+                    }
+                    else { wx.showToast({ title: `${arr.errmsg}`, icon: 'error', duration: 2000 }) }
+                }
+            },
+            fail: async res => {
+                wx.redirectTo({ url: '/pages/index/index' })
+            }
+        })
+    },
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady: function () { },
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow: function () {
+
+    },
+
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide: function () {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload: function () {
+
+    },
+
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh: function () {
+
+    },
+
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage: function () {
+
+    }
+})

+ 7 - 0
pagesMatch/matchAdmin/referee/info.json

@@ -0,0 +1,7 @@
+{
+    "component": true,
+    "usingComponents": {
+        "mobile-main": "/commpents/mobile-frame/index",
+        "dialog": "/commpents/dialog/index"
+    }
+}

+ 6 - 8
pagesMatch/matchAdmin/referee/add.less

@@ -4,6 +4,7 @@
     background-color: var(--mainColor);
 
     .one {
+
         .content {
             display: flex;
             flex-direction: row;
@@ -14,17 +15,14 @@
             .value {
                 flex-grow: 1;
                 color: var(--blackColor);
-
             }
-        }
 
-        .btn {
-            text-align: center;
-            margin: 3vw 0;
-
-            button {
-                margin: 0 2vw;
+            image {
+                width: 80px;
+                height: 80px;
             }
         }
     }
+
+
 }

+ 24 - 0
pagesMatch/matchAdmin/referee/info.wxml

@@ -0,0 +1,24 @@
+<mobile-main frameStyle="{{frameStyle}}" bind:back="back">
+    <view slot="info" class="container main">
+        <view class="one">
+            <view class="content">
+                <view class="label">头像:</view>
+                <view class="value">
+                    <image class="icon" src="{{info.icon&&user.icon.length>0?user.icon[0].url:''}}"></image>
+                </view>
+            </view>
+            <view class="content">
+                <view class="label">姓名:</view>
+                <view class="value">{{info.name}} </view>
+            </view>
+            <view class="content">
+                <view class="label">性别:</view>
+                <view class="value">{{info.zhGender}}</view>
+            </view>
+            <view class="content">
+                <view class="label">联系电话:</view>
+                <view class="value">{{info.phone}}</view>
+            </view>
+        </view>
+    </view>
+</mobile-main>

+ 3 - 6
pagesMatch/matchAdmin/referee/add.wxss

@@ -13,10 +13,7 @@
   flex-grow: 1;
   color: var(--blackColor);
 }
-.main .one .btn {
-  text-align: center;
-  margin: 3vw 0;
-}
-.main .one .btn button {
-  margin: 0 2vw;
+.main .one .content image {
+  width: 80px;
+  height: 80px;
 }

+ 73 - 20
pagesMatch/matchAdmin/referee/list.js

@@ -1,8 +1,12 @@
 const app = getApp();
 import WxValidate from '../../../utils/wxValidate';
+import QRCode from '../../../utils/weapp-qrcode.js';
+
 Page({
     data: {
         frameStyle: { useTop: true, name: '裁判信息', leftArrow: true, useBar: false },
+        // 比赛系统用户
+        raceuser: {},
         list: [],
         total: 0,
         page: 0,
@@ -37,14 +41,14 @@ Page({
             content: '是否确认删除该条数据?',
             async success(res) {
                 if (res.confirm) {
-                    // const arr = await app.$delete(`/user/${item._id}`);
-                    // if (arr.errcode == '0') {
-                    //     wx.showToast({ title: `删除信息成功`, icon: 'success', duration: 2000 })
-                    //     that.setData({ skip: 0, page: 0, list: [] })
-                    //     that.watchLogin()
-                    // } else {
-                    //     wx.showToast({ title: `${arr.errmsg}`, icon: 'error', duration: 2000 })
-                    // }
+                    const arr = await app.$delete(`/user/${item._id}`, {}, 'race');
+                    if (arr.errcode == '0') {
+                        wx.showToast({ title: `删除信息成功`, icon: 'success', duration: 2000 })
+                        that.setData({ skip: 0, page: 0, list: [] })
+                        that.watchLogin()
+                    } else {
+                        wx.showToast({ title: `${arr.errmsg}`, icon: 'error', duration: 2000 })
+                    }
                 }
             }
         })
@@ -58,12 +62,50 @@ Page({
     coachChange: function (e) {
         const that = this;
         let data = that.data.coachList[e.detail.value];
-        if (data) that.setData({ 'form.caoch_id': data.coach_id, 'form.coach_id_name': data.coach_id_name, 'form.school_id': data.school_id })
+        if (data) that.setData({ 'form.coach_id': data.coach_id, 'form.coach_id_name': data.coach_id_name })
+    },
+    onSubmit: async function (e) {
+        const that = this;
+        let params = e.detail.value;
+        if (!this.WxValidate.checkForm(params)) {
+            const error = this.WxValidate.errorList[0];
+            wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 })
+            return false
+        } else {
+            let arr;
+            arr = await app.$post(`/user/ctbj`, params, 'race');
+            if (arr.errcode == '0') { wx.showToast({ title: `维护信息成功`, icon: 'success', duration: 2000 }); that.back() }
+            else { wx.showToast({ title: `${arr.errmsg}`, icon: 'error', duration: 2000 }) }
+        }
     },
     // 添加裁判
-    toAdd: function () {
-        console.log('2');
+    toAdd: async function (e) {
+        const that = this;
+        // 生成二维码
+        that.makeQRCode();
+        that.setData({ dialog: { title: '账号绑定', show: true, type: '2' } })
+    },
+    makeQRCode(template = 0) {
+        const that = this;
+        const url = `${that.data.raceuser._id}&&2`;
+        var qrcode = new QRCode(`myQrcode`, {
+            text: url,
+            width: 110,
+            height: 110,
+            padding: 3,
+            colorDark: "#000000",
+            colorLight: "#ffffff",
+            correctLevel: QRCode.CorrectLevel.L,
+        });
     },
+    // 关闭弹窗
+    toClose: function () {
+        const that = this;
+        that.setData({ 'form.coach_id': '' })
+        that.setData({ 'form.coach_id_name': '' })
+        that.setData({ dialog: { titl: '教练', show: false, type: '2' } })
+    },
+
     // 分页
     toPage: function () {
         const that = this;
@@ -92,6 +134,8 @@ Page({
      */
     onShow: async function () {
         const that = this;
+        //验证规则函数
+        that.initValidate();
         // 查询其他信息
         await that.searchOther();
         // 监听用户是否登录
@@ -109,16 +153,25 @@ Page({
     watchLogin: async function () {
         const that = this;
         wx.getStorage({
-            key: 'user',
+            key: 'raceuser',
             success: async res => {
-                // referee
-                // let info = { skip: that.data.skip, limit: that.data.limit };
-                // const arr = await app.$get(`/user`, { ...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 }); }
+                that.setData({ raceuser: res.data })
+                let arr;
+                // 查询当前用户学校,学校id存比赛系统user中的_id,查询当前用户学校与教练的关系表
+                arr = await app.$get(`/school`, { user_id: res.data.user_id._id })
+                if (arr.errcode == '0' && arr.total > 0) {
+                    let school = arr.data[0];
+                    that.setData({ 'form.parent_id': res.data._id })
+                    const aee = await app.$get(`/rcs`, { school_id: school._id })
+                    if (aee.errcode == '0') {
+                        that.setData({ coachList: aee.data })
+                    }
+                }
+                let info = { skip: that.data.skip, limit: that.data.limit, parent_id: res.data._id, type: '2' };
+                const aee = await app.$get(`/user`, { ...info }, 'race')
+                if (aee.errcode == '0') {
+                    that.setData({ list: aee.data })
+                }
             },
             fail: async res => {
                 wx.redirectTo({ url: '/pages/index/index' })

+ 45 - 0
pagesMatch/matchAdmin/referee/list.less

@@ -88,4 +88,49 @@
         display: flex;
         flex-direction: column;
     }
+}
+
+.dialog_1 {
+    .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);
+
+        }
+    }
+
+    .btn {
+        text-align: center;
+        margin: 3vw 0;
+
+        button {
+            margin: 0 2vw;
+        }
+    }
+}
+
+.dialog_2 {
+    .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;
+    }
 }

+ 8 - 5
pagesMatch/matchAdmin/referee/list.wxml

@@ -13,15 +13,15 @@
             <scroll-view scroll-y="true" class="scroll-view" bindscrolltolower="toPage">
                 <view class="list-scroll-view">
                     <view class="list" wx:for="{{list}}" wx:key="index">
-                        <view class="name">{{item.name}}</view>
+                        <view class="name">{{item.user_id.name}}</view>
                         <view class="other">
                             <view class="other_1">
                                 <text>联系电话:</text>
-                                <text>{{item.phone}}</text>
+                                <text>{{item.user_id.phone}}</text>
                             </view>
                         </view>
                         <view class="btn">
-                            <button type="primary" size="mini" bindtap="toCommon" data-item="{{item}}" data-route="matchAdmin/referee/add">信息维护</button>
+                            <button type="primary" size="mini" bindtap="toCommon" data-item="{{item}}" data-route="matchAdmin/referee/info">详细信息</button>
                             <button type="warn" size="mini" bindtap="toDel" data-item="{{item}}">信息删除</button>
                         </view>
                     </view>
@@ -37,7 +37,7 @@
                 <view class="content">
                     <view class="label">学校id:</view>
                     <view class="value">
-                        <input name="school_id" value="{{form.school_id}}" placeholder="请输入学校id" />
+                        <input name="parent_id" value="{{form.parent_id}}" placeholder="请输入学校id" />
                     </view>
                 </view>
                 <view class="content">
@@ -54,7 +54,10 @@
             </form>
         </view>
         <view class="dialog_2" wx:elif="{{dialog.type=='2'}}">
-            添加教练
+            <view class="image">
+                <canvas class="qrcode" canvas-id="myQrcode"></canvas>
+            </view>
+            <view class="remark">用户可扫描二维码进行账号绑定</view>
         </view>
     </view>
 </dialog>

+ 33 - 0
pagesMatch/matchAdmin/referee/list.wxss

@@ -73,3 +73,36 @@
   display: flex;
   flex-direction: column;
 }
+.dialog_1 .content {
+  display: flex;
+  flex-direction: row;
+  border-bottom: 1px dashed var(--f1Color);
+  padding: 2vw 0;
+  margin: 0 2vw 2vw 2vw;
+}
+.dialog_1 .content .value {
+  flex-grow: 1;
+  color: var(--blackColor);
+}
+.dialog_1 .btn {
+  text-align: center;
+  margin: 3vw 0;
+}
+.dialog_1 .btn button {
+  margin: 0 2vw;
+}
+.dialog_2 .image {
+  text-align: center;
+  height: 18vh;
+  overflow: hidden;
+}
+.dialog_2 .image .qrcode {
+  height: 22vh;
+  position: absolute;
+  left: 32vw;
+}
+.dialog_2 .remark {
+  text-align: center;
+  font-size: 15px;
+  margin: 0 0 4vw 0;
+}

+ 66 - 0
pagesMatch/userAdmin/bill/info.js

@@ -0,0 +1,66 @@
+const app = getApp();
+Page({
+    data: {
+        frameStyle: { useTop: true, name: '详细信息', leftArrow: true, useBar: false },
+    },
+    // 返回
+    back: function () { wx.navigateBack({ delta: 1 }) },
+
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad: function (options) { },
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady: function () { },
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow: function () {
+        const that = this;
+        // 监听用户是否登录
+        that.watchLogin();
+    },
+    // 监听用户是否登录
+    watchLogin: async function () {
+        const that = this;
+        wx.getStorage({
+            key: 'user',
+            success: async res => { },
+            fail: async res => {
+                wx.redirectTo({ url: '/pages/index/index' })
+            }
+        })
+    },
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide: function () {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload: function () {
+
+    },
+
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh: function () {
+
+    },
+
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage: function () {
+
+    }
+})

+ 6 - 0
pagesMatch/userAdmin/bill/info.json

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

+ 23 - 0
pagesMatch/userAdmin/bill/info.less

@@ -0,0 +1,23 @@
+@import (css) "/app.wxss";
+
+.main {
+    height: var(--twoHeight);
+    background-color: var(--mainColor);
+
+    .one {
+        width: 100vw;
+    }
+}
+
+.scroll-view {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+
+    .list-scroll-view {
+        display: flex;
+        flex-direction: column;
+    }
+}

+ 7 - 0
pagesMatch/userAdmin/bill/info.wxml

@@ -0,0 +1,7 @@
+<mobile-main frameStyle="{{frameStyle}}" bind:back="back">
+    <view slot="info" class="container main">
+        <view class="one">
+            详细信息
+        </view>
+    </view>
+</mobile-main>

+ 19 - 0
pagesMatch/userAdmin/bill/info.wxss

@@ -0,0 +1,19 @@
+@import "/app.wxss";
+.main {
+  height: var(--twoHeight);
+  background-color: var(--mainColor);
+}
+.main .one {
+  width: 100vw;
+}
+.scroll-view {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.scroll-view .list-scroll-view {
+  display: flex;
+  flex-direction: column;
+}

+ 101 - 0
pagesMatch/userAdmin/bill/list.js

@@ -0,0 +1,101 @@
+const app = getApp();
+Page({
+    data: {
+        frameStyle: { useTop: true, name: '账单信息', leftArrow: true, useBar: false },
+        list: [
+            {
+                money: '消费金额',
+                match_id_name: '赛事名称',
+                status: '0',
+            }
+        ],
+        total: 0,
+        page: 0,
+        skip: 0,
+        limit: 5,
+    },
+    // 返回
+    back: function () { wx.navigateBack({ delta: 1 }) },
+    //添加信息,信息维护
+    toCommon: function (e) {
+        const that = this;
+        const { item, route } = e.currentTarget.dataset;
+        that.setData({ skip: 0, page: 0, list: [] });
+        wx.navigateTo({ url: `/pagesMatch/${route}?id=${item && item._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 }) }
+    },
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad: function (options) { },
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady: function () { },
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow: function () {
+        const that = this;
+        // 监听用户是否登录
+        that.watchLogin();
+    },
+    // 监听用户是否登录
+    watchLogin: async function () {
+        const that = this;
+        wx.getStorage({
+            key: 'raceuser',
+            success: async res => {
+                let info = { skip: that.data.skip, limit: that.data.limit };
+            },
+            fail: async res => {
+                wx.redirectTo({ url: '/pages/index/index' })
+            }
+        })
+    },
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide: function () {
+        const that = this;
+        that.setData({ skip: 0, page: 0, list: [] })
+    },
+
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload: function () {
+
+    },
+
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh: function () {
+
+    },
+
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage: function () {
+
+    }
+})

+ 6 - 0
pagesMatch/userAdmin/bill/list.json

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

+ 90 - 0
pagesMatch/userAdmin/bill/list.less

@@ -0,0 +1,90 @@
+@import (css) "/app.wxss";
+
+.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 {
+        position: relative;
+        flex-grow: 1;
+        background-color: var(--whiteColor);
+        padding: 0 2vw;
+
+        .list {
+            background-color: var(--f9Color);
+            margin: 0 0 2vw 0;
+            padding: 2vw;
+            margin: 0 2vw 2vw 2vw;
+            border-radius: 5px;
+
+            .name {
+                font-size: var(--font16Szie);
+                font-weight: bold;
+                margin: 0 0 1vw 0;
+                color: var(--redColor);
+            }
+
+            .other {
+                margin: 0 0 1vw 0;
+
+                .other_1 {
+                    margin: 0 0 1vw 0;
+                    font-size: var(--font14Size);
+
+                    text:first-child {
+                        color: var(--f85Color);
+                    }
+                }
+            }
+
+            .btn {
+                text-align: center;
+
+                button {
+                    margin: 0 2vw;
+                    font-size: var(--font14Size);
+                }
+            }
+        }
+    }
+}
+
+.scroll-view {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+
+    .list-scroll-view {
+        display: flex;
+        flex-direction: column;
+    }
+}

+ 31 - 0
pagesMatch/userAdmin/bill/list.wxml

@@ -0,0 +1,31 @@
+<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="name">{{item.money}}</view>
+                        <view class="other">
+                            <view class="other_1">
+                                <text>赛事名称:</text>
+                                <text>{{item.match_id_name}}</text>
+                            </view>
+                            <view class="other_1">
+                                <text>消费状态:</text>
+                                <text>{{item.status||'暂无'}}</text>
+                            </view>
+                        </view>
+                        <view class="btn">
+                            <button type="primary" size="mini" bindtap="toCommon" data-route="userAdmin/bill/info" data-item="{{item}}">详细信息</button>
+                        </view>
+                    </view>
+                </view>
+            </scroll-view>
+        </view>
+    </view>
+</mobile-main>

+ 74 - 0
pagesMatch/userAdmin/bill/list.wxss

@@ -0,0 +1,74 @@
+@import "/app.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 {
+  position: relative;
+  flex-grow: 1;
+  background-color: var(--whiteColor);
+  padding: 0 2vw;
+}
+.main .two .list {
+  background-color: var(--f9Color);
+  margin: 0 0 2vw 0;
+  padding: 2vw;
+  margin: 0 2vw 2vw 2vw;
+  border-radius: 5px;
+}
+.main .two .list .name {
+  font-size: var(--font16Szie);
+  font-weight: bold;
+  margin: 0 0 1vw 0;
+  color: var(--redColor);
+}
+.main .two .list .other {
+  margin: 0 0 1vw 0;
+}
+.main .two .list .other .other_1 {
+  margin: 0 0 1vw 0;
+  font-size: var(--font14Size);
+}
+.main .two .list .other .other_1 text:first-child {
+  color: var(--f85Color);
+}
+.main .two .list .btn {
+  text-align: center;
+}
+.main .two .list .btn button {
+  margin: 0 2vw;
+  font-size: var(--font14Size);
+}
+.scroll-view {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.scroll-view .list-scroll-view {
+  display: flex;
+  flex-direction: column;
+}

+ 66 - 0
pagesMatch/userAdmin/schedule/list.js

@@ -0,0 +1,66 @@
+const app = getApp();
+Page({
+    data: {
+        frameStyle: { useTop: true, name: '赛事赛程', leftArrow: true, useBar: false },
+    },
+    // 返回
+    back: function () { wx.navigateBack({ delta: 1 }) },
+
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad: function (options) { },
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady: function () { },
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow: function () {
+        const that = this;
+        // 监听用户是否登录
+        that.watchLogin();
+    },
+    // 监听用户是否登录
+    watchLogin: async function () {
+        const that = this;
+        wx.getStorage({
+            key: 'user',
+            success: async res => { },
+            fail: async res => {
+                wx.redirectTo({ url: '/pages/index/index' })
+            }
+        })
+    },
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide: function () {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload: function () {
+
+    },
+
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh: function () {
+
+    },
+
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage: function () {
+
+    }
+})

+ 6 - 0
pagesMatch/userAdmin/schedule/list.json

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

+ 23 - 0
pagesMatch/userAdmin/schedule/list.less

@@ -0,0 +1,23 @@
+@import (css) "/app.wxss";
+
+.main {
+    height: var(--twoHeight);
+    background-color: var(--mainColor);
+
+    .one {
+        width: 100vw;
+    }
+}
+
+.scroll-view {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+
+    .list-scroll-view {
+        display: flex;
+        flex-direction: column;
+    }
+}

+ 7 - 0
pagesMatch/userAdmin/schedule/list.wxml

@@ -0,0 +1,7 @@
+<mobile-main frameStyle="{{frameStyle}}" bind:back="back">
+    <view slot="info" class="container main">
+        <view class="one">
+            赛事赛程
+        </view>
+    </view>
+</mobile-main>

+ 19 - 0
pagesMatch/userAdmin/schedule/list.wxss

@@ -0,0 +1,19 @@
+@import "/app.wxss";
+.main {
+  height: var(--twoHeight);
+  background-color: var(--mainColor);
+}
+.main .one {
+  width: 100vw;
+}
+.scroll-view {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.scroll-view .list-scroll-view {
+  display: flex;
+  flex-direction: column;
+}

+ 66 - 0
pagesMatch/userAdmin/sign/info.js

@@ -0,0 +1,66 @@
+const app = getApp();
+Page({
+    data: {
+        frameStyle: { useTop: true, name: '详细信息', leftArrow: true, useBar: false },
+    },
+    // 返回
+    back: function () { wx.navigateBack({ delta: 1 }) },
+
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad: function (options) { },
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady: function () { },
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow: function () {
+        const that = this;
+        // 监听用户是否登录
+        that.watchLogin();
+    },
+    // 监听用户是否登录
+    watchLogin: async function () {
+        const that = this;
+        wx.getStorage({
+            key: 'user',
+            success: async res => { },
+            fail: async res => {
+                wx.redirectTo({ url: '/pages/index/index' })
+            }
+        })
+    },
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide: function () {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload: function () {
+
+    },
+
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh: function () {
+
+    },
+
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage: function () {
+
+    }
+})

pagesMatch/matchAdmin/referee/add.json → pagesMatch/userAdmin/sign/info.json


+ 23 - 0
pagesMatch/userAdmin/sign/info.less

@@ -0,0 +1,23 @@
+@import (css) "/app.wxss";
+
+.main {
+    height: var(--twoHeight);
+    background-color: var(--mainColor);
+
+    .one {
+        width: 100vw;
+    }
+}
+
+.scroll-view {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+
+    .list-scroll-view {
+        display: flex;
+        flex-direction: column;
+    }
+}

+ 7 - 0
pagesMatch/userAdmin/sign/info.wxml

@@ -0,0 +1,7 @@
+<mobile-main frameStyle="{{frameStyle}}" bind:back="back">
+    <view slot="info" class="container main">
+        <view class="one">
+            详细信息
+        </view>
+    </view>
+</mobile-main>

+ 19 - 0
pagesMatch/userAdmin/sign/info.wxss

@@ -0,0 +1,19 @@
+@import "/app.wxss";
+.main {
+  height: var(--twoHeight);
+  background-color: var(--mainColor);
+}
+.main .one {
+  width: 100vw;
+}
+.scroll-view {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.scroll-view .list-scroll-view {
+  display: flex;
+  flex-direction: column;
+}

+ 116 - 0
pagesMatch/userAdmin/sign/list.js

@@ -0,0 +1,116 @@
+const app = getApp();
+import { pay_status } from "../../../utils/dict";
+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 }) },
+    // 详细信息
+    toCommon: function (e) {
+        const that = this;
+        const { item, route } = e.currentTarget.dataset;
+        that.setData({ skip: 0, page: 0, list: [] });
+        wx.navigateTo({ url: `/pagesMatch/${route}?id=${item && item._id ? item._id : ''}` })
+    },
+    // 申请退赛
+    toOut: function (e) {
+        console.log(e);
+    },
+    // 分页
+    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 }) }
+    },
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad: function (options) { },
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady: function () { },
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow: function () {
+        const that = this;
+        // 监听用户是否登录
+        that.watchLogin();
+    },
+    // 监听用户是否登录
+    watchLogin: async function () {
+        const that = this;
+        wx.getStorage({
+            key: 'raceuser',
+            success: async res => {
+                let info = { skip: that.data.skip, limit: that.data.limit };
+                let data = [
+                    { _id: '123456', match_id_name: '赛事名称', group_id_name: '赛事组别', project_id_name: '组别项目', pay_status: '0' },
+                    { _id: '123456', match_id_name: '赛事名称', group_id_name: '赛事组别', project_id_name: '组别项目', pay_status: '1' },
+                    { _id: '123456', match_id_name: '赛事名称', group_id_name: '赛事组别', project_id_name: '组别项目', pay_status: '-1' },
+                    { _id: '123456', match_id_name: '赛事名称', group_id_name: '赛事组别', project_id_name: '组别项目', pay_status: '-2' },
+                    { _id: '123456', match_id_name: '赛事名称', group_id_name: '赛事组别', project_id_name: '组别项目', pay_status: '-3' },
+                ];
+                let list = data;
+                for (const val of list) { val.zhpay_status = that.searchStatus(val.pay_status) }
+                that.setData({ list })
+            },
+            fail: async res => {
+                wx.redirectTo({ url: '/pages/index/index' })
+            }
+        })
+    },
+    // 查询状态
+    searchStatus: function (e) {
+        let data = pay_status.find(i => i.value == e);
+        if (data) return data.label;
+        else return '暂无';
+    },
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide: function () {
+        const that = this;
+        that.setData({ skip: 0, page: 0, list: [] })
+    },
+
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload: function () {
+
+    },
+
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh: function () {
+
+    },
+
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage: function () {
+
+    }
+})

+ 6 - 0
pagesMatch/userAdmin/sign/list.json

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

+ 89 - 0
pagesMatch/userAdmin/sign/list.less

@@ -0,0 +1,89 @@
+@import (css) "/app.wxss";
+
+.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 {
+        position: relative;
+        flex-grow: 1;
+        background-color: var(--whiteColor);
+        padding: 0 2vw;
+
+        .list {
+            background-color: var(--f9Color);
+            margin: 0 0 2vw 0;
+            padding: 2vw;
+            margin: 0 2vw 2vw 2vw;
+            border-radius: 5px;
+
+            .name {
+                font-size: var(--font16Szie);
+                font-weight: bold;
+                margin: 0 0 1vw 0;
+            }
+
+            .other {
+                margin: 0 0 1vw 0;
+
+                .other_1 {
+                    margin: 0 0 1vw 0;
+                    font-size: var(--font14Size);
+
+                    text:first-child {
+                        color: var(--f85Color);
+                    }
+                }
+            }
+
+            .btn {
+                text-align: center;
+
+                button {
+                    margin: 0 2vw;
+                    font-size: var(--font14Size);
+                }
+            }
+        }
+    }
+}
+
+.scroll-view {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+
+    .list-scroll-view {
+        display: flex;
+        flex-direction: column;
+    }
+}

+ 36 - 0
pagesMatch/userAdmin/sign/list.wxml

@@ -0,0 +1,36 @@
+<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="name">{{item.match_id_name}}</view>
+                        <view class="other">
+                            <view class="other_1">
+                                <text>赛事组别:</text>
+                                <text>{{item.group_id_name}}</text>
+                            </view>
+                            <view class="other_1">
+                                <text>组别项目:</text>
+                                <text>{{item.project_id_name}}</text>
+                            </view>
+                            <view class="other_1">
+                                <text>账单状态:</text>
+                                <text>{{item.zhpay_status}}</text>
+                            </view>
+                        </view>
+                        <view class="btn">
+                            <button type="primary" size="mini" bindtap="toCommon" data-route="userAdmin/sign/info" data-item="{{item}}">详细信息</button>
+                            <button type="warn" size="mini" bindtap="toOut" data-item="{{item}}" wx:if="{{item.pay_status=='1'}}">申请退赛</button>
+                        </view>
+                    </view>
+                </view>
+            </scroll-view>
+        </view>
+    </view>
+</mobile-main>

+ 73 - 0
pagesMatch/userAdmin/sign/list.wxss

@@ -0,0 +1,73 @@
+@import "/app.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 {
+  position: relative;
+  flex-grow: 1;
+  background-color: var(--whiteColor);
+  padding: 0 2vw;
+}
+.main .two .list {
+  background-color: var(--f9Color);
+  margin: 0 0 2vw 0;
+  padding: 2vw;
+  margin: 0 2vw 2vw 2vw;
+  border-radius: 5px;
+}
+.main .two .list .name {
+  font-size: var(--font16Szie);
+  font-weight: bold;
+  margin: 0 0 1vw 0;
+}
+.main .two .list .other {
+  margin: 0 0 1vw 0;
+}
+.main .two .list .other .other_1 {
+  margin: 0 0 1vw 0;
+  font-size: var(--font14Size);
+}
+.main .two .list .other .other_1 text:first-child {
+  color: var(--f85Color);
+}
+.main .two .list .btn {
+  text-align: center;
+}
+.main .two .list .btn button {
+  margin: 0 2vw;
+  font-size: var(--font14Size);
+}
+.scroll-view {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.scroll-view .list-scroll-view {
+  display: flex;
+  flex-direction: column;
+}

+ 66 - 0
pagesMatch/userAdmin/team/list.js

@@ -0,0 +1,66 @@
+const app = getApp();
+Page({
+    data: {
+        frameStyle: { useTop: true, name: '组队信息', leftArrow: true, useBar: false },
+    },
+    // 返回
+    back: function () { wx.navigateBack({ delta: 1 }) },
+
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad: function (options) { },
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady: function () { },
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow: function () {
+        const that = this;
+        // 监听用户是否登录
+        that.watchLogin();
+    },
+    // 监听用户是否登录
+    watchLogin: async function () {
+        const that = this;
+        wx.getStorage({
+            key: 'user',
+            success: async res => { },
+            fail: async res => {
+                wx.redirectTo({ url: '/pages/index/index' })
+            }
+        })
+    },
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide: function () {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload: function () {
+
+    },
+
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh: function () {
+
+    },
+
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage: function () {
+
+    }
+})

+ 6 - 0
pagesMatch/userAdmin/team/list.json

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

+ 23 - 0
pagesMatch/userAdmin/team/list.less

@@ -0,0 +1,23 @@
+@import (css) "/app.wxss";
+
+.main {
+    height: var(--twoHeight);
+    background-color: var(--mainColor);
+
+    .one {
+        width: 100vw;
+    }
+}
+
+.scroll-view {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+
+    .list-scroll-view {
+        display: flex;
+        flex-direction: column;
+    }
+}

+ 7 - 0
pagesMatch/userAdmin/team/list.wxml

@@ -0,0 +1,7 @@
+<mobile-main frameStyle="{{frameStyle}}" bind:back="back">
+    <view slot="info" class="container main">
+        <view class="one">
+            组队信息
+        </view>
+    </view>
+</mobile-main>

+ 19 - 0
pagesMatch/userAdmin/team/list.wxss

@@ -0,0 +1,19 @@
+@import "/app.wxss";
+.main {
+  height: var(--twoHeight);
+  background-color: var(--mainColor);
+}
+.main .one {
+  width: 100vw;
+}
+.scroll-view {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.scroll-view .list-scroll-view {
+  display: flex;
+  flex-direction: column;
+}

+ 1 - 1
project.private.config.json

@@ -1,7 +1,7 @@
 {
     "projectname": "%E7%BE%BD%E6%A0%A1%E7%AE%A1%E7%90%86%E5%B9%B3%E5%8F%B0",
     "setting": {
-        "compileHotReLoad": false
+        "compileHotReLoad": true
     },
     "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html"
 }

+ 26 - 9
utils/dict.js

@@ -156,7 +156,24 @@ export const match_menu = [
     },
     {
         type: '0',
-        menu: []
+        menu: [
+            {
+                title: '赛事信息',
+                icon: 'icon-yonghu',
+                btn: [
+                    { title: '赛事报名', route: 'userAdmin/sign/list', icon: 'icon-xuexiao_xuexiaoxinxi' },
+                    { title: '组队信息', route: 'userAdmin/team/list', icon: 'icon-xuexiao_xuexiaoxinxi' },
+                    { title: '赛事赛程', route: 'userAdmin/schedule/list', icon: 'icon-xuexiao_xuexiaoxinxi' },
+                ]
+            },
+            {
+                title: '赛事账单',
+                icon: 'icon-yonghu',
+                btn: [
+                    { title: '账单信息', route: 'userAdmin/bill/list', icon: 'icon-xuexiao_xuexiaoxinxi' },
+                ]
+            },
+        ]
     },
     {
         type: '1',
@@ -188,12 +205,12 @@ export const match_menu = [
         type: '2',
         menu: []
     },
-    {
-        type: '3',
-        menu: []
-    },
-    {
-        type: '10',
-        menu: []
-    },
+]
+// 比赛系统支付状态
+export const pay_status = [
+    { value: '0', label: '未支付' },
+    { value: '1', label: '支付成功' },
+    { value: '-1', label: '支付失败' },
+    { value: '-2', label: '申请退款' },
+    { value: '-3', label: '退款成功' },
 ]