当前位置: 首页 > news >正文

好看的网站设计深圳整装装修公司排名

好看的网站设计,深圳整装装修公司排名,网站文件命名,网站建设评价指标文章目录 最近需求要做就记录一下。 人狠话不多#xff0c;直接上功能#xff1a; 直接搂代码吧,复制过去就可以用#xff0c;有其他需求自己改吧改吧。 signature.wxml !-- 电子签名页面 -- custom-navbar title电子签名show-home{{fals… 文章目录 最近需求要做就记录一下。 人狠话不多直接上功能 直接搂代码吧,复制过去就可以用有其他需求自己改吧改吧。 signature.wxml !-- 电子签名页面 -- custom-navbar title电子签名show-home{{false}} / view classsignature-page!-- 顶部操作栏 --view classaction-bart-button themeprimary iconrefresh bind:taphandleClear重写/t-buttont-button themeprimary iconrollback bind:taphandleUndo撤销/t-buttont-button themeprimary iconcheck bind:taphandleSubmit提交/t-button/view!-- 签名区域 --view classsignature-area-largecanvastype2didsignatureCanvasclasssignature-canvas-largedisable-scroll{{true}}bindtouchstarthandleTouchStartbindtouchmovehandleTouchMovebindtouchendhandleTouchEnd/canvas/view!-- 提示文本 --view classsignature-tips请在上方区域书写您的签名/view /view 注意我是用的tdesign这个UI所以是t-button signature.wxss /* 页面容器 */ .signature-page {width: 100vw;height: calc(100vh - 44rpx);background-color: #f6f6f6;display: flex;flex-direction: column;padding: 16rpx;box-sizing: border-box; }/* 顶部操作栏 */ .action-bar {display: flex;justify-content: flex-end;gap: 16rpx;margin-bottom: 20rpx;padding: 0 10rpx; }/* 自定义按钮样式 */ .action-bar .t-button {min-width: auto;padding: 0 16rpx;font-size: 18rpx !important;height: 35rpx !important;line-height: 35rpx !important; }/* 按钮图标样式 */ .action-bar .t-icon, .action-bar .t-button__icon, .action-bar .t-button .t-icon {font-size: 20rpx !important; }/* 签名区域-大尺寸 */ .signature-area-large {flex: 1;background-color: #ffffff;border-radius: 16rpx;box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.1);overflow: hidden;position: relative;margin: 0 auto;width: 94vw;height: 80vh; }/* 签名画布-大尺寸 */ .signature-canvas-large {width: 100%;height: 100%;background-color: #ffffff; }/* 提示文本 */ .signature-tips {text-align: center;color: #999999;font-size: 12px;margin-top: 16rpx; } signature.js Page({data: {ctx: null,points: [], // 存储所有笔画currentStroke: [], // 当前笔画isDrawing: false,},/*** 生命周期函数--监听页面加载* 初始化画布设置*/onLoad() {this.initCanvas();},/*** 生命周期函数--监听页面卸载*/onUnload() {},/*** 初始化画布* 设置画布大小、像素比例和画笔样式*/async initCanvas() {const query wx.createSelectorQuery();query.select(#signatureCanvas).fields({ node: true, size: true }).exec((res) {const canvas res[0].node;const ctx canvas.getContext(2d);// 设置画布大小使用新的API获取设备像素比const dpr wx.getWindowInfo().pixelRatio;canvas.width res[0].width * dpr;canvas.height res[0].height * dpr;ctx.scale(dpr, dpr);// 设置画笔样式ctx.strokeStyle #000000;ctx.lineWidth 3;ctx.lineCap round;ctx.lineJoin round;this.setData({ ctx });});},/*** 处理触摸开始事件* 开始一个新的笔画记录起始点* param {Object} e - 触摸事件对象*/handleTouchStart(e) {const { x, y } e.touches[0];this.setData({isDrawing: true,currentStroke: [[x, y]]});this.data.ctx.beginPath();this.data.ctx.moveTo(x, y);},/*** 处理触摸移动事件* 继续绘制当前笔画的路径* param {Object} e - 触摸事件对象*/handleTouchMove(e) {if (!this.data.isDrawing) return;const { x, y } e.touches[0];this.data.currentStroke.push([x, y]);this.data.ctx.lineTo(x, y);this.data.ctx.stroke();},/*** 处理触摸结束事件* 完成当前笔画将其添加到笔画历史中*/handleTouchEnd() {if (!this.data.isDrawing) return;this.setData({isDrawing: false,points: [...this.data.points, this.data.currentStroke],currentStroke: []});},/*** 清除画布内容* 清空所有笔画记录和画布显示*/handleClear() {const { ctx } this.data;ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);this.setData({ points: [] });},/*** 撤销上一步操作* 移除最后一笔并重绘剩余的笔画*/handleUndo() {if (this.data.points.length 0) return;const { ctx } this.data;ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);// 移除最后一笔const newPoints this.data.points.slice(0, -1);this.setData({ points: newPoints });// 重绘所有笔画newPoints.forEach(stroke {ctx.beginPath();ctx.moveTo(stroke[0][0], stroke[0][1]);stroke.forEach(([x, y]) {ctx.lineTo(x, y);});ctx.stroke();});},/*** 提交签名* 将画布内容转换为图片并处理提交逻辑* returns {Promisevoid}*/async handleSubmit() {if (this.data.points.length 0) {wx.showToast({title: 请先签名,icon: none});return;}// todo: 这里根据具体业务写吧我这只是举个例子try {// 将画布内容转换为图片const tempFilePath await new Promise((resolve, reject) {wx.canvasToTempFilePath({canvas: this.data.ctx.canvas,success: res resolve(res.tempFilePath),fail: reject});});// 这里可以处理签名图片比如上传到服务器console.log(签名图片路径:, tempFilePath);wx.showToast({title: 提交成功,icon: success});// 返回上一页setTimeout(() {wx.navigateBack();}, 1500);} catch (error) {console.error(提交签名失败:, error);wx.showToast({title: 提交失败,icon: error});}} }); 注意handleSubmit 提交的逻辑根据具体的业务写 signature.json {usingComponents: {t-button: tdesign-miniprogram/button/button},disableScroll: true,pageOrientation: landscape } 注意我是用的tdesign这个UI pageOrientation: landscape这个是设置横屏 就是用canvas画小程序里这种需求一般都是用canvas 收工有需要copy去吧哈哈哈哈哈哈哈哈哈哈
http://www.hkea.cn/news/14281464/

相关文章:

  • 网站地图设计网站如何买空间
  • 餐饮公司网站模板下载网站自动提交收录
  • 刘家窑网站建设阿里巴巴运营教程
  • wordpress建站入门泗阳网站建设
  • 中小学校园网站建设html编辑器在线
  • 建设大淘客网站网页美工设计的四大原则
  • wordpress 修改入口文件博客可以做seo吗
  • 物流公司网站 源码视频网站前台怎么做
  • php网站修改代码汽车服务网站建设方案
  • 为什么网站需要维护海珠区 网站设计
  • 用vs2010做购物网站搜索排名优化
  • 一站式建设网站企业网站建设的作用
  • 免费的php网站模板百度贴吧首页
  • 仿站工具箱网页版东莞网站制作的方案
  • 寮步东莞网站建设德清网站设计
  • 博客网站大全王者荣耀网站开发目的
  • 做网站找众展嘉兴网站制作套餐
  • 网站推广经验台州网站公司吗
  • 吉安网站建设吉安有一个wordpress站点
  • 北京驾校网站建设广东网站建设报价
  • 营销型网站要多少钱wordpress 模板挂马
  • 侨联网站建设关于手表网站建设策划书
  • 企业营销型网站建设优惠广告传媒公司简介
  • 网站开发 程序开发原理成都旅游攻略详细
  • 网站后台需要ie6修改平邑网站建设
  • 苏州专业网站建设定制西风seo
  • 微网站免费注册网站集约化 建设方案
  • 网站禁用右键怎样选wordpress电商主题
  • 网页设计与网站建设全攻略pdf网络项目资源网站
  • 免费网页设计成品网站公司注册网上核名业务如何终止