You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
295 lines
10 KiB
295 lines
10 KiB
<template>
|
|
<view class="container">
|
|
<block v-if="isload">
|
|
<view class="addfromwx" v-if="getplatform() == 'wx' && type!=1" @tap="getweixinaddress"><image :src="event_rul + '/static/img/static/img/weixin.png'" class="img"/> 获取微信收货地址 <view class="flex1"></view><image :src="event_rul + '/static/img/static/img/arrowright.png'" style="width:30rpx;height:30rpx;"/></view>
|
|
<form @submit="formSubmit">
|
|
<view class="form">
|
|
<view class="form-item">
|
|
<text class="label">姓 名</text>
|
|
<input class="input" type="text" placeholder="请输入姓名" placeholder-style="font-size:28rpx;color:#BBBBBB" name="name" :value="name"></input>
|
|
</view>
|
|
<view class="form-item" v-if="showCompany">
|
|
<text class="label">公 司</text>
|
|
<input class="input" type="text" placeholder="请输入公司或单位名称" placeholder-style="font-size:28rpx;color:#BBBBBB" name="company" :value="company"></input>
|
|
</view>
|
|
<view class="form-item">
|
|
<text class="label">手机号</text>
|
|
<input class="input" type="number" placeholder="请输入手机号" placeholder-style="font-size:28rpx;color:#BBBBBB" name="tel" :value="tel"></input>
|
|
<text>+86</text>
|
|
</view>
|
|
<view class="form-item" v-if="type==1">
|
|
<text class="label flex0">选择位置</text>
|
|
<text class="flex1" style="text-align:left" :style="area ? '' : 'color:#BBBBBB'" @tap="selectzuobiao" >{{area ? area : '请选择您的位置'}}</text>
|
|
<!-- <input class="input" type="text" placeholder="请选择您的位置" placeholder-style="font-size:28rpx;color:#BBBBBB" name="area" :value="area" @tap="selectzuobiao"></input> -->
|
|
</view>
|
|
<view class="form-item" v-else>
|
|
<text class="label ">所在地区</text>
|
|
<uni-data-picker class="flex1" :localdata="items" :border="false" :placeholder="regiondata || '请选择省市区'" @change="regionchange"></uni-data-picker>
|
|
<text class="iconfont icon-weizhi1" style="font-size: 50rpx;"></text>
|
|
<!-- <picker mode="region" name="regiondata" :value="regiondata" class="input" @change="bindPickerChange">
|
|
<view class="picker" v-if="regiondata">{{regiondata}}</view>
|
|
<view v-else>请选择地区</view>
|
|
</picker> -->
|
|
</view>
|
|
<view class="form-item">
|
|
<text class="label">详细地址</text>
|
|
<input class="input" type="text" placeholder="请输入详细地址" placeholder-style="font-size:28rpx;color:#BBBBBB" name="address" :value="address"></input>
|
|
</view>
|
|
<view class="item flex-y-center" v-if="type!=1">
|
|
<view class="f2 flex-y-center flex1">
|
|
<input id="addressxx" placeholder="粘贴地址信息,可自动识别并填写,如:张三,188********,广东省 东莞市 xx区 xx街道 xxxx" placeholder-style="font-size:24rpx;color:#BBBBBB" style="width:85%;font-size:24rpx;margin:20rpx 0;height:100rpx;padding:4rpx 10rpx" @input="setaddressxx"></input>
|
|
<view style="width:15%;text-align:center;color:#999" @tap="shibie">识别</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<button class="savebtn" :style="'background:linear-gradient(90deg,'+t('color1')+' 0%,rgba('+t('color1rgb')+',0.8) 100%)'" form-type="submit">保存并使用</button>
|
|
</form>
|
|
</block>
|
|
<loading v-if="loading"></loading>
|
|
<dp-tabbar :opt="opt"></dp-tabbar>
|
|
<popmsg ref="popmsg"></popmsg>
|
|
<!-- 悬浮按钮 -->
|
|
<drag-button></drag-button>
|
|
</view>
|
|
</template>
|
|
<script>
|
|
var app = getApp();
|
|
export default {
|
|
data() {
|
|
return {
|
|
opt:{},
|
|
loading:false,
|
|
isload: false,
|
|
menuindex:-1,
|
|
name: '',
|
|
tel: '',
|
|
area: '',
|
|
address: '',
|
|
longitude: '',
|
|
latitude: '',
|
|
regiondata: '',
|
|
type: 0,
|
|
addressxx: '',
|
|
company: '',
|
|
items:[],
|
|
showCompany:false,
|
|
|
|
event_rul: app.globalData.event_url,
|
|
};
|
|
},
|
|
|
|
onLoad: function (opt) {
|
|
this.opt = app.getopts(opt);
|
|
this.type = this.opt.type || 0;
|
|
var that = this;
|
|
app.get('ApiIndex/getCustom',{}, function (customs) {
|
|
var url = app.globalData.pre_url+'/static/area.json';
|
|
if(customs.data.includes('plug_zhiming')) {
|
|
url = app.globalData.pre_url+'/static/area_gaoxin.json';
|
|
}
|
|
uni.request({
|
|
url: url,
|
|
data: {},
|
|
method: 'GET',
|
|
header: { 'content-type': 'application/json' },
|
|
success: function(res2) {
|
|
that.items = res2.data
|
|
}
|
|
});
|
|
});
|
|
|
|
this.getdata();
|
|
},
|
|
onPullDownRefresh: function () {
|
|
this.getdata();
|
|
},
|
|
methods: {
|
|
getdata:function(){
|
|
var that = this;
|
|
var addressId = that.opt.id || '';
|
|
app.get('ApiIndex/getCustom',{}, function (customs) {
|
|
if(customs.data.includes('plug_xiongmao')) {
|
|
that.showCompany = true;
|
|
}
|
|
});
|
|
if(addressId) {
|
|
that.loading = true;
|
|
app.get('ApiAddress/addressadd', {id: addressId,type: that.type}, function (res) {
|
|
that.loading = false;
|
|
that.name = res.data.name;
|
|
that.tel = res.data.tel;
|
|
that.area = res.data.area;
|
|
that.address = res.data.address;
|
|
that.longitude = res.data.longitude;
|
|
that.latitude = res.data.latitude;
|
|
that.company = res.data.company;
|
|
if (res.data.province){
|
|
var regiondata = res.data.province+ ',' + res.data.city+ ',' + res.data.district;
|
|
} else {
|
|
var regiondata = '';
|
|
}
|
|
that.regiondata = regiondata
|
|
that.loaded();
|
|
});
|
|
}else{
|
|
that.loaded();
|
|
}
|
|
},
|
|
regionchange(e) {
|
|
const value = e.detail.value
|
|
console.log(value[0].text + ',' + value[1].text + ',' + value[2].text);
|
|
this.regiondata = value[0].text + ',' + value[1].text + ',' + value[2].text
|
|
},
|
|
selectzuobiao: function () {
|
|
console.log('selectzuobiao')
|
|
var that = this;
|
|
uni.chooseLocation({
|
|
success: function (res) {
|
|
console.log(res);
|
|
that.area = res.address;
|
|
that.address = res.name;
|
|
that.latitude = res.latitude;
|
|
that.longitude = res.longitude;
|
|
},
|
|
fail: function (res) {
|
|
console.log(res)
|
|
if (res.errMsg == 'chooseLocation:fail auth deny') {
|
|
//$.error('获取位置失败,请在设置中开启位置信息');
|
|
app.confirm('获取位置失败,请在设置中开启位置信息', function () {
|
|
uni.openSetting({});
|
|
});
|
|
}
|
|
}
|
|
});
|
|
},
|
|
formSubmit: function (e) {
|
|
var that = this;
|
|
var formdata = e.detail.value;
|
|
var addressId = that.opt.id || '';
|
|
var name = formdata.name;
|
|
var tel = formdata.tel;
|
|
var regiondata = that.regiondata;
|
|
|
|
if (that.type == 1) {
|
|
var area = that.area;
|
|
if(area == '') {
|
|
app.error('请选择位置');
|
|
return;
|
|
}
|
|
} else {
|
|
var area = regiondata;
|
|
if(area == '') {
|
|
app.error('请选择省市区');
|
|
return;
|
|
}
|
|
}
|
|
var address = formdata.address;
|
|
var longitude = that.longitude;
|
|
var latitude = that.latitude;
|
|
var company = formdata.company;
|
|
|
|
if (name == '' || tel == '' || address == '') {
|
|
app.error('请填写完整信息');
|
|
return;
|
|
} else {
|
|
if (!/^1[3456789]\d{9}$/.test(tel)) {
|
|
app.error("请输入正确手机号");
|
|
return;
|
|
}
|
|
}
|
|
app.showLoading('提交中');
|
|
app.post('ApiAddress/addressadd', {type: that.type,addressid: addressId,name: name,tel: tel,area: area,address: address,latitude: latitude,longitude: longitude,company:company}, function (res) {
|
|
app.showLoading(false);
|
|
if (res.status == 0) {
|
|
app.alert(res.msg);
|
|
return;
|
|
}
|
|
app.success('保存成功');
|
|
setTimeout(function () {
|
|
app.goback(true);
|
|
}, 1000);
|
|
});
|
|
},
|
|
delAddress: function () {
|
|
var that = this;
|
|
var addressId = that.opt.id;
|
|
app.confirm('确定要删除该收获地址吗?', function () {
|
|
app.showLoading('删除中');
|
|
app.post('ApiAddress/del', {addressid: addressId}, function () {
|
|
app.showLoading(false);
|
|
app.success('删除成功');
|
|
setTimeout(function () {
|
|
app.goback(true);
|
|
}, 1000);
|
|
});
|
|
});
|
|
},
|
|
bindPickerChange: function (e) {
|
|
var val = e.detail.value;
|
|
this.regiondata = val;
|
|
},
|
|
setaddressxx: function (e) {
|
|
this.addressxx = e.detail.value;
|
|
},
|
|
shibie: function () {
|
|
var that = this;
|
|
var addressxx = that.addressxx;
|
|
app.post('ApiAddress/shibie', {addressxx: addressxx}, function (res) {
|
|
var isrs = 0;
|
|
if (res.province) {
|
|
isrs = 1;
|
|
that.regiondata = res.province + ',' +res.city + ',' +res.county
|
|
}
|
|
if (res.detail) {
|
|
isrs = 1;
|
|
that.address = res.detail
|
|
}
|
|
if (res.person) {
|
|
isrs = 1;
|
|
that.name = res.person
|
|
}
|
|
if (res.phonenum) {
|
|
isrs = 1;
|
|
that.tel = res.phonenum
|
|
}
|
|
if (isrs == 0) {
|
|
app.error('识别失败');
|
|
} else {
|
|
app.success('识别完成');
|
|
}
|
|
});
|
|
},
|
|
getweixinaddress:function(){
|
|
var that = this;
|
|
wx.chooseAddress({
|
|
success (res) {
|
|
app.showLoading('提交中');
|
|
app.post('ApiAddress/addressadd', {type: that.type,addressid: '',name: res.userName,tel: res.telNumber,area: res.provinceName+','+res.cityName+','+res.countyName,address: res.detailInfo}, function (res) {
|
|
app.showLoading(false);
|
|
if (res.status == 0) {
|
|
app.alert(res.msg);
|
|
return;
|
|
}
|
|
app.success('添加成功');
|
|
setTimeout(function () {
|
|
app.goback(true);
|
|
}, 1000);
|
|
});
|
|
}
|
|
})
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
<style>
|
|
.container{display:flex;flex-direction:column}
|
|
|
|
.addfromwx{width:94%;margin:20rpx 3% 0 3%;border-radius:5px;padding:20rpx 3%;background: #FFF;display:flex;align-items:center;color:#666;font-size:28rpx;}
|
|
.addfromwx .img{width:40rpx;height:40rpx;margin-right:20rpx;}
|
|
.form{ width:94%;margin:20rpx 3%;border-radius:5px;padding: 0 3%;background: #FFF;}
|
|
.form-item{display:flex;align-items:center;width:100%;border-bottom: 1px #ededed solid;height:98rpx;}
|
|
.form-item:last-child{border:0}
|
|
.form-item .label{ color:#8B8B8B;font-weight:bold;height: 60rpx; line-height: 60rpx; text-align:left;width:150rpx;padding-right:20rpx}
|
|
.form-item .input{ flex:1;height: 60rpx; line-height: 60rpx;text-align:left}
|
|
/* .savebtn{ width: 90%; height:96rpx; line-height: 96rpx; text-align:center;border-radius:48rpx; color: #fff;font-weight:bold;margin: 0 5%; margin-top:60rpx; border: none;font-size: 30rpx; } */.savebtn{width:90%;max-width:700px;margin:0 auto;height:96rpx;line-height:96rpx;text-align:center;color:#fff;font-size:30rpx;font-weight:bold;border-radius:40rpx;position: fixed;left:0px;right:0;bottom:0;margin-bottom:20rpx;}
|
|
</style>
|