PageSourceSearch

https://www.bdmozon.com/assets/watermark_manage-c0663aa0.js

js bdmozon.com collected 2026-09-24 14:39:29 UTC 22,604 bytes, 14 lines download raw bytes

1import{_ as gt,z as pt,a as x,c as y,h as d,B as R,d as t,t as f,g as K,r as w,N as ot,o as It,H as W,D as Nt,q as ft,b as _,w as L,i as m,F as H,e as _t,G as Tt,u as At,J as ht,x as lt,p as Ft,k as $t}from"./main-5625f73d.js";import{B as Pt}from"./bdm-Title-b8a67ea7.js";import{B as zt}from"./bdm-NavBar-24f9b012.js";import{B as Dt}from"./bdm-RichTextForm-31903348.js";import{B as Rt}from"./bdm-Table-227d8272.js";import{B as Et}from"./bdm-SearchBar-5922ee98.js";import{B as jt}from"./bdm-Image-30a9e81a.js";import{L as Lt}from"./bdm-LoadingMask-10ea0282.js";import{P as Yt}from"./bdm-Pagination-5ecef8a1.js";import{Y as Gt}from"./bdm-YellowBar-4fede091.js";import{B as Ot}from"./bdm-ProgressBar-ddadbf65.js";import{e as Y,f as Jt,s as D,p as Xt}from"./utils-ff9069ce.js";import{p as tt,g as vt,s as Kt}from"./requests-c711612b.js";import{l as Qt}from"./lodash-1d6532e3.js";import"./bdm-form-306e2b07.js";const Zt={class:"bdm-slider"},Wt=["min","max","step"],Ht={class:"bdm-slider__value"},te=["min","max","step"],ee={key:0,class:"bdm-slider__unit"},oe={__name:"bdm-Slider",props:{modelValue:{type:[Number,String],default:0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},unit:{type:String,default:""}},emits:["update:modelValue"],setup(b,{emit:Q}){const I=b,A=Q,k=h=>{if(h===""||h===null||h===void 0)return 0;const p=Number(h);return Number.isNaN(p)?0:p},G=h=>{var O,$;const p=I.min,g=I.step||1,S=(($=(O=g.toString().split("."))==null?void 0:O[1])==null?void 0:$.length)||0,E=Math.round((h-p)/g)*g+p;return Number(E.toFixed(S))},n=h=>{const p=k(h),g=I.min,S=I.max,E=Math.min(S,Math.max(g,p));return G(E)},C=pt({get(){return n(I.modelValue)},set(h){A("update:modelValue",n(h))}}),F=pt({get(){return C.value},set(h){C.value=h}});return(h,p)=>(x(),y("div",Zt,[d(t("input",{class:"bdm-slider__range",type:"range",min:b.min,max:b.max,step:b.step,"onUpdate:modelValue":p[0]||(p[0]=g=>C.value=g)},null,8,Wt),[[R,C.value,void 0,{number:!0}]]),t("div",Ht,[d(t("input",{class:"bdm-slider__number",type:"number",min:b.min,max:b.max,step:b.step,"onUpdate:modelValue":p[1]||(p[1]=g=>F.value=g)},null,8,te),[[R,F.value,void 0,{number:!0}]]),b.unit?(x(),y("span",ee,f(b.unit),1)):K("",!0)])]))}},T=gt(oe,[["__scopeId","data-v-d44b927a"]]);const u=b=>(Ft("data-v-c74ddcaa"),b=b(),$t(),b),le={class:"watermark-manage-container"},ne=u(()=>t("div",null,[t("span",null,"记录搜索")],-1)),ae=u(()=>t("span",null,"操作管理",-1)),se=u(()=>t("th",null,"水印名称",-1)),ie=u(()=>t("th",null,"水印位置",-1)),ue=u(()=>t("th",null,"水印模式",-1)),de=u(()=>t("th",null,"透明度",-1)),re=u(()=>t("th",null,"旋转角度",-1)),ce=u(()=>t("th",null,"边距",-1)),me=u(()=>t("th",null,"短边比例",-1)),pe=u(()=>t("th",null,"图标文件",-1)),fe=u(()=>t("th",null,"水印文本",-1)),_e=u(()=>t("th",null,"字体大小",-1)),he=u(()=>t("th",null,"字体类型",-1)),ve=u(()=>t("th",null,"字体颜色",-1)),ge=u(()=>t("th",null,"描边宽度",-1)),we=u(()=>t("th",null,"描边颜色",-1)),xe=u(()=>t("th",null,"行数",-1)),ye=u(()=>t("th",null,"列数",-1)),be=u(()=>t("th",null,"差异化顺序",-1)),ke=u(()=>t("th",null,"创建时间",-1)),Ve=u(()=>t("th",null,"操作",-1)),Me=["onUpdate:modelValue"],Ue={key:0,class:"primary-image-box"},Ce={key:1},Be=["data-id"],Se=["data-id"],qe={class:"watermark-preview"},Ie={class:"preview-card"},Ne=u(()=>t("div",{class:"preview-title"},"3:4",-1)),Te={class:"preview-card"},Ae=u(()=>t("div",{class:"preview-title"},"1:1",-1)),Fe=u(()=>t("div",{class:"preview-info"},[t("div",{class:"preview-area-title"},"预览图"),t("p",null,"3:4 画布大小为 600x800"),t("p",null,"1:1 画布大小为 800x800"),t("p",null,"使用文本模式水印时如果短边比例不为零则字体大小参数不生效"),t("p",null,"如果水印突然消失了尝试将短边距离调小一些"),t("p",{style:{"font-size":"13px"}},[m("带 "),t("span",{style:{color:"green"}},"√"),m(" 的字体支持中文, 带 "),t("span",{style:{color:"red"}},"×"),m(" 的字体不支持中文 ")])],-1)),$e={class:"watermark-form"},Pe={class:"form-item"},ze={class:"to-help far fa-question-circle"},De={class:"form-item"},Re={class:"to-help far fa-question-circle"},Ee={class:"form-item"},je={class:"to-help far fa-question-circle"},Le={class:"form-item"},Ye={class:"to-help far fa-question-circle"},Ge={class:"form-item"},Oe={class:"to-help far fa-question-circle"},Je={class:"form-item radio-item-group"},Xe={class:"to-help far fa-question-circle"},Ke=u(()=>t("label",{for:"mode_text"},"文本水印",-1)),Qe=u(()=>t("label",{for:"mode_icon"}
1,"图标水印",-1)),Ze={class:"form-item"},We={class:"to-help far fa-question-circle"},He={class:"form-item"},to={class:"to-help far fa-question-circle"},eo={class:"form-item"},oo={class:"to-help far fa-question-circle"},lo=u(()=>t("option",{value:0,disabled:""},"请选择一个字体类型",-1)),no=["value"],ao={class:"form-item"},so={class:"to-help far fa-question-circle"},io={class:"form-item"},uo={class:"to-help far fa-question-circle"},ro={key:0,class:"form-item"},co={class:"to-help far fa-question-circle"},mo={key:1,class:"form-item"},po={class:"to-help far fa-question-circle"},fo={class:"form-item"},_o={class:"to-help far fa-question-circle"},ho=u(()=>t("option",{value:"top-left"},"左上角",-1)),vo=u(()=>t("option",{value:"top"},"顶部居中",-1)),go=u(()=>t("option",{value:"top-right"},"右上角",-1)),wo=u(()=>t("option",{value:"left-center"},"左侧居中",-1)),xo=u(()=>t("option",{value:"center"},"居中",-1)),yo=u(()=>t("option",{value:"right-center"},"右侧居中",-1)),bo=u(()=>t("option",{value:"bottom-left"},"左下角",-1)),ko=u(()=>t("option",{value:"bottom"},"底部居中",-1)),Vo=u(()=>t("option",{value:"bottom-right"},"右下角",-1)),Mo=u(()=>t("option",{value:"layout"},"网格布局",-1)),Uo=[ho,vo,go,wo,xo,yo,bo,ko,Vo,Mo],Co={class:"form-item"},Bo={class:"to-help far fa-question-circle"},So={class:"form-item"},qo={class:"to-help far fa-question-circle"},Io={class:"form-item"},No={class:"to-help far fa-question-circle"},To=u(()=>t("option",{value:""},"无",-1)),Ao=u(()=>t("option",{value:"pw"},"先处理后加水印",-1)),Fo=u(()=>t("option",{value:"wp"},"先加水印后处理",-1)),$o=[To,Ao,Fo],Po={class:"form-actions"},zo={__name:"watermark_manage",setup(b){const Q=w("/exchange/notice/get/watermark_manage"),I={name:""},A=w(I),k=w({page:1,per_page:100,total:0}),G={id:null,name:"",position:"top-left",mode:"text",opacity:50,angle:0,ratio_with_short_side:.2,margin:20,filename:"",text:"示例水印",font_size:20,font_type:0,font_color:"#000000",outline_width:0,outline_color:"#ffffff",rows:2,columns:2,differentiation:""},n=w({...G}),C=w(!1),F=w(!0),h={"top-left":"顶部左侧","top-right":"顶部右侧","bottom-left":"底部左侧","bottom-right":"底部右侧",layout:"网格布局",top:"顶部居中","left-center":"左侧居中",center:"居中","right-center":"右侧居中",bottom:"底部居中"},p=w([]),g=w({}),S=w([]),E=w(null),O=w(null),$=w(null);function wt(l){l.target.value==="layout"&&(n.value.rows=2,n.value.columns=2)}function xt(l){var e,a;l.target.value==="text"&&(n.value.font_size=20,n.value.font_type=((a=(e=p.value)==null?void 0:e[0])==null?void 0:a.id)||0,n.value.font_color="#000000",n.value.outline_width=0,n.value.outline_color="#ffffff")}async function yt(l){tt("/public/public/watermark/create_watermark_mode",n.value).then(e=>{D(e.data.message,2e3,"success"),C.value=!1,Z()}).finally(()=>{Y(l)})}async function bt(l){const e=await Xt(l),a=new FormData;a.append("file",l),a.append("md5",e);try{return(await tt("/public/public/watermark/upload_file_and_get_filename",a)).data.result}catch(i){Kt(i);return}}async function kt(l){const e=await bt(l.target.files[0]);e&&(n.value.filename=e)}function Vt(){if(k.value.total>=200){D("最大允许添加200个水印模板, 如果想继续添加请删除旧模板",2e3);return}n.value={...G},C.value=!0,W(()=>c())}function Mt(l){for(let e of S.value)e.selected=l.target.checked}function Z(l){tt("/public/public/watermark/search",{name:A.value.name,page:k.value.page-1,per_page:k.value.per_page}).then(e=>{S.value=e.data.result,k.value.total=e.data.total}).finally(()=>{Y(l),F.value=!1})}function nt(l){const e=[];if(l.target.dataset.id?e.push(+l.target.dataset.id):e.push(...S.value.filter(a=>a.selected).map(a=>a.id)),e.length===0){D("请至少选择一个需要被删除的水印模式"),Y(l);return}if(!confirm("确定要删除这些水印模板吗?")){Y(l);return}tt("/public/public/watermark/delete_watermark_mode",{ids:e}).then(()=>{D("删除成功"),Z()}).finally(()=>{Y(l)})}function Ut(l){return new Promise(e=>{vt("/public/public/font/get_all").then(a=>{p.value=a.data.result,g.value={};for(const i of p.value)g.value[i.id]=i}).finally(()=>{Y(l),F.value=!1,e()})})}async function Ct(l){const e=S.value.find(a=>a.id===+l.target.dataset.id);n.value={id:e.id,name:e.name,position:e.position,mode:e.mode,opacity:e.opacity,angle:e.angle,ratio_with_short_side:e.ratio_with_short_side,margin:e.margin,filename:e.filename,text:e.text,font_size:e.font_size,font_type:e.font_type,font_color:e.font_color,outline_width:e.outline_width,outline_color:e.outline_color,rows:e.rows,columns:e.columns,differentiation:e.differentiation},C.value=!0,W(()=>c())}ot(()=>n.value.filename,l=>{if(!l){$.value=null,c();return}const e=new Image;e.onload=()=>{$.value=e,c()},e.onerror=()=>{$.value=null,c()},e.src=`/prod-api/manage/copy_good/download_watermark_file/${l}`}),ot(n,()=>c(),{deep:!0}),It(()=>{Ut().then(()=>{p.value.length!==0&&(G.font_type=p.value[0].id)}),W(()=>c())}),Nt(()=>{k.value.page,k.value.per_page,W(()=>{Z()})});const at=w("正在下载字体"),P=w(0),et=w({});async function Bt(l){var i;if(!l||et.value[l])return;const e=(i=g.value)==null?void 0:i[l];if(!e)return;const a=e.filename||e.filename||e.file||e.name;
1if(!a){D("无法获取字体文件名,无法下载字体");return}at.value=`正在下载字体:${e.name||a}`,P.value=1,vt(`/public/public/font/download/${a}`,{},{responseType:"arraybuffer",onDownloadProgress:Qt.throttle(o=>{const r=Math.round(o.loaded*100/o.total);r!==0&&(P.value=r)},50),timeout:null}).then(async o=>{const r=`UserFont-${l}`,s=new FontFace(r,o.data);await s.load(),document.fonts&&document.fonts.add(s),et.value[l]=r,P.value=100,c(),setTimeout(()=>P.value=0,400)}).catch(o=>{const r=o&&o.message?o.message:String(o);D(`字体下载失败:${r}`),P.value=0})}ot(()=>n.value.font_type,async l=>{l!=null&&(await Bt(l),c())});function St(l,e,a){var U,M;const o=+(a.angle||0)*Math.PI/180;let r=document.createElement("canvas"),s=r.getContext("2d");if(!s)return null;if(a.mode==="icon"){const v=$.value;if(!v)return null;const V=l*a.ratio_with_short_side,q=v.height*V/v.width,z=Math.abs(Math.cos(o)),B=Math.abs(Math.sin(o)),N=Math.round(V*z+q*B),j=Math.round(V*B+q*z);if(r.width=N,r.height=j,s=r.getContext("2d"),!s)return null;s.translate(N/2,j/2),s.rotate(o),s.drawImage(v,-V/2,-q/2,V,q)}else{if(a.text.length===0)return;const v=+a.ratio_with_short_side||0;let V;v>0?V=v*l/a.text.length:V=+a.font_size;const q=et.value[a.font_type]||((M=(U=g.value)==null?void 0:U[a.font_type])==null?void 0:M.name)||"sans-serif",B=document.createElement("canvas").getContext("2d");if(!B)return null;B.font=`${V}px "${q}"`;const N=a.text||"水印";let j=Math.ceil(B.measureText(N).width);const it=Math.max(1,j),ut=Math.max(1,Math.ceil(V));let J,X;v>0?(J=v*l,X=ut*J/it):(J=it,X=ut),V=X;const dt=Math.abs(Math.cos(o)),rt=Math.abs(Math.sin(o)),ct=Math.round(J*dt+X*rt),mt=Math.round(J*rt+X*dt);if(r.width=ct,r.height=mt,s=r.getContext("2d"),!s)return null;s.translate(ct/2,mt/2),s.rotate(o),s.textAlign="center",s.textBaseline="middle",s.font=`${V}px "${q}"`,(+a.outline_width||0)>0&&(s.lineWidth=+a.outline_width,s.strokeStyle=a.outline_color||"#ffffff",s.strokeText(N,0,0)),s.fillStyle=a.font_color||"#000000",s.fillText(N,0,0)}return r}function qt(l,e,a,i,o,r){const s=Math.max(0,+r||0);switch(o){case"top-left":return{x:s,y:s};case"top":return{x:(l-a)/2,y:s};case"top-right":return{x:l-a-s,y:s};case"left-center":return{x:s,y:(e-i)/2};case"center":return{x:(l-a)/2,y:(e-i)/2};case"right-center":return{x:l-a-s,y:(e-i)/2};case"bottom-left":return{x:s,y:e-i-s};case"bottom":return{x:(l-a)/2,y:e-i-s};case"bottom-right":return{x:l-a-s,y:e-i-s};default:return{x:s,y:s}}}function st(l,e,a){if(!l)return;const i=l.getContext("2d");if(!i)return;(l.width!==e.width||l.height!==e.height)&&(l.width=e.width,l.height=e.height);const o=l.width,r=l.height;i.clearRect(0,0,o,r);const s=20;for(let M=0;M<r;M+=s)for(let v=0;v<o;v+=s)i.fillStyle=(v/s+M/s)%2===0?"#f3f4f6":"#e5e7eb",i.fillRect(v,M,s,s);const U=St(o,r,a);if(U){if(i.save(),i.globalAlpha=Math.max(0,Math.min(1,(a.opacity??0)/100)),a.position==="layout"){if(!(a.rows&&a.columns)){D("网格布局模式下列数或行数不能为0",2e3);return}const M=o/a.columns,v=r/a.rows,V=U.width,q=U.height;for(let z=0;z<a.rows;z++)for(let B=0;B<a.columns;B++){const N=Math.round(B*M+(M-V)/2),j=Math.round(z*v+(v-q)/2);i.drawImage(U,N,j)}}else{const M=qt(o,r,U.width,U.height,a.position,a.margin);i.drawImage(U,Math.round(M.x),Math.round(M.y))}i.restore()}}function c(){st(E.value,{width:600,height:800},n.value),st(O.value,{width:800,height:800},n.value)}return(l,e)=>{const a=ft("loading"),i=ft("tooltip");return x(),y("div",le,[_(Gt,{link:Q.value,"onUpdate:link":e[0]||(e[0]=o=>Q.value=o)},null,8,["link"]),_(Pt,null,{default:L(()=>[m("水印管理")]),_:1}),_(Et,{"origin-data":I,"search-args":A.value,"onUpdate:searchArgs":e[2]||(e[2]=o=>A.value=o),"search-func":Z},{default:L(()=>[ne,t("div",null,[d(t("input",{type:"text","onUpdate:modelValue":e[1]||(e[1]=o=>A.value.name=o),placeholder:"按名称搜索"},null,512),[[R,A.value.name]])])]),_:1},8,["search-args"]),_(zt,null,{default:L(()=>[ae,t("div",null,[t("button",{type:"button",onClick:Vt},"创建水印模板"),d((x(),y("button",{type:"button",onClick:nt},[m("批量删除水印模板")])),[[a]])])]),_:1}),_(Rt,null,{default:L(()=>[t("table",null,[t("thead",null,[t("tr",null,[t("th",null,[t("input",{type:"checkbox",onClick:Mt})]),se,ie,ue,de,re,ce,me,pe,fe,_e,he,ve,ge,we,xe,ye,be,ke,Ve])]),t("tbody",null,[(x(!0),y(H,null,_t(S.value,o=>{var r,s;return x(),y("tr",{key:o.id},[t("td",null,[d(t("input",{type:"checkbox","onUpdate:modelValue":U=>o.selected=U},null,8,Me),[[Tt,o.selected]])]),t("td",null,f(o.name),1),t("td",null,f(h==null?void 0:h[o.position]),1),t("td",null,f(o.mode==="icon"?"图标水印":"文本水印"),1),t("td",null,f(o.opacity)+"%",1),t("td",null,f(o.angle)+"°",1),t("td",null,f(o.margin)+"px",1),t("td",null,f(o.ratio_with_short_side),1),t("td",null,[o.mode==="icon"?(x(),y("div",Ue,[_(jt,{src:`/prod-api/manage/copy_good/download_watermark_file/${o.filename}`},null,8,["src"])])):(x(),y("span",Ce,"-"))]),t("td",null,f(o.mode==="text"?o.text:"-"),1),t("td",null,f(o.mode==="text"?o.font_size+"px":"-"),1),t("td",null,f(o.mode==="text"?((s=(r=g.value)==null?void 0:r[o.font_type])==null?void 0:s.name)||"未知字体":"-"),1),t("td",null,f(o.mode==="text"?o.font_color:"-"),1),t("td",null,f(o.mode==="text"?o.outline_width+"px":"未设置"),1),t("td",null,f(o.mode==="text"&&o.outline_width>0?o.outline_color:"-"),1),t("td",null,f(o.position==="layout"?o.rows:"-"),1),t("td",null,f(o.position==="layout"?o.columns:"-"),1),t("td",null,f(o.differentiation==="pw"?"先处理后水印":o.differentiation==="wp"?"先水印后处理":"无"),1),t("td",null,f(At(Jt)(o.created_at)),1),t("td",null,[t("button",{type:"button",onClick:Ct,"data-id":o.id},"修改",8,Be),t("button",{type:"button",onClick:nt,"data-id":o.id},"删除",8,Se)])])}),128))])]),_(Lt,{"is-show":F.value,"onUpdate:isShow":e[3]||(e[3]=o=>F.value=o)},null,8,["is-show"])]),_:1}),_(Yt,{per_page:k.value.per_page,"onUpdate:per_page":e[4]||(e[4]=o=>k.value.per_page=o),page:k.value.page,"onUpdate:page":e[5]||(e[5]=o=>k.value.page=o),total:k.value.total,"onUpdate:total":e[6]||(e[6]=o=>k.value.total=o)},null,8,["per_page","page","total"]),_(Dt,{class:"add-watermark-box","is-show":C.value,"onUpdate:isShow":e[25]||(e[25]=o=>C.value=o)},{title:L(()=>[m("添加水印")]),default:L(()=>[t("div",qe,[t("div",Ie,[Ne,t("canvas",{ref_key:"previewCanvas34",ref:E,width:"600",height:"800"},null,512)]),t("div",Te,[Ae,t("canvas",{ref_key:"previewCanvas11",ref:O,width:"800",height:"800"},null,512)]),Fe]),t("div",$e,[t("div",Pe,[t("label",null,[m("水印名称 "),d(t("i",ze,null,512),[[i,"用去区分不å
1Œçš„æ°´å°æ¨¡æ¿"]])]),d(t("input",{maxlength:"30",type:"text","onUpdate:modelValue":e[7]||(e[7]=o=>n.value.name=o),onInput:c,placeholder:"请输入水印名称"},null,544),[[R,n.value.name]])]),t("div",De,[t("label",null,[m("不透明度 "),d(t("i",Re,null,512),[[i,"水印不透明度"]])]),_(T,{modelValue:n.value.opacity,"onUpdate:modelValue":[e[8]||(e[8]=o=>n.value.opacity=o),c],min:1,max:100,step:1,unit:"%"},null,8,["modelValue"])]),t("div",Ee,[t("label",null,[m("旋转角度 "),d(t("i",je,null,512),[[i,"旋转图片或文本, 使用文本或图片中心作为圆心"]])]),_(T,{modelValue:n.value.angle,"onUpdate:modelValue":[e[9]||(e[9]=o=>n.value.angle=o),c],min:-180,max:180,step:1,unit:"°"},null,8,["modelValue"])]),t("div",Le,[t("label",null,[m("边距 "),d(t("i",Ye,null,512),[[i,`在水印位置没有指定成网格布局或居中的情况下
2这个参数会改变水印与商品图边缘的距离`]])]),_(T,{modelValue:n.value.margin,"onUpdate:modelValue":[e[10]||(e[10]=o=>n.value.margin=o),c],min:0,max:200,step:1,unit:"px"},null,8,["modelValue"])]),t("div",Ge,[t("label",null,[m("短边比例(字体大小或图标大小) "),d(t("i",Oe,null,512),[[i,`使用图片水印时这个参数是图片最短边与水印对应
3那条边长度的比例, 保持水印图片宽高比, 使用
4文本水印时字体大小等于商品图最短边乘以这个数字
5等于字体大小, 使用文本水印时如果此参数不为零则
6字体大小参数失效`]])]),_(T,{modelValue:n.value.ratio_with_short_side,"onUpdate:modelValue":[e[11]||(e[11]=o=>n.value.ratio_with_short_side=o),c],min:0,max:1,step:.01},null,8,["modelValue"])]),t("div",Je,[t("label",null,[m("水印模式 "),d(t("i",Xe,null,512),[[i,`使用文字水印或图片水印, 图片水印大小不能超过2M, 
7文本水印不能超过48个文字, 实际使用时一定
8要设定的少一些防止文字缩放的太厉害看不清`]])]),t("div",null,[d(t("input",{id:"mode_text",type:"radio","onUpdate:modelValue":e[12]||(e[12]=o=>n.value.mode=o),name:"mode",value:"text",onChange:c,onInput:xt},null,544),[[ht,n.value.mode]]),Ke]),t("div",null,[d(t("input",{id:"mode_icon",type:"radio","onUpdate:modelValue":e[13]||(e[13]=o=>n.value.mode=o),name:"mode",value:"icon",onChange:c,onInput:e[14]||(e[14]=(...o)=>l.initIconArgs&&l.initIconArgs(...o))},null,544),[[ht,n.value.mode]]),Qe])]),n.value.mode==="text"?(x(),y(H,{key:0},[t("div",Ze,[t("label",null,[m("水印文本 "),d(t("i",We,null,512),[[i,"水印文本,不能超过48个字符"]])]),d(t("input",{type:"text","onUpdate:modelValue":e[15]||(e[15]=o=>n.value.text=o),onInput:c},null,544),[[R,n.value.text]])]),t("div",He,[t("label",null,[m("字体大小 "),d(t("i",to,null,512),[[i,`开启短边比例参数时此参数不生效
9使用短边比例模式能让文本水印更好的适应图片大小进行自动调整`]])]),_(T,{modelValue:n.value.font_size,"onUpdate:modelValue":[e[16]||(e[16]=o=>n.value.font_size=o),c],min:8,max:200,step:1,unit:"px"},null,8,["modelValue"])]),t("div",eo,[t("label",null,[m("字体类型 "),d(t("i",oo,null,512),[[i,"可以选择一个布丁猫支持的字体"]])]),d(t("select",{"onUpdate:modelValue":e[17]||(e[17]=o=>n.value.font_type=o),onChange:c},[lo,(x(!0),y(H,null,_t(p.value,o=>(x(),y("option",{key:o.id,value:o.id},f(o.name),9,no))),128))],544),[[lt,n.value.font_type]])]),t("div",ao,[t("label",null,[m("字体颜色 "),d(t("i",so,null,512),[[i,"指定文本水印的颜色"]])]),d(t("input",{type:"color","onUpdate:modelValue":e[18]||(e[18]=o=>n.value.font_color=o),onInput:c},null,544),[[R,n.value.font_color]])]),t("div",io,[t("label",null,[m("描边宽度 "),d(t("i",uo,null,512),[[i,"指定文本水印描边的宽度"]])]),_(T,{modelValue:n.value.outline_width,"onUpdate:modelValue":[e[19]||(e[19]=o=>n.value.outline_width=o),c],min:0,max:20,step:1,unit:"px"},null,8,["modelValue"])]),n.value.outline_width>0?(x(),y("div",ro,[t("label",null,[m("描边颜色 "),d(t("i",co,null,512),[[i,"指定文本水印描边的颜色"]])]),d(t("input",{type:"color","onUpdate:modelValue":e[20]||(e[20]=o=>n.value.outline_color=o),onInput:c},null,544),[[R,n.value.outline_color]])])):K("",!0)],64)):K("",!0),n.value.mode==="icon"?(x(),y("div",mo,[t("label",null,[m("图标文件 "),d(t("i",po,null,512),[[i,"水印图标, 支持png与jpg格式, 大小不能超过2M"]])]),t("input",{type:"file",accept:".jpeg,.jpg,.png",onCh
9ange:kt},null,32)])):K("",!0),t("div",fo,[t("label",null,[m("水印位置 "),d(t("i",_o,null,512),[[i,`水印绘制的位置当选择网格布局时, 水印会根据
10指定的行数和列数均匀绘制`]])]),d(t("select",{"onUpdate:modelValue":e[21]||(e[21]=o=>n.value.position=o),onChange:c,onInput:wt},Uo,544),[[lt,n.value.position]])]),n.value.position==="layout"?(x(),y(H,{key:2},[t("div",Co,[t("label",null,[m("行数 "),d(t("i",Bo,null,512),[[i,"水印位置指定成网格布局模式时绘制水印的行数"]])]),_(T,{modelValue:n.value.rows,"onUpdate:modelValue":[e[22]||(e[22]=o=>n.value.rows=o),c],min:1,max:10,step:1},null,8,["modelValue"])]),t("div",So,[t("label",null,[m("列数 "),d(t("i",qo,null,512),[[i,"水印位置指定成网格布局模式时绘制水印的列数"]])]),_(T,{modelValue:n.value.columns,"onUpdate:modelValue":[e[23]||(e[23]=o=>n.value.columns=o),c],min:1,max:10,step:1},null,8,["modelValue"])])],64)):K("",!0),t("div",Io,[t("label",null,[m("像素混淆处理 "),d(t("i",No,null,512),[[i,`开启图像混淆处理算法进一步防止下架, 与之前下架的普通防下架功能一模一样. 
11混淆过的图片质量会有所下降
12使用先处理后加水印图片会变模糊但水印很清晰
13使用先加水印后处理图片会整个变模糊
14此参数不支持预览`]])]),d(t("select",{"onUpdate:modelValue":e[24]||(e[24]=o=>n.value.differentiation=o),onChange:c},$o,544),[[lt,n.value.differentiation]])]),t("div",Po,[d((x(),y("button",{type:"submit",onClick:yt},[m("保存水印")])),[[a]])])])]),_:1},8,["is-show"]),_(Ot,{style:{"z-index":"2"},title:at.value,progress:P.value,"onUpdate:progress":e[26]||(e[26]=o=>P.value=o)},null,8,["title","progress"])])}}},tl=gt(zo,[["__scopeId","data-v-c74ddcaa"]]);export{tl as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.