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
12 KiB
1 line
12 KiB
|
6 days ago
|
import{C as e,Ct as t,D as n,E as r,G as i,S as a,T as o,X as s,Xt as c,Y as l,at as u,b as d,d as f,f as p,ht as m,m as h,ot as g,q as _,rt as v,tn as y,w as b,x}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as S,l as C,r as w,s as T}from"./index-BKGTVidA.js";import{n as E,t as D}from"./usePageLoad-D9c6HmVf.js";import{n as O,t as ee}from"./RichTextEditor--JhJgtyr.js";import{s as k}from"./activities-CCTU_3qV.js";import{l as A}from"./courses-DlpilFy4.js";import{a as j}from"./news-DsaeuNoa.js";import{r as te}from"./admin-list-DjncsyJC.js";var M=T(n({__name:`RemotePagedSelect`,props:{modelValue:{},placeholder:{default:`请搜索选择`},pageSize:{default:20},initialOption:{default:null},fetchPage:{}},emits:[`update:modelValue`],setup(t,{expose:n,emit:a}){let o=t,s=a,c=m(!1),f=m([]),g=m(``),y=m(1),S=m(0);function C(e){let t=o.initialOption;return!t||e.some(e=>e.id===t.id)?e:[t,...e]}async function w(e=1,t=g.value){c.value=!0;try{let n=await o.fetchPage({keyword:t,page:e,pageSize:o.pageSize});f.value=C(n.items),S.value=n.total,y.value=e,g.value=t}finally{c.value=!1}}function T(e){w(1,e)}function E(e){w(e,g.value)}function D(e){e&&w(1,g.value)}return v(()=>o.initialOption,()=>{f.value=C(f.value)}),n({reload:()=>w(1,g.value)}),(n,a)=>{let o=l(`el-option`),m=l(`el-pagination`),g=l(`el-select`);return i(),x(g,{"model-value":t.modelValue,filterable:``,remote:``,"reserve-keyword":``,placeholder:t.placeholder,"remote-method":T,loading:c.value,style:{width:`100%`},"onUpdate:modelValue":a[2]||=e=>s(`update:modelValue`,e),onVisibleChange:D},b({default:u(()=>[(i(!0),e(h,null,_(f.value,e=>(i(),x(o,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:2},[S.value>t.pageSize?{name:`footer`,fn:u(()=>[d(`div`,{class:`remote-paged-select-footer`,onClick:a[0]||=p(()=>{},[`stop`]),onMousedown:a[1]||=p(()=>{},[`stop`])},[r(m,{small:``,layout:`total, prev, pager, next`,total:S.value,"page-size":t.pageSize,"current-page":y.value,onCurrentChange:E},null,8,[`total`,`page-size`,`current-page`])],32)]),key:`0`}:void 0]),1032,[`model-value`,`placeholder`,`loading`])}}}),[[`__scopeId`,`data-v-6c878f54`]]);async function N(e){let{data:t}=await w.get(`/admin/v1/banners`,{params:e});return t.data}async function P(e){let{data:t}=await w.get(`/admin/v1/banners/${e}`);return t.data}async function F(e){let{data:t}=await w.post(`/admin/v1/banners`,e);return t.data}async function I(e,t){let{data:n}=await w.put(`/admin/v1/banners/${e}`,t);return n.data}async function L(e){let{data:t}=await w.delete(`/admin/v1/banners/${e}`);return t}var ne={class:`list-page`},re={class:`page-header`},ie={class:`list-filter-bar`},ae={key:1,class:`text-mute`},oe={class:`table-row-actions`},se={class:`list-pager`},ce={class:`upload-row`},le={key:0,class:`thumb-preview`},ue=[`src`],R=20,z=T(n({__name:`index`,setup(n){let p=[{value:`course`,label:`课程`},{value:`activity`,label:`活动`},{value:`news`,label:`资讯`},{value:`custom`,label:`自定义`}],v=m(!1),b=m(!1),w=m([]),T=m({current_page:1,per_page:20,total:0}),z=m(1),B=m(``),V=m(``),H=m(``),U=m(!1),W=m(null),G=m({type:`course`,course_id:void 0,activity_id:void 0,news_id:void 0,title:``,cover_url:``,content_html:``,sort:0,status:1}),K=m(null),q=m(null),J=m(null),Y=m(0);async function X(){v.value=!0;try{let e={page:z.value,page_size:T.value.per_page};B.value&&(e.keyword=B.value),V.value&&(e.type=V.value),H.value!==``&&(e.status=H.value);let t=await N(e);w.value=t.items,T.value=t.meta}finally{v.value=!1}}function Z(){z.value=1,X()}function de(){B.value=``,V.value=``,H.value=``,z.value=1,X()}async function fe({keyword:e,page:t,pageSize:n}){let r=await A({keyword:e||void 0,page:t,page_size:n});return{items:r.items.map(e=>({id:e.id,label:e.title})),total:r.meta.total}}async function pe({keyword:e,page:t,pageSize:n}){let r=await k({keyword:e||void 0,page:t,page_size:n});return{items:r.items.map(e=>({id:e.id,label:e.title})),total:r.meta.total}}async function me({keyword:e,page:t,pageSize:n}){let r=await j({keyword:e||void 0,page:t,page_size:n,status:1});return{items:r.items.map(e=>({id:e.id,label:e.title}
|