物管理前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
28 KiB

  1. import{d as ve,s as H,v as ue,o as me,b as he,p as we,q as de,ag as ee,Q as be,G as ye,D as Ce,t as oe,a8 as fe,c as I,W as Ee,ah as V,ai as Se,ac as ke,H as Y,aj as ae}from"./index-bVOhw2NF.js";import{u as J,a as xe}from"./helpers-CjmtV6uB.js";import{i as Ae,d as K,m as Fe,c as Be,u as Te,b as $e,g as Ie}from"./common-CalHcBJp.js";import{u as P,a as pe}from"./editor-ouq_SSv2.js";import{_ as Me,s as te}from"./http-D9Asdp-z.js";import"./dayjs.min-tKPc2Ebd.js";import"./toggleHighContrast-BiNrcRtm.js";const Ne=["accept"],De=ve({__name:"Upload",props:{option:{type:Object,required:!0}},setup(l,{expose:h}){const s=l,m={json:".json",image:"image/*"},w={option:s.option},t=H();function r(g){w.option=g;let u=m[g.resultType];g.accept&&(u=g.accept),t.value.setAttribute("accept",u),t.value.click()}async function a(g){if(!w.option||!w.option.onChange)return;const{resultType:u,onChange:o}=w.option;let c=g;const e=g.target.files[0];["json","text"].includes(u)?c=await d(e):u==="image"&&(c=await d(e,u)),o(c,e),t.value.value=""}function d(g,u="text"){return new Promise(o=>{const c=new FileReader;c.addEventListener("load",e=>{const n=e.target.result||"{}";o(n)}),u==="text"?c.readAsText(g):c.readAsDataURL(g)})}return ue(()=>{r(s.option)}),h({open:r}),(g,u)=>{var o;return me(),he("input",{ref_key:"inpurRef",ref:t,type:"file",accept:(o=w.option)==null?void 0:o.accept,class:"es-upload",onChange:a},null,40,Ne)}}}),Pe=we(De,[["__scopeId","data-v-35abe14c"]]),B=P();function Re(l){return ye(Me,{vShow:l.loading,description:"正在加载svg 看板",style:"position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 9999"})}function Ve(){const l=H(!1);function h(u){const o=window.atob(u),c=o.length,e=new Uint8Array(c);for(let n=0;n<c;n++)e[n]=o.charCodeAt(n);return e.buffer}const s=async u=>await new Blob([h(u)]).text();function m(u,o,c){const e=document.getElementById(u),n=document.getElementById(`editable-text-${u}`);e&&n&&(e.innerHTML=n.innerHTML,e.classList.remove("hidden"),n.remove(),o&&n.removeEventListener("focus",o),c&&n.removeEventListener("blur",c))}function w(){B.data.svgBoard&&B.data.svgBoard.textNodes&&B.data.svgBoard.textNodes.forEach(u=>{u.selected&&(u.selected=!1,m(u.id,"",""))})}function t(u,o,c,e){const n=B.data.container.scaleRatio/100,i=document.createElement("div");i.innerHTML=u,i.setAttribute("contenteditable","true"),i.setAttribute("class","editable-text-content"),i.setAttribute("id",`editable-text-${o}`),i.setAttribute("style",`top: ${e/n}px; left: ${c/n}px;position: absolute; z-index: 10000; color: #00ffff; border: 1px dashed #00ffff; outline: none; width: max-content;`);function p(b){var f;const S=b.target.id.split("-").pop(),k=B.data.elements.find(v=>v.id===S);if(k){const v=["0","1","2","3","4","5","6","7","8","9",".","-"],C=(f=b.target.textContent)==null?void 0:f.trim().split(" ");C==null||C.forEach(y=>{y.split("").every(A=>!!v.includes(A))&&window.$triggerChangeValue(k.props.datasets,y,k)})}}function E(){var S,k;const b=(S=B.data.svgBoard)==null?void 0:S.textNodes.find(f=>f.id===o);b&&(B.data.elements.forEach(f=>{f.selected&&(f.selected=!1)}),(k=B.data.svgBoard)==null||k.textNodes.forEach(f=>{f.selected&&(f.selected=!1,m(f.id,E,p))}),b.selected=!0,B.current=b)}return i.addEventListener("focus",E),i.addEventListener("blur",p),i}function r(u){var e;u.stopPropagation();const o=u.target;o.style.outline="none";const c=o.firstChild;if((c==null?void 0:c.nodeType)===3){const n=["0","1","2","3","4","5","6","7","8","9",".","-"],i=(e=c==null?void 0:c.textContent)==null?void 0:e.trim().split(" ");i==null||i.forEach(p=>{var b,S;if(p.split("").every(k=>!!n.includes(k))){const{x:k,y:f}=o.getBoundingClientRect(),v=document.querySelector(".es-canvas")||document.querySelector(".es-editor"),C=v==null?void 0:v.getBoundingClientRect().x,y=v==null?void 0:v.getBoundingClientRect().y,x=document.getElementById(o.id),A=t((x==null?void 0:x.textContent)||"",o.id,C?k-C:k,y?f-y:f);if(setTimeout(()=>{o.classList.add("hidden"),setTimeout(()=>{v==null||v.appendChild(A),A.focus()},0)},100),!((b=B.data.svgBoard)==null?void 0:b.textNo