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
14 KiB

3 weeks ago
import{I as e,N as t,V as n,Y as r,_ as i,d as a,f as o,i as s,it as c,kt as l,l as u,nt as d,p as f,u as p,ut as m,v as h,y as g,z as _}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as v}from"./message-Dh9377vh.js";import{n as y}from"./http-BWP--XXK.js";import{i as b}from"./index-CLnpIFlv.js";import{t as x}from"./RichEditorField-CB5ec-6r.js";import{t as ee}from"./listTableRowIndex-Bl-nc9Qt.js";import{t as S}from"./mediaUrl-D5Z8dTjp.js";var te=[`src`,`onClick`],ne={key:1,style:{color:`#86909c`}},re={style:{"max-width":`90vw`,"max-height":`80vh`}},ie=[`src`],ae=[`src`],oe={class:`admin-modal-form__full`},C={class:`study-tour-tags-field`},se={class:`study-tour-tags-input-row`},ce={class:`study-tour-tags-list`},le={key:0,style:{color:`#86909c`}},ue={style:{width:`100%`,display:`flex`,"flex-direction":`column`,"align-items":`stretch`}},de={style:{width:`100%`,"margin-bottom":`8px`}},fe={style:{width:`100%`,border:`1px solid #e5e6eb`,"border-radius":`6px`,padding:`8px`,"max-height":`220px`,overflow:`auto`}},w={key:0,style:{display:`flex`,"flex-direction":`column`,"align-items":`flex-start`,gap:`8px`}},pe=[`src`],me=900,T=b(g({__name:`StudyTourList`,setup(g){let b=c(!1),T=c(!1),E=c(!1),D=c(!0),O=c(null),k=c([]),A=c([]),j=c(``),M=c(void 0),N=c(void 0),P=d({current:1,pageSize:10}),he={maxHeight:`70vh`,overflow:`auto`},F=c(0),I=c(!1),L=c(`image`),R=c(``),z=d({name:``,tags:[],venue_ids:[],cover_image:``,intro_html:``,sort:0,is_on_shelf:!0}),B=c(``),V=u(()=>{let e=new Map(A.value.map(e=>[e.id,e]));return z.venue_ids.map(t=>e.get(t)).filter(Boolean)});function H(e,t){let n=String(e||``).trim();if(n)return S(n);let r=String(t||``).trim();return r?S(r):``}async function U(e){let t=new FormData;t.append(`file`,e);let{data:n}=await y.post(`/upload`,t);return H(n?.url,n?.path)}async function W(e){return U(e)}function G(){F.value+=1}function K(e){let t=new Set,n=[e];for(;n.length;){let e=n.shift();if(!(!e||t.has(e))){if(t.add(e),e instanceof File)return e;if(e?.target?.files?.[0]instanceof File)return e.target.files[0];if(Array.isArray(e)){for(let t of e)n.push(t);continue}if(typeof e==`object`){for(let t of[`file`,`raw`,`originFile`,`originFileObj`,`fileItem`,`item`,`data`])e[t]&&n.push(e[t]);for(let t of Object.values(e))t&&(typeof t==`object`||Array.isArray(t))&&n.push(t)}}}return null}function q(){let e=this.quill,t=document.createElement(`input`);t.type=`file`,t.accept=`image/*`,t.onchange=async()=>{let n=t.files?.[0];if(n)try{let t=await W(n),r=e.getSelection(!0)?.index??Math.max(0,e.getLength()-1);e.insertEmbed(r,`image`,t,`user`),e.setSelection(r+1,0),v.success(`图片已上传并插入`)}catch(e){v.error(e?.response?.data?.message??e?.message??`图片上传失败`)}},t.click()}function J(){let e=this.quill,t=document.createElement(`input`);t.type=`file`,t.accept=`video/*`,t.onchange=async()=>{let n=t.files?.[0];if(n)try{let t=await W(n),r=e.getSelection(!0)?.index??Math.max(0,e.getLength()-1);e.insertEmbed(r,`video`,t,`user`),e.setSelection(r+1,0),v.success(`视频已上传并插入`)}catch(e){v.error(e?.response?.data?.message??e?.message??`视频上传失败`)}},t.click()}let ge={modules:{toolbar:{container:[[{header:[1,2,3,!1]}],[`bold`,`italic`,`underline`,`strike`],[{color:[]},{background:[]}],[{list:`ordered`},{list:`bullet`}],[{align:[]}],[`link`,`image`,`video`],[`clean`]],handlers:{image:q,video:J}}},placeholder:`请输入线路简介`};function _e(e){return(e||[]).length?(e||[]).join(``):`-`}function ve(e,t){t&&(L.value=e,R.value=S(t),I.value=!0)}async function Y(e){try{let t=K(e);if(!t)return v.warning(`未识别到上传文件`),!1;z.cover_image=await U(t),v.success(`封面上传成功`)}catch(e){v.error(e?.response?.data?.message??`封面上传失败`)}return!1}function ye(...e){Y(e)}function be(){z.cover_image=``}function X(e){let t=e?.target,n=(t?.getAttribute?.(`src`)||t?.src||``).trim();!n||n===`about:blank`||v.error(`图片地址无法访问,请检查后端 storage 访问配置`)}function xe(){j.value=``,M.value=void 0,N.value=void 0,P.current=1,Z()}async function Z(e=!1){b.value=!0;try{let t={},n=