import{an as t,am as e,o as i,c as s,w as n,Q as a,b as l,I as r,K as o,J as h,d,t as u,H as c,R as g,v as p,f as m,i as f,ap as w,M as v,x as y,N as _,F as S,aQ as b,p as x,q as C,G as V,X as k,Z as T,e as $}from"./index-Bi79MZF2.js";import{_ as j}from"./u-action-sheet.DsY2qxHw.js";import{r as I}from"./uni-app.es.t2htoAAz.js";import{_ as D}from"./_plugin-vue_export-helper.BCo6x5W8.js";let M="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";let B=function(t){var e,i,s,n,a,l,r,o="",h=0;for(t=function(t){t=t.replace(/\r\n/g,"\n");for(var e="",i=0;i<t.length;i++){var s=t.charCodeAt(i);s<128?e+=String.fromCharCode(s):s>127&&s<2048?(e+=String.fromCharCode(s>>6|192),e+=String.fromCharCode(63&s|128)):(e+=String.fromCharCode(s>>12|224),e+=String.fromCharCode(s>>6&63|128),e+=String.fromCharCode(63&s|128))}return e}(t);h<t.length;)n=(e=t.charCodeAt(h++))>>2,a=(3&e)<<4|(i=t.charCodeAt(h++))>>4,l=(15&i)<<2|(s=t.charCodeAt(h++))>>6,r=63&s,isNaN(i)?l=r=64:isNaN(s)&&(r=64),o=o+M.charAt(n)+M.charAt(a)+M.charAt(l)+M.charAt(r);return o};const N=D({name:"jnpf-sign",components:{Sign:D({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 i=t(this.cid,this);this.cxt=i,this.ctrl={width:0,height:0,clear:()=>{this.lines=[],e().in(this).select("."+this.cid).boundingClientRect((t=>{t&&(i.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,"+B(t)}},this.$nextTick((function(){this.ctrl.clear()}))},_get_svg(){let t=[],e=this.ctrl.width,i=this.ctrl.height,s=90!=Math.abs(-90)?e:i,n=90==Math.abs(-90)?e:i,a=e/2,l=i/2,r=Math.PI,o=Math.cos(-90*r/180),h=Math.sin(-90*r/180),d=(s-e)/2,u=(n-i)/2,c=function(t){{let e=(t.x-a)*o-(t.y-l)*h+a,i=(t.x-a)*h+(t.y-l)*o+l;return{x:e+d,y:i+u}}};return this.lines.map((e=>{if(e.points.length<2)return;let i=c(e.start),s=[`M ${i.x} ${Number(i.y)}`];e.points.map((t=>{let e=c(t);s.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="${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="${s}" height="${n}">${t.join("\n")}</svg>`},_get_svg_raw(){let t=[];return this.lines.map((e=>{if(e.points.length<2)return;let i=[`M ${e.start.x} ${Number(e.start.y)}`];e.points.map((t=>{i.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="${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="${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,v,y,_,S){const b=m,x=f,C=w;return i(),s(x,{class:"signature-wrap"},{default:n((()=>[v.disabled?p("",!0):a((i(),s(x,{key:0,class:"signature-contain"},{default:n((()=>[l(x,{class:"signature-main",style:{"z-index":"3000"}},{default:n((()=>[l(x,null,{default:n((()=>[l(x,{class:"signature-title"},{default:n((()=>[(i(!0),r(o,null,h(S.titles,((t,e)=>(i(),s(b,{key:e},{default:n((()=>[d(u(t),1)])),_:2},1024)))),128))])),_:1})])),_:1}),l(C,{"disable-scroll":"true",class:c(["signature",_.cid]),"canvas-id":_.cid,onTouchstart:S.touchstart,onTouchmove:S.touchmove,onTouchend:S.touchend},{default:n((()=>[a(l(x,{class:"tip"},{default:n((()=>[d(" 请在此区域手写签名 ")])),_:1},512),[[g,!_.hasDrew]])])),_:1},8,["class","canvas-id","onTouchstart","onTouchmove","onTouchend"]),l(x,{class:"signature-btns"},{default:n((()=>[l(x,{class:"btn btn-cancel cu-btn bg-main margin-tb-sm text-white",onClick:e[0]||(e[0]=t=>S.cancelSignature())},{default:n((()=>[l(b,null,{default:n((()=>[d("取")])),_:1}),l(b,null,{default:n((()=>[d("消")])),_:1})])),_:1}),l(x,{class:"btn btn-clear cu-btn bg-main margin-tb-sm text-white",onClick:e[1]||(e[1]=t=>{S.clearSignature()})},{default:n((()=>[l(b,null,{default:n((()=>[d("清")])),_:1}),l(b,null,{default:n((()=>[d("空")])),_:1})])),_:1}),l(x,{class:"btn btn-ok cu-btn bg-main margin-tb-sm text-white",onClick:e[2]||(e[2]=t=>S.onOK())},{default:n((()=>[l(b,null,{default:n((()=>[d("确")])),_:1}),l(b,null,{default:n((()=>[d("定")])),_:1})])),_:1})])),_:1})])),_:1})])),_:1},512)),[[g,_.show]])])),_:1})}],["__scopeId","data-v-8ac597d1"]])},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}},data:()=>({show:!1,innerValue:"",signMode:!1,signList:[],signOptions:[{value:"1",text:"手写签名"},{value:"2",text:"调用签名"}]}),created(){v("setSignValue",(t=>{let e=y("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){1===t?S({url:"/pages/apply/interPage/signInvokeList?fieldKey="+this.fieldKey+"&signVal="+encodeURIComponent(this.modelValue)}):this.addSign()},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){b({urls:[t],current:t,success:()=>{},fail:()=>{x({title:"预览图片失败",icon:"none"})}})}}},[["render",function(t,e,h,m,w,v){const y=$,_=f,S=I(C("u-action-sheet"),j),b=V("Sign");return i(),s(_,{class:c(["jnpf-sign","right"==h.align?"flex-end":"flex-start"])},{default:n((()=>[l(_,{class:"jnpf-sign-box"},{default:n((()=>[h.showBtn?(i(),r(o,{key:0},[a(l(y,{class:"jnpf-sign-img",src:w.innerValue,mode:"scaleToFill",onClick:e[0]||(e[0]=k((t=>v.handlePreviewImage(w.innerValue)),["stop"]))},null,8,["src"]),[[g,w.innerValue]]),h.detailed||h.isInvoke?p("",!0):(i(),s(_,{key:0,class:"jnpf-sign-btn",onClick:e[1]||(e[1]=t=>v.addSign())},{default:n((()=>[T("i",{class:"icon-ym icon-ym-signature"}),w.innerValue?p("",!0):(i(),s(_,{key:0,class:"title"},{default:n((()=>[d(u(h.signTip),1)])),_:1}))])),_:1})),!h.detailed&&h.isInvoke?(i(),s(_,{key:1,class:"jnpf-sign-btn",onClick:e[2]||(e[2]=t=>v.showSignMode())},{default:n((()=>[T("i",{class:"icon-ym icon-ym-signature"}),w.innerValue?p("",!0):(i(),s(_,{key:0,class:"title"},{default:n((()=>[d(u(h.signTip),1)])),_:1}))])),_:1})):p("",!0)],64)):p("",!0),l(S,{list:w.signOptions,modelValue:w.signMode,"onUpdate:modelValue":e[3]||(e[3]=t=>w.signMode=t),onClick:v.handleCommand},null,8,["list","modelValue","onClick"]),l(b,{ref:"sign",onInput:v.setValue},null,8,["onInput"])])),_:1})])),_:1},8,["class"])}],["__scopeId","data-v-32082100"]]);export{N as _};