市北党建引领小程序初始化
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.

648 lines
18 KiB

const api = require('../../../../../utils/partApi')
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
look: true,
informFlag: false,
selectOption: [{
label: '机关企事业单位',
value: '0'
},
{
label: '学校',
value: '8'
},
{
label: '国有企业',
value: '2'
},
{
label: '私营企业',
value: '3'
},
{
label: '集体企业',
value: '4'
},
{
label: '外资企业、合资企业',
value: '5'
},
{
label: '社会组织',
value: '6'
},
{
label: '其他',
value: '7'
}
],
selectedStatus: false,
form: {
id: '',
name: '',
idCard: '',
mobile: '',
homeName: '', //居住小区名称
workUnit: '', //工作单位
workType: '', //单位性质
workIndustry: '', //所属行业
party: 1, //是否为党员
volunteer: 1, //是否加入志愿者
gridStaff: 1, //是否红色网格
owners: 1, //是否参加业主委员会
allDeptIds: [], //社区id
shibei: '1', //是否居住在市北
couplingCommunity: []
},
workTypeText: '',
streetList: [],
newArr: [],
multiIds: [],
multiIndex: [0, 0],
newArrC: [],
multiIdsC: [],
multiIndexC: [0, 0],
submitStatus: false,
changeFlag: false,
changeFlagC: false,
workTypeInput: false,
tipData: {}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad() {
this.getDeptTree()
let {
id,
realName,
identityNo,
allDeptIds,
mobile,
villageName,
workUnit,
workType,
workIndustry,
hobbies,
shibei
} = JSON.parse(wx.getStorageSync('userInfo'))
this.setData({
'form.name': realName,
'form.idCard': identityNo,
'form.mobile': mobile,
'form.allDeptIds': allDeptIds.split(','),
'form.workUnit': workUnit,
'form.workType': workType,
'form.workIndustry': workIndustry,
'form.hobbies': hobbies,
'form.shibei': shibei,
'form.homeName': villageName,
})
this.getByIdCardAndName()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
// this.getByLoginUser()
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
},
getDeptTree() {
api.getDeptTree().then(res => {
this.setData({
streetList: res.data[0].children
})
let state = {
arr: [],
arr1: [],
arr2: [],
multiIds: []
}
let stateC = JSON.parse(JSON.stringify(state));
let allDeptIdsStr = this.data.form.allDeptIds.slice(1, 3)
let couplingCommunityStr = this.data.form.couplingCommunity.slice(1, 3)
this.data.streetList.map((v, vk) => {
state.arr1.push(v.label);
if (this.data.multiIndex[0] === vk) {
state.multiIds[0] = v;
}
if (this.data.multiIndexC[0] === vk) {
stateC.multiIds[0] = v;
}
if (allDeptIdsStr[0] == v.value && allDeptIdsStr[0]) {
if (state.arr2.length <= 0) {
v.children.map((c, ck) => {
state.arr2.push(c.label);
if (this.data.multiIndex[1] === ck) {
state.multiIds[1] = c;
}
});
}
} else if (!allDeptIdsStr[0]) {
if (state.arr2.length <= 0) {
v.children.map((c, ck) => {
state.arr2.push(c.label);
if (this.data.multiIndex[1] === ck) {
state.multiIds[1] = c;
}
});
}
}
if (couplingCommunityStr[0] == v.value && couplingCommunityStr[0]) {
if (stateC.arr2.length <= 0) {
v.children.map((c, ck) => {
stateC.arr2.push(c.label);
if (this.data.multiIndexC[1] === ck) {
stateC.multiIds[1] = c;
}
});
}
} else if (!couplingCommunityStr[0]) {
if (stateC.arr2.length <= 0) {
v.children.map((c, ck) => {
stateC.arr2.push(c.label);
if (this.data.multiIndexC[1] === ck) {
stateC.multiIds[1] = c;
}
});
}
}
});
state.arr[0] = state.arr1;
state.arr[1] = state.arr2;
stateC.arr[0] = state.arr1;
stateC.arr[1] = stateC.arr2;
this.setData({
newArr: state.arr,
multiIds: state.multiIds,
newArrC: stateC.arr,
multiIdsC: stateC.multiIds,
});
if (allDeptIdsStr) {
this.data.streetList.forEach((item, index) => {
if (item.value == allDeptIdsStr[0]) {
item.children.forEach((c, i) => {
if (c.value == allDeptIdsStr[1]) {
this.setData({
multiIndex: [index, i],
changeFlag: true
})
}
})
}
})
}
if (couplingCommunityStr) {
this.data.streetList.forEach((item, index) => {
if (item.value == couplingCommunityStr[0]) {
item.children.forEach((c, i) => {
if (c.value == couplingCommunityStr[1]) {
this.setData({
multiIndexC: [index, i],
changeFlagC: true
})
}
})
}
})
}
}).catch(err => {
console.log(err)
})
},
bindMultiPickerChangeC() {
this.setData({
'form.couplingCommunity': ['1175270520603930625', this.data.multiIdsC[0].value, this.data.multiIdsC[1].value, this.data.multiIdsC[1].children[0].value],
changeFlagC: true
})
},
bindMultiPickerColumnChangeC(e) {
let data = {
newArrC: this.data.newArrC,
multiIndexC: this.data.multiIndexC,
multiIdsC: this.data.multiIdsC,
};
data.multiIndexC[e.detail.column] = e.detail.value;
let searchColumn = () => {
let arr1 = [];
this.data.streetList.map((v, vk) => {
if (data.multiIndexC[0] === vk) {
data.multiIdsC[0] = {
...v,
};
v.children.map((c, ck) => {
if (c.label != '武定路社区' && c.label != '陵县路社区') {
arr1.push(c.label);
}
if (data.multiIndexC[1] === ck) {
data.multiIdsC[1] = {
...c,
};
}
});
}
});
data.newArrC[1] = arr1;
};
switch (e.detail.column) {
case 0:
data.multiIndexC[1] = 0;
searchColumn();
break;
case 1:
searchColumn();
break;
}
this.setData(data);
this.setData({
newArrC: this.data.newArrC,
changeFlagC: true
})
},
cancelDlaog() {
this.setData({
workTypeInput: false
})
},
handelClickTwo() {
wx.navigateBack({
delta: 1
})
},
bindWorkTypeTextInput(e) {
this.setData({
workTypeText: e.detail.value
})
},
confirmDlaog(e) {
this.setData({
workTypeInput: false
})
},
getByIdCardAndName() {
let parm = {
idCard: this.data.form.idCard,
name: this.data.form.name
}
api.getByIdCardAndName(parm).then(res => {
if (res.data) {
this.setData({
'form.id': res.data.id,
'form.couplingCommunity': res.data.couplingCommunity,
'form.owners': res.data.owners,
'form.party': res.data.party,
'form.gridStaff': res.data.gridStaff,
'form.volunteer': res.data.volunteer,
})
}
}).catch(err => {
})
},
//确定选择社区
bindMultiPickerChange() {
if (this.data.form.shibei == '0') {
this.setData({
'form.couplingCommunity': ['1175270520603930625', this.data.multiIds[0].value, this.data.multiIds[1].value, this.data.multiIds[1].children[0].value],
changeFlag: true
})
} else {
this.setData({
'form.allDeptIds': ['1175270520603930625', this.data.multiIds[0].value, this.data.multiIds[1].value, this.data.multiIds[1].children[0].value],
changeFlag: true
})
}
},
bindMultiPickerColumnChange(e) {
let data = {
newArr: this.data.newArr,
multiIndex: this.data.multiIndex,
multiIds: this.data.multiIds,
};
data.multiIndex[e.detail.column] = e.detail.value;
let searchColumn = () => {
let arr1 = [];
let arr2 = [];
this.data.streetList.map((v, vk) => {
if (data.multiIndex[0] === vk) {
data.multiIds[0] = {
...v,
};
v.children.map((c, ck) => {
if (c.label != '武定路社区' && c.label != '陵县路社区') {
arr1.push(c.label);
}
if (data.multiIndex[1] === ck) {
data.multiIds[1] = {
...c,
};
}
});
}
});
data.newArr[1] = arr1;
data.newArr[2] = arr2;
};
switch (e.detail.column) {
case 0:
// 每次切换还原初始值
data.multiIndex[1] = 0;
// data.multiIndex[2] = 0;
// 执行函数处理
searchColumn();
break;
case 1:
// data.multiIndex[2] = 0;
searchColumn();
break;
case 2:
searchColumn();
break;
}
this.setData(data);
this.setData({
newArr: this.data.newArr.splice(0, 2),
changeFlag: true
})
},
getByLoginUser() {
api.getByLoginUser().then(res => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
let arr = res.data.options[0].children.filter((item) => (item.children))
this.setData({
streetList: arr
})
})
},
handleClickDisabled(e) {
this.showToast('请前往个人信息中修改')
},
//所属行业
bindWorkIndustryInput(e) {
this.setData({
'form.workIndustry': e.detail.value
})
},
bindHobbiesInput(e) {
this.setData({
'form.hobbies': e.detail.value
})
},
//手机号双向绑定
bindRealMobileInput(e) {
this.showToast('请前往个人信息中修改')
// this.setData({
// 'form.mobile': e.detail.value
// })
// console.log(this.data.form)
},
bindHomeNameInput(e) {
this.setData({
'form.homeName': e.detail.value
})
},
binddeptNameInput(e) {
this.setData({
'form.deptName': e.detail.value
})
},
//取消选择
pickerCancel() {
this.setData({
selectedStatus: false
});
},
//单选框事件
bindFlagPartyChange(e) {
this.setData({
'form.party': e.detail.value
})
},
bindFlagVolunteerChange(e) {
this.setData({
'form.volunteer': e.detail.value
})
},
//
bindFlagGridStaffChange(e) {
this.setData({
'form.gridStaff': e.detail.value
})
},
bindFlagOwnersChange(e) {
this.setData({
'form.owners': e.detail.value
})
},
bindFlagshibeiChange(e) {
this.getDeptTree()
this.setData({
'form.shibei': e.detail.value,
'form.homeName': '',
'form.allDeptIds': [],
'form.couplingCommunity': [],
multiIndex: [0, 0],
multiIndexC: [0, 0],
changeFlag: false,
changeFlagC: false,
})
},
pickerConfirm(e) {
if (e.detail.value == '7') {
this.setData({
workTypeInput: true
})
}
this.setData({
'form.workType': e.detail.label,
selectedStatus: false
});
},
//点击显示下拉
handleCLickShow(e) {
this.setData({
selectedStatus: true,
})
},
showToast(title) {
wx.showToast({
title: title,
icon: 'none',
duration: 3000
})
},
submit() {
const para = {
...this.data.form
}
if (para.shibei == '0') {
para.owners = '',
para.homeName = ''
} else {
para.owners = parseInt(para.owners)
}
if (this.data.workTypeText) {
para.workType = this.data.workTypeText
}
para.party = parseInt(para.party)
para.volunteer = parseInt(para.volunteer)
para.gridStaff = parseInt(para.gridStaff)
para.owners = this.data.form.owners
// wx.showLoading({
// title: "提交中..."
// })
if (para.couplingCommunity.length === 4) {
this.changeFlagC = true
}
if (!this.changeFlagC) {
this.showToast('请前选择单位包联社区名称!')
return
}
let than = this
api.submitReportparty(para).then(res => {
if (res.code == '0') {
this.tipData = res.data;
than.setData({
submitStatus: true,
tipData: res.data
})
}else{
wx.showModal({
title: '提示',
content: res.msg,
complete: (res) => {
if (res.cancel) {
}
if (res.confirm) {
}
}
})
}
}).catch(err => {
console.log(err);
})
},
handleCheckbox(e) {
if (e.detail.value.length != 0) {
this.setData({
look: false
})
} else {
this.setData({
look: true
})
}
},
handleBack() {
wx.navigateBack({
delta: 1
})
},
handleNext() {
this.setData({
informFlag: true
})
},
callLiveTelephone() {
wx.makePhoneCall({
phoneNumber: this.tipData.liveTelephone,
})
},
callLiveMobile() {
wx.makePhoneCall({
phoneNumber: this.tipData.liveMobile,
})
},
callCouplingelephone() {
wx.makePhoneCall({
phoneNumber: this.tipData.couplingelephone,
})
},
callCouplingMobile() {
wx.makePhoneCall({
phoneNumber: this.tipData.couplingMobile,
})
},
naviLiveAddress: function (e) {
let wxMap = wx.createMapContext('map', this);
wxMap.openMapApp({
latitude: parseFloat(this.tipData.liveLatitude),
longitude: parseFloat(this.tipData.liveLongitude),
destination: this.tipData.liveAddress,
complete: res => {
console.log(res);
}
});
},
naviCouplingAddress: function (e) {
let wxMap = wx.createMapContext('map', this);
wxMap.openMapApp({
latitude: parseFloat(this.tipData.couplingLatitude),
longitude: parseFloat(this.tipData.couplingLongitude),
destination: this.tipData.couplingAddress,
complete: res => {
console.log(res);
}
});
}
})