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 0000000..032e7aa Binary files /dev/null and b/pages/v-sign/static/image/clear.png differ 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 0000000..20cbf6c Binary files /dev/null and b/pages/v-sign/static/image/next.png differ 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 0000000..e81d3b9 Binary files /dev/null and b/pages/v-sign/static/image/prev.png differ 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 0000000..5269210 Binary files /dev/null and b/pages/v-sign/static/image/save.png differ 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 }