720 lines
17 KiB
JavaScript
720 lines
17 KiB
JavaScript
// 上报动态
|
||
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() {
|
||
|
||
}
|
||
}) |