import utils from "../../utils/utils";
// painting-2.js
Component({
    properties: {
        showPaint:{
            type: Boolean,
            value:false,
            observer(newval) {
              this.setData({
                showPaint: newval
              });
            },
          },
          paintFrom:{
            type: String,
            value:'',
            observer(newval) {
              this.setData({
                paintFrom: newval
              });
            },
          },
          paintSrc:{
            type: String,
            value:'',
            observer(newval) {
              this.setData({
                paintSrc: newval
              },()=>{
                  this.initData();
                
              });
             
            },
          }
          
    },

      ready(){
          let that = this;
            // 获取设备信息，canvas高度用
            wx.getSystemInfo({
              success: function(res) {
                console.log(res);
                that.setData({
                  canvasWidth: res.windowWidth,
                  canvasHeight: res.windowHeight-50,
                  windowHeight: res.windowHeight
                })
              },
            })
            // 选照片
            //this.chooseImg();
      },
  /**
   * 页面的初始数据
   */
  data: {
    showPaint:false,
    paintFrom:'',
    hasChoosedImg: false,
    canvasWidth: 0,
    showBars: false,
    canvasHeight: 0, // canvas的完整高度
    canvasHeightLen: 0, // canvas的临时高度（用在操作栏影响画布高度时）
    windowHeight: 0, // 屏幕高度
    prevPosition: [0, 0], // 手指触摸的所在位置
    background: '', // 背景图片，即导入的图片
    colors: ["#FFFFFF", "#000000", "#ff0000", "#ffff00", "#00CC00", "#99CCFF", "#0000ff", "#ff00ff"],
    selectColor:"#000000",
    btnInfo: [
      {
        type: 'width',
        background: 'url("http://ov8a2tdri.bkt.clouddn.com/wx-app/icon-1.png"); background-size: 30px 30px;'
      },
      {
        type: 'color',
        background: 'url("http://ov8a2tdri.bkt.clouddn.com/wx-app/icon-2.png") white no-repeat; background-size: 24px 24px;background-position: 3px 3px;'
      },
      {
        type: 'clear',
        background: 'url("http://img0.imgtn.bdimg.com/it/u=1358545290,3102156418&fm=26&gp=0.jpg") white no-repeat; background-size: 20px 20px;background-position: 5px 5px;'
      },
      {
        type: 'save',
        background: 'url("http://ov8a2tdri.bkt.clouddn.com/wx-app/icon-6.png") white no-repeat; background-size: 20px 20px;background-position: 5px 5px;'
      }
    ],
    width: false, // 是否开启宽度调整栏
    color: false, // 是否开启颜色调整栏
    r: 33,
    g: 33,
    b: 33,
    selectSize:8,
    clear: false, // 是否开启清空栏
    eraser: false, // 是否开启橡皮擦
    saving: false, // 是否在保存状态
    scope: false, // 是否有保存图片的权限
  },
  methods:{
      initData(){
          let that=this;
          that.setData({
            hasChoosedImg: true,
          })
          wx.getImageInfo({
            src: this.data.paintSrc,
            success: function (res) {
              // 获取图片信息，主要为宽高，选择合适的自适应方式（将最大边完整显示）
              console.log(res)
              let [height, width] = [that.data.canvasWidth / res.width * res.height, that.data.canvasWidth];
              if (height > that.data.windowHeight - 50) {
                height = that.data.windowHeight - 50;
                width = height / res.height * res.width;
              }
              that.setData({
                canvasHeight: height,
                canvasWidth: width,
                background: res.path
              });
              that.chooseBi();
            }
          })
      },
    hideTuya(){
        this.setData({
            showPaint:false,
        })
    },
    chooseBi(){
        this.setData({
            width: false, // 是否开启宽度调整栏
           color: false, 
           isSmall:false,
          clear: false, // 是否开启清空栏
          eraser: false, // 是否开启橡皮擦
          saving: false,
          showBars: false
        })
    },
    // save(e){
    //     saveImg(this, 2);
    //     this.triggerEvent('confirmUpload')
    //   },
      tapBtn: function (e) {
        wx.showLoading({
            title: '图片上传中',
            mask: true
          })
        utils.tapBtn(e, this, 2,this.data.paintFrom,this.data.isSmall);
        this.hideBarsHandler()
      },
      showBarsHandler(e) {
        //this.tapBtn(e)
        this.setData({
          showBars: !this.data.showBars,
          clear:false,
          //eraser:false

        })
      },
     
      sizeHandler(e) {
        const size = e.detail.value;
        this.setData({
          selectSize: size
        })
      },
      hideBarsHandler() {
        this.setData({
          showBars: false
        })
      },
      colorChange(e) {
        //this.tapBtn(e);
        const color = e.currentTarget.dataset.color;
        this.setData({
          selectColor: color
        })
      },
      addImg: function (e) {
        this.chooseImg();
      },
    
      chooseImg() {
        let that = this;
        wx.chooseImage({
        count:1,
          success: function (res) {
            that.setData({
              hasChoosedImg: true,
            })
            wx.getImageInfo({
              src: res.tempFilePaths[0],
              success: function (res) {
                  if(res.size/1024<1024){
                    this.setData({
                        isSmall:true
                    })
                  }
                // 获取图片信息，主要为宽高，选择合适的自适应方式（将最大边完整显示）
                let [height, width] = [that.data.canvasWidth / res.width * res.height, that.data.canvasWidth];
                if (height > that.data.windowHeight - 50) {
                  height = that.data.windowHeight - 50;
                  width = height / res.height * res.width;
                }
                that.setData({
                  canvasHeight: height,
                  canvasWidth: width,
                  background: res.path
                });
              }
            })
          },
          fail: function (res) {
            console.log(res);
          }
        })
      },
    
      touchStart: function (e) {
        // 开始画图，隐藏所有的操作栏
        this.setData({
          prevPosition: [e.touches[0].x, e.touches[0].y],
          width: false,
          color: false,
          canvasHeightLen: 0
        })
      },
    
      touchMove: function (e) {
        // 触摸移动，绘制中。。。
        let ctx = wx.createCanvasContext('myCanvas',this);
    
        if (this.data.eraser) {
          ctx.clearRect(e.touches[0].x, e.touches[0].y, this.data.selectSize,this.data.selectSize);
          ctx.draw(true);
        } else {
          ctx.setStrokeStyle(this.data.selectColor);
          ctx.setLineWidth(this.data.selectSize);
          ctx.setLineCap('round');
          ctx.setLineJoin('round');
          ctx.moveTo(this.data.prevPosition[0], this.data.prevPosition[1]);
          ctx.lineTo(e.touches[0].x, e.touches[0].y);
          ctx.stroke();
          ctx.draw(true);
        }
    
        this.setData({
          prevPosition: [e.touches[0].x, e.touches[0].y]
        })
        
      },
    
      clearCanvas: function (e) {
        //this.tapBtn(e)
        let ctx = wx.createCanvasContext('myCanvas',this);
        ctx.clearRect(0, 0, this.data.canvasWidth, this.data.canvasHeight);
        ctx.draw();
        this.setData({
          clear: false,
          canvasHeightLen: 0
        });
        this.chooseBi();
      },
    
      chooseEraser: function () {
        this.setData({
          eraser: true,
          clear: false,
          canvasHeightLen: 0,
          showBars: false
        })
      },
    
      changeColor: function (e) {
        utils.changeColor(e, this);
        this.hideBarsHandler()
      },
    
      changeWidth: function (e) {
        utils.changeWidth(e, this, (this.data.canvasHeightLen + this.data.w - e.detail.value), 2);
      },
      
  },
  
})