From edf79911efc3c5be29d12c85816d63f84756c409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E8=BE=89?= <814457906@qq.com> Date: Wed, 12 Apr 2023 15:39:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/v-sign/v-sign.vue | 245 -------------- pages.json | 15 +- pages/confirmCompletion/confirmCompletion.vue | 20 +- pages/signature/signature.vue | 11 +- pages/v-sign/changelog.md | 48 +++ .../v-sign-action}/v-sign-action.vue | 27 +- .../components/v-sign-color/v-sign-color.vue | 212 ++++++++++++ .../components/v-sign-pen}/v-sign-pen.vue | 10 +- pages/v-sign/components/v-sign/v-sign.vue | 314 ++++++++++++++++++ pages/v-sign/package.json | 83 +++++ pages/v-sign/readme.md | 245 ++++++++++++++ pages/v-sign/static/image/clear.png | Bin 0 -> 6420 bytes pages/v-sign/static/image/clear.svg | 1 + pages/v-sign/static/image/next.png | Bin 0 -> 7319 bytes pages/v-sign/static/image/next.svg | 1 + pages/v-sign/static/image/prev.png | Bin 0 -> 7356 bytes pages/v-sign/static/image/prev.svg | 1 + pages/v-sign/static/image/save.png | Bin 0 -> 3573 bytes pages/v-sign/static/image/save.svg | 1 + .../utils.js => pages/v-sign/utils/index.js | 4 +- 20 files changed, 954 insertions(+), 284 deletions(-) delete mode 100644 components/v-sign/v-sign.vue create mode 100644 pages/v-sign/changelog.md rename {components/v-sign => pages/v-sign/components/v-sign-action}/v-sign-action.vue (83%) create mode 100644 pages/v-sign/components/v-sign-color/v-sign-color.vue rename {components/v-sign => pages/v-sign/components/v-sign-pen}/v-sign-pen.vue (95%) create mode 100644 pages/v-sign/components/v-sign/v-sign.vue create mode 100644 pages/v-sign/package.json create mode 100644 pages/v-sign/readme.md create mode 100644 pages/v-sign/static/image/clear.png create mode 100644 pages/v-sign/static/image/clear.svg create mode 100644 pages/v-sign/static/image/next.png create mode 100644 pages/v-sign/static/image/next.svg create mode 100644 pages/v-sign/static/image/prev.png create mode 100644 pages/v-sign/static/image/prev.svg create mode 100644 pages/v-sign/static/image/save.png create mode 100644 pages/v-sign/static/image/save.svg rename components/v-sign/utils.js => pages/v-sign/utils/index.js (64%) diff --git a/components/v-sign/v-sign.vue b/components/v-sign/v-sign.vue deleted file mode 100644 index d638552..0000000 --- a/components/v-sign/v-sign.vue +++ /dev/null @@ -1,245 +0,0 @@ - - - - - diff --git a/pages.json b/pages.json index e298cb4..857666c 100644 --- a/pages.json +++ b/pages.json @@ -9,7 +9,13 @@ "navigationBarTitleText": "", "navigationStyle": "custom" } - }, { + },{ + "path": "pages/confirmCompletion/confirmCompletion", + "style": { + "navigationBarTitleText": "当前工单", + "enablePullDownRefresh": false + } + }, { "path": "pages/MyBenefits/MyBenefits", "style": { "navigationBarTitleText": "我的收益", @@ -48,13 +54,6 @@ "navigationBarTitleText": "", "navigationStyle": "custom" } - }, { - "path": "pages/confirmCompletion/confirmCompletion", - "style": { - "navigationBarTitleText": "当前工单", - "enablePullDownRefresh": false, - "disableScroll": true - } }, { "path": "pages/taskReturn/taskReturn", "style": { diff --git a/pages/confirmCompletion/confirmCompletion.vue b/pages/confirmCompletion/confirmCompletion.vue index e21dd1d..08b373c 100644 --- a/pages/confirmCompletion/confirmCompletion.vue +++ b/pages/confirmCompletion/confirmCompletion.vue @@ -101,15 +101,11 @@ - - - + + + + @@ -292,8 +288,10 @@ .app { font-size: 36rpx; padding: 0; - overflow: scroll; - height: 100vh; + + ::v-deep .u-mask { + height: 100vh !important; + } .finishmask { height: 300rpx; diff --git a/pages/signature/signature.vue b/pages/signature/signature.vue index b9fe469..630b06c 100644 --- a/pages/signature/signature.vue +++ b/pages/signature/signature.vue @@ -1,6 +1,6 @@ diff --git a/components/v-sign/v-sign-pen.vue b/pages/v-sign/components/v-sign-pen/v-sign-pen.vue similarity index 95% rename from components/v-sign/v-sign-pen.vue rename to pages/v-sign/components/v-sign-pen/v-sign-pen.vue index 9c26a66..41786a3 100644 --- a/components/v-sign/v-sign-pen.vue +++ b/pages/v-sign/components/v-sign-pen/v-sign-pen.vue @@ -31,7 +31,7 @@ + + diff --git a/pages/v-sign/package.json b/pages/v-sign/package.json new file mode 100644 index 0000000..e78eb3d --- /dev/null +++ b/pages/v-sign/package.json @@ -0,0 +1,83 @@ +{ + "id": "v-sign", + "displayName": "canvas 手写 签名 签字 画板组件", + "version": "0.5.2", + "description": "基于 canvas 实现;1. 支持线条、背景色自定义样式;2. 支持撤回、清空、导出图片等功能;3. 内置按钮、画笔等子组件。", + "keywords": [ + "canvas", + "签名", + "签字", + "电子签名", + "signature" +], + "repository": "https://github.com/jizai1125/v-sign", +"engines": { + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "插件不采集任何数据", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "n" + }, + "App": { + "app-vue": "u", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/pages/v-sign/readme.md b/pages/v-sign/readme.md new file mode 100644 index 0000000..696e33d --- /dev/null +++ b/pages/v-sign/readme.md @@ -0,0 +1,245 @@ +# v-sign 手写签名 + +**如有问题或者建议,欢迎留言或加群联系我(群号:736123963)!!!将保持维护!!!** + +uniapp 交流群群聊二维码 + +## 快速使用 + +基础示例,具体说明见下方 API,**若需要使用内置子组件,见下方子组件说明。** + +```html + + +``` + +## API + +### 属性 (Props) + +| 属性名 | 类型 | 默认值 | 说明 | +| :---------: | :-----------: | :-----------: | :--------------------------: | +| cid | String | v-sign-时间戳 | canvas id | +| width | String/Number | - | canvas 宽度,Number 单位 rpx | +| height | String/Number | - | canvas 高度,Number 单位 rpx | +| customStyle | Object | - | canvas 自定义样式 | +| lineWidth | Number | 4 | 线宽,单位 px | +| lineColor | String | #333 | 线颜色 | +| bgColor | String | #fff | 画布背景颜色 | + +### 事件(Events) + +| 事件称名 | 说明 | 返回值 | +| :------: | :------------------------------------------------------------: | :--------------------------------: | +| @init | 创建完 canvas 实例后触发,向外提供 canvas 实例,撤回,清空方法 | Object:具体见下方事件回调参数说明 | +| @clear | 清空画布后触发 | - | +| @revoke | 撤销操作后触发 | 坐标信息数组 | +| @end | 每次绘制结束后触发 | 坐标信息数组 | + +### 事件回调参数说明 + +#### **`init(ctx: SignContext)`** + +可以通过该事件回调暴露的 clear、revoke 等方法操作画布。 + +```java +interface SignContext { + // canvas 实例 + ctx: object; + // 清空画布 + clear(): void; + // 撤回 + revoke(): void; + // 保存 png 图片,文件名 filename 配置仅支持 h5 + saveImage(filename: string): Promise; + // 返回图片临时文件路径,config 参数同 uni.canvasToTempFilePath方法,内部只是做了 Promise 化处理而已 + canvasToTempFilePath(config: object): Promise; + // 设置画布背景色 + setBackgroundColor(color: string): void; + setLineWidth(value: number): void; + setLineColor(value: string): void; + // 获取坐标信息数组 + getLineData(): Array; +} +``` + +示例: + +```html + + +``` + +# 子组件 + +子组件需要包裹在 `v-sign` 组件内使用!!! + +## 按钮控件(v-sign-action) + +### 示例 + +```html + + +``` + +### API + +### 属性 (Props) + +| 属性名 | 类型 | 默认值 | 说明 | +| :---------: | :-----------: | :-----------------------: | :----------------------------------------------------: | +| actions | Array | ["clear", "prev", "save"] | 按钮配置;清空(clear), 撤回(prev) 保存图片(save) | +| border | Boolean | true | 按钮是否有边框 | +| space | String/Number | 12 | 按钮间隔,Number 单位 rpx | +| customStyle | Object | - | 根元素自定义样式 | + +### 事件(Events) + +点击对应类型按钮触发对应事件, 例如:配置了清空(clear)按钮,点击则触发 clear 事件。 + +--- + +## 画笔组件(v-sign-pen) + +### 示例 + +```html + + +``` + +### API + +### 属性 (Props) + +| 属性名 | 类型 | 默认值 | 说明 | +| :---------: | :-----: | :--------------: | :--------------------------: | +| type | String | circle | 选项样式,可选 circle \ line | +| label | String | - | 标签 | +| sizes | Array | [2, 4, 6, 8, 10] | 画笔尺寸数组,单位 px | +| color | String | #333 | 选项颜色 | +| activeColor | String | #333 | 选中项颜色 | +| border | Boolean | true | 选中项是否有边框 | +| borderWidth | Number | 4 | 边框大小,单位 rpx | +| space | Number | 20 | 选项间隙,单位 rpx | +| bigger | Number | 2 | 圆点变大变粗倍数 | +| minSize | Number | 4 | 圆点最小尺寸,单位 px | + +### 事件(Events) + +| 事件称名 | 说明 | 返回值 | +| :------: | :----------------: | :----------------: | +| @change | 选择画笔大小时触发 | size:画笔尺寸大小 | + +--- + +## 颜色选择器组件(v-sign-color) + +### 示例 + +```html + + +``` + +### API + +### 属性 (Props) + +| 属性名 | 类型 | 默认值 | 说明 | +| :---------: | :-----------: | :-------------------------------------------------------------: | :-------------------: | +| type | String | square | 选项样式,可选 circle | +| color | String | - | 默认颜色 | +| options | Array | ['#333', '#f44236', '#3f51b5', '#2195f3', '#ffeb3b', '#ff9900'] | 备选色 | +| size | Number/String | 44 | 圆/方形大小,单位 rpx | +| tick | Boolean | true | 是否选中打勾 | +| tickSize | Number/String | 24 | 勾大小 | +| borderColor | String | #fff | 边框颜色 | +| border | Boolean | false | 是否有边框 | +| space | Number/String | 16 | 选项间隙 | + +### 事件(Events) + +| 事件称名 | 说明 | 返回值 | +| :------: | :------------: | :----: | +| @change | 选择颜色时触发 | color | diff --git a/pages/v-sign/static/image/clear.png b/pages/v-sign/static/image/clear.png new file mode 100644 index 0000000000000000000000000000000000000000..032e7aa232545ca6c6554a04b5fa34eee1239f10 GIT binary patch literal 6420 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 literal 0 HcmV?d00001 diff --git a/pages/v-sign/static/image/clear.svg b/pages/v-sign/static/image/clear.svg new file mode 100644 index 0000000..0285fbe --- /dev/null +++ b/pages/v-sign/static/image/clear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pages/v-sign/static/image/next.png b/pages/v-sign/static/image/next.png new file mode 100644 index 0000000000000000000000000000000000000000..20cbf6c8023a5f96939ad11820457e63bf601302 GIT binary patch literal 7319 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 literal 0 HcmV?d00001 diff --git a/pages/v-sign/static/image/next.svg b/pages/v-sign/static/image/next.svg new file mode 100644 index 0000000..36e2445 --- /dev/null +++ b/pages/v-sign/static/image/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pages/v-sign/static/image/prev.png b/pages/v-sign/static/image/prev.png new file mode 100644 index 0000000000000000000000000000000000000000..e81d3b9b629775099f4fffbc10347281c1b0f07c GIT binary patch literal 7356 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 MX@D)cbwA>N00B4zL;wH) literal 0 HcmV?d00001 diff --git a/pages/v-sign/static/image/prev.svg b/pages/v-sign/static/image/prev.svg new file mode 100644 index 0000000..5a67586 --- /dev/null +++ b/pages/v-sign/static/image/prev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pages/v-sign/static/image/save.png b/pages/v-sign/static/image/save.png new file mode 100644 index 0000000000000000000000000000000000000000..5269210fa987d4b07c2820b7ed4419162a9badb2 GIT binary patch literal 3573 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 literal 0 HcmV?d00001 diff --git a/pages/v-sign/static/image/save.svg b/pages/v-sign/static/image/save.svg new file mode 100644 index 0000000..e97dcf7 --- /dev/null +++ b/pages/v-sign/static/image/save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/components/v-sign/utils.js b/pages/v-sign/utils/index.js similarity index 64% rename from components/v-sign/utils.js rename to pages/v-sign/utils/index.js index a5a9ab7..270dcf7 100644 --- a/components/v-sign/utils.js +++ b/pages/v-sign/utils/index.js @@ -10,6 +10,6 @@ export function isNumber(val) { * 处理大小单位 * @param {Object} val */ -export function formatSize(val) { - return isNumber(val) ? `${val}rpx` : val +export function formatSize(val, unit = 'rpx') { + return isNumber(val) ? `${val}${unit}` : val }