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

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,``))]),_:1}),r(E,{prop:`sort`,label:`排序`,width:`80`,align:`center`}),r(E,{label:`是否显示`,width:`100`,align:`center`},{default:u(({row:e})=>[d(`span`,{class:c([`status-badge`,t(T)(e.status)])},g(e.status===1?`显示`:`隐藏`),3)]),_:1}),r(E,{label:`操作`,width:`160`,fixed:`right`},{default:u(({row:e})=>[d(`div`,re,[r(v,{class:`btn-action-primary`,onClick:t=>K(e)},{default:u(()=>[...p[11]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),r(v,{class:`btn-action-brand`,onClick:t=>J(e)},{default:u(()=>[...p[12]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`data`])),[[le,b.value]]),d(`div`,M,[r(k,{"current-page":I.value,"onUpdate:currentPage":p[2]||=e=>I.value=e,layout:`total, prev, pager, next`,total:F.value.total,"page-size":F.value.per_page,onCurrentChange:H},null,8,[`current-page`,`total`,`page-size`])])]),_:1})]),r(ce,{modelValue:z.value,"onUpdate:modelValue":p[7]||=e=>z.value=e,title:B.value?`编辑往期回顾`:`新增往期回顾`,width:`640px`,"destroy-on-close":``},{footer:u(()=>[r(v,{onClick:p[6]||=e=>z.value=!1},{default:u(()=>[...p[16]||=[o(`取消`,-1)]]),_:1}),r(v,{type:`primary`,class:`btn-create`,loading:x.value,onClick:q},{default:u(()=>[...p[17]||=[o(`保存`,-1)]]),_:1},8,[`loading`])]),default:u(()=>[r(se,{"label-position":`top`},{default:u(()=>[r(X,{label:`标题`,required:``},{default:u(()=>[r(y,{modelValue:V.value.title,"onUpdate:modelValue":p[3]||=e=>V.value.title=e,placeholder:`请输入标题`},null,8,[`modelValue`])]),_:1}),r(X,{label:`封面图`,required:``},{default:u(()=>[d(`div`,N,[r(ie,{"show-file-list":!1,"http-request":Y,accept:`image/*`},{default:u(()=>[r(v,{type:`primary`,plain:``},{default:u(()=>[...p[13]||=[o(`上传封面`,-1)]]),_:1})]),_:1}),V.value.cover_url?(i(),_(D,{key:0,src:V.value.cover_url,fit:`cover`,class:`list-cover-thumb`,"preview-teleported":``,"preview-src-list":[V.value.cover_url]},null,8,[`src`,`preview-src-list`])):a(``,!0)])]),_:1}),r($,{gutter:16},{default:u(()=>[r(Z,{span:12},{default:u(()=>[r(X,{label:`排序`,required:``},{default:u(()=>[r(ae,{modelValue:V.value.sort,"onUpdate:modelValue":p[4]||=e=>V.value.sort=e,min:0,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),r(Z,{span:12},{default:u(()=>[r(X,{label:`是否显示`},{default:u(()=>[r(oe,{modelValue:V.value.status,"onUpdate:modelValue":p[5]||=e=>V.value.status=e},{default:u(()=>[r(Q,{value:1},{default:u(()=>[...p[14]||=[o(`显示`,-1)]]),_:1}),r(Q,{value:0},{default:u(()=>[...p[15]||=[o(`隐藏`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`title`])],64)}}}),[[`__scopeId`,`data-v-e560edfb`]]);export{P as default};