// miniprogram/pages/addDevice/addDevice.js var app = getApp(); Page({ /** * 页面的初始数据 */ data: { pageName: '', showMask: false, today: new Date().getTime(), longitude: '', latitude: '', option1: [], personoption1: [], projectoption: [], devcode: "", deviceMode: "", installtimeFmt: '', show: false, form: { devcode: "", wellcode: "", welltype: "", welldepth: "", installheigt: "", installperson: "", installtimeFmt: "", photopath: "", factory: "", workmsg: "", position: "", description: "", longitude: "", latitude: "", longitude84: "", latitude84: "", devicetype: "", project: "", area: "", street: "", wellname: "", photopath1: '', photopath2: '', photopath3: '' }, fileList: [], detail: "", markers: [{ id: 100, // iconPath: "../../images/point.png", latitude: '', longitude: '', // label:'1', width: 25, height: 35 }], }, onDisplay() { this.setData({ show: true }); }, onClose() { this.setData({ show: false }); }, formatDate() { var date = new Date(); // return `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`; var seperator1 = "-"; var month = date.getMonth() + 1; var strDate = date.getDate(); var hour = date.getHours() var minute = date.getMinutes() var second = date.getSeconds() month = month > 9 ? month : "0" + month; strDate = strDate > 9 ? strDate : "0" + strDate; hour = hour > 9 ? hour : "0" + hour; minute = minute > 9 ? minute : "0" + minute; second = second > 9 ? second : "0" + second; var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate + " " + hour + ":" + minute + ":" + second; return currentdate; }, onConfirm(event) { var installtime = 'form.installtimeFmt'; this.setData({ show: false, installtimeFmt: this.formatDate(event.detail), [installtime]: this.formatDate(event.detail), }); }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var _this = this; _this.setData({ 'markers[0].latitude': Number(wx.getStorageSync('resultObject').latitude) , 'markers[0].longitude': Number(wx.getStorageSync('resultObject').longitude), // 'markers[0].label':'10', 'markers[0].width': 18, 'markers[0].id':1, 'markers[0].height': 30, latitude:Number(wx.getStorageSync('resultObject').latitude), longitude:Number(wx.getStorageSync('resultObject').longitude) }) //获取人员下拉列表 // wx.request({ // method: "POST", // url: app.globalData.httpsUrl + "deviceType/getUser", // data:{ // tips:'repair' // }, // header: { // 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' // }, // success(res) { // if (res.data.code == 200) { // var users = res.data.data // var personArr = []; // for (var i = 0; i < users.length; i++) { // var person = { // text: users[i].name, // value: users[i].name // }; // personArr.push(person); // } // _this.setData({ // personoption1: personArr // }) // } // } // }) //获取项目下拉列表 wx.request({ method: "POST", url: app.globalData.httpsUrl + "project/getProject", header: { 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' }, success(res) { if (res.data.code == 200) { var projectList = res.data.data var projectArr = []; for (var i = 0; i < projectList.length; i++) { var project = { text: projectList[i].projectName, value: projectList[i].projectName }; projectArr.push(project); } _this.setData({ projectoption: projectArr }) } } }) //获取井类型下拉列表 wx.request({ method: "POST", url: app.globalData.httpsUrl + "appDeviceAdd/getWellTypeList", header: { 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' }, success(res){ if (res.data) { var welltype = res.data var welltypeArr = []; for (var i = 0; i < welltype.length; i++) { var type = { text: welltype[i].text, value: welltype[i].value }; welltypeArr.push(type); } _this.setData({ option1: welltypeArr }) } } }) //跳转时带入参数返回哪页 if (options.pageName) { this.setData({ pageName: options.pageName }) } //跳转时带入参数设备的安装信息 if (wx.getStorageSync('resultObject')) { var formObject = wx.getStorageSync('resultObject') _this.setData({ form: formObject, detail: formObject }) _this.setData({ ['form.installperson']: app.globalData.userName, ['form.installtimeFmt']: "", ['form.workmsg']: "", ['form.description']: "" }) const { fileList = [] } = _this.data; if (formObject.photopath1 != "") { var file1 = { url: app.globalData.httpsUrl + "static/" + formObject.photopath1 } fileList.push(file1) } if (formObject.photopath2 != "") { var file2 = { url: app.globalData.httpsUrl + "static/" + formObject.photopath2 } fileList.push(file2) } if (formObject.photopath3 != "") { var file3 = { url: app.globalData.httpsUrl + "static/" + formObject.photopath3 } fileList.push(file3) } _this.setData({ fileList }); } var installtime = 'form.installtimeFmt'; var dateNow = this.formatDate(); this.setData({ installtimeFmt: dateNow, [installtime]: dateNow, }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { wx.removeStorageSync('resultObject') }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, /** * 校验只要是数字(包含正负整数,0以及正负浮点数)就返回true **/ isNumber: function (val) { var regPos = /^[0-9]*$/; //非负浮点数 var regNeg = /^(-?\d+)(\.\d+)?$/; //负浮点数 if (regPos.test(val) || regNeg.test(val)) { return false; } else { return true; } }, formValidate() { if (this.data.form.devcode == "") { wx.showToast({ icon: 'none', title: '设备编号不能为空!', }) return false } if (this.data.form.wellcode == "") { wx.showToast({ icon: 'none', title: '井编号不能为空!', }) return false } if (this.data.form.devicetype == "") { wx.showToast({ icon: 'none', title: '设备类型不能为空!', }) return false } if (this.data.form.longitude == "" || this.data.form.latitude == "") { wx.showToast({ icon: 'none', title: '经纬度不能为空!', }) return false } if (this.data.form.position == "") { wx.showToast({ icon: 'none', title: '位置描述不能为空!', }) return false } if (this.data.form.installperson == null || this.data.form.installperson == '') { wx.showToast({ icon: 'none', title: '运维人员不能为空!', }) return false } if (this.data.form.project == "") { wx.showToast({ icon: 'none', title: '所属项目不能为空!', }) return false } if (this.data.form.welldepth != null) { if (this.isNumber(this.data.form.welldepth)) { wx.showToast({ icon: 'none', title: '井深必须为数值!', }) return false } } if (this.data.form.installheigt != null) { if (this.isNumber(this.data.form.installheigt)) { wx.showToast({ icon: 'none', title: '到井口距离必须为数值!', }) return false } } return true; }, //获取与上次修改的信息 changeMsg: function () { var formNew = this.data.form; console.log(this.data.detail) var formOld = JSON.parse(this.data.detail); var descpNew = ""; if (formNew.devcode != formOld.devcode) { descpNew += "修改设备编号,原值:" + formOld.devcode + ",新值:" + formNew.devcode + ";" } if (formNew.devicetype != formOld.devicetype) { descpNew += "修改设备类型,原值:" + formOld.devicetype + ",新值:" + formNew.devicetype + ";" } if (formNew.area != formOld.area) { descpNew += "修改区,原值:" + formOld.area + ",新值:" + formNew.area + ";" } if (formNew.street != formOld.street) { descpNew += "修改街道,原值:" + formOld.street + ",新值:" + formNew.street + ";" } if (formNew.wellname != formOld.wellname) { descpNew += "修改井名称,原值:" + formOld.wellname + ",新值:" + formNew.wellname + ";" } if (formNew.factory != formOld.factory) { descpNew += "修改权属单位,原值:" + formOld.factory + ",新值:" + formNew.factory + ";" } if (formNew.installheigt != formOld.installheigt) { descpNew += "修改井口距离,原值:" + formOld.installheigt + ",新值:" + formNew.installheigt + ";" } if (formNew.installperson != formOld.installperson) { descpNew += "修改运维人员,原值:" + formOld.installperson + ",新值:" + formNew.installperson + ";" } if (formNew.latitude != formOld.latitude) { descpNew += "修改纬度,原值:" + formOld.latitude + ",新值:" + formNew.latitude + ";" } if (formNew.longitude != formOld.longitude) { descpNew += "修改经度,原值:" + formOld.longitude + ",新值:" + formNew.longitude + ";" } if (formNew.position != formOld.position) { descpNew += "修改位置描述,原值:" + formOld.position + ",新值:" + formNew.position + ";" } if (formNew.wellcode != formOld.wellcode) { descpNew += "修改井编号,原值:" + formOld.wellcode + ",新值:" + formNew.wellcode + ";" } if (formNew.welldepth != formOld.welldepth) { descpNew += "修改井深,原值:" + formOld.welldepth + ",新值:" + formNew.welldepth + ";" } if (formNew.welltype != formOld.welltype) { descpNew += "修改井类型,原值:" + formOld.welltype + ",新值:" + formNew.welltype + ";" } if (formNew.project != formOld.project) { descpNew += "修改所属项目,原值:" + formOld.project + ",新值:" + formNew.project + ";" } if (this.data.form.photopath1 != formOld.photopath1 || this.data.form.photopath2 != formOld.photopath2 || this.data.form.photopath3 != formOld.photopath3) { descpNew += "修改照片;" } if ("" != formNew.description) { descpNew += formNew.description; } this.setData({ ['form.description']: descpNew }) }, //提交表单 formSubmit: function (event) { //表单验证 if (!this.formValidate()) { return false; } //自动生成修改内容 this.changeMsg(); //提交权限限制(只有施工人员能修改) if(app.globalData.role!='repair'){ wx.showToast({ icon: 'none', title: '无权限修改', duration:2000 }) return false } var that = this; var fileList = that.data.fileList; for (var i = 0; i < fileList.length; i++) { var photopath = 'form.photopath' + [Number(i) + 1] this.setData({ [photopath]: fileList[i].url.split("static/")[1] }) } delete that.data.form.installtime delete that.data.form.createtime wx.request({ method: "POST", url: app.globalData.httpsUrl + "appDeviceLog/add", data: that.data.form, header: { 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' }, success(res) { if (res.data.code == 200) { wx.showModal({ content: '提交成功,是否返回?', success: function (res) { if (res.confirm) { wx.switchTab({ url: that.data.pageName }) } else { //这里是点击了取消以后 console.log('用户点击取消') } } }) } }, fail(err) { wx.showToast({ title: "提交失败", }) } }) }, //报存录入的input信息 confirm(event) { var that = this; var formValue = event.detail.value; var formName = event.target.dataset.id; var fromN = 'form.' + [formName]; that.setData({ [fromN]: formValue }) }, //扫码 scan() { wx.scanCode({ success(res) { console.log(res) } }) }, //粘贴经纬度 paste() { var _this = this; wx.getClipboardData({ success: function (res) { var longitude = 'form.longitude'; var latitude = 'form.latitude'; var longitude84 = 'form.longitude84'; var latitude84 = 'form.latitude84'; _this.setData({ [longitude]: parseFloat(res.data.split(",", 4)[1]).toFixed(6), [latitude]: parseFloat(res.data.split(",", 4)[0]).toFixed(6), [longitude84]: "" == (res.data.split(",", 4)[3]) ? "" : parseFloat(res.data.split(",", 4)[3]).toFixed(6), [latitude84]: "" == (res.data.split(",", 4)[2]) ? "" : parseFloat(res.data.split(",", 4)[2]).toFixed(6), longitude: parseFloat(res.data.split(",", 4)[1]).toFixed(6), latitude: parseFloat(res.data.split(",", 4)[0]).toFixed(6), }); } }) }, selectValue(value) { var that = this; var wellType = 'form.welltype'; that.setData({ [wellType]: value.detail }) }, //运维人员默认为登录人 // selectpersonValue(event) { // var that = this; // var installPerson = 'form.installperson'; // that.setData({ // [installPerson]: event.detail // }) // }, selectprojectValue(event) { var that = this; var project = 'form.project'; that.setData({ [project]: event.detail, showMask: true }) }, open() { this.setData({ showMask: true }) }, //隐藏textarea,防止遮挡 close() { this.setData({ showMask: false }) }, //上传照片 afterRead(event) { var _this = this; const { file } = event.detail; const { fileList = [] } = _this.data; var convertpath = ""; wx.compressImage({ src: event.detail.file.path, quality: 25, success: function (res) { convertpath = res.tempFilePath; wx.uploadFile({ url: app.globalData.httpsUrl + "appDeviceAdd/fileUploadMarker", filePath: convertpath, name: 'file', formData: { 'text': "编号:" + _this.data.form.devcode + "经度:" + _this.data.form.longitude + "纬度:" + _this.data.form.latitude }, header: { "Content-Type": "multipart/form-data", 'accept': 'application/json', }, success(res) { if (res.data) { var url = JSON.parse(res.data); fileList.push({ ...file, url: app.globalData.httpsUrl + "static/" + url.data.replace(/\\/g, "/") }); _this.setData({ fileList }); } } }) } }) }, //删除照片 deletePhoto(event) { var that = this var image_index = event.detail.index var fileList_new = that.data.fileList; wx.showModal({ content: '确定删除照片?', success: function (res) { if (res.confirm) { fileList_new.splice(image_index, 1); that.setData({ fileList: fileList_new }) wx.request({ method: "POST", url: app.globalData.httpsUrl + "appDeviceLog/deletePhoto", data: { devcode: that.data.form.devcode }, header: { 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' }, success(res) {} }) } else { //这里是点击了取消以后 console.log('用户点击取消') } } }) } })