Newer
Older
smart_construction / miniprogram / pages / addDevicelog / addDeviceLog.js
zhout on 11 Aug 2020 20 KB 第一次发布提交
// miniprogram/pages/addDevice/addDevice.js

var app = getApp();
Page({

      /**
       * 页面的初始数据
       */
      data: {
        pageName: '',
        showMask: false,
        today: new Date().getTime(),
        longitude: '',
        latitude: '',
        photopath1: '',
        photopath2: '',
        photopath3: '',
        option1: [{
            text: '雨水井',
            value: "1"
          },
          {
            text: '污水井',
            value: "2"
          },
          {
            text: '燃气井',
            value: "3"
          },
          {
            text: '热力井',
            value: "4"
          },
          {
            text: '电力井',
            value: "5"
          },
        ],
        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: ""
        },
        fileList: [],
        detail: ""
      },

      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;
        wx.cloud.callFunction({
          name: 'getPerson',
          data: {
            url: app.globalData.url + "deviceType/getUser"
          },
        }).then(res => {
          if (res.result.code == 200) {
            var users = res.result.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
            })
          }
        }).catch(err => {
          console.error(err);
        })


        wx.cloud.callFunction({
          name: 'getProject',
          data: {
            url: app.globalData.url + "project/getProject"
          },
        }).then(res => {
          if (res.result.code == 200) {
            var projectList = res.result.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
            })
          }
        }).catch(err => {
          console.error(err);
        })

        if (options.pageName) {
          this.setData({
            pageName: options.pageName
          })
        }

        if (options.detail) {

          var formObject = JSON.parse(options.detail);
          _this.setData({
            form: formObject,
            detail: options.detail
          })

          _this.setData({
            ['form.installperson']: "",
            ['form.installtimeFmt']: "",
            ['form.workmsg']: "",
            ['form.description']: ""
          })

          const {
            fileList = []
          } = _this.data;
          if (formObject.photopath1 != "") {
            var file1 = {
              url: app.globalData.url + "static/" + formObject.photopath1
            }
            fileList.push(file1)
          }
          if (formObject.photopath2 != "") {
            var file2 = {
              url: app.globalData.url + "static/" + formObject.photopath2
            }
            fileList.push(file2)
          }
          if (formObject.photopath3 != "") {
            var file3 = {
              url: app.globalData.url + "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 () {

      },

      /**
       * 生命周期函数--监听页面隐藏
       */
      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.area == "") {
          wx.showToast({
            icon: 'none',
            title: '区不能为空!',
          })
          return false
        }
        if (this.data.form.street == "") {
          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;
        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.photopath1 != formOld.photopath1 ||
          this.data.photopath2 != formOld.photopath2 ||
          this.data.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();
        var that = this;
        var fileList = that.data.fileList;
        for (var i = 0; i < fileList.length; i++) {
          var photopath = 'photopath' + [Number(i) + 1]
          this.setData({
            [photopath]: fileList[i].url.split("static/")[1]
          })
        }
        wx.cloud.callFunction({
          name: 'addDeviceLog',
          data: {
            device: that.data.form,
            photopath1: that.data.photopath1,
            photopath2: that.data.photopath2,
            photopath3: that.data.photopath3,
            url: app.globalData.url + "appDeviceLog/add"
          },
        }).then(res => {
          // var resultObj=JSON.parse(res.result);
          if (res.result.code == 200) {
            wx.showModal({
              content: '提交成功,是否返回?',
              success: function (res) {
                if (res.confirm) {
                  wx.switchTab({
                    url: that.data.pageName
                  })
                } else { //这里是点击了取消以后 
                  console.log('用户点击取消')
                }
              }
            })
          }
        }).catch(err => {
          console.error(err)
          wx.showToast({
            title: "提交失败",
          })
        })
      },
      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
        })
      },
      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
                      });
                    }
                  }
                })
              }
            })
            // wx.compressImage({
            //   src: event.detail.file.path,
            //   quality: 25,
            //   success: function (res) {
            //     convertpath = res.tempFilePath;
            //     // var base64 = "data:image/png;base64," + wx.getFileSystemManager().readFileSync(convertpath, 'base64');
            //     wx.uploadFile({
            //       url: app.globalData.httpsUrl + "appDeviceAdd/fileUpload",
            //       filePath: convertpath,
            //       name: 'file',
            //       // formData: {
            //       //   'devcode': '642019010001'
            //       // },
            //       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
            //           });
            //         }
            //       }
            //     })
            //     // wx.cloud.callFunction({
            //     //   name: 'uploadFile',
            //     //   data: {
            //     //     url: app.globalData.httpsUrl + "appDeviceAdd/fileUpload",
            //     //     fileBase64: base64
            //     //   },
            //     //   success: function (res) {
            //     //     if (res.result) {
            //     //       fileList.push({
            //     //         ...file,
            //     //         url:   app.globalData.url + "static/" + res.result.data.replace(/\\/g, "/")  
            //     //       });
            //     //       _this.setData({
            //     //         fileList
            //     //       });
            //     //     }
            //     //   },
            //     //   complete: res => {
            //     //   },
            //     // })
            //   }
            // });
          },
          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.cloud.callFunction({
                    name: 'deletePhoto',
                    data: {
                      url: app.globalData.url + "appDeviceLog/deletePhoto",
                      devcode: that.data.form.devcode,
                      pathIndex: image_index
                    },
                    success: function (res) {},
                    complete: res => {},
                  })
                } else { //这里是点击了取消以后 
                  console.log('用户点击取消')
                }
              }
            })
          },
      })