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

381 lines
9.3 KiB

import {
saveTripInfo,
getTripInfoDetail,
deleteTripById,
getAreaInfo,
} from '../../utils/tripReport.js'
Page({
data: {
lock: false, // 防止重复点击
id: '', // 活动id
name: '', // 姓名
phone: '', //手机号
card: '', //身份证号
visibleNowAddress: false, //级联
nowAddressValue: [], // 现居地址ip
nowAddress: '', //现居地址
detailAddress: '', //详细地址
comeFromAddress: '', //来自地址
comeFromAddressValue: [],
visibleComeFromAddress: false,
localTime: '', //来到本地时间
visibleLocalTime: '',
localTimeValue: [],
backTime: '', //返回时间
backTimeValue: [],
visibleBackTime: false,
actContent: '', // 备注信息
type: '', // 编辑 还是 查看
options1: [
// {
// label: '北京',
// value: '110000',
// children: [
// {
// label: '北京市',
// value: '110000',
// children: [
// {
// label: '东城区',
// value: '110101',
// },
// ],
// },
// ],
// },
// {
// label: '上海',
// value: '310000',
// children: [
// {
// label: '上海市',
// value: '310000',
// children: [
// {
// label: '黄浦区',
// value: '310101',
// },
// ],
// },
// ],
// },
],
defaultFieldNames: {
value: 'id',
label: 'shortName',
},
newOptions: [],
pid: 0,
},
onLoad: function (options) {
this.getNowTime()
this.getAreaInfo()
if (options.id) {
this.setData({
id: options.id,
type: options.type,
})
}
if (this.data.type == 'look') {
this.getTripInfoDetail()
}
},
getNowTime() {
const date = new Date()
const year = date.getFullYear()
const month = date.getMonth()
const day = date.getDate()
this.setData({
localTimeValue: [year, month, day],
backTimeValue: [year, month, day],
})
},
// 获取类别
getAreaInfo() {
getAreaInfo(this.data.pid).then((res) => {
res.data.forEach((item) => {
item.label = item.shortName
item.value = item.id
item.isLeaf = false
})
if (this.data.pid == 0) {
this.setData({
options1: res.data,
})
} else {
if (res.data.length === 0) {
wx.hideLoading()
this.setData({
visibleNowAddress: false,
visibleComeFromAddress: false,
})
return
}
// 如果不是第一层级,要往下加children
let arr = this.recursionMethod(
this.data.options1,
this.data.pid,
res.data
)
this.setData({
options1: arr,
})
console.log('options1---', this.data.options1)
}
})
},
recursionMethod(arr, pid, children) {
arr.forEach((item) => {
if (item.children) {
console.log('掉children', item.children, this.data.pid, children)
this.recursionMethod(item.children, this.data.pid, children)
} else {
if (item.id === pid) {
console.log('值相等')
item.children = children
wx.hideLoading()
}
}
})
return arr
},
// 动态加载级联选择器
onLoadOptions(e) {
console.log('onLoadOptions', e.detail)
const { value } = e.detail
wx.showLoading({ mask: true, title: "加载中..." })
this.setData({
pid: value[value.length - 1],
})
this.getAreaInfo()
},
onLoadComeAddress(e) {
const { value } = e.detail
wx.showLoading({ mask: true, title: "加载中..." })
this.setData({
pid: value[value.length - 1],
})
this.getAreaInfo()
},
// 获取申请详情
getTripInfoDetail() {
let _this = this
getTripInfoDetail(this.data.id).then((res) => {
if (res.code == 0 && res.msg == 'success') {
if (res.data) {
this.setData({
id: res.data.id,
name: res.data.name,
phone: res.data.mobile,
card: res.data.idCard,
nowAddress: res.data.nowAddressName,
detailAddress: res.data.nowAddressDetail,
comeFromAddress: res.data.comeAddressName,
localTime: res.data.comeDate,
backTime: res.data.backDate,
actContent: res.data.note,
})
}
console.log('详情', res.data.backDate)
}
})
},
// 删除
deleteTripById() {
wx.showModal({
title: '提示',
content: '确定要删除吗',
success: (res) => {
if (res.confirm) {
const params = {
id: this.data.id,
}
deleteTripById(params).then((res) => {
wx.showToast({
title: '删除成功',
icon: 'success',
duration: 2000,
success: () => {
wx.navigateBack({
delta: 1,
})
},
})
})
} else if (res.cancel) {
console.log('用户点击取消')
}
},
})
},
confirmButton() {
wx.navigateBack({
delta: 1,
})
},
// 提交申请
onSubmitApply() {
if (this.data.lock) {
return
}
if (!this.data.name.trim('')) {
this.showToast('姓名不能为空')
return
}
if (!this.data.phone.trim('')) {
this.showToast('手机号不能为空')
return
}
if (!this.data.card.trim('')) {
this.showToast('身份证号不能为空')
return
}
if (this.data.nowAddressValue.length === 0) {
this.showToast('现居住地不能为空')
return
}
if (!this.data.detailAddress.trim('')) {
this.showToast('详细地址不能为空')
return
}
if (this.data.comeFromAddressValue.length === 0) {
this.showToast('来自地区不能为空')
return
}
if (this.data.localTime.length === 0) {
this.showToast('来到本地时间不能为空')
return
}
// this.setData({
// nowAddress: this.data.nowAddress.split('-'),
// comeFromAddress: this.data.comeFromAddress.split('-'),
// })
let params = {
name: this.data.name.trim(''),
mobile: this.data.phone.trim(''),
idCard: this.data.card.trim(''),
nowAddressCode: this.data.nowAddressValue.join(','),
nowAddressName: this.data.nowAddress,
nowAddressDetail: this.data.detailAddress,
comeAddressCode: this.data.comeFromAddressValue.join(','),
comeAddressName: this.data.comeFromAddress,
comeDate: this.data.localTime,
backDate: this.data.backTime,
note: this.data.actContent.trim(''),
}
const _this = this
wx.showModal({
title: '提示',
content: '是否要上报行程',
success(res) {
if (res.confirm) {
_this.data.lock = true
wx.showLoading({
title: '提交中...'
})
saveTripInfo(params)
.then((res) => {
if (res.code == 0 && res.msg == 'success') {
_this.showToast('提交成功')
setTimeout(() => {
_this.data.lock = false
wx.switchTab({
url: '/pages/index/index',
})
}, 1000)
} else {
_this.data.lock = false
}
}).catch(() => {
_this.data.lock = false
})
} else if (res.cancel) {
console.log('用户点击取消')
_this.data.lock = false
}
},
fail() {
_this.data.lock = false
}
})
},
onInputValue(e) {
let code = e.currentTarget.dataset.code
this.setData({
[code]: e.detail.value,
})
},
// 简化提示
showToast(title, time = 2500) {
wx.showToast({
title: title || '请耐心等待...',
icon: 'none',
duration: time,
})
},
toApplyList() {
wx.navigateTo({
url: '/subpages/extend/pages/moreList/moreList',
})
},
// 现地址
onOpenNowAddress() {
this.setData({
visibleNowAddress: true,
})
},
onCloseNowAddress() {
this.setData({ visibleNowAddress: false })
},
onChangeAdress(e) {
this.setData({
nowAddressValue: e.detail.value,
nowAddress: e.detail.options.map((n) => n.label).join('-'),
})
},
// 来自地址
onOpenComeFromAddress() {
this.setData({
visibleComeFromAddress: true,
})
},
onCloseComeFromAddress() {
this.setData({ visibleComeFromAddress: false })
},
onChangeComeFromAddress(e) {
this.setData({
comeFromAddressValue: e.detail.value,
comeFromAddress: e.detail.options.map((n) => n.label).join('-'),
})
},
// 来到时间
onOpenLocalTime() {
this.setData({
visibleLocalTime: true,
})
},
onConfirm(e) {
const { name, label, visible } = e.currentTarget.dataset
this.setData({
[name]: e.detail.value,
[label]: e.detail.label,
[visible]: false,
})
},
onCancelTime(e) {
const { visible } = e.currentTarget.dataset
this.setData({
[visible]: false,
})
},
onOpenBackTime() {
this.setData({
visibleBackTime: true,
})
},
})