EP-WachatApp/eaterplanet_ecommerce/moduleA/groupCenter/apply.js

474 lines
11 KiB
JavaScript
Raw Normal View History

2023-03-24 11:24:28 +08:00
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
});
}
}
})
}
})