daofu-applet/pages/emergency/s-b/escalation/index.js
2024-06-19 15:42:55 +08:00

720 lines
17 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 上报动态
import Utils from "../../../../utils/util"
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
topBarH: app.globalData.CustomBar,
baseUrl: app.FILE_SERVER_URL,
dateFilter: Utils.formatTime(new Date(), '-'),
showTypePop: false,
showAdvicePop: false,
TypeData: [],
files: [],
userInfo:{},
othplanList:[],
areamultiArray:[],
areamultiIndex: [0, 0, 0],
areamultiIds: [],
areanewArr: [],
area:[],
areatate : false,
multiArray: [],
multiIndex: [0, 0, 0],
multiIds: [],
newArr: [],
organization:[],
organizationtate : false,
areashowTypePop:false,
postData:{
organization:'',
organizationName:''
},
//筛选树结构
areaCode:'',
areaPathName:'',
unitTreepros: {
key: 'performclassname',
val: 'listperformid'
},
unitTreelist: [],
},
/**
* 显示/关闭弹窗
*/
popModal: function (params) {
const type = params.currentTarget.dataset.type;
this.data[type] = !this.data[type];
this.setData(this.data)
},
/**
* 事件类型
*/
typeChange: function (params) {
const index = params.currentTarget.dataset.index;
console.log(params,'params===>');
this.data.postData.emerTypeId = params.currentTarget.dataset.item.emerTypeId;
this.data.postData.type = index + 1;
this.data.showTypePop = false;
this.setData(this.data);
},
/**
* 输入框赋值
*/
inputContent: function (e) {
const name = e.currentTarget.dataset.name;
this.data.postData[name] = e.detail.value;
this.setData(this.data);
},
/**
* 发布
*/
push: function () {
if (!this.data.postData.title) {
wx.showToast({
title: '请输入标题',
icon: 'none'
})
return
}
if (!this.data.postData.createTime) {
wx.showToast({
title: '请选择时间',
icon: 'none'
})
return
}
if (!this.data.postData.emerTypeId) {
wx.showToast({
title: '请选择事件类型',
icon: 'none'
})
return
}
if (!this.data.postData.organization) {
wx.showToast({
title: '请选择所属组织',
icon: 'none'
})
return
}
if (this.data.areatate==false) {
wx.showToast({
title: '请选择地区',
icon: 'none'
})
return
}
if (!this.data.postData.addressName) {
wx.showToast({
title: '请选择详细地址',
icon: 'none'
})
return
}
if (!this.data.postData.content) {
wx.showToast({
title: '请输入事件描述',
icon: 'none'
})
return
}
let data = {
...this.data.postData,
emerEventId:this.data.uuid,
userId:this.data.userInfo.userId,
address:this.data.postData.addressName,
areaCode:'',
organization:'',
};
// data.listPerformId = this.data.organization?this.data.multiArray[0].children[0].children[this.data.organization[2]].listperformid:'';
data.areaCode = this.data.areamultiArray[0].children[this.data.area[1]].orgcode?this.data.areamultiArray[0].children[this.data.area[1]].orgcode:'';
data.listPerformId=this.data.postData.organization;
console.log(data,'data===>');
app.axios("POST", "app", `/emerEvent/saveEmerEvent`,data).then(res => {
console.log(res,'res===>');
if (res.code == 1) {
wx.showToast({
title: '发布成功',
icon: 'none'
})
setTimeout(() => {
wx.navigateBack()
}, 1500);
} else {
wx.showToast({
title: res.message,
icon: 'none'
})
}
})
},
getweidu:function (params) {
wx.getLocation({
type: 'gcj02', //返回可以用于wx.openLocation的经纬度
success (res) {
const latitude = res.latitude
const longitude = res.longitude
wx.openLocation({
latitude,
longitude,
scale: 18
})
}
})
},
/**
* 选择文件
*/
chooseFile: function () {
wx.chooseImage({
count: 1,
type: 'all',
success: (res) => {
const tempFilePaths = res.tempFiles;
const path = tempFilePaths[0].path;
this.postImg(path)
}
})
},
/**
* 上传图片
*/
postImg(filePath) {
wx.showLoading({
title: '文件上传中...',
})
app.uploadFile(this.data.uuid, app.FileType.eventAcs, filePath).then(res => {
let resdata = JSON.parse(res);
console.log(resdata,'resdata===>');
// if (resdata.code == 1) {
console.log(resdata,'res==>');
this.getFiles();
wx.hideLoading();
// }
})
},
/**
* 获取图片
*/
getFiles: function () {
console.log(1111);
app.axios("GET", "common", "/upload/getFile", {
otcid: this.data.postData.emerEventId || this.data.uuid,
otctype: app.FileType.eventAcs
}).then(res => {
if (res.code == 1) {
console.log(res,'res===>');
this.data.files = res.data;
this.setData(this.data)
}
})
},
/**
* 删除图片
* @param {*} params
*/
deleteFile: function (e) {
var id = e.currentTarget.dataset.id;
wx.showModal({
title: '删除提示',
content: '是否要删除该附件?',
success: (res) => {
if (res.confirm) {
app.axios("GET", 'common', "/upload/delFile", {
documentId: id,
}).then(res => {
if (res.code == 1) {
this.getFiles();
}
})
}
}
})
},
/**
* 预览文件
*/
filePre: function (params) {
const url = params.currentTarget.dataset.url;
const imgs = [];
this.data.files.forEach(item => {
imgs.push(this.data.baseUrl + item.filepath)
})
wx.previewImage({
urls: imgs,
current: this.data.baseUrl + url
})
},
/**
* 时间
*/
bindDateChange: function (params) {
this.data.postData.createTime = params.detail.value;
this.setData(this.data)
},
/**
* 选择位置
*/
// chooseAddress: function (params) {
// wx.chooseLocation({
// success: (res) => {
// this.data.postData.lat = res.latitude;
// this.data.postData.lng = res.longitude;
// this.data.postData.address = res.address;
// this.setData(this.data)
// }
// })
// },
/**
* 查询所有应急上报事件类型
*/
getEmerEventType: function () {
app.axios("GET", "app", "/emerEvent/emerEventType").then(res => {
if (res.code == 1) {
console.log(res);
this.data.TypeData = res.data;
this.setData(this.data);
}
})
},
/**
* 查看应急上报事件详情
*/
getEmerEventDetail: function (id) {
app.axios("GET", "app", `/emerEvent/emerEventDetail/${id}`).then(res => {
if (res.code == 1) {
console.log(res.data,'res=====>');
this.data.postData = res.data;
this.data.postData.emerTypeName;
this.data.addressName = res.data.address;
this.data.postData.addressName = res.data.address;
// this.data.postData.areaPathName = res.data.performclassname;
this.data.postData.organizationName = res.data.performclassname;
this.data.othplanList = res.data.othplanList;
for (let index = 0; index < this.data.TypeData.length; index++) {
if (this.data.TypeData[index].emerTypeName == res.data.emerTypeName) {
this.data.postData.type = index+1;
}
};
this.setData(this.data);
this.getFiles();
}
})
},
// 地区获取
getAreaTree: function () {
app.axios("GET", "common", "/sysorg/areaTree").then(res => {
if (res.code == 1) {
console.log(res);
this.data.areamultiArray = res.data;
this.data.areamultiArray[0].children.forEach(item => {
item.children = []
});
this.setData(this.data);
let state = {
arr: [],
arr1: [],
arr2: [],
arr3: [],
areamultiIds: []
}
this.data.areamultiArray.map((v, vk) => {
state.arr1.push(v.orgname);
if (this.data.areamultiIndex[0] === vk) {
state.areamultiIds[0] = v;
}
if (state.arr2.length <= 0) {
v.children.map((c, ck) => {
state.arr2.push(c.orgname);
if (this.data.areamultiIndex[1] === ck) {
state.areamultiIds[1] = c;
}
if (state.arr3.length <= 0) {
c.children.map((t, tk) => {
state.arr3.push(t.orgname);
if (this.data.areamultiIndex[2] === tk) {
state.areamultiIds[2] = t;
}
});
}
});
}
});
state.arr[0] = state.arr1;
state.arr[1] = state.arr2;
state.arr[2] = state.arr3;
this.setData({
areanewArr: state.arr,
areamultiIds: state.areamultiIds,
});
}
})
},
// 级联选择地区
areabindMultiPickerChange(e) {
console.log(this.data.areamultiIds,'级联选择地区==>');
this.setData({
area: e.detail.value,
areatate:true
});
},
areabindMultiPickerColumnChange(e) {
let data = {
areanewArr: this.data.areanewArr,
areamultiIndex: this.data.areamultiIndex,
areamultiIds: this.data.areamultiIds,
};
data.areamultiIndex[e.detail.column] = e.detail.value;
let searchColumn = () => {
let arr1 = [];
let arr2 = [];
this.data.areamultiArray.map((v, vk) => {
if (data.areamultiIndex[0] === vk) {
data.areamultiIds[0] = {
...v,
};
v.children.map((c, ck) => {
arr1.push(c.orgname);
if (data.areamultiIndex[1] === ck) {
data.areamultiIds[1] = {
...c,
};
c.children.map((t, vt) => {
arr2.push(t.orgname);
if (data.areamultiIndex[2] === vt) {
data.areamultiIds[2] = {
...t,
};
}
});
}
});
}
});
data.areanewArr[1] = arr1;
data.areanewArr[2] = arr2;
};
switch (e.detail.column) {
case 0:
// 每次切换还原初始值
data.areamultiIndex[1] = 0;
data.areamultiIndex[2] = 0;
// 执行函数处理
searchColumn();
break;
case 1:
data.areamultiIndex[2] = 0;
searchColumn();
break;
}
this.setData(data);
},
// 所属组织获取
getAreaTree1: function () {
app.axios("GET", "app", "/Sys/getListperformTree").then(res => {
if (res.code == 1) {
console.log(res);
this.data.multiArray = res.data
this.setData(this.data);
let state = {
arr: [],
arr1: [],
arr2: [],
arr3: [],
multiIds: []
}
this.data.multiArray.map((v, vk) => {
state.arr1.push(v.performclassname);
if (this.data.multiIndex[0] === vk) {
state.multiIds[0] = v;
}
if (state.arr2.length <= 0) {
v.children.map((c, ck) => {
state.arr2.push(c.performclassname);
if (this.data.multiIndex[1] === ck) {
state.multiIds[1] = c;
}
if (state.arr3.length <= 0) {
c.children.map((t, tk) => {
state.arr3.push(t.performclassname);
if (this.data.multiIndex[2] === tk) {
state.multiIds[2] = t;
}
});
}
});
}
});
state.arr[0] = state.arr1;
state.arr[1] = state.arr2;
state.arr[2] = state.arr3;
this.setData({
newArr: state.arr,
multiIds: state.multiIds,
});
}
})
},
bindMultiPickerChange(e) {
console.log(e,'e==>');
this.setData({
organization: e.detail.value,
organizationtate:true
});
console.log(this.data.organization,'e==>');
console.log(this.data.multiIds);
},
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.multiArray.map((v, vk) => {
if (data.multiIndex[0] === vk) {
data.multiIds[0] = {
...v,
};
v.children.map((c, ck) => {
arr1.push(c.performclassname);
if (data.multiIndex[1] === ck) {
data.multiIds[1] = {
...c,
};
c.children.map((t, vt) => {
arr2.push(t.performclassname);
if (data.multiIndex[2] === vt) {
data.multiIds[2] = {
...t,
};
}
});
}
});
}
});
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;
}
this.setData(data);
},
//地点选择/经纬度
toShowAddress() {
let that = this;
wx.chooseLocation({
success(res) {
that.data.postData.lat = res.latitude;
that.data.postData.lon = res.longitude;
that.data.postData.addressName = res.name;
that.setData(that.data);
},
})
},
/**
* 显示/关闭弹窗筛选
*/
areapopModal: function (params) {
console.log(params,'params===>');
const type = params.currentTarget.dataset.type;
this.data[type] = !this.data[type];
this.setData(this.data)
},
/**
* 获取地区
*/
getAreaTreetext: function () {
app.axios("GET", "app", "/Sys/getListperformTree").then(res => {
if (res.code == 1) {
this.data.unitTreelist = res.data;
console.log(res.data,'res====>');
this.setData(this.data)
}
})
},
handleselectunit(e) {
// e.detail 选中的id数组
this.data.page = 1;
this.data.list = [];
let postData = this.data.postData; // 获取当前的 postData 对象
console.log(postData,'postData==>');
postData.organization = e.detail.item.listperformid;
postData.organizationName = e.detail.item.performclassname;
this.setData({
postData: postData,
areashowTypePop:false
}); // 设置更新后的 postData 对象
},
// 应急上报下载文件
download :function (item) {
console.log(item,'item====>');
console.log(this.data.baseUrl+item.currentTarget.dataset.item.filePath);
//触发点击事件使用uni.showLoading()展示交互提示
wx.showLoading({
title: '正在下载……'
});
// 使用wx.downloadFile()开始下载文件
wx.downloadFile({
url: this.data.baseUrl+item.currentTarget.dataset.item.filePath, //url:请求的完整地址
success: function(res) {
wx.hideLoading() //调用结束,隐藏加载框
const filePath = res.tempFilePath //临时文件路径 (本地路径)
if (res.statusCode == 200) {
//判断后端数据接收成功时提示下载完成
wx.showToast({
icon: 'none',
mask: true,
title: '下载完成,正在打开文件...',
duration: 2000,
});
}
//设置定时器2秒后打开文件
setTimeout(() => {
//调用wx.openDocument()打开刚刚下载的文件
wx.openDocument({
filePath: filePath, //上一步存储的临时文件路径 (本地路径)
fileType: item.type, //要打开的文件类型,
showMenu: true, //是否显示右上角菜单
//下面的测试用了,写不写无所谓
success: function(res) {
},
complete: function(msg) {
}
})
}, 2000)
},
//文件下载失败会走这里具体可以把err打印出来看看有什么错误
fail: (err) => {
uni.showToast({
icon: 'none',
mask: true,
title: '文件下载失败',
});
},
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.data.uuid = Utils.uuid();
this.data.userInfo = app.globalData.userInfo;
this.setData(this.data);
this.getEmerEventType();
this.getAreaTree();
this.getAreaTree1();
this.getAreaTreetext();
if (options.emerEventId) {
this.getEmerEventDetail(options.emerEventId)
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})