<template> <view class="content"> <view class="top"> <image src="../../static/img/lifeguard.png" mode="widthFix" class="bgi"></image> </view> <!-- <view class="pop-box"> 参与人数({{count}}人) </view> <view class="pop-list"> <view class="list-box1" v-for="(item,index) in peoplelist" :key='index' v-if="index<20"> <view class="list-top"> <image :src="item.avatar" mode="" class="avatar-img"></image> </view> <view class="nickname"> {{item.name}} </view> </view> </view> --> <view class="red-box"> 报名参与 </view> <!-- <view class="people"> </view> --> <view class="list-box"> <view class="list"> <view class="list-left"> 姓名: </view> <input type="text" v-model="name" class="list-input" placeholder="请输入您的姓名"/> </view> <view class="list"> <view class="list-left"> 手机: </view> <input type="text" v-model="phone" class="list-input" placeholder='请填写您的联系方式'/> </view> <view class="list" @click="getLocation"> <view class="list-left"> 地址: </view> <!-- <picker-address class="box-right" @change="onCityClick">{{ address }}</picker-address> --> <input type="text" v-model="showaddress" disabled class="list-input" placeholder='请选择定位地址'/> </view> <view class="list" > <view class="list-left"> 机构: </view> <!-- <input type="text" v-model="mechanism" @click="tosearch" class="list-input" placeholder='请输入机构关键字'/> --> <input type="text" v-model="mechanism" class="list-input" placeholder='请输入机构关键字' /> </view> <view class="upload-box"> <view class="upload-left"> 请上传救护员证书或身份证: </view> <view class="upload-right"> <image :src="certificates" mode="" class="upload-img" @click.stop="imgsub" v-if="certificates"></image> <image src="../../static/images/upload.png" class="upload-img" mode="" v-if="!certificates" @click.stop="imgsub"></image> </view> </view> </view> <view class="sub" :class="{ action: loding }" @click="!loding?join():''"> 马上报名 </view> </view> </template> <script> import { mechanism } from '@/api/ask.js' import { getNumber } from '@/api/index.js'; import pickerAddress from '@/components/wangding-pickerAddress/wangding-pickerAddress.vue'; import { upload, addrescuer } from '@/api/ask.js'; export default { components: { pickerAddress, }, computed: { }, data() { return { longitude: '', latitude: '', name: '', phone: '', mechanism: '', title: '选择机构', show: false, list:[], initSelected: [], searchVal:'', address: '', certificates: '', loding: false, //是否提交中 showaddress: '', //显示用的地址 count: 0, peoplelist: [], addressData: { name: '', mobile: '', latitude: 0, //纬度 longitude: 0, //经度 address: { province: '', city: '', district: '', detail: '', }, area: '', default: false }, } }, onShow() { this.loadData(); }, watch:{ searchVal(){ this.ListDate(); }, }, methods: { tosearch(){ console.log(123) uni.navigateTo({ url:'/pages/category/search' }) }, async loadData() { let obj = this; getNumber({}).then(({ data }) => { // console.log(12) // console.log(data) obj.count = data.count; obj.peoplelist = data.data; }) }, // 选择当前位置 getLocation() { console.log('选择当前位置'); let obj = this; uni.chooseLocation({ success: function(res) { obj.addressData.area = res.name; console.log('位置名称:' + res.name); console.log('详细地址:' + res.address); console.log('纬度:' + res.latitude); console.log('经度:' + res.longitude); obj.addressData.latitude = res.latitude; obj.addressData.longitude = res.longitude; // let dizhi = obj.addressData.latitude + ','+ obj.addressData.longitude; obj.showaddress = res.address; } }); // let wxObj = require('jweixin-module') // wxObj.getLocation({ // type: 'gcj02', //返回可以用于uni.openLocation的经纬度 // success: function (res) { // const latitude = res.latitude; // const longitude = res.longitude; // console.log('获取当前latitude',latitude) // console.log('获取当前longitude',longitude) // wxObj.openLocation({ // latitude, // longitude, // // success: function(res) { // // console.log(res) // // obj.addressData.area = res.name; // // console.log('位置名称:' + res.name); // // console.log('详细地址:' + res.address); // // console.log('纬度:' + res.latitude); // // console.log('经度:' + res.longitude); // // obj.addressData.latitude = res.latitude; // // obj.addressData.longitude = res.longitude; // // // let dizhi = obj.addressData.latitude + ','+ obj.addressData.longitude; // // obj.showaddress = res.address; // // } // }); // } // }); }, // 机构 Toshow(){ console.log('点击选择机构') this.show = true; }, onChange(val){ let obj = this; console.log(val,'onChange') // let arr = val.split(','); // console.log(999,arr) // obj.hospital = arr[1]; // obj.hospital_id = arr[0]; // obj.city = arr[2]; // obj.city_id = arr[3]; // obj.district = arr[4]; // obj.district_id = arr[5]; // obj.province = arr[6]; // obj.province_id = arr[7]; // obj.addr = obj.province + obj.city + obj.district; // console.log(obj.hospital,obj.hospital_id) // console.log(obj.city,obj.city_id) // console.log(obj.district,obj.district_id) // console.log(obj.province,obj.province_id) }, onSearchInput(val){ this.searchVal = val.value; }, // 选择机构 ListDate() { let obj = this; let data = ''; console.log('obj.searchVal',obj.searchVal) if(!obj.searchVal){ console.log('!obj.searchVal') data={ keyword:'', // sort:'id desc', page:1, limit:1500, } }else{ console.log('else') console.log('当前input值',obj.searchVal) data={ keyword:obj.searchVal, // sort:'id desc', page:1, limit:1500, } } mechanism( data ).then(data => { console.log('请求成功',data) this.list = data.data.map(item => item) // this.show = true }) // getHospitalList(data).then(e => { // obj.list = e.data.list; // }).catch((e) => { // console.log(e) // }); }, onConfirm1(e) { console.log('点击确认') // let arr = e this.mechanism = e.split(',')[1] this.list = [] }, imgsub() { console.log('imgsub') upload({ filename: '' }).then(data => { this.certificates = data[0].url; }) }, join() { let obj = this; if (obj.name == '') { obj.$api.msg('请输入您的姓名'); return } const reg = /^(\+?0?86-?)?1[\d]\d{9}$/; if (!reg.test(obj.phone)) { obj.$api.msg('请填写正确的手机号码'); return; } if (obj.showaddress == '') { obj.$api.msg('请选择您的所在地区'); return } if (obj.mechanism == '') { obj.$api.msg('请输入机构关键字'); return } if (obj.certificates == '') { obj.$api.msg('请上传救护员证书或身份证1111'); return } obj.loding = true; addrescuer({ name: obj.name, phone: obj.phone, address: obj.showaddress, latitude:obj.addressData.latitude, longitude:obj.addressData.longitude, mechanism:obj.mechanism, certificates: obj.certificates }).then(data => { obj.loding = false; if (data.status == 200) { obj.name = '', obj.phone = '', obj.showaddress = '', obj.certificates = '', obj.mechanism = '', obj.addressData.latitude = '', obj.addressData.longitude = '', uni.removeStorage({ key: 'institution', success: function (res) { console.log('success'); } }); uni.navigateTo({ url: '../joinSuc/joinNow' }); } else if (data.status == 400) { obj.$api.msg(data.msg); } }).catch(err => { console.log(err); }); } } } </script> <style lang="scss"> .content { line-height: 1; background-color: #FFABAB; padding-bottom: 20rpx; .sub { width: 660rpx; line-height: 100rpx; background: linear-gradient(0deg, #C90F1B, #F14D33); border-radius: 50rpx; font-size: 36rpx; font-weight: 400; color: #FFFFFF; text-align: center; margin: 60rpx auto 0; &.action { background: #999999; } } .top { width: 750rpx; .bgi { width: 750rpx; } } .pop-box { width: 405rpx; line-height: 66rpx; text-align: center; background: linear-gradient(0deg, #C90F1B, #F14D33); border-radius: 10rpx; font-size: 30rpx; font-weight: 500; color: #FFFFFF; margin: -110rpx auto 0; position: relative; z-index: 1; } .red-box { width: 405rpx; line-height: 66rpx; text-align: center; background: linear-gradient(0deg, #C90F1B, #F14D33); border-radius: 10rpx; font-size: 30rpx; font-weight: 500; color: #FFFFFF; margin: 0rpx auto 0; position: relative; z-index: 1; } .red-box2 { position: relative; width: 405rpx; line-height: 66rpx; text-align: center; background: linear-gradient(0deg, #C90F1B, #F14D33); border-radius: 10rpx; font-size: 30rpx; font-weight: 500; color: #FFFFFF; margin: -80rpx auto 0; position: relative; z-index: 1; } .pop-list { width: 686rpx; background: #FFFFFF; border-radius: 29rpx; position: relative; margin: -33rpx auto 78rpx; padding: 80rpx 0rpx 30rpx 30rpx; display: flex; flex-wrap: wrap; .list-box1 { text-align: center; margin-right: 30rpx; margin-bottom: 30rpx; .list-top { width: 100rpx; height: 100rpx; .avatar-img { width: 100rpx; height: 100rpx; border-radius: 50%; } } .nickname{ margin-top: 12rpx; } } } .list-box { width: 686rpx; background: #FFFFFF; border-radius: 29rpx; position: relative; margin: -33rpx auto; padding: 100rpx 30rpx 0rpx 30rpx; display: flex; flex-wrap: wrap; .upload-box { width: 100%; height: 247rpx; background: #FFFFFF; // border: 1px solid #E63931; border-radius: 27rpx; display: flex; flex-direction: column; padding: 30rpx 40rpx 30rpx 0; margin: 0 auto 30rpx; .upload-left { font-weight: 400; color: #E63931; } .upload-right { flex: 1; display: flex; align-items: center; justify-content: center; .upload-img { width: 133rpx; height: 133rpx; margin-top: 44rpx; } } } .list { display: flex; flex-direction: column; align-items: center; width: 100%; margin-top: 32rpx; // height: 133rpx; .list-left { width: 100%; text-align: left; color: #E63931; } input { height: 66rpx; line-height: 66rpx; margin-top: 32rpx; // height: 88rpx; } .list-input { padding-left: 24rpx; // margin: 12rpx 0 ; // line-height: 66rpx; display: flex; align-items: center; width: 100%; font-size: 36rpx; flex: 1; color: #FF9797; border: 1rpx solid #f3afad; border-radius: 22rpx; text-align: left; padding-right: 24rpx; .input-placeholder { // height: 70rpx; color: #FF9797; } } .box-right { display: flex; align-items: center; padding-left: 24rpx; height: 66rpx; line-height: 66rpx; border: 1rpx solid #f3afad; border-radius: 22rpx; margin: 32rpx 36rpx 0 36rpx; width: 96%; font-size: 36rpx; color: #FF9797; text-align: left; // line-height: 1; } } } } </style>