<template> <view class="page"> <u-navbar title="修改场所" :border-bottom="false" :background="bgc" title-color='#fff' back-icon-color="#fff" title-size='36' height='50'></u-navbar> <view class="box"> <view class="list"> <view class="listval"> <view class="tit"> 场所名称</view> <view class="but"> <input type="text" placeholder="请输入场所名称" v-model="shopname" /> </view> </view> <view class="listval"> <view class="tit"> 营业时间</view> <view class="but" style="display: flex;justify-content: space-between;padding: 15rpx 26rpx;box-sizing: border-box;"> <!-- <input type="text" placeholder="请输入营业时间" v-model="yetime" /> --> <view class="" style="font-size: 28rpx;color: #666;" @click="btnyinye(1)">{{ksyy}}</view> -- <view class="" style="font-size: 28rpx;color: #666;" @click="btnyinye(2)">{{jsyy}}</view> </view> </view> <view class="listvals" @click="btnregion"> <view class="tit"> 省市区</view> <view class="but"> <input disabled="false" type="text" :placeholder="regiontext" /> <u-icon name="arrow-down" style="position: absolute;top: 30%;right: 14rpx;"></u-icon> </view> </view> <view class="listval"> <view class="tit"> 联系人</view> <view class="but"> <input type="text" placeholder="请输入联系人" v-model="lxname" /> </view> </view> <view class="listval"> <view class="tit"> 联系电话</view> <view class="but"> <input type="text" placeholder="请输入联系电话" v-model="lxphone" /> </view> </view> <view class="jinwei"> <view class="tit"> 详细地址</view> <view class="but"> <input type="text" placeholder="请输入详细地址" v-model="xqdz" /> <u-icon name="map-fill" style="position: absolute;top: 20rpx;right: 22rpx;z-index: 99;" size="32" @click="btnjwd"></u-icon> </view> </view> <view class="listval"> <view class="tit"> 是否展示场所</view> <u-switch v-model="checked" active-color="#8883F0"></u-switch> </view> <view class="icon"> <view class="list_box"> <view class="lt"> <view class="tit"> 上传门头照 </view> <view class="wz"> 门头照片必须清晰、方正、易于辨识 </view> </view> <view class="imgbox"> <button style="border: 0;outline: none;width: 143rpx;padding-left: 0rpx;height: 143rpx;border-radius: 16rpx;" @click="getImage"> <image :src="imglist" mode=""></image> </button> <ksp-cropper mode="free" :width="142" :height="142" :maxWidth="1024" :maxHeight="1024" :url="url" @cancel="oncancel" @ok="onok"></ksp-cropper> </view> </view> </view> <view class="baocun" @click="btncreat"> 提交修改 </view> </view> <!-- 场所类型 --> <u-select v-model="selectorshow" :list="selector" @confirm="btnselector"></u-select> <!-- 选择省市区 --> <u-picker v-model="regionshow" mode="region" @confirm="btnregions"></u-picker> <!-- 营业时间 --> <u-picker mode="time" v-model="show" default-time="00:00" :params="params" @confirm="btnyy"></u-picker> <view v-if="btnmsk" style="width: 100%;height: 100vh;position: fixed;top: 0;left: 0;background-color: #000;opacity: .1;z-index: 999;"></view> </view> </view> </template> <script> export default { data() { return { btnmsk:false, checked:false, params: { hour: true, minute: true, }, show: false, imglist: '', token: '', userImgs: '', imgflag: true, selectorshow: false, selectortext: '请选择商铺类型', selectorvalue: '', regionshow: false, regiontext: '请选择省市区', regionvalue: '', selector: [{ value: 1, label: '商场' }, { value: 2, label: '学校' }, { value: 3, label: '娱乐场所' }, { value: 4, label: '出租房' }, { value: 5, label: '其他' }, ], latitude: '请输入纬度', longitude: '请输入经度', shopname: '', yetime: '', lxname: '', lxphone: '', xqdz: '', ksyy: '开始营业时间', jsyy: '结束营业时间', yynum: 0, province: '', city: '', area: '', listobj: {}, storeId: '', url:'' } }, onLoad(option) { let obj = JSON.parse(option.obj) this.listobj = obj console.log(this.listobj); this.shopname = this.listobj.name this.ksyy = this.listobj.businessTimeStart this.jsyy = this.listobj.businessTimeEnd this.regiontext = this.listobj.province + this.listobj.city + this.listobj.county this.lxname = this.listobj.contactName this.lxphone = this.listobj.contactMobile this.latitude = this.listobj.lat this.longitude = this.listobj.lng this.xqdz = this.listobj.address // this.selectorvalue = this.listobj.type this.imglist = this.listobj.picture this.province = this.listobj.province this.city = this.listobj.city this.area = this.listobj.county this.storeId = this.listobj.storeId this.checked = this.listobj.show // if (this.selectorvalue == 1) { // this.selectortext = '商场' // this.updateTime = this.listobj.updateTime // } else if (this.selectorvalue == 2) { // this.selectortext = '学校' // } else if (this.selectorvalue == 3) { // this.selectortext = '娱乐场所' // } else if (this.selectorvalue == 4) { // this.selectortext = '出租房' // } else { // this.selectortext = '其他' // } this.getQiniuToken() }, // 分享到好友(会话) onShareAppMessage: function () { return { title: '创亿康', path: '/pages/index/index' } }, // 分享到朋友圈 onShareTimeline: function () { return { title: '创亿康', query: '', path: '/pages/index/index' } }, methods: { getImage() { uni.chooseImage({ count: 1, success: (rst) => { this.url = rst.tempFilePaths[0]; } }) }, onok(ev) { this.url = ""; this.path = ev.path; let _this = this let math = 'static/' + _this.$u.guid(20) wx.uploadFile({ url: 'https://up-z2.qiniup.com', name: 'file', filePath: _this.path, formData: { token: _this.token, //后端返回的token key: 'smartmeter/img/' + math }, success: function(res) { let str = JSON.parse(res.data) _this.userImgs = 'https://api.ccttiot.com/' + str.key _this.imglist = _this.userImgs _this.imgflag = false } }) }, oncancel() { // url设置为空,隐藏控件 this.url = "" }, btnyinye(num) { this.show = true this.yynum = num }, btnyy(e) { if (this.yynum == 1) { this.ksyy = e.hour + ':' + e.minute } else { this.jsyy = e.hour + ':' + e.minute } }, btncreat() { let phoneRegex = /^1[3-9]\d{9}$/ //判断手机号码格式 if (this.shopname == '') { uni.showToast({ title: '请输入场所名称', icon: 'none', duration: 1000 }) }else if (this.ksyy == '开始营业时间') { uni.showToast({ title: '请选择开始营业时间', icon: 'none', duration: 2000 }) } else if (this.jsyy == '结束营业时间') { uni.showToast({ title: '请选择结束营业时间', icon: 'none', duration: 2000 }) } else if (this.regiontext == '请选择省市区') { uni.showToast({ title: '请选择省市区', icon: 'none', duration: 1000 }) } else if (this.lxname == '') { uni.showToast({ title: '请输入联系人', icon: 'none', duration: 1000 }) } else if (this.lxphone == '') { uni.showToast({ title: '请输入联系电话', icon: 'none', duration: 1000 }) }else if (this.longitude == '请输入经度') { uni.showToast({ title: '请点击地图图标选择地址', icon: 'none', duration: 1000 }) } else if (this.xqdz == '') { uni.showToast({ title: '请输入详细地址', icon: 'none', duration: 1000 }) } else if (this.imglist == '') { uni.showToast({ title: '请上传一张商铺门面照', icon: 'none', duration: 1000 }) } else { this.btnmsk = true let data = { name: this.shopname, picture: this.imglist, address: this.xqdz, lng: this.longitude, lat: this.latitude, businessTimeStart: this.ksyy, businessTimeEnd: this.jsyy, province: this.province, city: this.city, county: this.area, specificAddress: this.xqdz, contactName: this.lxname, contactMobile: this.lxphone, type: this.selectorvalue, storeId: this.storeId, show:this.checked } this.$u.put("/app/store", data).then(res => { if (res.code == 500) { uni.showToast({ title: res.msg, icon: 'none', duration: 1000 }) this.btnmsk = false } else { uni.showToast({ title: '提交修改成功', icon: 'success', duration: 1000 }) setTimeout(() => { this.btnmsk = false uni.navigateBack({ delta: 2 }) }, 1000) } }) } }, btnlx() { this.selectorshow = true }, btnselector(e) { this.selectorvalue = e[0].value this.selectortext = e[0].label }, btnregion() { this.regionshow = true }, btnregions(e) { this.regiontext = e.province.label + e.city.label + e.area.label this.province = e.province.label this.city = e.city.label this.area = e.area.label }, btnjwd() { uni.chooseLocation({ success: (res) => { this.latitude = res.latitude; this.longitude = res.longitude; this.xqdz = res.name }, fail: function(err) { console.log('选择位置失败', err); }, complete: (res) => { if (res.errMsg === 'chooseLocation:ok') {} else if (res.errMsg.indexOf( 'chooseLocation:cancel') === 0) { uni.showToast({ title: '您取消了位置选择', icon: 'none' }); } } }) }, getQiniuToken() { this.$u.get("/common/qiniu/uploadInfo").then((res) => { if (res.code == 200) { this.token = res.token } }) }, btn() { let _this = this let math = 'static/' + _this.$u.guid(20) uni.chooseImage({ count: 1, type: 'all', success(res) { const tempFilePaths = res.tempFiles 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) { let str = JSON.parse(res.data) console.log(str.key) _this.userImgs = 'https://api.ccttiot.com/' + str.key _this.imglist = _this.userImgs _this.imgflag = false } }) } }) }, } } </script> <style lang="scss"> /deep/ .panel{ position: fixed; width: 100%; height: 100%; top: 0; bottom: 0; left: 0; z-index: 99 !important; overflow: hidden; } /deep/ .u-title { padding-bottom: 22rpx; } /deep/ .u-icon__icon { padding-bottom: 22rpx; } page { background: linear-gradient(180deg, #8883F0 0%, rgba(255, 255, 255, 0) 100%); } .page { width: 750rpx; position: fixed; top: 0; left: 0; color: #666; .box { width: 750rpx; height: 1440rpx; background: #F4F5F7; border-radius: 0rpx 0rpx 0rpx 0rpx; padding-top: 40rpx; .list { width: 680rpx; height: 980rpx; background: #FFFFFF; border-radius: 24rpx 24rpx 24rpx 24rpx; margin: auto; padding-top: 44rpx; padding-left: 38rpx; padding-right: 38rpx; box-sizing: border-box; .baocun { width: 584rpx; height: 90rpx; background: linear-gradient(90deg, #8883F0 0%, #A29EFF 100%); border-radius: 54rpx 54rpx 54rpx 54rpx; margin: auto; text-align: center; line-height: 90rpx; position: fixed; left: 50%; transform: translateX(-50%); bottom: 60rpx; font-weight: 500; font-size: 40rpx; color: #FFFFFF; } .icon { display: flex; flex-wrap: wrap; align-items: center; margin-top: 40rpx; width: 680rpx; .list_box { width: 100%; display: flex; justify-content: space-between; padding-right: 45rpx; .lt { padding-top: 40rpx; .tit { font-size: 32rpx; color: #3D3D3D; } .wz { font-size: 26rpx; color: #3D3D3D; margin-top: 20rpx; } } .imgbox { width: 33%; image { width: 142rpx; height: 142rpx; } } } } .jinwei { display: flex; justify-content: space-between; margin-top: 34rpx; .tit { margin-top: 10rpx; font-size: 32rpx; color: #3D3D3D; } .but { width: 462rpx; height: 70rpx; background: #F0F0F0; border-radius: 12rpx 12rpx 12rpx 12rpx; position: relative; input { height: 70rpx; line-height: 70rpx; padding-left: 22rpx; padding-right: 72rpx; } } } .listvals { display: flex; justify-content: space-between; margin-top: 34rpx; .tit { margin-top: 12rpx; font-size: 32rpx; color: #3D3D3D; } .but { width: 462rpx; height: 70rpx; background: #F0F0F0; border-radius: 12rpx 12rpx 12rpx 12rpx; position: relative; input { height: 70rpx; line-height: 70rpx; padding-left: 22rpx; } } } .listval { display: flex; justify-content: space-between; margin-top: 34rpx; .tit { margin-top: 12rpx; font-size: 32rpx; color: #3D3D3D; } .but { width: 462rpx; height: 70rpx; background: #F0F0F0; border-radius: 12rpx 12rpx 12rpx 12rpx; input { height: 70rpx; line-height: 70rpx; padding-left: 22rpx; } } } } } } </style>