<template> <view class="page"> <u-navbar title="添加蜂场" :border-bottom="false" :background="bgc" title-color='#3D3D3D ' :title-bold='true' title-size='36' height='45' id="navbar"> </u-navbar> <view class="tit"> 蜂场名称 </view> <view class="iptbox"> <input type="text" class="ips" v-model="code" placeholder="请输入蜂场名称(5个字以内)" placeholder-class="my-placeholder" /> </view> <view class="tit"> 具体位置 </view> <view class="iptbox" @click="chooseAddress()"> <input type="text" class="ips" v-model="form.address" placeholder="请选择蜂场具体位置" placeholder-class="my-placeholder" disabled /> <image src="https://api.ccttiot.com/smartmeter/img/static/ugAdKZm5ZHZ4to1cDsNI" mode=""></image> </view> <view class="tit"> 养殖蜂种 </view> <view class="iptbox" @click="showfengzhong = true"> <input type="text" class="ips" v-model="fengzhong" placeholder="请选择养殖蜂种" placeholder-class="my-placeholder" disabled/> <image src="https://api.ccttiot.com/smartmeter/img/static/ugAdKZm5ZHZ4to1cDsNI" mode=""></image> </view> <view class="tit"> 采集蜜源 </view> <view class="iptbox" @click="showmiyuan = true"> <input type="text" class="ips" v-model="miyuan" placeholder="请选择采集蜜源" placeholder-class="my-placeholder" disabled/> <image src="https://api.ccttiot.com/smartmeter/img/static/ugAdKZm5ZHZ4to1cDsNI" mode=""></image> </view> <view class="tit"> 照片 </view> <view class="imgbox" @click="btn" v-if="userImgs==''"> <view class=""> </view> <image src="https://api.ccttiot.com/smartmeter/img/static/uLpiGDDDvBwk7hOhOtVp" mode="scaleToFill" v-if=""></image> </view> <view class="imgbox" v-else> <image :src="userImgs" mode="aspectFill" v-if=""></image> </view> <u-select v-model="showfengzhong" :list="fengzhongcolumns" title='选择蜂种' @confirm="confirmfz"></u-select> <u-select v-model="showmiyuan" :list="miyuancolumns" title='选择蜜源' @confirm="confirmmy"></u-select> <view class="btn" @click="btnadd"> 确认添加 </view> <!-- <u-picker @cancel="showmiyuan=false" @confirm="confirmmiyuan" :show="showmiyuan" :columns="miyuancolumns"></u-picker> --> </view> </template> <script> export default { data() { return { bgc: { backgroundColor: " #FAFDFD", }, code: '', fengzhong:'', miyuan:'', fengzhongcolumns: [], miyuancolumns: [], showfengzhong:false, showmiyuan:false, form: { lat: 0, lng: 0, address: '', province:'', city:'', county:'', beeType:'', honeyType:'' }, userImgs: '', token: '', sn:'', upurl:'https://api.ccttiot.com/' } }, onLoad() { }, onShow() { this.getQiniuToken() this.getfengzhongcolumns() this.getmiyuancolumns() }, methods: { // 点击确定选择蜂种 confirmfz(e){ this.form.beeType = e[0].value this.fengzhong = e[0].label }, // 点击确定选择蜜源 confirmmy(e){ this.form.honeyType = e[0].value this.miyuan = e[0].label }, // 点击确定添加 btnadd(){ let data = { name:this.code, picture:this.userImgs, address:this.form.address, province:this.form.province, city:this.form.city, county:this.form.county, lng:this.form.lng, lat:this.form.lat, beeType:this.form.beeType, honeyType:this.form.honeyType } console.log(data); this.$u.post("farm/apiary",data).then((res) => { if (res.code == 200) { uni.showToast({ title: '添加蜂场成功', icon: 'success', duration:1000 }) setTimeout(()=>{ uni.navigateBack() },1500) }else if(res.code == 401){ uni.navigateTo({ url:'/pages/login/login' }) } else{ uni.showToast({ title: res.msg, icon: 'none', duration: 2000 }) } }) }, getQiniuToken() { this.$u.get("/common/qiniu/uploadInfo").then((res) => { if (res.code == 200) { this.token=res.token } }) // this.$u.get('https://v2.ielts.langsi.online/file/getToken').then(res => { // console.log(res.data); // this.token = res.data.token // }).catch(err => { // console.log(err) // }) }, getfengzhongcolumns() { let data ={ dictType:'apiary_bee_type' } this.$u.get("/common/getDictByType?",data).then((res) => { if (res.code == 200) { this.fengzhongcolumns = res.data.map(item => ({ value: item.dictValue, label: item.dictLabel })) } }) }, getmiyuancolumns() { let data ={ dictType:'apiary_honey_type' } this.$u.get("/common/getDictByType?",data).then((res) => { if (res.code == 200) { this.miyuancolumns = res.data.map(item => ({ value: item.dictValue, label: item.dictLabel })) } }) }, addApiary(){ let data ={ } this.$u.get('/farm/apiary',data ).then((res) => { if (res.code === 200) { uni.navigateBack({ delta: 1 // delta值为1时表示返回的页面层数 }) } else { uni.showToast({ title: res.msg, icon: 'none', duration: 2000 }) } }) }, btn() { let _this = this let math = 'static/' + _this.$u.guid(20) uni.chooseImage({ count: 1, type: 'all', success(res) { // tempFilePath可以作为img标签的src属性显示图片 const tempFilePaths = res.tempFiles // let tempFilePaths = chooseImageRes.tempFilePaths; // console.log(tempFilePaths) // tempFilePaths.forEach(item=>{ // // 上传图片到七牛云 // }) wx.uploadFile({ url: 'https://up-z2.qiniup.com', name: 'file', filePath: tempFilePaths[0].path, formData: { token: _this.token, //后端返回的token key: 'smartmeter/img/' + math }, success: function(res) { console.log(res,'resres'); let str = JSON.parse(res.data) console.log(str.key) _this.userImgs = _this.upurl +'/'+ str.key } }) } }) }, confirmfengzhong(e) { console.log(e) this.form.bee_type = e.value[0].id this.form.bee_type_text = e.value[0].text this.showfengzhong = false }, confirmmiyuan(e) { this.form.honey_source = e.value[0].id this.form.honey_source_text = e.value[0].text this.showmiyuan = false }, sourcelist() { request.put("/api/apiary/info", {}).then(res => { this.fengzhongcolumns[0] = this.setfor(res.data.data.bee_type) this.miyuancolumns[0] = this.setfor(res.data.data.honey_source) }) }, chooseAddress() { uni.chooseLocation({ success: (res) => { console.log(res) let address = res.address; let regex = /^([\u4e00-\u9fa5]+省)([\u4e00-\u9fa5]+市)([\u4e00-\u9fa5]+市|[\u4e00-\u9fa5]+区)(.*)/ let match = address.match(regex) if (match && match.length > 3) { let province = match[1] let city = match[2] let district = match[3] this.form.province = province this.form.city = city this.form.county = district // console.log(this.form) } else { console.log('地址格式不匹配或无法提取省市区信息') } this.form.lng = res.longitude this.form.lat = res.latitude this.form.address = res.address }, fail: function(err) { // 检查错误消息,看是否是用户取消了位置选择 if (err.errMsg && err.errMsg.indexOf('chooseLocation:cancel') === 0) { uni.showToast({ title: '您取消了位置选择', icon: 'none' }) } else { console.log('选择位置失败', err) // 处理其他失败情况 } }, }) } } } </script> <style lang="scss"> page { background-color: #FAFDFD; } .page { padding-bottom: 200rpx; width: 750rpx; .btn{ position: fixed; display: flex; align-items: center; justify-content: center; bottom: 100rpx; left: 46rpx; width: 658rpx; height: 88rpx; background: #FFCC25; border-radius: 20rpx 20rpx 20rpx 20rpx; font-weight: 500; font-size: 32rpx; color: #FFFFFF; } .tit { margin-top: 40rpx; margin-left: 50rpx; font-weight: 600; font-size: 32rpx; color: #3D3D3D; } .imgbox{ margin-top: 28rpx; margin-left: 46rpx; image{ width: 412rpx; height: 222rpx; } } .iptbox { display: flex; align-items: center; flex-wrap: nowrap; padding: 22rpx; margin: 28rpx auto 0; width: 658rpx; height: 88rpx; background: #FFFFFF; box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0, 0, 0, 0.15); border-radius: 20rpx 20rpx 20rpx 20rpx; .ips { width: 630rpx; } image { width: 18rpx; height: 32rpx; } .my-placeholder { font-weight: 400; font-size: 32rpx; color: #808080; } } } </style>