tearoom/page_shanghu/mendianadd.vue

431 lines
9.9 KiB
Vue
Raw Permalink Normal View History

2024-12-20 09:02:40 +08:00
<template>
<view class="page">
<u-navbar title="新建门店" :border-bottom="false" :background="bgc" back-icon-color="#262B37" title-color='#262B37'
title-size='36' height='40' id="navbar">
</u-navbar>
<view class="top">
<view class="one">
<view class="wz">门店名称</view> <view class=""><input type="text" v-model="name" placeholder="请输入门店名称"/> </view>
</view>
<view class="one">
<view class="wz">门店类型</view> <view class="" @click="showlx = true">{{lxname}} <u-icon style="margin-left: 10rpx;" name="arrow-down" color="#808080" size="28"></u-icon> </view>
</view>
<view class="one">
<view class="wz">营业时间</view>
<view class="but" style="display: flex;justify-content: space-between;">
<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="one">
<view class="wz">联系人</view> <view class=""><input type="text" v-model="lianxi" placeholder="请输入联系人名称"/> </view>
</view>
<view class="one">
<view class="wz">联系电话</view> <view class=""><input type="text" v-model="tel" placeholder="请输入联系电话"/> </view>
</view>
<view class="one" style="margin-bottom: 0;">
<view class="wz">选择位置</view> <view class="" @click="btnweizhi">{{xqdz}} <u-icon style="margin-left: 10rpx;" name="arrow-down" color="#808080" size="28"></u-icon> </view>
</view>
</view>
<u-picker mode="time" v-model="show" default-time="00:00" :params="params" @confirm="btnyy"></u-picker>
<view class="biaoqian">
<view class="name">
标签设置
</view>
<view class="bqliat">
<view
class="bqitem"
v-for="(item, index) in biaoqianlist"
:key="index"
@click="btnbq(item.dictValue,index)"
:class="{ 'active': isSelected(index) }">
{{ item.dictLabel }}
</view>
</view>
</view>
<view class="mdpic">
<view class="tops">
门店照片
</view>
<view class="tishi">
门店环境设备场景等请选择横屏照片或拍照上传
</view>
<view class="pic" @click="getImage">
<image src="https://api.ccttiot.com/smartmeter/img/static/udXUCs8GULJZE9EZBLf1" class="img" mode=""></image>
</view>
<view class="pic" @click="getImage" v-for="(item,index) in imglist" :key="index">
<image :src="item" mode="aspectFill"></image>
</view>
<ksp-cropper mode="free" :width="352" :height="190" :maxWidth="1024" :maxHeight="1024" :url="url"
@cancel="oncancel" @ok="onok"></ksp-cropper>
</view>
<u-select v-model="showlx" :list="lxlist" @confirm="btnlx"></u-select>
<view class="anniu">
<view class="xinjian" @click="btnquxiao">
取消
</view>
<view class="queren" @click="btnadd">
确定
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#fff",
},
params: {
hour: true,
minute: true,
},
show: false,
ksyy: '开始营业时间',
jsyy: '结束营业时间',
imglist: [],
token: '',
userImgs: '',
url:'',
latitude:'',
longitude:'',
xqdz:'选择位置',
biaoqianlist:[],
bqindex:-1,
selectedIndices: [],
idlist:[],
name:'',
lianxi:'',
tel:'',
showlx:false,
lxlist:[
{
value: '2',
label: '棋牌'
},{
value: '1',
label: '茶室'
},{
value: '3',
label: '台球'
},
],
lxname:'请选择类型',
lxid:''
}
},
onLoad() {
},
onShow() {
this.getQiniuToken()
this.getbiaoqian()
},
methods: {
// 点击取消
btnquxiao(){
uni.navigateBack()
},
// 确认添加门店
btnadd(){
let picture = this.imglist.join(",") //转成字符串
let arr = this.selectedIndices.map(item => {
return item + 1
})
let ss_store_tags = arr.join(',')
let data = {
name:this.name,
contactName:this.lianxi,
contactMobile:this.tel,
address:this.xqdz,
lng:this.longitude,
lat:this.latitude,
businessTimeStart:this.ksyy,
businessTimeEnd:this.jsyy,
picture:picture,
type:this.lxid,
ss_store_tags:ss_store_tags
}
this.$u.post("/app/store",data).then((res) => {
if (res.code == 200) {
uni.showToast({
title: '新建成功',
icon: 'success',
duration:2000
})
setTimeout(()=>{
uni.navigateBack()
},1000)
}else{
uni.showToast({
title: res.msg,
icon: 'none',
duration:2000
})
}
})
},
// 点击确认类型
btnlx(e){
this.lxid = e[0].value
this.lxname= e[0].label
},
// 点击选择标签
btnbq(dictValue,index) {
const indexExists = this.selectedIndices.includes(index);
if (indexExists) {
this.selectedIndices = this.selectedIndices.filter(i => i !== index);
} else {
this.selectedIndices.push(index);
}
},
isSelected(index) {
return this.selectedIndices.includes(index);
},
// 点击上传图片
getImage() {
if(this.imglist.length >= 5){
uni.showToast({
title: '最多上传五张图片',
icon: 'none'
})
}else{
uni.chooseImage({
count: 1,
success: (rst) => {
this.url = rst.tempFilePaths[0]
console.log(this.url);
}
})
}
},
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://lxnapi.ccttiot.com/' + str.key
_this.imglist.push(_this.userImgs)
console.log(_this.imglist);
}
})
},
oncancel() {
// url设置为空隐藏控件
this.url = "";
},
// 点击选择位置
btnweizhi(){
uni.chooseLocation({
success: (res) => {
console.log(res);
this.latitude = res.latitude
this.longitude = res.longitude
this.xqdz = res.name
},
fail: function(err) {
if (err.errMsg && err.errMsg.indexOf('chooseLocation:cancel') === 0) {
uni.showToast({
title: '您取消了位置选择',
icon: 'none'
})
} else {
console.log('选择位置失败', err)
}
},
})
},
// 获取上传七牛云token
getQiniuToken() {
this.$u.get("/common/qiniu/uploadInfo").then((res) => {
if (res.code == 200) {
this.token = res.token
}
})
},
// 获取标签
getbiaoqian(){
this.$u.get(`/appVerify/getDictData?dictType=ss_store_tags`).then((res) => {
if (res.code == 200) {
this.biaoqianlist = res.data
}
})
},
// 选择营业时间
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
}
},
}
}
</script>
<style lang="scss">
.active{
background-color: #48893B !important;
color: #fff !important;
}
page {
background: #F6F6F6;
padding-bottom: 200rpx;
box-sizing: border-box;
}
/deep/ .panel{
position: fixed;
width: 100%;
height: 100%;
top: 0;
bottom: 0;
left: 0;
z-index: 99 !important;
overflow: hidden;
}
.biaoqian{
width: 680rpx;
max-height: 624rpx;
background: #FFFFFF;
padding: 44rpx 34rpx;
box-sizing: border-box;
margin: auto;
margin-top: 22rpx;
border-radius: 20rpx;
.name{
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
}
.bqliat{
margin-top: 30rpx;
display: flex;
flex-wrap: wrap;
.bqitem{
margin-right: 10rpx;
border: 1px solid #48893B;
color: #48893B;
padding: 10rpx;
2024-12-20 18:09:41 +08:00
margin-top: 10rpx;
2024-12-20 09:02:40 +08:00
}
image{
width: 226rpx;
height: 58rpx;
}
}
}
.anniu{
width: 750rpx;
height: 152rpx;
background: #FFFFFF;
box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0,0,0,0.3);
border-radius: 0rpx 0rpx 0rpx 0rpx;
position: fixed;
left: 0;
bottom: 0;
display: flex;
justify-content: space-between;
padding: 0 36rpx;
box-sizing: border-box;
padding-top: 24rpx;
.queren{
width: 330rpx;
height: 104rpx;
background: #48893B;
text-align: center;
line-height: 104rpx;
font-weight: 600;
font-size: 36rpx;
color: #FFFFFF;
border-radius: 20rpx;
}
.xinjian{
width: 330rpx;
height: 104rpx;
border: 2rpx solid #48893B;
border-radius: 20rpx;
text-align: center;
line-height: 104rpx;
font-weight: 600;
font-size: 36rpx;
color: #48893B;
}
}
.mdpic{
width: 680rpx;
max-height: 1500rpx;
background: #FFFFFF;
border-radius: 24rpx 24rpx 24rpx 24rpx;
margin: auto;
margin-top: 22rpx;
padding: 38rpx;
box-sizing: border-box;
.tops{
font-size: 32rpx;
color: #3D3D3D;
}
.tishi{
font-size: 24rpx;
color: #3D3D3D;
margin-top: 20rpx;
}
.pic{
margin-top: 36rpx;
.img{
width: 144rpx;
height: 144rpx;
}
image{
width: 610rpx;
height: 280rpx;
}
}
}
.top{
width: 680rpx;
max-height: 986rpx;
background: #FFFFFF;
border-radius: 24rpx 24rpx 24rpx 24rpx;
margin: auto;
margin-top: 22rpx;
padding: 50rpx 38rpx;
box-sizing: border-box;
.one{
display: flex;
justify-content: space-between;
margin-bottom: 34rpx;
align-items: center;
font-size: 28rpx;
color: #808080;
.wz{
color: #3D3D3D;
}
input{
text-align: right;
}
}
}
</style>