// 上报动态 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() { } })