5 changed files with 582 additions and 51 deletions
@ -1,9 +1,527 @@ |
|||
<template> |
|||
<!-- 商家注册 --> |
|||
<!-- 商家入驻 --> |
|||
<view class="page1"> |
|||
<view class="content" style="border-top: 1px solid #eee;"> |
|||
<view class="value"> |
|||
<view class="name"> |
|||
店铺名称 |
|||
</view> |
|||
<view class="text"> |
|||
<input type="text" v-model="formData.shopName" placeholder="输入店铺名称" /> |
|||
</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="name"> |
|||
学生商家 |
|||
</view> |
|||
<view class="text" style="text-align: right;"> |
|||
<label class="radio" style="padding-right: 20rpx;" @tap="clickRadio(1)"> |
|||
<radio :checked="formData.isStudent == 1" /><text>是</text> |
|||
</label> |
|||
<label class="radio" @tap="clickRadio(0)"> |
|||
<radio :checked="formData.isStudent == 0" /><text>否</text> |
|||
</label> |
|||
</view> |
|||
</view> |
|||
<view class="value" style="height: 200rpx;"> |
|||
<view class="name" style="flex: 1;line-height: 200rpx;"> |
|||
门头图 |
|||
</view> |
|||
<view class="text" style="width: 180rpx;padding-top: 10rpx;" @tap="pictureAdd('mentou')"> |
|||
<view class="upload-img" v-if="formData.shopIcon ==''" style="background: #eee;text-align: center;line-height: 180rpx;"> |
|||
<uni-icons type="camera" size="28" color="#777"></uni-icons> |
|||
</view> |
|||
<img :src="formData.shopIcon" v-if="formData.shopIcon !=''" alt="" class="upload-img"> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="content"> |
|||
<view class="value"> |
|||
<view class="name"> |
|||
店铺坐标 |
|||
</view> |
|||
<view class="text" @tap.stop="openPicker" style="text-align: right;"> |
|||
<uni-icons type="location" color="#00BFFF" size="12"></uni-icons> |
|||
<text style="color:#00BFFF;">点击选择地址</text> |
|||
</view> |
|||
</view> |
|||
<view class="value" style="height:120rpx;"> |
|||
<view class="name"> |
|||
店铺地址 |
|||
</view> |
|||
<view class="text" style="height:120rpx;line-height: 60rpx;"> |
|||
<textarea name="" id="" v-model="formData.shopAddress" cols="30" rows="10"></textarea> |
|||
</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="name"> |
|||
所属区域 |
|||
</view> |
|||
<view class="text" style="text-align: right;"> |
|||
<uni-data-select class="uni-data-select" :localdata="addressList" v-model="formData.regionId" |
|||
placeholder="请选择所属区域" @change="regionChange"></uni-data-select> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="content"> |
|||
<view class="value"> |
|||
<view class="name"> |
|||
联系人 |
|||
</view> |
|||
<view class="text"> |
|||
<input type="text" v-model="formData.nickname" placeholder="输入联系人" /> |
|||
</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="name"> |
|||
联系电话 |
|||
</view> |
|||
<view class="text"> |
|||
<input type="text" v-model="formData.mobile" placeholder="输入联系电话" /> |
|||
</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="name" style="flex: 1;"> |
|||
验证码 |
|||
</view> |
|||
<view class="text" style="display: flex;width: 340rpx;"> |
|||
<input type="number" v-model="formData.code" placeholder="请输入验证码" style="width: 200rpx;text-align: center;" /> |
|||
<view class="code-btn" style="font-size: 24rpx;" size="mini" type="default" @click="sendLoginSms" :disabled="choose" :class="choose == false ? 'hasChosen':'notChosen'"> |
|||
{{ choose ? clock + '重新获取' : '获取验证码' }} |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="content"> |
|||
<view class="value" style="height: 200rpx;"> |
|||
<view class="name" style="flex: 1;line-height: 200rpx;"> |
|||
法人身份证正反面 |
|||
</view> |
|||
<view class="text" style="width: 380rpx;display: flex;padding-top: 10rpx;"> |
|||
<view> |
|||
<view class="upload-img" v-if="formData.zhengzhao ==''" @tap="pictureAdd('zheng')" |
|||
style="background: #eee;text-align: center;line-height: 180rpx;"> |
|||
<uni-icons type="camera" size="28" color="#777"></uni-icons> |
|||
</view> |
|||
<img :src="formData.zhengzhao" v-if="formData.zhengzhao !=''" alt="" class="upload-img"> |
|||
</view> |
|||
<view> |
|||
<view class="upload-img" @tap="pictureAdd('fan')" v-if="formData.fanzhao ==''" style="background: #eee;text-align: center;line-height: 180rpx;margin-left: 20rpx;"> |
|||
<uni-icons type="camera" size="28" color="#777"></uni-icons> |
|||
</view> |
|||
<img :src="formData.fanzhao" v-if="formData.fanzhao !=''" alt="" class="upload-img" style="margin-left: 20rpx;"> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="name"> |
|||
法人姓名 |
|||
</view> |
|||
<view class="text"> |
|||
<input type="text" v-model="formData.shopLename" placeholder="输入法人姓名" /> |
|||
</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="name"> |
|||
法人身份证 |
|||
</view> |
|||
<view class="text"> |
|||
<input type="text" v-model="formData.shopLecard" placeholder="输入法人身份证" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="content"> |
|||
<view class="value" style="height: 200rpx;"> |
|||
<view class="name" style="flex: 1;line-height: 200rpx;"> |
|||
营业执照 |
|||
</view> |
|||
<view class="text" style="width: 180rpx;padding-top: 10rpx;" @tap="pictureAdd('yingye')"> |
|||
<view class="upload-img" v-if="formData.yingyezhizhao ==''" style="background: #eee;text-align: center;line-height: 180rpx;"> |
|||
<uni-icons type="camera" size="28" color="#777"></uni-icons> |
|||
</view> |
|||
<img :src="formData.yingyezhizhao" v-if="formData.yingyezhizhao !=''" alt="" class="upload-img"> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="content"> |
|||
<view class="value" style="height: 200rpx;"> |
|||
<view class="name" style="flex: 1;line-height: 200rpx;"> |
|||
其他补充证照 |
|||
</view> |
|||
<view class="text" @tap="pictureAdd('qita')" style="width: auto;display: flex;padding-top: 10rpx;position: relative;"> |
|||
<view class="upload-img" style="background: #eee;text-align: center;line-height: 180rpx;"> |
|||
<uni-icons type="camera" size="28" color="#777"></uni-icons> |
|||
</view> |
|||
<img :src="formData.qita[0]" v-if="formData.qita.length>0" alt="" class="upload-img" style="margin-left: 20rpx;"> |
|||
<view class="red-dot" v-if="formData.qita.length>0">{{formData.qita.length}}</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="content"> |
|||
<view class="value"> |
|||
<view class="name"> |
|||
支付宝账户 |
|||
</view> |
|||
<view class="text"> |
|||
<input type="text" v-model="formData.aliAccount" placeholder="邮箱/手机号" /> |
|||
</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="name"> |
|||
收款人姓名 |
|||
</view> |
|||
<view class="text"> |
|||
<input type="text" v-model="formData.aliName" placeholder="支付宝账号实名认证的姓名" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<button @tap.stop="submit()">保存</button> |
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
getArea |
|||
} from '@/utils/global.js' |
|||
import { reg } from '@/utils/global.js' |
|||
export default { |
|||
data() { |
|||
return { |
|||
addressList:[], |
|||
formData: { |
|||
regionId:'', |
|||
region:'', |
|||
shopIcon:'', |
|||
shopAddress: '', |
|||
shopName:'', |
|||
aliAccount:'', |
|||
aliName:'', |
|||
nickname:'', |
|||
mobile:uni.getStorageSync('mobile')?uni.getStorageSync('mobile'):'', |
|||
code:'', |
|||
password:'123456', |
|||
zhengzhao:'', |
|||
yingyezhizhao:'', |
|||
fanzhao:'', |
|||
shopLename:'', |
|||
shopLecard:'', |
|||
qita:[], |
|||
shopImages:'', |
|||
id:'', |
|||
isStudent:0, //1学生商家 0不是学生 |
|||
unionid:'' |
|||
}, |
|||
choose:false, |
|||
isChoose:false, |
|||
clock: 60 ,// 倒计时 |
|||
}; |
|||
}, |
|||
onLoad(option) { |
|||
|
|||
}, |
|||
onShow(){ |
|||
this.getRegionList() |
|||
}, |
|||
methods: { |
|||
openPicker() { |
|||
let that = this; |
|||
uni.chooseLocation({ |
|||
latitude:'38.335974', |
|||
longitude:'116.805783', |
|||
success: function(res) { |
|||
if (res.name != '') { |
|||
let aaa = getArea(res.address) |
|||
that.formData.shopAddress = aaa.province + aaa.city + aaa.country + aaa.address + res.name |
|||
} else { |
|||
that.tui.toast("微信地址选择器调用失败,请重新选择!") |
|||
} |
|||
}, |
|||
fail: function(res) { |
|||
|
|||
} |
|||
}); |
|||
}, |
|||
pictureAdd(type) { |
|||
let that = this |
|||
uni.chooseMedia({ |
|||
count: type == 'qita'?9:1, |
|||
mediaType: ['image'], |
|||
sourceType: ['album'], |
|||
success(res) { |
|||
uni.showLoading({ |
|||
title: '加载中...', |
|||
mask: true |
|||
}) |
|||
for (let i = 0; i < res.tempFiles.length; i++) { |
|||
console.log('type是什么',type) |
|||
that.upLoadFile(res.tempFiles[i].tempFilePath,type) |
|||
} |
|||
|
|||
} |
|||
}) |
|||
}, |
|||
async upLoadFile(path,type) { |
|||
let that = this; |
|||
let hiver_token = uni.getStorageSync("hiver_token") |
|||
await uni.uploadFile({ |
|||
url: that.tui.interfaceUrl() + '/upload/file', |
|||
filePath: path, |
|||
name: 'file', |
|||
header: { |
|||
"content-type": "multipart/form-data", |
|||
'accessToken': hiver_token |
|||
}, |
|||
formData: {}, |
|||
success: (uploadFileRes) => { |
|||
let pathData = JSON.parse(uploadFileRes.data) |
|||
if(type == 'zheng'){ |
|||
that.formData.zhengzhao = pathData.result |
|||
}else if(type == 'fan'){ |
|||
that.formData.fanzhao = pathData.result |
|||
}else if(type == 'yingye'){ |
|||
that.formData.yingyezhizhao = pathData.result |
|||
}else if(type == 'mentou'){ |
|||
that.formData.shopIcon = pathData.result |
|||
}else{ |
|||
that.formData.qita.push(pathData.result) |
|||
} |
|||
|
|||
that.$forceUpdate() |
|||
}, |
|||
fail: (err) => { |
|||
uni.hideLoading(); |
|||
uni.showToast({ |
|||
title: JSON.stringify(err), |
|||
icon: 'none' |
|||
}) |
|||
} |
|||
}); |
|||
await setTimeout(res => { |
|||
uni.hideLoading(); |
|||
}, 1000) |
|||
}, |
|||
// 触发提交表单 |
|||
submit() { |
|||
let that = this; |
|||
let url = '' |
|||
let verify = this.verifyField() |
|||
if(verify != true){ |
|||
uni.showToast({ |
|||
title: verify + '不能为空', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
if (that.formData.id) { |
|||
url = '/app/shop/updateShopIconAndRemark' |
|||
} else { |
|||
url = '/auth/shopRegister' |
|||
} |
|||
this.formData.unionid = uni.getStorageSync('unionid') |
|||
this.formData.shopImages = this.formData.zhengzhao + '@@' + this.formData.fanzhao + '@@' + this.formData.yingyezhizhao + '@@' + JSON.stringify(this.formData.qita) |
|||
that.tui.request(url, "post", this.formData, false, true).then((res1) => { |
|||
if (res1.code == 200) { |
|||
uni.setStorageSync('schoolShop',res1.result) |
|||
uni.showModal({ |
|||
title: '提示', |
|||
content: '提交成功,请等待管理员审核', |
|||
success: function (res) { |
|||
uni.navigateBack() |
|||
} |
|||
}); |
|||
} else { |
|||
uni.showToast({ |
|||
title: res1.message, |
|||
icon: 'none' |
|||
}) |
|||
} |
|||
}) |
|||
|
|||
}, |
|||
clickRadio(type){ |
|||
this.formData.isStudent = type |
|||
}, |
|||
//获取区域 |
|||
getRegionList() { |
|||
let that = this; |
|||
this.tui.request('/app/shopArea/getByParentId/0', 'get', {}, false, false, true).then((res) => { |
|||
if (res.code !== 200) return |
|||
that.addressList = res.result.map(item => { |
|||
return { |
|||
value: item.id, |
|||
text: item.title |
|||
} |
|||
}) |
|||
console.log(that.addressList) |
|||
}) |
|||
}, |
|||
regionChange(e){ |
|||
for (let i = 0; i < this.addressList.length; i++) { |
|||
if (this.addressList[i].value == e) { |
|||
this.formData.regionId = e; |
|||
this.formData.region = this.addressList[i].text |
|||
} |
|||
} |
|||
console.log(this.region) |
|||
}, |
|||
sendLoginSms(){ // 获取验证码 |
|||
this.isChoose = false |
|||
if(reg(this.formData.mobile,this.clock) && this.isChoose == false){ |
|||
this.choose = true |
|||
this.setTime() |
|||
this.tui.request("/common/captcha/sendRegistSms/"+this.formData.mobile, "GET", { |
|||
|
|||
}).then((res) => { |
|||
if (res.code == 200) { |
|||
uni.showToast({ |
|||
title: "发送成功", |
|||
icon: 'success' |
|||
}) |
|||
}else{ |
|||
this.tui.toast(res.message) |
|||
} |
|||
}).catch((res) => { |
|||
this.tui.toast(res) |
|||
}) |
|||
}else if(reg(this.formData.mobile,this.clock) && this.isChoose == true){ |
|||
|
|||
} |
|||
}, |
|||
setTime(){// 倒计时函数 |
|||
if(this.clock == 0){ |
|||
this.clock = 60 |
|||
this.choose = false |
|||
return |
|||
}else{ |
|||
this.clock-- |
|||
if(this.clock < 10){this.clock = '0'+this.clock} |
|||
} |
|||
setTimeout(() => { this.setTime() },1000) |
|||
}, |
|||
verifyField(){ |
|||
let msg = '' |
|||
let data = this.formData |
|||
|
|||
if(data.shopAddress == ''){ |
|||
msg = '地址' |
|||
}else if(data.shopName == ''){ |
|||
msg = '店铺名' |
|||
}else if(data.aliAccount == ''){ |
|||
msg = '支付宝账号' |
|||
}else if(data.aliName == ''){ |
|||
msg = '收款人姓名' |
|||
}else if(data.nickname == ''){ |
|||
msg = '联系人' |
|||
}else if(data.mobile == ''){ |
|||
msg = '联系电话' |
|||
}else if(data.code == ''){ |
|||
msg = '验证码' |
|||
}else if(data.zhengzhao == ''){ |
|||
msg = '法人身份证正面' |
|||
}else if(data.yingyezhizhao == ''){ |
|||
msg = '营业执照' |
|||
}else if(data.fanzhao == ''){ |
|||
msg = '法人身份证反面' |
|||
}else if(data.shopLename == ''){ |
|||
msg = '法人姓名' |
|||
}else if(data.shopLecard == ''){ |
|||
msg = '法人身份证' |
|||
} |
|||
return msg == ""?true:msg |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style> |
|||
page,.page1{ |
|||
font-size: 24rpx; |
|||
width: 100%; |
|||
height: 100%; |
|||
background: #eee; |
|||
overflow: scroll; |
|||
} |
|||
.content{ |
|||
width: 100%; |
|||
height: auto; |
|||
background: #fff; |
|||
margin-bottom: 20rpx; |
|||
} |
|||
.value{ |
|||
width: 100%; |
|||
height: 80rpx; |
|||
display: flex; |
|||
line-height: 80rpx; |
|||
border-top: 1px solid #eee; |
|||
padding: 0 20rpx; |
|||
} |
|||
.name{ |
|||
width: 20%; |
|||
} |
|||
.text{ |
|||
width: 80%; |
|||
} |
|||
.text input{ |
|||
height: 80rpx; |
|||
line-height: 80rpx; |
|||
text-align: right; |
|||
} |
|||
.text textarea{ |
|||
height: 120rpx; |
|||
line-height: 40rpx; |
|||
padding-top:20rpx; |
|||
} |
|||
.upload-img { |
|||
width: 180rpx; |
|||
height: 180rpx; |
|||
} |
|||
.red-dot{ |
|||
width: 40rpx; |
|||
height: 40rpx; |
|||
text-align: center; |
|||
line-height: 40rpx; |
|||
border-radius: 40rpx; |
|||
background: red; |
|||
color: #fff; |
|||
position: absolute; |
|||
top: 10rpx; |
|||
right: 0; |
|||
} |
|||
button { |
|||
width:95%; |
|||
height: 90rpx; |
|||
line-height: 90rpx; |
|||
font-size: 36rpx; |
|||
color: #fff; |
|||
background: #5fd9ee; |
|||
border-radius: 20rpx; |
|||
margin: 40rpx auto; |
|||
} |
|||
.hasChosen{ |
|||
height: 74rpx; |
|||
line-height: 74rpx; |
|||
color: #fff; |
|||
border: none; |
|||
background: #5fd9ee; |
|||
} |
|||
.code-btn{ |
|||
font-size: 24rpx; |
|||
background: #00BFFF; |
|||
color: #fff; |
|||
height: 60rpx; |
|||
line-height: 60rpx; |
|||
border-radius: 20rpx; |
|||
padding: 0 10rpx; |
|||
margin-top: 10rpx; |
|||
width: 140rpx; |
|||
} |
|||
.uni-select{ |
|||
border: none !important; |
|||
padding: 0 !important; |
|||
} |
|||
.uni-stat__select { |
|||
height: 100% !important; |
|||
} |
|||
</style> |
|||
Loading…
Reference in new issue