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

3 weeks 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,ht as p,m,ot as h,tn as g,x as _}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as v,l as y,r as b,s as x}from"./index-CPrkFf57.js";import{n as S,t as C}from"./usePageLoad-B1L6ImD-.js";import{t as w}from"./upload-qqZxNm7U.js";import{r as T}from"./admin-list-dnDAubDa.js";async function E(e){let{data:t}=await b.get(`/admin/v1/past-reviews`,{params:e});return t.data}async function D(e){let{data:t}=await b.get(`/admin/v1/past-reviews/${e}`);return t.data}async function O(e){let{data:t}=await b.post(`/admin/v1/past-reviews`,e);return t.data}async function k(e,t){let{data:n}=await b.put(`/admin/v1/past-reviews/${e}`,t);return n.data}async function A(e){let{data:t}=await b.delete(`/admin/v1/past-reviews/${e}`);return t}var j={class:`list-page`},ee={class:`page-header`},te={class:`list-filter-bar`},ne={key:1,class:`text-mute`},re={class:`table-row-actions`},M={class:`list-pager`},N={class:`cover-upload-row`},P=x(n({__name:`index`,setup(n){let b=p(!1),x=p(!1),P=p([]),F=p({current_page:1,per_page:20,total:0}),I=p(1),L=p(``),R=p(``),z=p(!1),B=p(null),V=p({title:``,cover_url:``,sort:0,status:1});async function H(){b.value=!0;try{let e={page:I.value,page_size:F.value.per_page};L.value&&(e.keyword=L.value),R.value!==``&&(e.status=R.value);let t=await E(e);P.value=t.items,F.value=t.meta}finally{b.value=!1}}function U(){I.value=1,H()}function W(){L.value=``,R.value=``,I.value=1,H()}function G(){B.value=null,V.value={title:``,cover_url:``,sort:0,status:1},z.value=!0}async function K(e){B.value=e;let t=await D(e.id);V.value={title:t.title,cover_url:t.cover_url||``,sort:t.sort,status:t.status},z.value=!0}async function q(){if(!V.value.title.trim()){y.warning(`请填写标题`);return}if(!V.value.cover_url){y.warning(`请上传封面图`);return}let e={title:V.value.title.trim(),cover_url:V.value.cover_url,sort:V.value.sort,status:V.value.status};x.value=!0;try{B.value?await k(B.value.id,e):await O(e),y.success(`已保存`),z.value=!1,await H()}finally{x.value=!1}}async function J(e){await v.confirm(`确定删除往期回顾「${e.title}」?`,`提示`,{type:`warning`}),await A(e.id),y.success(`已删除`),await H()}async function Y(e){let t=e.file,n=t instanceof File?t:t.raw;if(!n){e.onError?.(Error(`no file`));return}try{let t=await w(n);V.value.cover_url=t.url,y.success(`封面上传成功`),e.onSuccess?.({})}catch{y.error(`封面上传失败`),e.onError?.(Error(`upload failed`))}}return C(H),(n,p)=>{let v=l(`el-button`),y=l(`el-input`),C=l(`el-option`),w=l(`el-select`),E=l(`el-table-column`),D=l(`el-image`),O=l(`el-table`),k=l(`el-pagination`),A=l(`el-card`),X=l(`el-form-item`),ie=l(`el-upload`),ae=l(`el-input-number`),Z=l(`el-col`),Q=l(`el-radio`),oe=l(`el-radio-group`),$=l(`el-row`),se=l(`el-form`),ce=l(`el-dialog`),le=s(`loading`);return i(),e(m,null,[d(`div`,j,[d(`div`,ee,[r(S),r(v,{type:`primary`,size:`small`,class:`btn-create`,onClick:G},{default:u(()=>[...p[8]||=[o(`新增往期回顾`,-1)]]),_:1})]),r(A,{shadow:`never`,class:`admin-list-card`},{default:u(()=>[d(`div`,te,[r(y,{modelValue:L.value,"onUpdate:modelValue":p[0]||=e=>L.value=e,placeholder:`搜索标题`,clearable:``,class:`filter-search`,onKeyup:f(U,[`enter`])},null,8,[`modelValue`]),r(w,{modelValue:R.value,"onUpdate:modelValue":p[1]||=e=>R.value=e,clearable:``,placeholder:`是否显示`,class:`filter-select`},{default:u(()=>[r(C,{label:`显示`,value:1}),r(C,{label:`隐藏`,value:0})]),_:1},8,[`modelValue`]),r(v,{type:`primary`,onClick:U},{default:u(()=>[...p[9]||=[o(`搜索`,-1)]]),_:1}),r(v,{onClick:W},{default:u(()=>[...p[10]||=[o(`重置`,-1)]]),_:1})]),h((i(),_(O,{data:P.value,"row-key":`id`},{default:u(()=>[r(E,{prop:`title`,label:`标题`,"min-width":`200`,"show-overflow-tooltip":``}),r(E,{label:`封面图`,width:`100`,align:`center`},{default:u(({row:t})=>[t.cover_url?(i(),_(D,{key:0,src:t.cover_url,"preview-src-list":[t.cover_url],fit:`cover`,class:`list-cover-thumb`,"preview-teleported":``},null,8,[`src`,`preview-src-list`])):(i(),e(`span`,ne,``))])