소스 검색

feat:手动录入选手

lvkun 3 년 전
부모
커밋
5728cabf60

+ 13 - 4
src/components/CustomNavbar/index.vue

@@ -1,10 +1,14 @@
 <template>
-    <view class="CustomNavbar" >
+    <view class="CustomNavbar" :style="{backgroundColor: bgColor}">
         <view class="empty" :style="{height: statusBarHeight + 2 +'px'}"></view>
-        <view class="Navbar" :style="{height: ( bounding.top - statusBarHeight ) * 2 + bounding.height + 'px'}">
+        <view 
+            class="Navbar" 
+            :style="{height: ( bounding.top - statusBarHeight ) * 2 + bounding.height + 'px'}"
+        >
             <van-icon name="arrow-left" size="40rpx" class="arrow-left"  @click="jumpPage"/>
             <view class="title">{{title}}</view>
         </view>
+        
     </view>
 </template>
 
@@ -14,12 +18,15 @@ export default {
     props: {
         title: {
             type: String,
-            default: '这是一个标题'
+            default: ''
+        },
+        bgColor: {
+            type: String,
+            default: '#fff'
         }
     },
     computed: {
         statusBarHeight () {
-     
             return this.$store.state.systemInfo.statusBarHeight
         },
         bounding () {
@@ -53,6 +60,8 @@ export default {
             left: 40rpx;
         }
         .title {
+            width: 300rpx;
+            height: 300rpx;
             font-size: 36rpx;
             font-weight:500;
             position: absolute;

+ 17 - 14
src/components/student-info/student-info.vue

@@ -4,14 +4,15 @@
     <view class="content-info" >
       <view class="top" >
         <view class="name" >{{itemData.babyName}}</view>
+    
+      </view>
         <view class="apply-count" >
           参赛号:{{itemData.competitionNo}}
         </view>
-      </view>
-      <view class="bottom" >
+      <!-- <view class="bottom" >
         <view class="score" >成绩:{{itemData.score}}分</view>
         <view class="time" >/用时: {{itemData.time}}秒</view>
-      </view>
+      </view> -->
     </view>
   </view>
 </template>
@@ -49,7 +50,9 @@ export default {
         color: #333333;
         margin-right: 8rpx;
       }
-      .apply-count {
+
+    }
+    .apply-count {
         padding: 0 12rpx;
         box-sizing: border-box;
         display: flex;
@@ -61,18 +64,18 @@ export default {
         font-family: PingFangSC-Medium, PingFang SC;
         font-weight: 500;
         color: rgba(22, 119, 255, 0.8);
-      }
+        margin-top: 8rpx;
     }
-    .bottom {
-      font-size: 24rpx;
-      font-family: PingFangSC-Regular, PingFang SC;
-      font-weight: 400;
-      color: #666666;
-      display: flex;
-      .score {
+    // .bottom {
+    //   font-size: 24rpx;
+    //   font-family: PingFangSC-Regular, PingFang SC;
+    //   font-weight: 400;
+    //   color: #666666;
+    //   display: flex;
+    //   .score {
         
-      }
-    }
+    //   }
+    // }
   }
 }
 </style>

+ 8 - 0
src/pages.json

@@ -114,6 +114,14 @@
 			"style": {
 				"navigationBarTitleText": "成绩排名"
 			}
+		},
+		{
+			"path": "pages/promoted/handlerEnter",
+			"style": {
+				"navigationBarTitleText": "手动录入成绩",
+				"navigationStyle": "custom",
+				"disableScroll": true 
+			}
 		}
 	],
 	"globalStyle": {

+ 1 - 1
src/pages/competition/apply.vue

@@ -88,7 +88,7 @@ export default {
     goApplySchoolPage (records, index) {
 
       const { id, startTime, endTime } = records
-      const competiitionLabel = index + 1 === 2 ? '区域决赛' :  index + 1  === 3 ? '全国总决赛' : '区域海选赛'
+      const competiitionLabel = index + 1 === 2 ? this.competitionList[1].name :  index + 1  === 3 ? this.competitionList[2].name : this.competitionList[0].name
       const [ startState, endState] = this.applyFormatDate(startTime, endTime)
       console.log(startTime, endTime, startState, endState );
  

+ 1 - 0
src/pages/districtGarden/index.vue

@@ -74,6 +74,7 @@ export default {
       return  this.$store.state.systemInfo.windowHeight - this.height - 44 + 'px'
     }
   },
+
   onLoad (options) {
       this.getNodeInfo()
     

+ 4 - 8
src/pages/index/index.vue

@@ -79,6 +79,10 @@ export default {
             const { encryptedData, iv} = e.detail
            
             this.Login(encryptedData, iv)
+            // uni.setStorageSync('token', 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIzNCIsImV4cCI6MTYyNDM0OTAyN30.oaZKLHIJT3eTAWXWEoxrpockYEaLedgWpoTpjamHG30')
+            //  uni.reLaunch({
+            //         url: '/pages/user/index'
+            //     })
         },
         // 用户登录
         async Login (encryptedData, iv) {
@@ -89,14 +93,6 @@ export default {
                 Tip.success('登录成功')
                 setLocalStorage('token', data.token)
                 this.$store.commit('set_userInfo', data)
-                // const routes = getCurrentPages()
-                // console.log(routes, 'routes');
-                // const route =  routes[routes.length - 2]
-         
-                // const param = route.__displayReporter.showOptions.query
-                // uni.redirectTo({
-                //     url: '/' + route.route + '?' + param
-                // })
                 uni.reLaunch({
                     url: '/pages/user/index'
                 })

+ 8 - 2
src/pages/promoted/components/AddBtn.vue

@@ -1,13 +1,19 @@
 <template>
   <view class="add-btn" >
     <van-icon class="icon-add" name="add" size='60rpx' color='#1637FC' />
-    <view >添加晋级选手</view>
+    <view >{{desc}}</view>
   </view>
 </template>
 
 <script>
 export default {
-  name: 'add-btn'
+  name: 'add-btn',
+  props: {
+    desc: {
+      type: String,
+      require: true
+    }
+  }
 }
 </script>
 

+ 0 - 4
src/pages/promoted/components/StudentSelect.vue

@@ -20,13 +20,9 @@
 </template>
 
 <script>
-// import StudentInfo from ''
 
 export default {
   name: 'student-select',
-  components: {
-    // StudentInfo
-  },
   props: {
     itemData: {
       type: Object,

+ 126 - 23
src/pages/promoted/components/SubmitDialog.vue

@@ -1,6 +1,7 @@
 <template>
   <van-overlay :z-index='50' :show="submitDialogShow" class="submit-dialog" @click="$emit('close-submit-doalog')">
-    <view class="wrapper">
+    <!-- 人数多的时候 -->
+    <view class="wrapper" v-if="babyInfoList.length >= 7 ">
       <view class="wrapper-box" >
         <image class="performance" :src="require('@/static/common/performance.png')" />
         <scroll-view 
@@ -24,7 +25,35 @@
         </view>
       </view>
     </view>
+    
+    <!-- 人数不够滚动的时候 -->
+    <view class="plain-wrapper" v-else>
+      <view class="plain-wrapper-title" >
+        晋级名单
+      </view>
+      <view class="baby-list-wrapper" >
+        <image  class="bg-dog" :src="require('@/static/common/nation-bg.png')"  />
+        <view class="baby-list" >
+            <view class="records" >
+              <view class="records-item" v-for="item in babyInfoList" :key="item.id">
+                <image class="ava" :src="item.headImg" />
+                <view class="name" >{{item.babyName}}</view>
+                <view class="school" >
+                  {{item.schoolName}}-{{ item.classLevel | teferClass}}
+                </view>
+              </view>
+            </view>
+
+          <view class="submit-area" >
+            <view class="submit-btn" @click="$emit('submit')">
+              确认提交
+            </view>
+          </view>
+        </view>
+      </view>
+    </view>
   </van-overlay>
+
 </template>
 
 <script>
@@ -112,7 +141,102 @@ export default {
         left: 24rpx;
         padding-top: 26rpx;
         box-sizing: border-box;
-        .records {
+   
+      }
+      .scroll-view ::-webkit-scrollbar {
+        width: 8rpx;  
+        height: 8rpx; 
+        color:#dddddd; 
+      }
+      .scroll-view ::-webkit-scrollbar-thumb {
+        width: 4rpx;
+        height: 106rpx;
+        background: rgba(65, 143, 255, 0.4);
+        border-radius: 2rpx;
+      }
+      // .scroll-view ::-webkit-scrollbar-track {
+      //    width: 4rpx;
+      //   height: 106rpx;
+      //   // background: rgba(65, 143, 255, 0.4);
+      //   background:red;
+      //   border-radius: 2rpx;
+      // }
+    }
+  }
+  .plain-wrapper {
+    width: 672rpx;
+    background: #1B42FD;
+    box-shadow: 0rpx 0rpx 10rpx 0rpx #A5A8A4;
+    border-radius: 24rpx;
+    padding-bottom: 40rpx;
+    box-sizing: border-box;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    .plain-wrapper-title {
+      font-size: 40rpx;
+      font-family: PingFangSC-Medium, PingFang SC;
+      font-weight: 500;
+      color: #FFFFFF;
+      position: absolute;
+      left: 50%;
+      transform: translateX(-50%);
+      top: 48rpx;
+    }
+    .baby-list-wrapper {
+      width: 624rpx;
+      min-height: 400rpx;
+      position: relative;
+      .bg-dog {
+        width: 156rpx;
+        height: 154rpx;
+        display: block;
+        position: absolute;
+        top: -134rpx;
+        right: -40rpx;
+        z-index: 1;
+      }
+      .baby-list {
+        width: 624rpx;
+        min-height: 400rpx;
+        box-sizing: border-box;
+        background: #FFFFFF;
+        position: relative;
+        z-index: 2;
+        margin-left: 24rpx;
+        margin-top: 158rpx;
+        padding-top: 86rpx;
+        padding-bottom: 200rpx;
+        box-sizing: border-box;
+        border-radius: 24rpx;
+        .submit-area {
+          width: 572rpx;
+          height: 164rpx;
+          position: absolute;
+          left: 22rpx;
+          bottom: 40rpx;
+          display: flex;
+          justify-content: center;
+          align-items: center;
+            .submit-btn {
+              width: 572rpx;
+              height: 84rpx;
+              background: #1677FF;
+              border-radius: 200rpx;
+              display: flex;
+              justify-content: center;
+              align-items: center;
+              font-size: 32rpx;
+              font-family: PingFangSC-Medium, PingFang SC;
+              font-weight: 500;
+              color: #FFFFFF;
+          }
+        }  
+      }
+    }
+  }
+       .records {
           .records-item {
             height: 44rpx;
             display: flex;
@@ -161,26 +285,5 @@ export default {
             }
           }
         }
-      }
-      .scroll-view ::-webkit-scrollbar {
-        width: 8rpx;  
-        height: 8rpx; 
-        color:#dddddd; 
-      }
-      .scroll-view ::-webkit-scrollbar-thumb {
-        width: 4rpx;
-        height: 106rpx;
-        background: rgba(65, 143, 255, 0.4);
-        border-radius: 2rpx;
-      }
-      // .scroll-view ::-webkit-scrollbar-track {
-      //    width: 4rpx;
-      //   height: 106rpx;
-      //   // background: rgba(65, 143, 255, 0.4);
-      //   background:red;
-      //   border-radius: 2rpx;
-      // }
-    }
-  }
 }
 </style>

+ 129 - 0
src/pages/promoted/config.js

@@ -47,3 +47,132 @@ export const imgUrl =  [
       bottom: 'http://res.training.luojigou.vip/FieXA8zqeIevUgQlhy5VNXBB6OG4'
   }
 ]
+
+
+
+/**
+ * @description 选手信息 假数据
+ */
+
+export const babyList =  [{
+  "id": "1305447585619034113",
+  "sex": 2,
+  "babyName": "杜开心",
+  "headImg": "https://app-resources-luojigou.luojigou.vip/Fm3VXNAuVbXns_XNE6z7T7oPKG5B",
+  "competitionNo": "00000109",
+  "classLevel": 2,
+  "score": 10,
+  "time": 10,
+  "isPass": 1,
+  "schoolName": "中德智慧"
+}, {
+  "id": "1305443757934952449",
+  "sex": 1,
+  "babyName": "吴子瑜",
+  "headImg": "https://app-resources-luojigou.luojigou.vip/FoODu-N5IcNMVEuzcHqa4VsOqN9N",
+  "competitionNo": "00000108",
+  "classLevel": 2,
+  "score": 10,
+  "time": 10,
+  "isPass": 1,
+  "schoolName": "中德智慧"
+}, {
+  "id": "1305443270883983361",
+  "sex": 1,
+  "babyName": "李炫希",
+  "headImg": "https://app-resources-luojigou.luojigou.vip/Fk1wBCWXIhwa-HH6ltJM7Sxgw9f0",
+  "competitionNo": "00000107",
+  "classLevel": 2,
+  "score": 10,
+  "time": 10,
+  "isPass": 1,
+  "schoolName": "中德智慧"
+}, {
+  "id": "1305442255744974849",
+  "sex": 1,
+  "babyName": "乔先生",
+  "headImg": "https://app-resources-luojigou.luojigou.vip/FnWxqoRIjJad8r9FbsS7tqe9yJpY",
+  "competitionNo": "00000106",
+  "classLevel": 2,
+  "score": 10,
+  "time": 10,
+  "isPass": 0,
+  "schoolName": "中德智慧"
+}, {
+  "id": "1305438859570888706",
+  "sex": 1,
+  "babyName": "顾宇轩",
+  "headImg": "https://app-resources-luojigou.luojigou.vip/FrvqrhwHVPqoXAG9ZOaX32Il4TwF",
+  "competitionNo": "00000103",
+  "classLevel": 1,
+  "score": 10,
+  "time": 10,
+  "isPass": 1,
+  "schoolName": "中德智慧"
+}, {
+  "id": "1305437936668819458",
+  "sex": 2,
+  "babyName": "黄鑫玥",
+  "headImg": "https://app-resources-luojigou.luojigou.vip/FvjLvmvj-xzHA5dzCzlk8MiYl2ET",
+  "competitionNo": "00000112",
+  "classLevel": -1,
+  "score": 10,
+  "time": 10,
+  "isPass": 1,
+  "schoolName": "中德智慧"
+}, {
+  "id": "1305437648935370753",
+  "sex": 2,
+  "babyName": "潘以轩",
+  "headImg": "https://app-resources-luojigou.luojigou.vip/FhFf4CwxE8FVdvdhK-Z5mEBKupVD",
+  "competitionNo": "00000111",
+  "classLevel": 1,
+  "score": 10,
+  "time": 10,
+  "isPass": 1,
+  "schoolName": "中德智慧"
+}, {
+  "id": "1305434443979603970",
+  "sex": 1,
+  "babyName": "刘瑞轩",
+  "headImg": "https://app-resources-luojigou.luojigou.vip/FmRs0_pP5OuclAuIPavSd8RX4INT",
+  "competitionNo": "00000123",
+  "classLevel": 1,
+  "score": 10,
+  "time": 10,
+  "isPass": 1,
+  "schoolName": "中德智慧"
+}, {
+  "id": "1305291925782753281",
+  "sex": 1,
+  "babyName": "马雨聪",
+  "headImg": "https://app-resources-luojigou.luojigou.vip/FjTn47fGAWHONQaVtq-tG6k3AwsQ",
+  "competitionNo": "00000236",
+  "classLevel": 2,
+  "score": 10,
+  "time": 10,
+  "isPass": 1,
+  "schoolName": "中德智慧"
+}, {
+  "id": "1305440844164546562",
+  "sex": 1,
+  "babyName": "朱瑞潼",
+  "headImg": "https://app-resources-luojigou.luojigou.vip/FsmwBmYCIjeJ9Fe7ldebjdbrcEm2",
+  "competitionNo": "00000105",
+  "classLevel": 2,
+  "score": 10,
+  "time": 10,
+  "isPass": 0,
+  "schoolName": "中德智慧"
+}, {
+  "id": "1305440056667193346",
+  "sex": 1,
+  "babyName": "刘子瑜",
+  "headImg": "https://app-resources-luojigou.luojigou.vip/FiXG3eMqS_71AEyBNbRDUlDHfONq",
+  "competitionNo": "00000104",
+  "classLevel": 2,
+  "score": 10,
+  "time": 10,
+  "isPass": 1,
+  "schoolName": "中德智慧"
+}]

+ 388 - 0
src/pages/promoted/handlerEnter.vue

@@ -0,0 +1,388 @@
+<template>
+  <view class="handler-enter"  >
+    <image class="handler-enter-bg-img"  src="http://res.training.luojigou.vip/FqgcrIypLgcGrrrTR1_XsIrpfNaT?imageView2/0/q/50|imageslim" />
+    <image class="handler-enter-small" :src="require('@/static/common/handler-enter-small.png')" />
+    <view class="custom-navbar">
+      <view class="empty" :style="{height: statusBarHeight + 2 +'px'}"></view>
+        <view 
+            class="Navbar" 
+            :style="{height: ( bounding.top - statusBarHeight ) * 2 + bounding.height + 'px'}"
+        >
+            <van-icon
+               name="arrow-left" 
+               size="40rpx"
+               color='#fff'
+               class="arrow-left" 
+               @click="backPage"
+            />
+            <view class="title">手动录入名单</view>
+        </view>
+    </view>
+
+    <view class="opra-area" >
+      <view class="input-box" >
+        <input 
+          placeholder="请输入参赛选手号*"
+          :placeholder-style="inputStyle"
+          class="cus-input"
+          :maxlength="8"
+          @input="changeInput"
+        />
+      </view>
+      <view class="desc" >
+        参赛号为参赛选手线上报名生成的唯一参赛编号
+      </view>
+      <view class="examine-num" @click="numVisable = true" >
+        如何查看参赛编号?
+      </view>
+    </view>
+
+    <!-- 提交按钮 -->
+    <view class="submit-btn" @click="getBabyScore">
+      提交
+    </view>
+
+
+    <!-- 查看编号弹窗 -->
+    <van-overlay :show="numVisable" @click="numVisable = false" >
+      <view  class="tip" >
+        <image class="baby-num-img" src="http://res.training.luojigou.vip/Fo828dZl201_vmmHCi6eEYAEimfx?imageView2/0/q/50|imageslim" />
+        <view class="submit-btn tip-btn">
+          知道了
+        </view>
+      </view>
+      
+    </van-overlay>
+
+
+    <!-- 确认名单 -->
+    <van-overlay :show="confirmVisable" @click="confirmVisable = false" >
+      <view class="student-info-box" @click.stop="() => {}" >
+        <view class="student-info">
+          <view class="student-ava" >
+            <image :src="babyInfo.headImg" />
+          </view>
+          <view class="student-info-right" >
+            <view class="student-info-right-item" style="color: #6fc708" >
+              <view class="label">参赛号: </view>
+              <view class="content">{{babyInfo.competitionNo}}</view>
+            </view>
+            <view class="student-info-right-item" style="margin-top: 23rpx; margin-bottom: 23rpx">
+              <view class="label">选手姓名: </view>
+              <view class="content">{{babyInfo.babyName}}</view>
+            </view>
+            <view class="student-info-right-item" >
+              <view class="label">所在园所: </view>
+              <view class="content">{{babyInfo.schoolName}}</view>
+            </view>
+          </view>
+        </view>
+        <view  class="student-info-footer" > 
+          <view class="cancle-btn common-btn-style " @click="confirmVisable = false" >
+            取消
+          </view>
+          <view class="confirm-btn common-btn-style " @click="submit" >
+            确定提交
+          </view>
+        </view>
+      </view>
+    </van-overlay>
+  </view>
+</template>
+
+<script>
+import { getBabyScore, bobyPass } from '@/api/promoted'
+import Tip from '@/utils/tip'
+export default {
+  name: 'handlerEnter',
+  components: {
+  },
+  computed: {
+    inputStyle () {
+      return `font-size: 30rpx;
+              font-family: SimHei;
+              font-weight: 400;
+              color: #D3D3D3;`
+    },
+    statusBarHeight () {
+      return this.$store.state.systemInfo.statusBarHeight
+    },
+    bounding () {
+      return this.$store.state.bounding
+    }
+  },
+  onLoad (options) {
+    this.stageId = options.stageId
+  },
+  data () {
+    return {
+      stageId: '',
+      numVisable: false,
+      confirmVisable: false,
+      babyInfo: {},
+      competitionNo: '' // 编号
+    }
+  },
+  methods: {
+    backPage () {
+      uni.navigateBack({
+        delta: 1
+      })
+    },
+    changeInput (e) {
+      this.competitionNo = e.detail.value
+    },
+    // 提交内容 宝贝批量晋级
+    async submit () {
+      const $par = {
+        babyIds: [this.babyInfo.id],
+        stageId: this.stageId
+      }
+      Tip.loading('提交中')
+      const { data, status } = await bobyPass($par)
+      Tip.loaded()
+      console.log(data)
+      if (status === 200) {
+        Tip.toast('提交成功', '' , 'none')
+        
+      }
+      this.confirmVisable = false
+    },
+    // 获取宝贝成绩
+    async getBabyScore ( ) {
+      if (this.competitionNo.length === 0) {
+        Tip.toast('请输入参赛选手号', '', 'none', 1000)
+        return
+      }
+      const $par =  {
+        competitionNo: this.competitionNo,
+        stageId: this.stageId,
+        pageSize: 10000
+      }
+      const { data, status } = await getBabyScore($par)
+
+      if (status === 200) {
+        if (data.entityList.length === 0) {
+          Tip.toast('未查询到该参赛编号,请确定参赛选手是否线上报名成功', '', 'none', 2000)
+        } else {
+          this.confirmVisable = true
+          this.babyInfo = data.entityList[0]
+        }
+      }
+    },
+  }
+}
+</script>
+
+<style lang="less" scoped>
+.handler-enter {
+  width: 100vw;
+  height: 100vh;
+  // background: url('http://res.training.luojigou.vip/FqgcrIypLgcGrrrTR1_XsIrpfNaT?imageView2/0/q/50|imageslim') no-repeat;
+  // background-size: 100% 100%;
+  .custom-navbar {
+    position: fixed;
+    top: 0;
+    left: 0;
+    background-color: transparent;
+    width: 100%;
+    z-index: 10;
+    .empty {
+        width: 100%;
+    }
+    .Navbar {
+        display: flex;
+        align-items: center;
+        position: relative;
+        .arrow-left {
+            position: absolute;
+            left: 40rpx;
+        }
+        .title {
+            position: absolute;
+            left: 50%;
+            transform: translateX(-50%);
+            font-size: 36rpx;
+            font-family: SimHei;
+            font-weight: 400;
+            color: #F7F7F7;
+        }
+    }
+  }
+  .opra-area {
+    position: absolute;
+    top: 448rpx;
+    left: 79rpx;
+    .input-box {
+      width: 604rpx;
+      height: 95rpx;
+      background: #FFFFFF;
+      border-radius: 48rpx;
+      display: flex;
+      align-items: center;
+      justify-content: flex-start;
+      padding-left: 31rpx;
+      box-sizing: border-box;
+      .cus-input {
+        width: 542rpx;
+      }
+    }
+    .desc {
+      font-size: 24rpx;
+      font-family: SimHei;
+      font-weight: 400;
+      color: #F7F7F7;
+      margin-top: 30rpx;
+      margin-bottom: 37rpx;
+    }
+    .examine-num {
+      font-size: 28rpx;
+      font-family: SimHei;
+      font-weight: 400;
+      text-decoration: underline;
+      color: #F7F7F7;
+    }
+  }
+  .submit-btn {
+    width: 604rpx;
+    height: 95rpx;
+    background: #1677FF;
+    border-radius: 48rpx;
+    position: absolute;
+    bottom: 129rpx;
+    left: 50%;
+    transform: translateX(-50%);
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    font-size: 40rpx;
+    font-family: SimHei;
+    font-weight: 400;
+    color: #FFFFFF;
+  }
+
+  .tip {
+    position: relative;
+    width: 690rpx;
+    height: 1240rpx;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    .baby-num-img {
+      width: 690rpx;
+      height: 1240rpx;
+      display: block;
+    }
+    .tip-btn {
+      width: 499rpx;
+      height: 95rpx;
+      position: absolute;
+      bottom: 83rpx;
+      left: 50%;
+      transform: translateX(-50%);
+    }
+
+  }
+
+  
+
+  .student-info-box {
+    width: 672rpx;
+    height: 704rpx;
+    background: url('http://res.training.luojigou.vip/FnivqI0xDkv0LQU1-EDyvIzdxkX5?imageView2/0/q/50|imageslim') no-repeat;
+    background-size: 100% 100%;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    .student-info {
+      position: absolute;
+      top: 258rpx;
+      left: 55rpx;
+      display: flex;
+      .student-ava {
+        width: 129rpx;
+        height: 129rpx;
+        background: #FFFEFF;
+        border: 3rpx solid #6fc708;
+        border-radius: 50%;
+        position: relative;
+        top: 14rpx;
+        left: 8rpx;
+        image {
+          width: 133rpx;
+          height: 133rpx;
+          border-radius: 50%;
+          position: absolute;
+          top: -14rpx;
+          left: -8rpx;
+        }
+      }
+      .student-info-right {
+        font-size: 29rpx;
+        font-family: SimHei;
+        font-weight: 400;
+        color: #999999;
+        margin-left: 53rpx;
+        .student-info-right-item {
+          display: flex;
+        }
+      }
+    }
+    .student-info-footer {
+      display: flex;
+      align-items: center;
+      position: absolute;
+      left: 54rpx;
+      bottom: 107rpx;
+      .common-btn-style {
+        width: 260rpx;
+        height: 84rpx;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        border-radius: 40rpx;
+        font-size: 29rpx;
+        margin-right: 44rpx;
+      }
+      .cancle-btn {
+        background: #FFFFFF;
+        border: 3rpx solid #1677FF;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        font-family: SimHei;
+        font-weight: 400;
+        color: #1677FF;
+      }
+      .confirm-btn {
+          background: #1677FF;
+          font-family: SimHei;
+          font-weight: 400;
+          color: #FFFFFF;
+      }
+    }
+  }
+  .handler-enter-bg-img {
+    width: 100vw;
+    height: 100vh;
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    // z-index: 1;
+  }
+  .handler-enter-small {
+    width: 100vw;
+    height: 100vh;
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    z-index: -1;
+  }
+}
+</style>

+ 14 - 2
src/pages/promoted/index.vue

@@ -1,7 +1,10 @@
 <template>
     <view class="promoted" >
       <view class="add-btn" @click="goPromotedSearch">
-        <add-btn />
+        <add-btn desc='添加晋级选手' />
+      </view>
+      <view style="margin-top: 20px" @click="goHandlerEnterPage">
+        <add-btn desc='手动录入晋级选手' />
       </view>
       
       <view class="class-tab" >
@@ -47,7 +50,10 @@ export default {
     const { stageId } = options
     console.log(stageId, 'id');
     this.stageId = stageId
-    this.getBabyScore()
+  
+  },
+  onShow () {
+      this.getBabyScore()
   },
   data () {
     return {
@@ -58,6 +64,12 @@ export default {
     }
   },
   methods: {
+    // 去手动录入选手的页面
+    goHandlerEnterPage () {
+      uni.navigateTo({
+        url: `/pages/promoted/handlerEnter?stageId=${this.stageId}`
+      })
+    },
     changeClass (classType) {
       this.classType = classType
     },

+ 3 - 2
src/pages/promoted/search.vue

@@ -56,6 +56,7 @@ import SubmitDialog from './components/SubmitDialog'
 import { getBabyScore, bobyPass } from '@/api/promoted'
 import { classCategory as _classCategory } from './config'
 import Tip from '@/utils/tip'
+import { babyList as babyList11 } from './config'
 export default {
   name: 'search',
   components: {
@@ -76,8 +77,8 @@ export default {
       }
     },
     selectBabyList () {
-
       return this.babyList.filter( baby => this.babyIds.includes(baby.id) && baby.isPass !== 1  )
+     
     }
   },
   onLoad (options) {
@@ -140,7 +141,7 @@ export default {
       }
       const { data, status } = await getBabyScore($par)
       this.requestState = true
-      console.log( data, status);
+      
       this.babyList = data.entityList.filter( item => item.isPass === 0 )
       this.classCategory = _classCategory.map( _classTab => {
         _classTab.count = this.babyList.filter( baby => baby.classLevel === _classTab.id ).length

BIN
src/static/common/handler-enter-small.png


+ 3 - 2
src/utils/config.js

@@ -2,11 +2,12 @@ let BASEURL = ""
 
 if(process.env.NODE_ENV === 'development'){
     // 开发环境
-    BASEURL = 'http://agentminiprogram.test.luojigou.vip:8899'
-    // BASEURL = 'https://api.zaojiao.net'
+    // BASEURL = 'http://agentminiprogram.test.luojigou.vip:8899'
+    BASEURL = 'https://api.zaojiao.net'
 }else{
     // 生产环境
     BASEURL = 'https://api.zaojiao.net'
+    // BASEURL = 'http://agentminiprogram.test.luojigou.vip:8899'
 }
 
 export default BASEURL

+ 1 - 1
src/utils/request.js

@@ -44,4 +44,4 @@ const request = async(params = {}) => {
 
 module.exports = {
     request
-  }
+}

+ 2 - 2
src/utils/tip.js

@@ -52,13 +52,13 @@ export default class Tips {
       });
     }
   
-    static toast(title, onHide, icon = "success") {
+    static toast(title, onHide, icon = "success", duration = 500) {
       setTimeout(() => {
         wx.showToast({
           title: title,
           icon: icon,
           mask: true,
-          duration: 500
+          duration: duration
         });
       }, 300);