guhongwei há 2 anos atrás
pai
commit
60de70973b
35 ficheiros alterados com 1180 adições e 12 exclusões
  1. 6 0
      app.json
  2. 39 1
      pages/setting/basic.js
  3. 2 1
      pages/setting/basic.wxml
  4. 66 0
      pagesMatch/userAdmin/bill/info.js
  5. 6 0
      pagesMatch/userAdmin/bill/info.json
  6. 23 0
      pagesMatch/userAdmin/bill/info.less
  7. 7 0
      pagesMatch/userAdmin/bill/info.wxml
  8. 19 0
      pagesMatch/userAdmin/bill/info.wxss
  9. 101 0
      pagesMatch/userAdmin/bill/list.js
  10. 6 0
      pagesMatch/userAdmin/bill/list.json
  11. 90 0
      pagesMatch/userAdmin/bill/list.less
  12. 31 0
      pagesMatch/userAdmin/bill/list.wxml
  13. 74 0
      pagesMatch/userAdmin/bill/list.wxss
  14. 66 0
      pagesMatch/userAdmin/schedule/list.js
  15. 6 0
      pagesMatch/userAdmin/schedule/list.json
  16. 23 0
      pagesMatch/userAdmin/schedule/list.less
  17. 7 0
      pagesMatch/userAdmin/schedule/list.wxml
  18. 19 0
      pagesMatch/userAdmin/schedule/list.wxss
  19. 66 0
      pagesMatch/userAdmin/sign/info.js
  20. 6 0
      pagesMatch/userAdmin/sign/info.json
  21. 23 0
      pagesMatch/userAdmin/sign/info.less
  22. 7 0
      pagesMatch/userAdmin/sign/info.wxml
  23. 19 0
      pagesMatch/userAdmin/sign/info.wxss
  24. 116 0
      pagesMatch/userAdmin/sign/list.js
  25. 6 0
      pagesMatch/userAdmin/sign/list.json
  26. 89 0
      pagesMatch/userAdmin/sign/list.less
  27. 36 0
      pagesMatch/userAdmin/sign/list.wxml
  28. 73 0
      pagesMatch/userAdmin/sign/list.wxss
  29. 66 0
      pagesMatch/userAdmin/team/list.js
  30. 6 0
      pagesMatch/userAdmin/team/list.json
  31. 23 0
      pagesMatch/userAdmin/team/list.less
  32. 7 0
      pagesMatch/userAdmin/team/list.wxml
  33. 19 0
      pagesMatch/userAdmin/team/list.wxss
  34. 1 1
      project.private.config.json
  35. 26 9
      utils/dict.js

+ 6 - 0
app.json

@@ -108,6 +108,12 @@
                 "matchAdmin/project/list",
                 "matchAdmin/project/list",
                 "matchAdmin/project/add",
                 "matchAdmin/project/add",
                 "matchAdmin/teamapply/list",
                 "matchAdmin/teamapply/list",
+                "userAdmin/sign/list",
+                "userAdmin/sign/info",
+                "userAdmin/team/list",
+                "userAdmin/schedule/list",
+                "userAdmin/bill/list",
+                "userAdmin/bill/info",
                 "test/index",
                 "test/index",
                 "match/info"
                 "match/info"
             ]
             ]

+ 39 - 1
pages/setting/basic.js

@@ -7,11 +7,16 @@ Page({
      */
      */
     data: {
     data: {
         frameStyle: { useTop: true, name: '个人信息', leftArrow: true, useBar: false },
         frameStyle: { useTop: true, name: '个人信息', leftArrow: true, useBar: false },
+        // 系统用户
+        user: {},
+        // 比赛系统用户信息
+        raceuser: {},
         form: { icon: [] },
         form: { icon: [] },
         // 性别
         // 性别
         genderList: [],
         genderList: [],
         // 账号绑定信息
         // 账号绑定信息
-        bindForm: {}
+        bindForm: {},
+
     },
     },
     initValidate() {
     initValidate() {
         const rules = { icon: { required: true }, name: { required: true }, gender: { required: true }, phone: { required: true, tel: true } }
         const rules = { icon: { required: true }, name: { required: true }, gender: { required: true }, phone: { required: true, tel: true } }
@@ -119,6 +124,33 @@ 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 user_id = arr[0];
+                let school_id = arr[1];
+                const aee = await app.$post(`/utbj`, { user_id: user_id, school_id: school_id }, 'race')
+                console.log(aee);
+            }
+        })
+    },
     /**
     /**
      * 生命周期函数--监听页面加载
      * 生命周期函数--监听页面加载
      */
      */
@@ -146,6 +178,7 @@ Page({
         wx.getStorage({
         wx.getStorage({
             key: 'user',
             key: 'user',
             success: async res => {
             success: async res => {
+                that.setData({ user: res.data })
                 const arr = await app.$get(`/user/${res.data.id}`);
                 const arr = await app.$get(`/user/${res.data.id}`);
                 if (arr.errcode == '0') {
                 if (arr.errcode == '0') {
                     let gender = that.data.genderList.find(i => i.value == arr.data.gender);
                     let gender = that.data.genderList.find(i => i.value == arr.data.gender);
@@ -157,6 +190,11 @@ Page({
                 wx.redirectTo({ url: '/pages/index/index', })
                 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>
                 <view class="btn">
                 <view class="btn">
                     <button type="primary" size="mini" formType="submit">提交保存</button>
                     <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>
                 </view>
             </form>
             </form>
         </view>
         </view>

+ 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 () {
+
+    }
+})

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

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

+ 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",
     "projectname": "%E7%BE%BD%E6%A0%A1%E7%AE%A1%E7%90%86%E5%B9%B3%E5%8F%B0",
     "setting": {
     "setting": {
-        "compileHotReLoad": false
+        "compileHotReLoad": true
     },
     },
     "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html"
     "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',
         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',
         type: '1',
@@ -188,12 +205,12 @@ export const match_menu = [
         type: '2',
         type: '2',
         menu: []
         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: '退款成功' },
 ]
 ]