vue 移动端弹窗带滚动效果 滚动到底的时候弹窗下的页面会跟着滑动

<template><div class="wrap" :style="dynamicStyle"><!--dynamicStyle主要是介个 通过computed设置postion的值 弹窗的时候设置为fixed 关闭弹窗的时候设置为unset--><div class="banner-wrap"><img src="@/assets/images/banner2.png" class="banner" /><div class="header"><div class="d1">{{ user.name }},您好</div>        <img src="@/assets/images/help.png" alt="" class="icon-help" @click="openHelpHandle"></div></div><div class="scrollerWrap"><!--头部下拉选择--><div class="scroll-head"><el-select v-model="classId" style="flex: 1; margin-right: 10px;" @change="seletClassChange"><el-option v-for="item in classList" :key="item.deptId" :label="item.deptName" :value="item.deptId"></el-option>        </el-select><el-select v-model="itemType" style="width: 60%;" @change="seletTaskChange"><el-option label="身高/体重" :value="1"></el-option><el-option label="立定跳远" :value="3"></el-option><el-option label="坐位体前屈" :value="4"></el-option><el-option label="双脚连续跳" :value="5"></el-option><el-option label="走平衡木" :value="6"></el-option><el-option label="握力" :value="7" v-if="physicalVersion == 2"></el-option><el-option label="15米绕障碍跑" :value="8" v-if="physicalVersion == 2"></el-option><el-option label="网球掷远" :value="9" v-if="physicalVersion == 1"></el-option><el-option label="10米折返跑" :value="10" v-if="physicalVersion == 1"></el-option></el-select></div><div v-if="!isAll"><!--头部tab--><div class="tab"><div class="tab-list" :class="{ active: tabIdx == 0 }" @click="changeTab(0)">共{{ total }}个幼儿</div><div class="tab-list" :class="{ active: tabIdx == 1 }" @click="changeTab(1)">{{ totalTested }}个测试完</div><div class="tab-list" :class="{ active: tabIdx == 2 }" @click="changeTab(2)">{{ totalUntested }}个未测试</div><!-- <div class="tab-list tab-list4">3个异常</div> --></div><!--学生列表--><div class="item" v-if="tabIdx == 0">         <div v-for="item in phyTaskDetailList" :key="item.sid" class="list" :class="{ entered: item.checked }" @click="openEnter(item)"><div class="list-head"><div class="physical-wrap"><img src="@/assets/images/type8.png" class="icon-physical" alt=""></div><div class="physical-data" v-if="itemType == 1"><div class="d1">身高<span class="s1">{{ item.heightList == null ? 0 : item.heightList[0].score }}</span>cm</div><div class="d1">体重<span class="s1">{{ item.weightList == null ? 0 : item.weightList[0].score}}</span>kg</div>              </div><div class="physical-data" v-else><div class="d1">{{ computedTxt }}<span class="s1">{{ computedName(item) }}</span>{{ computedUnit }}</div>              </div>            <div class="entered-num" v-if="itemType != 1 && computedNavlistLength(item) > 0">{{ computedNavlistLength(item) }}</div></div><div class="list-bot">{{ item.number }}号</div></div></div><div class="item" v-if="tabIdx == 1">         <div v-for="item in testedArr" :key="item.sid" class="list" :class="{ entered: item.checked }" @click="openEnter(item)"><div class="list-head"><div class="physical-wrap"><img src="@/assets/images/type8.png" class="icon-physical" alt=""></div><div class="physical-data" v-if="itemType == 1"><div class="d1">身高<span class="s1">{{ item.heightList == null ? 0 : item.heightList[0].score }}</span>cm</div><div class="d1">体重<span class="s1">{{ item.weightList == null ? 0 : item.weightList[0].score}}</span>kg</div>              </div><div class="physical-data" v-else><div class="d1">{{ computedTxt }}<span class="s1">{{ computedName(item) }}</span>{{ computedUnit }}</div>              </div>            <div class="entered-num" v-if="itemType != 1 && computedNavlistLength(item) > 0">{{ computedNavlistLength(item) }}</div></div><div class="list-bot">{{ item.number }}号</div></div></div><div class="item" v-if="tabIdx == 2">         <div v-for="item in unTestedArr" :key="item.sid" class="list" :class="{ entered: item.checked }" @click="openEnter(item)"><div class="list-head"><div class="physical-wrap"><img src="@/assets/images/type8.png" class="icon-physical" alt=""></div><div class="physical-data" v-if="itemType == 1"><div class="d1">身高<span class="s1">{{ item.heightList == null ? 0 : item.heightList[0].score }}</span>cm</div><div class="d1">体重<span class="s1">{{ item.weightList == null ? 0 : item.weightList[0].score}}</span>kg</div>              </div><div class="physical-data" v-else><div class="d1">{{ computedTxt }}<span class="s1">{{ computedName(item) }}</span>{{ computedUnit }}</div>              </div>            <div class="entered-num" v-if="itemType != 1 && computedNavlistLength(item) > 0">{{ computedNavlistLength }}</div></div><div class="list-bot">{{ item.number }}号</div></div></div></div>  <div v-else><div class="class-list"><div class="class-list-head">共{{ allTotal }}个班级,8个项目</div>          <div class="class-box" v-for="item in allInfo" :key="item.id"><div class="class-name">{{ item.className }}</div><div class="d1" v-for="navitem in item.itemList" :key="navitem.id"><span>{{ navitem.itemTypeName }}</span> <span>已测试完成{{ navitem.completeNum }}个幼儿({{ navitem.completePercent }}%)</span><span>未测试{{ navitem.incompleteNum }}个({{ navitem.incompletePercent }}%)</span></div></div></div></div></div>    <div class="mask" v-if="openMask"></div><!-- 新增/编辑列表数据 --><div class="pop-box" v-if="open"><img src="@/assets/images/logo_head2.png" class="logo-head" alt=""><div class="pop-header">{{ typeName }}</div>  <div class="student-mes-wrap"><div class="student-mes">{{ deptName }} {{studentNumber}}号</div></div><div class="group-wrap"><div class="group-item" v-if="itemType != 1"><div class="group-list"><div class="d1">第1组记录</div><el-input type="number" v-model="teamgroup.team1" placeholder="请输入内容" class="i1"></el-input><div class="d2" @click="saveTeam(1)">保存</div></div><div class="group-list"><div class="d1">第2组记录</div><el-input type="number" v-model="teamgroup.team2" placeholder="请输入内容" class="i1"></el-input><div class="d2" @click="saveTeam(2)">保存</div></div><div class="group-list"><div class="d1">第3组记录</div><el-input type="number" v-model="teamgroup.team3" placeholder="请输入内容" class="i1"></el-input><div class="d2" @click="saveTeam(3)">保存</div></div></div><div class="group-item" v-else><div class="group-list"><div class="d1">身高</div><el-input type="number" v-model="teamgroup.teamHeight" placeholder="请输入内容" class="i1"></el-input><div class="d2" @click="saveTeamHeight">保存</div></div><div class="group-list"><div class="d1">体重</div><el-input type="number" v-model="teamgroup.teamWeight" placeholder="请输入内容" class="i1"></el-input><div class="d2" @click="saveTeamWeight">保存</div></div></div><div class="group-warn"><span>*保留小数点后一位</span><span>*正常值在{{ sectionValue }}</span></div></div><div class="pop-footer"><div class="b1" @click="cancel">取消</div></div></div>    <!--提示弹窗--><div class="alert-mask" v-if="alertmask"></div><transition name="fade" v-if="alertOpen">      <div class="alert-box"><i class="el-icon-circle-check icon-success" v-if="alertIcon == 1"></i><i class="el-icon-circle-close icon-danger" v-if="alertIcon == 2"></i><i class="el-icon-warning-outline icon-warning" v-if="alertIcon == 3"></i>        <p class="p1">{{ alertMes }}</p></div></transition><!--帮助弹窗--><div class="pop-box" v-if="openHelp"><img src="@/assets/images/logo_head2.png" class="logo-head" alt=""><div class="pop-header">帮助</div>  <div class="help-cont" v-html="helpCont" @click="judgeImg($event)"></div><div class="pop-footer"><div class="b1" @click="closeHelp">关闭</div></div></div></div> 
</template><script>
import { listPhyTaskDetail, getClassList, getStatisticsTotal, getPhyTaskDetail, addPhyTaskDetail, updatePhyTaskDetail, getDetectMissionHelp } from "@/api/school/phyTaskDetail";
import {ImagePreview} from "vant"  //引入vant预览图片组件export default {metaInfo: {title: '测试页',titleTemplate: null,//不加这个会有个默认的后缀meta: [{ charset: 'utf-8' },{ name: 'viewport', content: 'width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no' }]},name: "PhyTaskDetail",data() {return {     position: 'unset',helpCont: null,openHelp: false,allInfo: null,//全部统计的信息allTotal: 0,isAll: false,//判断是不是全部统计studentNumber: null,//选中的学生班号      testedArr: [],//已测试的数组unTestedArr: [],//未测试的数组sid: null,//学生idtabIdx: 0,//顶部tab的下标 classId:null,//选中的班级iddeptName: null,//选中的班级名称taskId:null,//上一个页面传过来的idphysicalVersion: null,//体测版本classList: [],//班级下拉列表的值 也就是左上角第一个下拉列表//弹窗-startalertMes: null,alertIcon: null,//success1 error2 warning3alertOpen: false,alertmask: false,//弹窗-endteamgroup : {teamHeight: null,teamHeightId: null,teamWeight: null,teamWeightId: null,team1: null,teamId1: null,team2: null,teamId2: null,team3: null,teamId3: null,},openMask: false,// 是否显示弹出层open: false,typeName: '身高/体重',sectionValue: '50cm~200cm, 5kg~50kg',//区间值itemType: 1,user: null,total: 0,totalTested: 0,//统计已测试totalUntested: 0,//统计未测试// 遮罩层loading: true,// 体测数据表格数据phyTaskDetailList: [],// 表单参数form: {},};},computed: {computedTxt() {if (this.itemType == '3' || this.itemType == '4' || this.itemType == '9') {return '距离';} else if(this.itemType == '5' || this.itemType == '6' || this.itemType == '8' || this.itemType == '10') {return '用时';} else if(this.itemType == '7'){return '力度'}},computedUnit() {if (this.itemType == '3' || this.itemType == '4') {return 'cm';} else if(this.itemType == '9'){return 'm';} else if(this.itemType == '5' || this.itemType == '6' || this.itemType == '8' || this.itemType == '10') {return 's';} else if(this.itemType == '7'){return 'kg'}},computedName(){return function(item) { //通过itemType判断要显示那个字段return this.itemType == 3 ? item.downStrength : this.itemType == 4 ? item.flexibility : this.itemType == 5 ? item.coordination : this.itemType == 6 ? item.balance : this.itemType == 7 ? item.upStrength : this.itemType == 8 ? item.sensitivity : this.itemType == 9 ? item.upStrength : this.itemType == 10 ? item.sensitivity : ''};},computedNavlistLength(){return function(item) { //通过itemType判断要显示那个字段的子集长度return this.itemType == 3 ? (Array.isArray(item.downStrengthList) ? item.downStrengthList.length : 0) : this.itemType == 4 ? (Array.isArray(item.flexibilityList) ? item.flexibilityList.length : 0) : this.itemType == 5 ? (Array.isArray(item.coordinationList) ? item.coordinationList.length : 0) : this.itemType == 6 ? (Array.isArray(item.balanceList) ? item.balanceList.length : 0) : this.itemType == 7 ? (Array.isArray(item.upStrengthList) ? item.upStrengthList.length : 0) : this.itemType == 8 ? (Array.isArray(item.sensitivityList) ? item.sensitivityList.length : 0) : this.itemType == 9 ? (Array.isArray(item.upStrengthList) ? item.upStrengthList.length : 0) : this.itemType == 10 ? (Array.isArray(item.sensitivityList) ? item.sensitivityList.length : 0) : ''};},dynamicStyle() {return {position: this.position, // 使用计算属性返回样式对象// 其他样式属性...};},},created() {//console.log(this.$route.params.id)this.taskId = this.$route.params.id;  //'27836848421849e997cf48b672646d0ed4ec38d4abeb44aba78ea333bb0001b2'; //'8e86e2f4f06d4021bf548239b1937db4eb130fd0376141fdaaa175822f08b106'; // this.$route.params.idthis.physicalVersion = this.$route.params.physicalVersion; // '1'; // this.$route.params.physicalVersionthis.user = this.$store.state.user;//console.log(this.user)this.form.userId = this.user.userId;this.form.schoolId = this.user.schoolId;    //this.seletTaskChange(this.itemType) //选择体测的项目 获取对应的项目名称 对应的区间 默认身高/体重//如果用户直接访问这个页面 给它跳转到列表页if(!this.$route.params.id){this.$router.push({ path: '/phyTask' })}this.getClassListData() //获取班级列表//this.getList();},methods: {//判断是否为图片并提取当前图片地址judgeImg(e){if(e.target.tagName=="IMG" && e.target.currentSrc){this.previewSingleImg(e.target.currentSrc)}},//查看单个大图previewSingleImg(url) {ImagePreview({images: Array.of(url),startPosition: 0,});},closeHelp(){this.openHelp = falsethis.openMask = falsethis.position = 'unset'},openHelpHandle(){const that = thislet params = {type: 6,userId: this.user.userId}getDetectMissionHelp(params).then(res => {        if(res.rows.length == 0 || res.rows[0].length == 0){this.handleAlert('暂无帮助信息', 3)setTimeout(function(){that.closeAlert()},1000)return}//console.log(res.rows[0].brief)this.helpCont = res.rows[0].briefthis.openHelp = truethis.openMask = truethis.position = 'fixed'});},//通过itemType判断当前获取到的是哪个体测项目getCurrentItem(item){return this.itemType == 3 ? item.downStrengthList : this.itemType == 4 ? item.flexibilityList : this.itemType == 5 ? item.coordinationList : this.itemType == 6 ? item.balanceList : this.itemType == 7 ? item.upStrengthList : this.itemType == 8 ? item.sensitivityList : this.itemType == 9 ? item.upStrengthList : this.itemType == 10 ? item.sensitivityList : []},openEnter(item){this.studentNumber = item.number/*点击的时候获取到item通过itemType判断当前获取到的是哪个体测项目拿到该体测项目的数组回显到对应的组里面去*///console.log(item)let oitemArr = this.getCurrentItem(item)//console.log(item)if(oitemArr && oitemArr.length > 0){//编辑if(this.itemType != 1){for(let i in oitemArr){if(oitemArr[i].sort == 1){this.teamgroup.teamId1 = oitemArr[i].idthis.teamgroup.team1 = oitemArr[i].score}if(oitemArr[i].sort == 2){this.teamgroup.teamId2 = oitemArr[i].idthis.teamgroup.team2 = oitemArr[i].score}if(oitemArr[i].sort == 3){this.teamgroup.teamId3 = oitemArr[i].idthis.teamgroup.team3 = oitemArr[i].score}}}}//身高体重 回显if(this.itemType == 1){if(item.heightList != null && item.heightList && item.heightList.length > 0){this.teamgroup.teamHeight = item.heightList[0].scorethis.teamgroup.teamHeightId = item.heightList[0].id}if(item.weightList != null && item.weightList && item.weightList.length > 0){this.teamgroup.teamWeight = item.weightList[0].scorethis.teamgroup.teamWeightId = item.weightList[0].id}}this.sid = item.sid//console.log(sid)this.open = truethis.openMask = true},changeTab(idx){this.tabIdx = idx},//查询班级列表getClassListData(){getClassList(this.taskId).then(response => {if(response.code == 200){this.classList = response.rowslet allOption = {deptId: 0,deptName: '全部'}this.classList.unshift(allOption)        if(this.classList.length > 1){this.classId = this.classList[1].deptIdthis.deptName = this.classList[1].deptNamethis.getList()}   }});},/** 查询体测数据列表 */getList() {this.loading = true;let params = {classId: this.classId,taskId: this.taskId,itemType: this.itemType == 1 ? '1,2' : this.itemType }listPhyTaskDetail(params).then(response => {this.phyTaskDetailList = response.rows;this.total = response.total;this.loading = false;//选择不同的体测项目的时候 要重新刷新数据 通过itemType获取不同项目的列表以及状态this.getTotalTested()//统计已测试和未测试});},//统计已测试和未测试getTotalTested(){let totalTested = 0//统计已测试      let testedArr = []//已测试的数组let unTestedArr =[]//未测试的数组this.phyTaskDetailList.forEach(item => {//判断 itemType 为1的时候为身高体重if(this.itemType == 1){if(item.heightList != null && item.heightList.length > 0 || item.weightList != null && item.weightList.length > 0){totalTested++item.checked = true;//新增checked属性并赋值   testedArr.push(item) }else{item.checked = false;//新增checked属性并赋值    unTestedArr.push(item)}} else if(this.itemType == 3){ //立定跳远if(item.downStrengthList != null && item.downStrengthList.length > 0){totalTested++item.checked = true;//新增checked属性并赋值   testedArr.push(item) }else{item.checked = false;//新增checked属性并赋值    unTestedArr.push(item)}} else if(this.itemType == 4){ //坐位体前屈if(item.flexibilityList != null && item.flexibilityList.length > 0){totalTested++item.checked = true;//新增checked属性并赋值   testedArr.push(item) }else{item.checked = false;//新增checked属性并赋值    unTestedArr.push(item)}} else if(this.itemType == 5){ //双脚连续跳if(item.coordinationList != null && item.coordinationList.length > 0){totalTested++item.checked = true;//新增checked属性并赋值   testedArr.push(item) }else{item.checked = false;//新增checked属性并赋值    unTestedArr.push(item)}} else if(this.itemType == 6){ //平衡木if(item.balanceList != null && item.balanceList.length > 0){totalTested++item.checked = true;//新增checked属性并赋值   testedArr.push(item) }else{item.checked = false;//新增checked属性并赋值    unTestedArr.push(item)}} else if(this.itemType == 7){ //握力if(item.upStrengthList != null && item.upStrengthList.length > 0){totalTested++item.checked = true;//新增checked属性并赋值   testedArr.push(item) }else{item.checked = false;//新增checked属性并赋值    unTestedArr.push(item)}} else if(this.itemType == 8){ //15米绕障碍跑if(item.sensitivityList != null && item.sensitivityList.length > 0){totalTested++item.checked = true;//新增checked属性并赋值   testedArr.push(item) }else{item.checked = false;//新增checked属性并赋值    unTestedArr.push(item)}} else if(this.itemType == 9){ //网球掷远if(item.upStrengthList != null && item.upStrengthList.length > 0){totalTested++item.checked = true;//新增checked属性并赋值   testedArr.push(item) }else{item.checked = false;//新增checked属性并赋值    unTestedArr.push(item)}} else if(this.itemType == 10){ //10米折返跑跑if(item.sensitivityList != null && item.sensitivityList.length > 0){totalTested++item.checked = true;//新增checked属性并赋值   testedArr.push(item) }else{item.checked = false;//新增checked属性并赋值    unTestedArr.push(item)}}        });this.totalTested = totalTested;//统计已测试this.totalUntested = this.total - totalTested;//统计未测试this.testedArr = testedArrthis.unTestedArr = unTestedArr},//判断输入的值是否在区间内detectionSection(val){//this.itemTypeif(this.itemType == 3){//立定跳远return val > 1 && val < 200 ? true : false}else if(this.itemType == 4){//坐位体前屈return (val > -10 && val < 30) && val != '' && val != null ? true : false}else if(this.itemType == 5){//双脚连续跳return val > 2.4 && val < 25 ? true : false}else if(this.itemType == 6){//平衡木return val > 1.5 && val < 50 ? true : false}else if(this.itemType == 7){//握力return val > 0 && val < 16 ? true : false}else if(this.itemType == 8){//15米绕障碍跑return val > 3 && val < 25 ? true : false}else if(this.itemType == 9){//网球掷远return val > 0 && val < 20 ? true : false}else if(this.itemType == 10){//10米折返跑跑return val > 3.7 && val < 25 ? true : false}},handleAlert(txt, type){this.alertMes = txtthis.alertIcon = typethis.alertOpen = truethis.alertmask = true},closeAlert(){this.alertMes = nullthis.alertIcon = nullthis.alertOpen = falsethis.alertmask = false},saveTeam(num){const that = thislet oteam = nulllet isEdit = false //判断是新增还是编辑if(num == 1){oteam = this.teamgroup.team1isEdit = this.teamgroup.teamId1 != null && this.teamgroup.teamId1 ? true : false} else if(num == 2){oteam = this.teamgroup.team2isEdit = this.teamgroup.teamId2 != null && this.teamgroup.teamId2 ? true : false} else if(num == 3){oteam = this.teamgroup.team3isEdit = this.teamgroup.teamId3 != null && this.teamgroup.teamId3 ? true : false}if(!this.detectionSection(oteam)){                this.handleAlert('输入有误请重新输入', 3)setTimeout(function(){that.closeAlert()},1000)return}if(isEdit){        //编辑let params = {id: num == 1 ? this.teamgroup.teamId1 : num == 2 ? this.teamgroup.teamId2 : num == 3 ? this.teamgroup.teamId3 : '',score: Number(oteam).toFixed(1)}updatePhyTaskDetail(params).then(res => {this.handleAlert('编辑成功', 1)setTimeout(function(){that.closeAlert()},1000)this.getList();});}else{//新增let params = {itemType: this.itemType,score: Number(oteam).toFixed(1),sid: this.sid,sort: num, //身高体重默认1组taskId: this.taskId}addPhyTaskDetail(params).then(res => {if(num == 1){this.teamgroup.teamId1 = res.data.id} else if(num == 2){this.teamgroup.teamId2 = res.data.id} else if(num == 3){this.teamgroup.teamId3 = res.data.id}this.handleAlert('新增成功', 1)setTimeout(function(){that.closeAlert()},1000)this.getList();});}      },    saveTeamHeight(){   const that = this   let heightEstimate = this.teamgroup.teamHeight > 50 && this.teamgroup.teamHeight < 200 ? true : falseif(!heightEstimate){        this.handleAlert('输入有误请重新输入', 3)setTimeout(function(){that.closeAlert()},1000)return}if(this.teamgroup.teamHeightId != null && this.teamgroup.teamHeightId){//编辑let params = {id: this.teamgroup.teamHeightId,score: Number(this.teamgroup.teamHeight).toFixed(1)}updatePhyTaskDetail(params).then(res => {this.handleAlert('编辑成功', 1)setTimeout(function(){that.closeAlert()},1000)this.getList();});}else{//新增let params = {itemType: 1,score: Number(this.teamgroup.teamHeight).toFixed(1),sid: this.sid,sort: 1, //身高体重默认1组taskId: this.taskId}addPhyTaskDetail(params).then(res => {this.teamgroup.teamHeightId = res.data.idthis.handleAlert('新增成功', 1)setTimeout(function(){that.closeAlert()},1000)this.getList();});}      },saveTeamWeight(){const that = thislet weightEstimate = this.teamgroup.teamWeight > 5 && this.teamgroup.teamWeight < 50 ? true : falseif(!weightEstimate){        this.handleAlert('输入有误请重新输入', 3)setTimeout(function(){that.closeAlert()},1000)return}if(this.teamgroup.teamWeightId != null && this.teamgroup.teamWeightId){//编辑let params = {id: this.teamgroup.teamWeightId,score: Number(this.teamgroup.teamWeight).toFixed(1)}updatePhyTaskDetail(params).then(res => {this.handleAlert('编辑成功', 1)setTimeout(function(){that.closeAlert()},1000)this.getList();});}else{let params = {itemType: 2,score: Number(this.teamgroup.teamWeight).toFixed(1),sid: this.sid,sort: 1, //身高体重默认1组taskId: this.taskId}addPhyTaskDetail(params).then(res => {this.teamgroup.teamWeightId = res.data.idthis.handleAlert('新增成功', 1)setTimeout(function(){that.closeAlert()},1000)this.getList();});}      },    //选择班级seletClassChange(val){if(val != 0){this.isAll = falsethis.classId = vallet selectedItem = this.classList.find(item => item.deptId === this.classId);this.deptName = selectedItem.deptNamethis.getList()}else{this.isAll = true//获取全部的统计信息getStatisticsTotal(this.taskId).then(res => {if(res.code == 200){            this.allInfo = res.rowsthis.allTotal = res.total}});}           },//选择体测项目seletTaskChange(val){this.getList()switch (val) {case 1:this.typeName = '身高/体重'this.sectionValue = '50cm~200cm, 5kg~50kg'break;case 3:this.typeName = '立定跳远'this.sectionValue = '1cm ~ 200cm'break;           case 4:this.typeName = '坐位体前屈'this.sectionValue = '-10cm ~ 30cm'break;        case 5:this.typeName = '双脚连续跳'          this.sectionValue = '2.4s ~ 25s'break;        case 6:this.typeName = '走平衡木'this.sectionValue = '1.5s ~ 50s'break;        case 7:this.typeName = '握力'          this.sectionValue = '0kg ~ 16kg'break;        case 8:this.typeName = '15米绕障碍跑'this.sectionValue = '3s ~ 25s'break;        case 9:this.typeName = '网球掷远'this.sectionValue = '0m ~ 20m'break;        case 10:this.typeName = '10米折返跑'this.sectionValue = '3.7s ~ 25s'break;        default:break;}},   // 取消按钮cancel() {this.teamgroup = {teamHeight: null,teamHeightId: null,teamWeight: null,teamWeightId: null,team1: null,teamId1: null,team2: null,teamId2: null,team3: null,teamId3: null,}this.open = false;this.openMask = false;//this.reset();},}
};
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/787917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

16.Python多线程

如果想让我们的程序同时执行多个任务&#xff0c;就需要使用多线程技术了 。到目前为止&#xff0c;我们编写的程序都是单线程的&#xff0c;在运行时一次只能执行 一个任务。 1 线程相关的知识 1.1 进程 一个进程就是一个正在执行的程序&#xff0c;每一个进程都有自己独立…

sklearn主成分分析PCA

文章目录 基本原理PCA类图像降维与恢复 基本原理 PCA&#xff0c;即主成分分析(Principal components analysis)&#xff0c;顾名思义就是把矩阵分解成简单的组分进行研究&#xff0c;而拆解矩阵的主要工具是线性变换&#xff0c;具体形式则是奇异值分解。 设有 m m m个 n n …

Rust---有关介绍

目录 Rust---有关介绍变量的操作Rust 数值库&#xff1a;num某些基础数据类型序列(Range)字符类型单元类型 发散函数表达式&#xff08;&#xff01; 语句&#xff09; Rust—有关介绍 得益于各种零开销抽象、深入到底层的优化潜力、优质的标准库和第三方库实现&#xff0c;Ru…

蚁剑流量分析

蚁剑流量分析 在靶机上面上传一个一句话木马&#xff0c;并使用蚁剑连接&#xff0c;进行抓包, 一句话木马内容 <?php eval($_POST[1]); defalut编码器 在使用蚁剑连接的时候使用default编码器 连接之后进行的操作行为是查看当前目录(/var/www/html)下的文件&#xff0…

数据结构进阶篇 之 【插入排序】详细讲解(直接插入排序,希尔排序)

千万不要因为一件事不会做而失去信心&#xff0c;你又不是只有这一件事不会&#xff0c;你还有很多呢 一、插入排序 1.直接插入排序 InsertSort 1.1 基本思想 1.2 实现原理 1.3 代码实现 1.4 直接插入排序的特性总结 2.希尔排序 ShellSort 2.1 基本思想 2.2 实现原理 …

Sora 基础作品之 DiT:Scalable Diffusion Models with Transformer

Paper name Scalable Diffusion Models with Transformers (DiT) Paper Reading Note Paper URL: https://arxiv.org/abs/2212.09748 Project URL: https://www.wpeebles.com/DiT.html Code URL: https://github.com/facebookresearch/DiT TL;DR 2022 年 UC Berkeley 出…

罗克韦尔AB的PLC协议和西门子PLC协议转换网关

下面是罗克韦尔(AB)的Compact系列的PLC与西门子S7-1500之间的通讯的配置&#xff0c;实现AB的标签数组与西门子DB数据块之间通讯。 首先在AB的PLC内建立输入和输出数组&#xff0c;用于接收和写入S7-1500的PLC数据&#xff0c;名称分别是IN_INT16、OUT_OUT16&#xff0c;输入80…

为“自研”的KV数据库编写JDBC驱动

一觉醒来&#xff0c;受到梦的启发&#xff0c;自研了一套K/V数据库系统&#xff0c;因为"客户"一直催促我提供数据库的JDBC驱动&#xff0c;无奈之下&#xff0c;只好花费一个上午的时间为用户编写一个。 我们知道&#xff0c;JDBC只定义一系列的接口, 具体的实现需…

WeekPaper:GraphTranslator将知识图谱与大模型对齐

GraphTranslator: 将图模型与大型语言模型对齐&#xff0c;用于开放式任务。 将基于图的结构和信息与大型语言模型的能力整合在一起&#xff0c;以提高在涉及复杂和多样数据的任务中的性能。其目标是利用图模型和大型语言模型的优势&#xff0c;解决需要处理和理解结构化和非结…

Python深度学习034:cuda的环境如何配置

文章目录 1.安装nvidia cuda驱动CMD中看一下cuda版本:下载并安装cuda驱动2.创建虚拟环境并安装pytorch的torch_cuda3.测试附录1.安装nvidia cuda驱动 CMD中看一下cuda版本: 注意: 红框的cuda版本,是你的显卡能装的最高的cuda版本,所以可以选择低于它的版本。比如我的是11…

Prometheus+grafana环境搭建redis(docker+二进制两种方式安装)(四)

由于所有组件写一篇幅过长&#xff0c;所以每个组件分一篇方便查看&#xff0c;前三篇 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabbitmq(docker二进制两种方式安装)(二)-CSDN博客 Prometheusgrafana环境搭建m…

HarmonyOS实战开发-一次开发,多端部署-视频应用

介绍 随着智能设备类型的不断丰富&#xff0c;用户可以在不同的设备上享受同样的服务&#xff0c;但由于设备形态不尽相同&#xff0c;开发者往往需要针对具体设备修改或重构代码&#xff0c;以实现功能完整性和界面美观性的统一。OpenHarmony为开发者提供了“一次开发&#x…

Ubuntu20.04安装MatlabR2018a

一、安装包 安装包下载链接 提取码&#xff1a;kve2 网上相关教程很多&#xff0c;此处仅作为安装软件记录&#xff0c;方便后续软件重装&#xff0c;大家按需取用。 二、安装 1. 相关文件一览 下载并解压文件后&#xff0c;如下图所示&#xff1a; 2. 挂载镜像并安装 2…

python实战之宝塔部署flask项目

一. 项目 这个demo只是提供了简单的几个api接口, 并没有前端页面 # -*- coding: utf-8 -*- import flask as fk from flask import jsonify, requestapp fk.Flask(__name__)app.route(/api/hello, methods[GET]) def get_data():return hello world# 假设我们要提供一个获取用…

rabbitmq死信交换机,死信队列使用

背景 对于核心业务需要保证消息必须正常消费&#xff0c;就必须考虑消费失败的场景&#xff0c;rabbitmq提供了以下三种消费失败处理机制 直接reject&#xff0c;丢弃消息&#xff08;默认&#xff09;返回nack&#xff0c;消息重新入队列将失败消息投递到指定的交换机 对于核…

每日一题 --- 右旋字符串[卡码][Go]

右旋字符串 题目&#xff1a;55. 右旋字符串&#xff08;第八期模拟笔试&#xff09; (kamacoder.com) 题目描述 字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k&#xff0c;请编写一个函数&#xff0c;将字符串中的后面…

HarmonyOS 应用开发之同步任务开发指导 (TaskPool和Worker)

同步任务是指在多个线程之间协调执行的任务&#xff0c;其目的是确保多个任务按照一定的顺序和规则执行&#xff0c;例如使用锁来防止数据竞争。 同步任务的实现需要考虑多个线程之间的协作和同步&#xff0c;以确保数据的正确性和程序的正确执行。 由于TaskPool偏向于单个独…

scRNA+bulk+MR:动脉粥样硬化五个GEO数据集+GWAS,工作量十分到位

今天给大家分享一篇JCR一区&#xff0c;单细胞bulkMR的文章&#xff1a;An integrative analysis of single-cell and bulk transcriptome and bidirectional mendelian randomization analysis identified C1Q as a novel stimulated risk gene for Atherosclerosis 标题&…

rtph264depay插件分析笔记

1、rtp协议头 2、rtp可以基于TCP或者UDP 其中基于TCP需要加4个字节的RTP标志 3、rtph264depay定义解析函数gst_rtp_h264_depay_process&#xff0c;通过RFC 3984文档实现。 static void gst_rtp_h264_depay_class_init (GstRtpH264DepayClass * klass) {GObjectClass *gobject…

AI资讯2024-04-02 | 前微软副总裁姜大昕携「阶跃星辰」入场,出手即万亿参数大模型!

关注文章底部公众号获取每日AI新闻,以及各种好玩的黑科技,如AI换脸,AI数字人,AI生成视频等工具 阶跃星辰发布万亿参数大模型 终于!国内大模型创业公司最后一位强实力玩家入场——阶跃星辰。它是由微软前全球副总裁姜大昕所创办,公司名称也来源于,发了三个大模型:Step-…