diff --git a/src/components/miliu-autograph/miliu-autograph.vue b/src/components/miliu-autograph/miliu-autograph.vue
index aab36c1..01b2416 100644
--- a/src/components/miliu-autograph/miliu-autograph.vue
+++ b/src/components/miliu-autograph/miliu-autograph.vue
@@ -3,7 +3,8 @@
 		
+			@touchend="touchend"
+			disable-scroll="true"/>
 		
 			
 				清空
@@ -76,31 +77,67 @@
 		}
 	}
 	//绘制路径
-	const draw = ()=> {
-		let point1 = points[0]
-		let point2 = points[1]
-		points.shift()
-		canvaCtx.moveTo(point1.X, point1.Y)
-		canvaCtx.lineTo(point2.X, point2.Y)
-		canvaCtx.stroke()
-		canvaCtx.draw(true)
+	// const draw = ()=> {
+	// 	let point1 = points[0]
+	// 	let point2 = points[1]
+	// 	points.shift()
+	// 	canvaCtx.moveTo(point1.X, point1.Y)
+	// 	canvaCtx.lineTo(point2.X, point2.Y)
+	// 	canvaCtx.stroke()
+	// 	canvaCtx.draw(true)
+	// }
+	const draw = () => {
+		if (points.length < 2) return;
+
+		canvaCtx.beginPath();
+		canvaCtx.moveTo(points[0].X, points[0].Y);
+		for (let i = 1; i < points.length; i++) {
+			canvaCtx.lineTo(points[i].X, points[i].Y);
+		}
+		canvaCtx.stroke();
+		canvaCtx.draw(true);
+
+		// 绘制后清空已绘制点
+		points = [points[points.length - 1]]; // 保留最后一个点作为下一次起点
 	}
 	// 触摸结束,将未绘制的点清空防止对后续路径产生干扰
 	const touchend = e=>{                   
 		points = [];
 	}
 	// 清空画布
-	const clear = ()=>{
-		return uni.getSystemInfo()
-		.then(res=>{
-			canvaCtx.clearRect(0, 0, res.windowWidth, res.windowHeight);
-			canvaCtx.draw(true);
-			return res
-		})
-		.catch(err=>{
-			// console.log(err);
-		})
-	}
+	// const clear = ()=>{
+	// 	return uni.getSystemInfo()
+	// 	.then(res=>{
+	// 		canvaCtx.clearRect(0, 0, res.windowWidth, res.windowHeight);
+	// 		canvaCtx.draw(true);
+	// 		return res
+	// 	})
+	// 	.catch(err=>{
+	// 		// console.log(err);
+	// 	})
+	// }
+const clear = () => {
+  return new Promise((resolve, reject) => {
+    uni.createSelectorQuery()
+      .in(_this)
+      .select('#mycanvas') // 确保 id 和 canvas 的一致性
+      .fields({ size: true, rect: true }, data => {
+        if (!data) {
+          reject('Canvas not found')
+          return
+        }
+
+        const { width, height } = data
+
+        // 真正按 canvas 实际尺寸清除
+        canvaCtx.clearRect(0, 0, width, height)
+        canvaCtx.draw(true)
+        resolve()
+      })
+      .exec()
+  })
+}
+
 	// 确认
 	const confirm = ()=>{
 		uni.canvasToTempFilePath({ canvasId: 'mycanvas', }, _this, _this.parent)
diff --git a/src/pages/my/signature.vue b/src/pages/my/signature.vue
index f9d168b..200ea9a 100644
--- a/src/pages/my/signature.vue
+++ b/src/pages/my/signature.vue
@@ -257,7 +257,7 @@ const uploadSignUrl = async (base64Data) => {