baodeng_xcx/page_shanghu/shop/addshop.vue
2025-05-14 15:14:12 +08:00

521 lines
12 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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" @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 {
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.id){
this.id = option.id
}
},
onShow() {
// this.getQiniuToken()
// this.getleixing()
},
methods: {
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
}
},
btncreat() {
this.btnmsk = true
let data = {
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.post("/bst/store", data).then(res => {
if (res.code == 200) {
uni.showToast({
title: '创建成功',
icon: 'none',
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: 584rpx;
height: 90rpx;
background: #FF8998;
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;
}
.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>