export default {
  data () {
    return {
      canvasDom: '',
      canvasWH: [0, 0],
      ctx: '',
      centerPos: []
    }
  },
  methods: {
    initCanvas () {
      const { $nextTick } = this

      return new Promise(resolve => {
        $nextTick(e => {
          const { $refs, ref, labelRef, canvasWH, centerPos } = this

          const canvas = this.canvasDom = $refs[ref]

          this.labelDom = $refs[labelRef]

          canvasWH[0] = canvas.clientWidth
          canvasWH[1] = canvas.clientHeight

          canvas.setAttribute('width', canvasWH[0])
          canvas.setAttribute('height', canvasWH[1])

          this.ctx = canvas.getContext('2d')

          centerPos[0] = canvasWH[0] / 2
          centerPos[1] = canvasWH[1] / 2

          resolve()
        })
      })
    },
    clearCanvas () {
      const { ctx, canvasWH } = this

      ctx.clearRect(0, 0, ...canvasWH)
    }
  }
}
