570 lines
13 KiB
Vue
570 lines
13 KiB
Vue
<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="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="https://api.ccttiot.com/smartmeter/img/static/uY8CPw9YE6JxPzcHUaqf" mode="aspectFit">
|
||
</image>
|
||
</button>
|
||
<ksp-cropper mode="free" :width="142" :height="80" :maxWidth="1024" :maxHeight="1024" :url="url"
|
||
@cancel="oncancel" @ok="onok"></ksp-cropper>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="piclist">
|
||
<view class="container">
|
||
<swiper
|
||
class="swiper"
|
||
indicator-dots="true"
|
||
autoplay="true"
|
||
interval="3000"
|
||
duration="500"
|
||
circular="true"
|
||
>
|
||
<swiper-item v-for="(item, index) in imglist" :key="index">
|
||
<image :src="item" class="slide-image" mode="aspectFill" @longpress="handleLongPress(index)"></image>
|
||
</swiper-item>
|
||
</swiper>
|
||
</view>
|
||
<view class="wz">
|
||
长按可删除图片
|
||
</view>
|
||
</view> -->
|
||
<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: 0 20rpx;box-sizing: border-box;line-height: 70rpx;">
|
||
<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="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" :disabled="true" placeholder="请选择详细地址" v-model="xqdz" @click="btnjwd"/>
|
||
<u-icon name="map-fill" style="position: absolute;top: 20rpx;right: 22rpx;z-index: 99;" @click="btnjwd"
|
||
size="32" ></u-icon>
|
||
</view>
|
||
</view>
|
||
<view class="baocun">
|
||
<view class="qx" @click="btnqx">
|
||
取消
|
||
</view>
|
||
<view class="qd" @click="btnqd">
|
||
确定
|
||
</view>
|
||
</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 {
|
||
|
||
bgc: {
|
||
backgroundColor: " #0B0B0B",
|
||
},
|
||
btnmsk:false,
|
||
checked:true,
|
||
params: {
|
||
hour: true,
|
||
minute: true,
|
||
},
|
||
show: false,
|
||
checkeds:true,
|
||
imglist: [],
|
||
token: '',
|
||
userImgs: '',
|
||
imgflag: true,
|
||
selectorshow: false,
|
||
selectortext: '请选择商铺类型',
|
||
selectorvalue: '',
|
||
regionshow: false,
|
||
regiontext: '请选择省市区',
|
||
regionvalue: '',
|
||
selector: [],
|
||
latitude: '',
|
||
longitude: '',
|
||
shopname: '',
|
||
yetime: '',
|
||
lxname: '',
|
||
lxphone: '',
|
||
xqdz: '',
|
||
ksyy: '开始营业时间',
|
||
jsyy: '结束营业时间',
|
||
yynum: 0,
|
||
province: '',
|
||
city: '',
|
||
area: '',
|
||
url:'',
|
||
id:'',
|
||
jtdz:'',
|
||
miaoshu:''
|
||
}
|
||
},
|
||
onLoad(option) {
|
||
if(option.storeId){
|
||
this.id = option.storeId
|
||
this.getxq()
|
||
}
|
||
},
|
||
onShow() {
|
||
|
||
},
|
||
methods: {
|
||
// 请求店铺配置
|
||
getxq(){
|
||
this.$u.get(`/bst/store/${this.id}`).then(res =>{
|
||
if(res.code == 200){
|
||
this.shopname = res.data.storeName
|
||
this.lxname = res.data.userName
|
||
this.lxphone = res.data.phone
|
||
this.ksyy = res.data.startTime
|
||
this.jsyy = res.data.endTime
|
||
this.longitude = res.data.longitude
|
||
this.latitude = res.data.latitude
|
||
this.xqdz = res.data.address
|
||
}else{
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
})
|
||
},
|
||
|
||
btnlx() {
|
||
this.selectorshow = true
|
||
},
|
||
|
||
handleLongPress(index) {
|
||
let that = this
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '您确定要删除该图片吗?',
|
||
success: function(res) {
|
||
if (res.confirm) {
|
||
that.imglist.splice(index, 1)
|
||
uni.showToast({
|
||
title: '删除成功',
|
||
icon: 'success',
|
||
duration: 2000
|
||
})
|
||
if(that.imglist.length < 1){
|
||
that.imgflag = true
|
||
}
|
||
}
|
||
}
|
||
})
|
||
},
|
||
|
||
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.push(_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
|
||
}
|
||
},
|
||
btnqx(){
|
||
uni.navigateBack()
|
||
},
|
||
btnqd() {
|
||
this.btnmsk = true
|
||
let data = {
|
||
storeId:this.id,
|
||
storeName:this.shopname,
|
||
userName:this.lxname,
|
||
phone:this.lxphone,
|
||
startTime:this.ksyy,
|
||
endTime:this.jsyy,
|
||
longitude:this.longitude,
|
||
latitude:this.latitude,
|
||
address:this.xqdz
|
||
}
|
||
this.$u.put("/bst/store", data).then(res => {
|
||
if (res.code == 200) {
|
||
uni.showToast({
|
||
title: '修改成功',
|
||
icon: 'success',
|
||
duration: 2000
|
||
})
|
||
setTimeout(()=>{
|
||
uni.navigateBack()
|
||
this.btnmsk = false
|
||
},1500)
|
||
}else{
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 1000
|
||
})
|
||
this.btnmsk = false
|
||
}
|
||
})
|
||
},
|
||
|
||
|
||
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) => {
|
||
console.log(res);
|
||
this.latitude = res.latitude
|
||
this.longitude = res.longitude
|
||
this.xqdz = res.name
|
||
this.jtdz = res.name
|
||
},
|
||
fail: function(err) {
|
||
// 检查错误消息,看是否是用户取消了位置选择
|
||
if (err.errMsg && err.errMsg.indexOf('chooseLocation:cancel') === 0) {
|
||
uni.showToast({
|
||
title: '您取消了位置选择',
|
||
icon: 'none'
|
||
});
|
||
} else {
|
||
console.log('选择位置失败', err)
|
||
// 处理其他失败情况
|
||
}
|
||
},
|
||
})
|
||
},
|
||
getQiniuToken() {
|
||
this.$u.get("/common/qiniu/uploadInfo").then((res) => {
|
||
if (res.code == 200) {
|
||
this.token = res.token
|
||
}
|
||
})
|
||
},
|
||
}
|
||
}
|
||
</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:#0B0B0B;
|
||
}
|
||
|
||
.page {
|
||
width: 750rpx;
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
|
||
.box {
|
||
width: 750rpx;
|
||
height: 1440rpx;
|
||
padding-bottom: 300rpx;
|
||
box-sizing: border-box;
|
||
overflow: scroll;
|
||
background: #0B0B0B;
|
||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
||
padding-top: 40rpx;
|
||
|
||
.list {
|
||
width: 700rpx;
|
||
max-height: 1200rpx;
|
||
padding-bottom: 30rpx;
|
||
background: #0B0B0B;
|
||
overflow: scroll;
|
||
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||
margin: auto;
|
||
padding-top: 24rpx;
|
||
padding-left: 20rpx;
|
||
padding-right: 20rpx;
|
||
box-sizing: border-box;
|
||
|
||
.baocun {
|
||
width: 680rpx;
|
||
height: 90rpx;
|
||
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;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
.qx{
|
||
width: 300rpx;
|
||
height: 90rpx;
|
||
line-height: 90rpx;
|
||
text-align: center;
|
||
border: 1px solid #FF8998;
|
||
color: #FF8998;
|
||
border-radius: 50rpx;
|
||
}
|
||
.qd{
|
||
width: 300rpx;
|
||
height: 90rpx;
|
||
line-height: 90rpx;
|
||
text-align: center;
|
||
background-color: #FF8998;
|
||
color: #0B0B0B;
|
||
border-radius: 50rpx;
|
||
}
|
||
}
|
||
.container {
|
||
height: 100%;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
margin-top: 40rpx;
|
||
}
|
||
.piclist{
|
||
.wz{
|
||
margin-top: 20rpx;
|
||
width: 100%;
|
||
text-align: center;
|
||
color: red;
|
||
}
|
||
}
|
||
.swiper {
|
||
width: 100%;
|
||
height: 300rpx;
|
||
border-radius: 30rpx;
|
||
overflow: hidden;
|
||
background-color: #ccc;
|
||
}
|
||
|
||
.slide-image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
.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: #fff;
|
||
}
|
||
|
||
.wz {
|
||
font-size: 26rpx;
|
||
color: #fff;
|
||
margin-top: 20rpx;
|
||
}
|
||
}
|
||
|
||
.imgbox {
|
||
width: 28%;
|
||
|
||
image {
|
||
width: 142rpx;
|
||
height: 142rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.jinwei {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
margin-top: 34rpx;
|
||
align-items: center;
|
||
.tit {
|
||
margin-top: 10rpx;
|
||
font-size: 32rpx;
|
||
color: #fff;
|
||
}
|
||
|
||
.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;
|
||
// width: 100%;
|
||
}
|
||
}
|
||
}
|
||
|
||
.listvals {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
margin-top: 34rpx;
|
||
align-items: center;
|
||
.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;
|
||
// width: 100%;
|
||
}
|
||
}
|
||
}
|
||
|
||
.listval {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
margin-top: 34rpx;
|
||
align-items: center;
|
||
.tit {
|
||
margin-top: 12rpx;
|
||
font-size: 32rpx;
|
||
color: #fff;
|
||
}
|
||
|
||
.but {
|
||
width: 462rpx;
|
||
height: 70rpx;
|
||
background: #F0F0F0;
|
||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
||
|
||
input {
|
||
height: 70rpx;
|
||
line-height: 70rpx;
|
||
padding-left: 22rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style> |