快速上手wepy,制作简易签名板

简介: wepy是开发微信小程序的一个框架wepy特点:支持组件化开发风格借鉴了vue, 易上手腾讯官方开源维护 https://tencent.github.

wepy是开发微信小程序的一个框架

wepy特点:

应用是最好的学习方式, 这次用wepy做一个简易签名板

源码

<style lang="less">
    
    canvas {
        margin: 20px auto;
        border: 2px solid #A84631;
        width: 300px;
        height: 200px;
        border-radius: 20px;
    }

    .info {
        text-align: center;
    }


    image{
        border: 1px solid #A84631;
        width: 60px;
        height: 40px;
        margin : 5px;
        border-radius: 5px;
    }

    button {
        width: 40%;
        float: left;
        margin: 5%;
    }

</style>

<template>

    <view>
    <canvas canvas-id="myCanvas"
        disable-scroll=true
        bindtouchstart="start"
        bindtouchmove="move"
        bindtouchend="end"/>

    <view class="info">
        鼠标当前位置: ({{x}}, {{y}})
    </view>
    <block>
        <button bindtap="exportImage" type="primary">存图</button>
    </block>    
    <block>
        <button bindtap="clearNow" type="warn">清空</button>
    </block>
    <block wx:for="{{filePathList}}">
        <image src="{{item}}"/>
    </block>

    </view>

</template>

<script>

    import wepy from 'wepy'
var ctx = wx.createCanvasContext('myCanvas')

export default class Fyxz extends wepy.page {
  data = {
        x: 0,
        y: 0,
        ctx: ctx,
        filePath: '',
        filePathList: []
      }

      methods = {

        start: (e) => {
          this.x = e.touches[0].x
          this.y = e.touches[0].y
        },
        move: (e) => {
          this.ctx.moveTo(this.x, this.y)
          this.x = e.touches[0].x
          this.y = e.touches[0].y
          this.ctx.lineTo(this.x, this.y)
          this.ctx.stroke()
          this.ctx.draw(true)
        },
        end: (e) => {

        },

        savaImageToDevice: (filePath) => {
          wx.saveImageToPhotosAlbum({
            success(res) {
            }
          })
        },

        exportImage: () => {
          wx.canvasToTempFilePath({
            x: 0,
            y: 0,
            width: 300,
            height: 200,
            destWidth: 300,
            destHeight: 200,
            canvasId: 'myCanvas',
            success: (res) => {
              let p = new Promise((resolve, reject) => {
                let fp = res.tempFilePath
                resolve(fp)
              })
              p.then((fp) => {
                console.log('++++>', fp)
                this.filePath = fp
                // 将照片保存到缓存
                this.methods.savaImageToDevice(fp)
                // 将缓存路径保存到列表
                this.filePathList.push(fp)
                // 手动更新数据
                this.$apply()
              }).then(() => {
                // 清屏
                this.methods.clearNow();
                console.log('更新完毕!')
              })
            }
          })
        },
        clearNow: () => {
          this.ctx.clearRect(0, 0, 100, 200)
          this.ctx.draw()
        }
      }
    }
</script>
目录
相关文章
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的怀旧唱片售卖系统附带文章和源代码设计说明文档ppt
基于ssm+vue.js+uniapp小程序的怀旧唱片售卖系统附带文章和源代码设计说明文档ppt
34 3
|
存储 移动开发 开发框架
使用UniApp实现视频数组自动下载与播放功能:一步步指导
使用UniApp实现视频数组自动下载与播放功能:一步步指导
266 0
|
30天前
|
移动开发 小程序 数据可视化
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
33 2
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的便捷外卖点餐系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的便捷外卖点餐系统附带文章源码部署视频讲解等
34 0
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的电竞交互管理系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的电竞交互管理系统附带文章和源代码部署视频讲解等
28 1
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的星空游戏购买下载平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的星空游戏购买下载平台附带文章和源代码部署视频讲解等
32 1
|
5月前
|
前端开发 开发工具 git
[巨详细]使用HBuilder-X启动uniapp项目教程
【6月更文挑战第6天】使用HBuilder-X启动uniapp项目教程 先用HBuilder-X打开本地的uniapp项目
524 0
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的网上花卉购物系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的网上花卉购物系统附带文章和源代码部署视频讲解等
26 0
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的化妆品配方及工艺管理系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的化妆品配方及工艺管理系统附带文章和源代码部署视频讲解等
31 0
|
6月前
|
安全 开发工具
微信小游戏制作工具中的键盘插件的使用
微信小游戏制作工具中的键盘插件的使用
388 0