UNPKG

@vuux/editor

Version:

Vue Nuxt 富文本编辑器

2 lines (1 loc) 2.08 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),i=require("../message.cjs"),d=require("@vuux/utils"),p=require("../../hook/useAjax.cjs"),N=(a,f,r,o)=>{const l=u.reactive({color:"#339af0",isUploadIng:!1,percent:0,imageUrl:"",rows:2,cols:3,isFull:!1}),s=u.reactive({color:!1,heading:!1,size:!1,panel:!1,list:!1,image:!1,table:!1}),g=()=>{for(const e in s)s[e]=!1},m=e=>{const n=s[e];g(),s[e]=!n},w=()=>{a.markdownActions.insertColor(l.color),s.color=!1},h=e=>{a.markdownActions.insertHeading(e),s.heading=!1},U=e=>{a.markdownActions.insertPanel(e),s.panel=!1},b=e=>{a.markdownActions.insertFontSize(e),s.size=!1},S=e=>{a.markdownActions.insertList(e),s.list=!1},k=()=>{const e=l.imageUrl.trim();if(!/^https?:\/\/.+\.(png|jpe?g|gif|svg|webp|bmp|ico)$/i.test(e)){i.error("请输入正确的图片地址");return}a.markdownActions.insertImage(e),s.image=!1,l.imageUrl=""},v=()=>{const e=r.value;e&&e.click()},A=()=>{const e=r.value;if(!e||!e.files||!e.files.length){s.image=!1;return}const n=e.files[0];l.isUploadIng=!0,s.image=!1,p.UploadRequest({uid:Date.now().toString(),uploadUrl:a.action||"",selectedFile:n,headers:a.headers,name:a.uploadName||"file",onSuccess:(c,t)=>{o("success",t,n.name),e.value="",l.isUploadIng=!1},onError:async(c,t)=>{o("error",t),e.value="",await d.Utils.wait(200),l.isUploadIng=!1},onProgress:(c,t)=>{l.percent=t}})},F=()=>{const e=Number(l.rows),n=Number(l.cols);if(isNaN(e)||e<1||e>20){i.error("行数必须为1-20的整数");return}if(isNaN(n)||n<1||n>20){i.error("列数必须为1-20的整数");return}a.markdownActions.insertTable(e,n),s.table=!1,l.rows=2,l.cols=3},I=()=>{l.isFull=!l.isFull,o("full",l.isFull)};return d.Utils.useClickOutside(f,()=>{s.color=!1,s.heading=!1,s.size=!1,s.panel=!1,s.list=!1,s.image=!1,s.table=!1,l.imageUrl=""}),{state:l,dropdowns:s,toggleDropdown:m,onColor:w,handleSelectHeading:h,handleSelectePanelValue:U,handleSelectSizeValue:b,handleSelectListValue:S,handleInsertImage:k,handleFileChange:v,handleFileUpload:A,handeInsertTable:F,handleFull:I}};exports.useTop=N;