634 lines
16 KiB
JavaScript
634 lines
16 KiB
JavaScript
// pages/caseReport/caseReport.js
|
||
const app = getApp()
|
||
var bmap = require('../../utils/bmap-wx.min.js');
|
||
var util = require('../../utils/WSCoordinate.js')
|
||
var wxMarkerData = [];
|
||
|
||
Page({
|
||
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
sourceUrl: app.baseUrls.sourceUrl,
|
||
// 事件类型
|
||
typeAll: [],
|
||
typeArray: [],
|
||
typeIdx: 0,
|
||
typeSelected: '',
|
||
typeSelectedCode: '',
|
||
typeSelectedName: '',
|
||
// 事件类型二级
|
||
type2All: [],
|
||
type2Array: ['请选择上级类型'],
|
||
type2Idx: 0,
|
||
type2Selected: '',
|
||
type2SelectedName: '',
|
||
// 区县
|
||
areaAll: [],
|
||
areaArray: [],
|
||
areaIdx: 0,
|
||
areaSelected: '',
|
||
areaSelectedName: '',
|
||
// 乡镇
|
||
villageAll: [],
|
||
villageArray: [],
|
||
villageIdx: 0,
|
||
villageSelected: '',
|
||
villageSelectedName: '',
|
||
// 委员会
|
||
committeeAll: [],
|
||
committeeArray: [],
|
||
committeeIdx: 0,
|
||
committeeSelected: '',
|
||
committeeSelectedName: '',
|
||
recodePath: '',
|
||
recorderManager: wx.getRecorderManager(),
|
||
baseImgUrl: app.baseUrls.baseImgUrl,
|
||
caseUrl: app.baseUrls.caseUrl,
|
||
imageList: [],
|
||
videoId: '',
|
||
audioId: '',
|
||
latitude: '',
|
||
longitude: '',
|
||
reportAddress: '',
|
||
reportContent: '',
|
||
reportInfo: {
|
||
bGId: "",
|
||
casePartsObjId: "123",
|
||
casePartsObjName: "123",
|
||
caseTypeCode1: "",
|
||
caseTypeCode2: "",
|
||
caseTypeName1: "",
|
||
caseTypeName2: "",
|
||
reportAddress: "",
|
||
reportAreaCod: "",
|
||
reportAreaName: "例如北京市 / xx区 / xx街道 / xx",
|
||
reportAudio: "",
|
||
reportContent: "",
|
||
reportLat: "",
|
||
reportLng: "",
|
||
reportPhotos: "",
|
||
reportVideo: ""
|
||
},
|
||
isLoading: false
|
||
},
|
||
// 获取区县
|
||
getArea: function () {
|
||
var self = this
|
||
app.restAjax.get(app.restAjax.path(app.apis.getArea, [app.baseUrls.caseUrl, '110889']), {}, {
|
||
headers: {
|
||
token: app.globalData.token
|
||
}
|
||
}, function (code, data) {
|
||
var arr = ['请选择区县']
|
||
for (let i = 0; i < data.length; i++) {
|
||
arr.push(data[i].areaName)
|
||
}
|
||
self.setData({
|
||
areaAll: data,
|
||
areaArray: arr
|
||
})
|
||
// self.getVillage()
|
||
}, function (code, data) {
|
||
console.log(data)
|
||
})
|
||
},
|
||
// 获取乡镇
|
||
getVillage: function () {
|
||
var self = this
|
||
app.restAjax.get(app.restAjax.path(app.apis.getChildArea, [app.baseUrls.caseUrl, self.data.areaSelected]), {}, {
|
||
headers: {
|
||
token: app.globalData.token
|
||
}
|
||
}, function (code, data) {
|
||
var arr = ['请选择乡镇']
|
||
for (let i = 0; i < data.length; i++) {
|
||
arr.push(data[i].areaName)
|
||
}
|
||
self.setData({
|
||
villageAll: data,
|
||
villageArray: arr
|
||
})
|
||
// self.getCommittee()
|
||
}, function (code, data) {
|
||
console.log(data)
|
||
})
|
||
},
|
||
// 获取委员会
|
||
getCommittee: function () {
|
||
var self = this
|
||
app.restAjax.get(app.restAjax.path(app.apis.getChildArea, [app.baseUrls.caseUrl, self.data.villageSelected]), {}, {
|
||
headers: {
|
||
token: app.globalData.token
|
||
}
|
||
}, function (code, data) {
|
||
var arr = ['请选择委员会']
|
||
for (let i = 0; i < data.length; i++) {
|
||
arr.push(data[i].areaName)
|
||
}
|
||
self.setData({
|
||
committeeAll: data,
|
||
committeeArray: arr
|
||
})
|
||
}, function (code, data) {
|
||
console.log(data)
|
||
})
|
||
},
|
||
// 获取事件类型
|
||
getCaseType: function () {
|
||
var self = this
|
||
app.restAjax.get(app.restAjax.path(app.apis.caseType, [app.baseUrls.caseUrl]), {}, {
|
||
headers: {
|
||
token: app.globalData.token
|
||
}
|
||
}, function (code, data) {
|
||
var arr = ['请选择事件类型']
|
||
for (let i = 0; i < data.length; i++) {
|
||
arr.push(data[i].name)
|
||
}
|
||
self.setData({
|
||
typeAll: data,
|
||
typeArray: arr
|
||
})
|
||
}, function (code, data) {
|
||
console.log(data)
|
||
})
|
||
},
|
||
// 获取事件类型子级
|
||
getCaseTypeChild: function () {
|
||
var self = this
|
||
app.restAjax.get(app.restAjax.path(app.apis.caseTypeChild + '/' + self.data.typeSelected, [app.baseUrls.caseUrl]), {}, {
|
||
headers: {
|
||
token: app.globalData.token
|
||
}
|
||
}, function (code, data) {
|
||
var arr = ['请选择事件类型']
|
||
for (let i = 0; i < data.length; i++) {
|
||
arr.push(data[i].typeName)
|
||
}
|
||
self.setData({
|
||
type2All: data,
|
||
type2Array: arr
|
||
})
|
||
}, function (code, data) {
|
||
console.log(data)
|
||
})
|
||
},
|
||
// 选择事件类型
|
||
bindPickerChange: function (e) {
|
||
var self = this
|
||
if (e.detail.value != 0) {
|
||
this.setData({
|
||
typeIdx: e.detail.value,
|
||
typeSelected: self.data.typeAll[e.detail.value - 1].id,
|
||
typeSelectedCode: self.data.typeAll[e.detail.value - 1].code,
|
||
typeSelectedName: self.data.typeAll[e.detail.value - 1].name
|
||
})
|
||
self.getCaseTypeChild()
|
||
} else {
|
||
this.setData({
|
||
typeIdx: 0,
|
||
typeSelected: '',
|
||
type2Array: []
|
||
})
|
||
}
|
||
},
|
||
// 选择事件类型子级
|
||
bindCaseTypeChange: function (e) {
|
||
var self = this
|
||
if (e.detail.value != 0) {
|
||
this.setData({
|
||
type2Idx: e.detail.value,
|
||
type2Selected: self.data.type2All[e.detail.value - 1].typeCode,
|
||
type2SelectedName: self.data.type2All[e.detail.value - 1].typeName
|
||
})
|
||
} else {
|
||
this.setData({
|
||
type2Idx: 0,
|
||
type2Selected: ''
|
||
})
|
||
}
|
||
},
|
||
// 选择区县
|
||
bindAreaPickerChange: function (e) {
|
||
var self = this
|
||
if (e.detail.value != 0) {
|
||
this.setData({
|
||
areaIdx: e.detail.value,
|
||
areaSelected: self.data.areaAll[e.detail.value - 1].areaCode,
|
||
areaSelectedName: self.data.areaAll[e.detail.value - 1].areaName
|
||
})
|
||
this.getVillage()
|
||
} else {
|
||
this.setData({
|
||
areaIdx: 0,
|
||
areaSelected: '',
|
||
villageArray: [],
|
||
committeeArray: []
|
||
})
|
||
}
|
||
},
|
||
// 选择乡镇
|
||
bindVillagePickerChange: function (e) {
|
||
var self = this
|
||
if (e.detail.value != 0) {
|
||
this.setData({
|
||
villageIdx: e.detail.value,
|
||
villageSelected: self.data.villageAll[e.detail.value - 1].areaId,
|
||
villageSelectedName: self.data.villageAll[e.detail.value - 1].areaName
|
||
})
|
||
this.getCommittee()
|
||
} else {
|
||
this.setData({
|
||
villageIdx: 0,
|
||
villageSelected: '',
|
||
committeeArray: []
|
||
})
|
||
}
|
||
},
|
||
// 选择委员会
|
||
bindCommitteePickerChange: function (e) {
|
||
var self = this
|
||
if (e.detail.value != 0) {
|
||
this.setData({
|
||
committeeIdx: e.detail.value,
|
||
committeeSelected: self.data.committeeAll[e.detail.value - 1].areaId,
|
||
committeeSelectedName: self.data.committeeAll[e.detail.value - 1].areaName
|
||
})
|
||
} else {
|
||
this.setData({
|
||
committeeIdx: 0,
|
||
committeeSelected: ''
|
||
})
|
||
}
|
||
},
|
||
// 录音
|
||
recordVoice: function (e) {
|
||
this.setData({
|
||
startTouch: e.touches[0]
|
||
})
|
||
var options = {
|
||
format: 'mp3'
|
||
}
|
||
this.data.recorderManager.start(options)
|
||
wx.showToast({
|
||
title: "正在录音",
|
||
icon: "none",
|
||
duration: 60000//先定义个60秒,后面可以手动调用wx.hideToast()隐藏
|
||
});
|
||
},
|
||
// 录音结束
|
||
recordEnd: function () {
|
||
var self = this
|
||
this.data.recorderManager.stop()
|
||
this.data.recorderManager.onStop(function (res) {
|
||
var path = res.tempFilePath
|
||
wx.showToast({
|
||
title: '上传中',
|
||
icon: 'loading'
|
||
})
|
||
app.restAjax.file(app.restAjax.path(app.apis.uploadAudio, [app.baseUrls.caseUrl]), path, 'audio', {
|
||
headers: {
|
||
token: app.globalData.token
|
||
}
|
||
}, function (code, data) {
|
||
var id = JSON.parse(data).data
|
||
self.setData({
|
||
audioId: id
|
||
})
|
||
wx.hideToast()
|
||
}, function (code, data) {
|
||
console.log(data)
|
||
})
|
||
})
|
||
var self = this
|
||
wx.hideToast()
|
||
},
|
||
// 播放录音
|
||
playRecord: function () {
|
||
var innerAudioContext = wx.createInnerAudioContext()
|
||
innerAudioContext.src = this.data.caseUrl + this.data.baseImgUrl + this.data.audioId
|
||
innerAudioContext.play()
|
||
},
|
||
// 登录
|
||
doLogin: function () {
|
||
var self = this;
|
||
wx.login({
|
||
success(res) {
|
||
app.restAjax.post(app.restAjax.path(app.apis.login, [app.baseUrls.loginUrl]), {
|
||
jsCode: res.code
|
||
}, null, function (code, data) {
|
||
console.log(data)
|
||
}, function (code, data) {
|
||
app.dialog.msg(data.msg);
|
||
});
|
||
}
|
||
})
|
||
},
|
||
// 上传图片
|
||
uploadImage: function () {
|
||
var self = this
|
||
if (!self.data.isLoading) {
|
||
self.setData({
|
||
isLoading: true
|
||
})
|
||
wx.chooseImage({
|
||
count: 9 - self.data.imageList.length,
|
||
sourceType: ['album', 'camera'],
|
||
success: function (res) {
|
||
wx.showToast({
|
||
title: '上传中',
|
||
icon: 'loading'
|
||
})
|
||
for (let i = 0; i < res.tempFiles.length; i++) {
|
||
var path = res.tempFiles[i].path;
|
||
app.restAjax.file(app.restAjax.path(app.apis.uploadImg, [app.baseUrls.caseUrl]), path, 'image', {
|
||
headers: {
|
||
token: app.globalData.token
|
||
}
|
||
}, function (code, data) {
|
||
if (code == '200') {
|
||
self.setData({
|
||
isLoading: false
|
||
})
|
||
var id = JSON.parse(data).data
|
||
var arr = self.data.imageList
|
||
arr.push(id)
|
||
self.setData({
|
||
imageList: arr
|
||
})
|
||
wx.hideToast()
|
||
}
|
||
}, function (code, data) {
|
||
console.log(data)
|
||
self.setData({
|
||
isLoading: false
|
||
})
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
},
|
||
// 上传视频
|
||
uploadVideo: function () {
|
||
var self = this
|
||
if (!self.data.isLoading) {
|
||
self.setData({
|
||
isLoading: true
|
||
})
|
||
wx.chooseVideo({
|
||
sourceType: ['album','camera'],
|
||
maxDuration: 60,
|
||
camera: 'back',
|
||
success: function (res) {
|
||
wx.showToast({
|
||
title: '上传中',
|
||
icon: 'loading'
|
||
})
|
||
var path = res.tempFilePath
|
||
app.restAjax.file(app.restAjax.path(app.apis.uploadVideo, [app.baseUrls.caseUrl]), path, 'video', {
|
||
headers: {
|
||
token: app.globalData.token
|
||
}
|
||
}, function (code, data) {
|
||
if (code == '200') {
|
||
var id = JSON.parse(data).data
|
||
self.setData({
|
||
videoId: id,
|
||
isLoading: false
|
||
})
|
||
wx.hideToast()
|
||
}
|
||
}, function (code, data) {
|
||
console.log(data)
|
||
self.setData({
|
||
isLoading: false
|
||
})
|
||
})
|
||
}
|
||
})
|
||
}
|
||
},
|
||
// 选择坐标
|
||
chooseLocation: function () {
|
||
var self = this
|
||
wx.chooseLocation({
|
||
success: function (res) {
|
||
console.log(res)
|
||
var result = util.transformFromGCJToWGS(res.latitude, res.longitude);
|
||
console.log(result)
|
||
self.setData({
|
||
longitude: result.longitude,
|
||
latitude: result.latitude
|
||
})
|
||
}
|
||
})
|
||
},
|
||
editInfo: function (e) {
|
||
var type = e.currentTarget.dataset.type
|
||
if (type == 'location') {
|
||
this.setData({
|
||
reportAddress: e.detail.value
|
||
})
|
||
} else {
|
||
this.setData({
|
||
reportContent: e.detail.value
|
||
})
|
||
}
|
||
},
|
||
// 提交上报
|
||
submitReport: function () {
|
||
var self = this
|
||
if (!self.data.isLoading) {
|
||
if (!this.data.typeSelected) {
|
||
wx.showToast({
|
||
title: '请选择事件类型',
|
||
icon: 'error'
|
||
})
|
||
return
|
||
}
|
||
if (!this.data.type2Selected) {
|
||
wx.showToast({
|
||
title: '请选择事件类型',
|
||
icon: 'error'
|
||
})
|
||
return
|
||
}
|
||
// if (!this.data.areaSelected) {
|
||
// wx.showToast({
|
||
// title: '请选择区县',
|
||
// icon: 'error'
|
||
// })
|
||
// return
|
||
// }
|
||
if (!this.data.reportAddress) {
|
||
wx.showToast({
|
||
title: '请输入事发位置',
|
||
icon: 'error'
|
||
})
|
||
return
|
||
}
|
||
if (!this.data.longitude && !this.data.latitude) {
|
||
wx.showToast({
|
||
title: '请选择事发坐标',
|
||
icon: 'error'
|
||
})
|
||
return
|
||
}
|
||
if (!this.data.reportContent) {
|
||
wx.showToast({
|
||
title: '请输入事件说明',
|
||
icon: 'error'
|
||
})
|
||
return
|
||
}
|
||
var areaName = '内蒙古自治区 / 乌兰察布市 / ' + wx.getStorageSync('curCommunityName')
|
||
// if (self.data.villageIdx != 0) {
|
||
// areaName += ' / ' + self.data.villageSelectedName
|
||
// }
|
||
// if (self.data.committeeIdx != 0) {
|
||
// areaName += ' / ' + self.data.committeeSelectedName
|
||
// }
|
||
var photo
|
||
for (let i = 0; i < self.data.imageList.length; i++) {
|
||
if (i == 0) {
|
||
photo = self.data.imageList[i]
|
||
} else {
|
||
photo += ',' + self.data.imageList[i]
|
||
}
|
||
}
|
||
var area = wx.getStorageSync('areaCode')
|
||
// if (self.data.committeeAll.length > 0 && self.data.committeeIdx != 0) {
|
||
// area = self.data.committeeSelected
|
||
// } else if (self.data.villageAll.length > 0 && self.data.villageIdx != 0) {
|
||
// area = self.data.villageSelected
|
||
// } else {
|
||
// area = self.data.areaSelected
|
||
// }
|
||
var info = {
|
||
bGId: "",
|
||
casePartsObjId: "",
|
||
casePartsObjName: "",
|
||
caseTypeCode1: self.data.typeSelectedCode,
|
||
caseTypeCode2: self.data.type2Selected,
|
||
caseTypeName1: self.data.typeSelectedName,
|
||
caseTypeName2: self.data.type2SelectedName,
|
||
reportAddress: self.data.reportAddress,
|
||
reportAreaCode: area,
|
||
isSelf: '0',
|
||
reportAreaName: areaName,
|
||
reportAudio: self.data.audioId,
|
||
reportContent: self.data.reportContent,
|
||
reportLat: self.data.latitude,
|
||
reportLng: self.data.longitude,
|
||
reportPhotos: photo,
|
||
reportVideo: self.data.videoId,
|
||
gridMiniId: wx.getStorageSync('gridMiniId')
|
||
}
|
||
self.setData({
|
||
isLoading: true
|
||
})
|
||
app.restAjax.post(app.restAjax.path(app.apis.submitReport, [app.baseUrls.requestUrl]), info, {
|
||
headers: {
|
||
token: 'cVJWWXQ1UWpQWTQ1TDZMbEVtTmxiMlJVNkdvTzUwSTNHYzZaK3VTZmF0RXNITnQ3RXUxZ2F6eVU4dGpZWjFqWm5Pc0Fqd2l6MzAvMlZSckZaTkZITFZmVXk4YVNWVVErcEJ5SGZzVFRGeGFEenBMaDhZU0FFc1hnZ2RGc2hLUWZvMTJtWHRkcENmWThROTZFL2d5WDJxc0RBY2RzUkUzUzIyNlBmblFhUGdPZWdFY3JOeU5mME5veEk1aVU4a1hNMFNlaW1BemFwRjhRbXVRUUt1MTlObEViSTlhMUVoSEJDZ2ZFVTFYZlJNNGFoMTVOTXgyYytBdE96SUVmWmpYRQ=='
|
||
}
|
||
}, function (code, data) {
|
||
if (code == '200') {
|
||
wx.showToast({
|
||
title: '上报成功',
|
||
icon: 'success'
|
||
})
|
||
|
||
setTimeout(function () {
|
||
self.setData({
|
||
isLoading: false
|
||
})
|
||
wx.navigateBack({
|
||
delta: 1,
|
||
})
|
||
}, 1500)
|
||
}
|
||
}, function (code, data) {
|
||
console.log(data)
|
||
self.setData({
|
||
isLoading: false
|
||
})
|
||
})
|
||
}
|
||
},
|
||
// 删除附件
|
||
deleteSource: function (e) {
|
||
var self = this
|
||
var type = e.currentTarget.dataset.type
|
||
if (type == 'video') {
|
||
self.setData({
|
||
videoId: ''
|
||
})
|
||
} else {
|
||
var cur = e.currentTarget.dataset.cur
|
||
self.data.imageList.splice(cur, 1)
|
||
self.setData({
|
||
imageList: self.data.imageList
|
||
})
|
||
}
|
||
},
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad: function (options) {
|
||
// this.doLogin()
|
||
this.getCaseType()
|
||
this.getArea()
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
onShow: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面隐藏
|
||
*/
|
||
onHide: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面上拉触底事件的处理函数
|
||
*/
|
||
onReachBottom: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage: function () {
|
||
|
||
}
|
||
}) |