474 lines
11 KiB
JavaScript
474 lines
11 KiB
JavaScript
var util = require('../../utils/util.js');
|
|
var status = require('../../utils/index.js');
|
|
var locat = require('../../utils/Location.js');
|
|
var app = getApp()
|
|
var clearTime = null;
|
|
Page({
|
|
mixins: [require('../../mixin/globalMixin.js')],
|
|
data: {
|
|
pass: -2,
|
|
canSubmit: false,
|
|
region: ['选择地址', '', ''],
|
|
addr_detail: '',
|
|
lon_lat: '',
|
|
focus_mobile: false,
|
|
showCountDown: true,
|
|
timeStamp: 60,
|
|
apply_complete: false,
|
|
wechat: '',
|
|
needAuth: false,
|
|
member_info: {
|
|
is_head: 0
|
|
},
|
|
groupInfo: {
|
|
group_name: '社区',
|
|
owner_name: '团长'
|
|
}
|
|
},
|
|
handlerGobackClick(delta) {
|
|
const pages = getCurrentPages();
|
|
if (pages.length >= 2) {
|
|
wx.navigateBack({
|
|
delta: delta
|
|
});
|
|
} else {
|
|
wx.switchTab({
|
|
url: '/eaterplanet_ecommerce/pages/index/index'
|
|
});
|
|
}
|
|
},
|
|
handlerGohomeClick(url) {
|
|
wx.switchTab({
|
|
url: '/eaterplanet_ecommerce/pages/index/index'
|
|
});
|
|
},
|
|
community_id: '',
|
|
cansub: true,
|
|
|
|
bindRegionChange: function(e) {
|
|
this.setData({
|
|
region: e.detail.value.replace(/^\s*|\s*$/g, "")
|
|
})
|
|
},
|
|
|
|
inputAddress: function(e) {
|
|
this.setData({
|
|
addr_detail: e.detail.value.replace(/^\s*|\s*$/g, "")
|
|
})
|
|
},
|
|
|
|
inputCommunity: function(e) {
|
|
this.setData({
|
|
community_name: e.detail.value.replace(/^\s*|\s*$/g, "")
|
|
})
|
|
},
|
|
|
|
inputMobile: function(e) {
|
|
this.setData({
|
|
mobile_detail: e.detail.value.replace(/^\s*|\s*$/g, "")
|
|
})
|
|
},
|
|
|
|
inputRealName: function(e) {
|
|
this.setData({
|
|
head_name: e.detail.value.replace(/^\s*|\s*$/g, "")
|
|
})
|
|
},
|
|
|
|
inputWechat: function(e) {
|
|
this.setData({
|
|
wechat: e.detail.value.replace(/^\s*|\s*$/g, "")
|
|
})
|
|
},
|
|
|
|
chose_location: function() {
|
|
var that = this;
|
|
wx.chooseLocation({
|
|
success: function(e) {
|
|
var lon_lat = e.longitude + ',' + e.latitude;
|
|
var path = e.address;
|
|
var s_region = that.data.region;
|
|
var dol_path = '';
|
|
|
|
var str = path;
|
|
var patt = new RegExp("(.*?省)(.*?市)(.*?区)", "g");
|
|
var result = patt.exec(str);
|
|
if (result == null) {
|
|
patt = new RegExp("(.*?省)(.*?市)(.*?市)", "g");
|
|
result = patt.exec(str);
|
|
if (result == null) {
|
|
patt = new RegExp("(.*?省)(.*?市)(.*县)", "g");
|
|
result = patt.exec(str);
|
|
if (result != null) {
|
|
s_region[0] = result[1];
|
|
s_region[1] = result[2];
|
|
s_region[2] = result[3];
|
|
dol_path = path.replace(result[0], '');
|
|
}
|
|
} else {
|
|
s_region[0] = result[1];
|
|
s_region[1] = result[2];
|
|
s_region[2] = result[3];
|
|
dol_path = path.replace(result[0], '');
|
|
}
|
|
} else {
|
|
s_region[0] = result[1];
|
|
s_region[1] = result[2];
|
|
s_region[2] = result[3];
|
|
dol_path = path.replace(result[0], '');
|
|
}
|
|
var filename = dol_path + e.name;
|
|
let addr_detail = filename;
|
|
|
|
let address_component = '';
|
|
locat.getGpsLocation(e.latitude, e.longitude).then((res) => {
|
|
console.log(res)
|
|
address_component = res;
|
|
if (address_component) {
|
|
s_region[0] = address_component.province;
|
|
s_region[1] = address_component.city;
|
|
s_region[2] = address_component.district;
|
|
s_region[3] = address_component.town;
|
|
addr_detail = filename || address_component.street;
|
|
}
|
|
that.setData({
|
|
region: s_region,
|
|
lon_lat: lon_lat,
|
|
addr_detail
|
|
})
|
|
});
|
|
|
|
if (s_region[0] == '省') {
|
|
wx.showToast({
|
|
title: '请重新选择省市区',
|
|
icon: 'none',
|
|
})
|
|
}
|
|
},
|
|
fail: function(e) {
|
|
console.log('地址获取失败', e)
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 订阅消息
|
|
*/
|
|
subscriptionNotice: function() {
|
|
console.log('subscriptionNotice')
|
|
let that = this;
|
|
return new Promise((resolve, reject)=>{
|
|
let obj = that.data.need_subscript_template;
|
|
let tmplIds = Object.keys(obj).map(key => obj[key]); // 订阅消息模版id
|
|
if (wx.requestSubscribeMessage) {
|
|
tmplIds.length && wx.requestSubscribeMessage({
|
|
tmplIds: tmplIds,
|
|
success(res) {
|
|
let is_need_subscript = 1;
|
|
let acceptId = [];
|
|
tmplIds.forEach(item=>{
|
|
if (res[item] == 'accept') {
|
|
//用户同意了订阅,添加进数据库
|
|
acceptId.push(item);
|
|
} else {
|
|
//用户拒绝了订阅或当前游戏被禁用订阅消息
|
|
is_need_subscript = 0;
|
|
}
|
|
})
|
|
|
|
if(acceptId.length) {
|
|
that.addAccept(acceptId);
|
|
}
|
|
that.setData({ is_need_subscript })
|
|
resolve();
|
|
},
|
|
fail() {
|
|
reject();
|
|
}
|
|
})
|
|
} else {
|
|
// 兼容处理
|
|
reject();
|
|
}
|
|
})
|
|
},
|
|
|
|
// 用户点击订阅添加到数据库
|
|
addAccept: function (acceptId) {
|
|
let token = wx.getStorageSync('token');
|
|
let type = acceptId.join(',');
|
|
app.util.request({
|
|
url: 'entry/wxapp/user',
|
|
data: {
|
|
controller: 'user.collect_subscriptmsg',
|
|
token,
|
|
type
|
|
},
|
|
dataType: 'json',
|
|
method: 'POST',
|
|
success: function () {}
|
|
})
|
|
},
|
|
|
|
submit: function() {
|
|
if (!this.authModal()) return;
|
|
|
|
let that = this;
|
|
var token = wx.getStorageSync('token');
|
|
var province_name = this.data.region[0];
|
|
var city_name = this.data.region[1];
|
|
var area_name = this.data.region[2];
|
|
let country_name = this.data.region[3] || '';
|
|
var addr_detail = this.data.addr_detail;
|
|
var community_name = this.data.community_name;
|
|
var mobile = this.data.mobile_detail;
|
|
var lon_lat = this.data.lon_lat;
|
|
var head_name = this.data.head_name;
|
|
var wechat = this.data.wechat;
|
|
let member_info = this.data.member_info;
|
|
|
|
if (head_name == '' || head_name === void 0) {
|
|
wx.showToast({
|
|
title: '请填写姓名',
|
|
icon: 'none'
|
|
})
|
|
return false;
|
|
}
|
|
|
|
if (mobile == '' || !(/^1(3|4|5|6|7|8|9)\d{9}$/.test(mobile))) {
|
|
this.setData({
|
|
focus_mobile: true
|
|
})
|
|
wx.showToast({
|
|
title: '手机号码有误',
|
|
icon: 'none'
|
|
})
|
|
return false;
|
|
}
|
|
|
|
if (wechat == '' || wechat === void 0) {
|
|
wx.showToast({
|
|
title: '请填写' + (member_info.wechat_div?member_info.wechat_div:'微信号'),
|
|
icon: 'none'
|
|
})
|
|
return false;
|
|
}
|
|
|
|
if (community_name == '' || community_name === void 0) {
|
|
wx.showToast({
|
|
title: '请填写小区名称',
|
|
icon: 'none'
|
|
})
|
|
return false;
|
|
}
|
|
|
|
if (province_name == '省' && city_name == '市' && area_name == '区') {
|
|
wx.showToast({
|
|
title: '请选择地区',
|
|
icon: 'none'
|
|
})
|
|
return false;
|
|
}
|
|
|
|
if (lon_lat == '' || lon_lat === void 0) {
|
|
wx.showToast({
|
|
title: '请选择地图位置',
|
|
icon: 'none'
|
|
})
|
|
return false;
|
|
}
|
|
|
|
if (addr_detail == '' || addr_detail === void 0) {
|
|
wx.showToast({
|
|
title: '请填写详细地址',
|
|
icon: 'none'
|
|
})
|
|
return false;
|
|
}
|
|
|
|
var s_data = {
|
|
province_name,
|
|
city_name,
|
|
area_name,
|
|
lon_lat,
|
|
addr_detail,
|
|
community_name,
|
|
mobile,
|
|
head_name,
|
|
wechat,
|
|
controller: 'community.sub_community_head',
|
|
token: token,
|
|
community_id: this.community_id,
|
|
country_name
|
|
};
|
|
|
|
let is_need_subscript = this.data.is_need_subscript;
|
|
if(is_need_subscript==1) {
|
|
//弹出订阅消息
|
|
this.subscriptionNotice().then(()=>{
|
|
that.preSubmit(s_data);
|
|
}).catch(()=>{
|
|
that.preSubmit(s_data);
|
|
});
|
|
} else {
|
|
that.preSubmit(s_data);
|
|
}
|
|
},
|
|
|
|
preSubmit: function(s_data) {
|
|
if(!this.cansub) return;
|
|
this.cansub = false;
|
|
var that = this;
|
|
app.util.request({
|
|
url: 'entry/wxapp/user',
|
|
data: s_data,
|
|
method: 'post',
|
|
dataType: 'json',
|
|
success: function(res) {
|
|
if (res.data.code == 0) {
|
|
wx.showToast({
|
|
title: '提交成功,等待审核',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
that.setData({
|
|
apply_complete: true
|
|
})
|
|
} else {
|
|
that.setData({
|
|
needAuth: true
|
|
})
|
|
}
|
|
that.cansub = true;
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function(options) {
|
|
let that = this;
|
|
status.setNavBgColor();
|
|
status.setGroupInfo().then((groupInfo) => {
|
|
let owner_name = groupInfo && groupInfo.owner_name || '团长';
|
|
that.setData({ groupInfo })
|
|
wx.setNavigationBarTitle({
|
|
title: `${owner_name}申请`,
|
|
})
|
|
});
|
|
|
|
var scene = decodeURIComponent(options.scene);
|
|
if (scene != 'undefined') {
|
|
this.community_id = scene;
|
|
}
|
|
this.getUserInfo();
|
|
this.checkSubscript();
|
|
},
|
|
|
|
onShow: function () {
|
|
let that = this;
|
|
util.check_login_new().then((res) => {
|
|
if (res) {
|
|
that.setData({ needAuth: false });
|
|
} else {
|
|
that.setData({ needAuth: true });
|
|
}
|
|
})
|
|
},
|
|
|
|
authModal: function () {
|
|
if (this.data.needAuth) {
|
|
this.setData({ showAuthModal: !this.data.showAuthModal });
|
|
return false;
|
|
}
|
|
return true;
|
|
},
|
|
|
|
/**
|
|
* 授权成功回调
|
|
*/
|
|
authSuccess: function() {
|
|
let that = this;
|
|
this.setData({
|
|
needAuth: false
|
|
}, () => {
|
|
that.getUserInfo();
|
|
})
|
|
},
|
|
|
|
getUserInfo: function() {
|
|
let that = this;
|
|
var token = wx.getStorageSync('token');
|
|
app.util.request({
|
|
'url': 'entry/wxapp/user',
|
|
'data': {
|
|
controller: 'user.get_user_info',
|
|
token: token
|
|
},
|
|
dataType: 'json',
|
|
success: function(res) {
|
|
if (res.data.code == 0) {
|
|
let member_info = res.data.data || { is_head: 0 };
|
|
if(member_info.is_head==1){
|
|
app.util.message('您已通过审核', '/eaterplanet_ecommerce/moduleA/groupCenter/index', 'error');
|
|
}
|
|
that.setData({
|
|
member_info
|
|
});
|
|
} else {
|
|
//is_login
|
|
that.setData({
|
|
needAuth: true
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
applyAgain: function() {
|
|
var member_info = this.data.member_info;
|
|
member_info.is_head = 0;
|
|
|
|
this.setData({
|
|
member_info: member_info
|
|
});
|
|
},
|
|
|
|
countDown: function() {
|
|
var that = this;
|
|
clearInterval(clearTime),
|
|
clearTime = setInterval(function() {
|
|
var ts = that.data.timeStamp,
|
|
ct = that.data.showCountDown;
|
|
ts > 0 ? ts-- : (ct = true, clearInterval(clearTime), ts = 60),
|
|
that.setData({
|
|
showCountDown: ct,
|
|
timeStamp: ts
|
|
});
|
|
}, 1000);
|
|
},
|
|
|
|
checkSubscript: function() {
|
|
let that = this;
|
|
var token = wx.getStorageSync('token');
|
|
token && app.util.request({
|
|
url: 'entry/wxapp/user',
|
|
data: {
|
|
controller: 'community.check_head_subscriptapply',
|
|
token: token
|
|
},
|
|
dataType: 'json',
|
|
success: function(res) {
|
|
if (res.data.code == 0) {
|
|
let { is_need_subscript,need_subscript_template } = res.data;
|
|
that.setData({
|
|
is_need_subscript,
|
|
need_subscript_template
|
|
});
|
|
}
|
|
}
|
|
})
|
|
}
|
|
})
|