index.DgjoBC2V.js 9.5 KB

1
  1. import{aA as t,az as e,t as s,p as i,w as n,z as a,v as l,D as r,F as o,E as h,x as d,y as u,H as c,A as g,B as p,I as f,q as m,aC as w,a2 as y,g as v,a5 as _,n as b,aJ as S,c as C,o as x,X as V,R as k,C as T,G as j}from"./index-P0fyQ2Em.js";import{_ as $}from"./u-action-sheet.C0QG6n24.js";import{r as I}from"./uni-app.es.DOtS5Ldl.js";import{_ as B}from"./_plugin-vue_export-helper.BCo6x5W8.js";let D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";let M=function(t){var e,s,i,n,a,l,r,o="",h=0;for(t=function(t){t=t.replace(/\r\n/g,"\n");for(var e="",s=0;s<t.length;s++){var i=t.charCodeAt(s);i<128?e+=String.fromCharCode(i):i>127&&i<2048?(e+=String.fromCharCode(i>>6|192),e+=String.fromCharCode(63&i|128)):(e+=String.fromCharCode(i>>12|224),e+=String.fromCharCode(i>>6&63|128),e+=String.fromCharCode(63&i|128))}return e}(t);h<t.length;)n=(e=t.charCodeAt(h++))>>2,a=(3&e)<<4|(s=t.charCodeAt(h++))>>4,l=(15&s)<<2|(i=t.charCodeAt(h++))>>6,r=63&i,isNaN(s)?l=r=64:isNaN(i)&&(r=64),o=o+D.charAt(n)+D.charAt(a)+D.charAt(l)+D.charAt(r);return o};const N=B({name:"jnpf-sign",emits:["change","update:modelValue"],components:{Sign:B({cxt:null,data(){return{VERSION:"1.0.0",cid:"cvs"+this.jnpf.idGenerator(),show:!1,ctrl:null,listeners:[],prevView:"",draws:[],lines:[],line:null,hasDrew:!1}},props:{value:{default:""},title:{type:String,default:"请签名"},disabled:{type:Boolean,default:!1},showBtn:{type:Boolean,default:!1}},watch:{value(){this.prevView=this.value},lines:{deep:!0,handler(t){this.hasDrew=!!t.length}}},computed:{titles(){return this.title.split("")},absPrevView(){return this.prevView}},mounted(){this.prevView=this.value},methods:{onOK(){let t=this.ctrl.getValue();this.$emit("input",t),this.prevView=t,this.hideSignature();let e=this.listeners.shift();e&&e(t)},touchSignature(){let t=this.prevView;t&&t.length||this.showSignature()},showSignature(){this.disabled||(this.ctrl?this.show||(this.clearSignature(),this.show=!0):this.initCtrl())},async getSyncSignature(){return this.showSignature(),await new Promise((async(t,e)=>{this.listeners.push((e=>{t(e)}))}))},cancelSignature(){this.listeners.map((t=>{t(null)})),this.hideSignature()},hideSignature(){this.ctrl&&this.ctrl.clear(),this.show=!1},clearSignature(){this.ctrl&&this.ctrl.clear()},async initCtrl(){this.show=!0;let s=t(this.cid,this);this.cxt=s,this.ctrl={width:0,height:0,clear:()=>{this.lines=[],e().in(this).select("."+this.cid).boundingClientRect((t=>{t&&(s.clearRect(0,0,t.width,t.height),t.width&&t.height&&(this.ctrl.width=t.width,this.ctrl.height=t.height))})).exec(),this.redraw()},getValue:()=>{if(!this.lines.length)return"";let t=this._get_svg();return"data:image/svg+xml;base64,"+M(t)}},this.$nextTick((function(){this.ctrl.clear()}))},_get_svg(){let t=[],e=this.ctrl.width,s=this.ctrl.height,i=90!=Math.abs(-90)?e:s,n=90==Math.abs(-90)?e:s,a=e/2,l=s/2,r=Math.PI,o=Math.cos(-90*r/180),h=Math.sin(-90*r/180),d=(i-e)/2,u=(n-s)/2,c=function(t){{let e=(t.x-a)*o-(t.y-l)*h+a,s=(t.x-a)*h+(t.y-l)*o+l;return{x:e+d,y:s+u}}};return this.lines.map((e=>{if(e.points.length<2)return;let s=c(e.start),i=[`M ${s.x} ${Number(s.y)}`];e.points.map((t=>{let e=c(t);i.push(`L ${e.x} ${Number(e.y)}`)})),t.push(`<path stroke-linejoin="round" stroke-linecap="round" stroke-width="3" stroke="rgb(0,0,0)" fill="none" d="${i.join(" ")}"/>`)})),`<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="${i}" height="${n}">${t.join("\n")}</svg>`},_get_svg_raw(){let t=[];return this.lines.map((e=>{if(e.points.length<2)return;let s=[`M ${e.start.x} ${Number(e.start.y)}`];e.points.map((t=>{s.push(`L ${t.x} ${Number(t.y)}`)})),t.push(`<path stroke-linejoin="round" stroke-linecap="round" stroke-width="3" stroke="rgb(0,0,0)" fill="none" d="${s.join(" ")}"/>`)})),`<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="${this.ctrl.width}" height="${this.ctrl.height}" transform="rotate(-90)">${t.join("\n")}</svg>`},_get_point:t=>({x:t.changedTouches[0].x.toFixed(1),y:t.changedTouches[0].y.toFixed(1)}),touchstart(t){let e=this._get_point(t);this.line={start:e,points:[e]},this.lines.push(this.line)},touchmove(t){let e=this._get_point(t);this.line.points.push(e),this.tm||(this.tm=setTimeout((()=>{this.redraw(),this.tm=0}),10))},touchend(t){let e=this._get_point(t);this.line.points.push(e),this.line.end=e,this.redraw()},redraw(){let t=this.cxt;t.setStrokeStyle("#000"),t.setLineWidth(3),this.lines.map((e=>{t.beginPath(),e.points.length<2||(t.moveTo(e.start.x,e.start.y),e.points.map((e=>{t.lineTo(e.x,e.y)})),t.stroke())})),t.draw()},canvasIdErrorCallback:function(t){}}},[["render",function(t,e,y,v,_,b){const S=f,C=m,x=w;return s(),i(C,{class:"signature-wrap"},{default:n((()=>[y.disabled?p("",!0):a((s(),i(C,{key:0,class:"signature-contain"},{default:n((()=>[l(C,{class:"signature-main",style:{"z-index":"3000"}},{default:n((()=>[l(C,null,{default:n((()=>[l(C,{class:"signature-title"},{default:n((()=>[(s(!0),r(o,null,h(b.titles,((t,e)=>(s(),i(S,{key:e},{default:n((()=>[d(u(t),1)])),_:2},1024)))),128))])),_:1})])),_:1}),l(x,{"disable-scroll":"true",class:c(["signature",_.cid]),"canvas-id":_.cid,onTouchstart:b.touchstart,onTouchmove:b.touchmove,onTouchend:b.touchend},{default:n((()=>[a(l(C,{class:"tip"},{default:n((()=>[d(" 请在此区域手写签名 ")])),_:1},512),[[g,!_.hasDrew]])])),_:1},8,["class","canvas-id","onTouchstart","onTouchmove","onTouchend"]),l(C,{class:"signature-btns"},{default:n((()=>[l(C,{class:"btn btn-cancel cu-btn bg-main margin-tb-sm text-white",onClick:e[0]||(e[0]=t=>b.cancelSignature())},{default:n((()=>[l(S,null,{default:n((()=>[d("取")])),_:1}),l(S,null,{default:n((()=>[d("消")])),_:1})])),_:1}),l(C,{class:"btn btn-clear cu-btn bg-main margin-tb-sm text-white",onClick:e[1]||(e[1]=t=>{b.clearSignature()})},{default:n((()=>[l(S,null,{default:n((()=>[d("清")])),_:1}),l(S,null,{default:n((()=>[d("空")])),_:1})])),_:1}),l(C,{class:"btn btn-ok cu-btn bg-main margin-tb-sm text-white",onClick:e[2]||(e[2]=t=>b.onOK())},{default:n((()=>[l(S,null,{default:n((()=>[d("确")])),_:1}),l(S,null,{default:n((()=>[d("定")])),_:1})])),_:1})])),_:1})])),_:1})])),_:1},512)),[[g,_.show]])])),_:1})}],["__scopeId","data-v-730c3946"]])},props:{modelValue:{type:[String,Number,Boolean]},fieldKey:{type:String,default:""},signTip:{type:String,default:"添加签名"},disabled:{type:Boolean,default:!1},detailed:{type:Boolean,default:!1},align:{type:String,default:"right"},showBtn:{type:Boolean,default:!0},defaultCurrent:{type:Boolean,default:!1},isInvoke:{type:Boolean,default:!1},signType:{type:String,default:"currency"}},data:()=>({innerValue:"",signMode:!1,signList:[],signOptions:[{value:"1",text:"手写签名"},{value:"2",text:"调用签名"}]}),created(){y("setSignValue",(t=>{let e=v("sign-fieldKey");this.fieldKey==e&&this.setValue(t)}))},onLoad(t){this.$nextTick((async()=>{await this.getSignData()}))},onUnload(){_("setSignValue")},watch:{modelValue:{handler(t){this.innerValue=t||""},deep:!0,immediate:!0}},methods:{showSignMode(){this.disabled||(this.signMode=!0)},handleCommand(t){if(1!==t)return this.addSign();b({url:"/pages/apply/interPage/signInvokeList?fieldKey="+this.fieldKey+"&signVal="+encodeURIComponent(this.modelValue)})},addSign(){this.disabled||this.$nextTick((()=>{this.$refs.sign.showSignature()}))},setValue(t){t&&(this.innerValue=t,this.$emit("update:modelValue",t),this.$emit("change",t))},handlePreviewImage(t){S({urls:[t],current:t,success:()=>{},fail:()=>{C({title:"预览图片失败",icon:"none"})}})}}},[["render",function(t,e,h,f,w,y){const v=j,_=m,b=I(x("u-action-sheet"),$),S=V("Sign");return s(),r(o,null,["currency"===h.signType?(s(),i(_,{key:0,class:c(["jnpf-sign","right"==h.align?"flex-end":"flex-start"])},{default:n((()=>[l(_,{class:"jnpf-sign-box"},{default:n((()=>[h.showBtn?(s(),r(o,{key:0},[a(l(v,{class:"jnpf-sign-img",src:w.innerValue,mode:"scaleToFill",onClick:e[0]||(e[0]=k((t=>y.handlePreviewImage(w.innerValue)),["stop"]))},null,8,["src"]),[[g,w.innerValue]]),h.detailed||h.isInvoke?p("",!0):(s(),i(_,{key:0,class:c(["jnpf-sign-btn",{"jnpf-sign-disabled":h.disabled}]),onClick:e[1]||(e[1]=t=>y.addSign())},{default:n((()=>[T("i",{class:"icon-ym icon-ym-signature"}),w.innerValue?p("",!0):(s(),i(_,{key:0,class:"title"},{default:n((()=>[d(u(h.signTip),1)])),_:1}))])),_:1},8,["class"])),!h.detailed&&h.isInvoke?(s(),i(_,{key:1,class:c(["jnpf-sign-btn",{"jnpf-sign-disabled":h.disabled}]),onClick:e[2]||(e[2]=t=>y.showSignMode())},{default:n((()=>[T("i",{class:"icon-ym icon-ym-signature"}),w.innerValue?p("",!0):(s(),i(_,{key:0,class:"title"},{default:n((()=>[d(u(h.signTip),1)])),_:1}))])),_:1},8,["class"])):p("",!0)],64)):p("",!0)])),_:1})])),_:1},8,["class"])):(s(),i(_,{key:1,class:"u-flex signature-box"},{default:n((()=>[l(_,{class:c(["jnpf-sign-btn",{"jnpf-sign-disabled":h.disabled}]),onClick:e[3]||(e[3]=t=>y.showSignMode())},{default:n((()=>[T("i",{class:"icon-ym icon-ym-signature"}),l(_,{class:"title"},{default:n((()=>[d("添加签名")])),_:1})])),_:1},8,["class"]),a(l(v,{class:"jnpf-sign-img",src:h.modelValue,mode:"scaleToFill",onClick:e[4]||(e[4]=k((t=>y.handlePreviewImage(h.modelValue)),["stop"]))},null,8,["src"]),[[g,h.modelValue]])])),_:1})),l(b,{list:w.signOptions,modelValue:w.signMode,"onUpdate:modelValue":e[5]||(e[5]=t=>w.signMode=t),onClick:y.handleCommand},null,8,["list","modelValue","onClick"]),l(S,{ref:"sign",onInput:y.setValue},null,8,["onInput"])],64)}],["__scopeId","data-v-cde75ffb"]]);export{N as _};