PageSourceSearch

https://ai-tw.manus.space/assets/VideoCourses-BhKU1BzO.js

js ai-tw.manus.space collected 2026-10-03 04:59:52 UTC 8,507 bytes, 6 lines download raw bytes

1import{c as y,r as D,t,k as c,j as s,L as n,B as x,P as p,l as A,m as T,n as k,o as E,aL as M,p as S,q as P,s as h,v as a,w as I,x as i,aM as B,aN as F,aO as L,aP as m,aQ as H,E as z,y as d}from"./index-CDydTNgN.js";import{A as O,a as q,b as Q,c as R,d as W,e as U,f as $,g as G}from"./alert-dialog-CLCZmsqw.js";import{S as J}from"./square-pen-DHwa4Io4.js";import{T as K}from"./trash-2-BDijYhVf.js";/**
2 * @license lucide-react v0.453.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const X=y("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);function es(){const[r,l]=D.useState(null),u=t.useUtils(),{data:o,isLoading:C}=t.videoCourses.getAll.useQuery(),j=t.videoCourses.delete.useMutation({onSuccess:()=>{c.success("課程已刪除"),u.videoCourses.getAll.invalidate(),l(null)},onError:e=>{c.error(e.message)}}),V=t.videoCourses.update.useMutation({onSuccess:()=>{c.success("課程狀態已更新"),u.videoCourses.getAll.invalidate()},onError:e=>{c.error(e.message)}}),g=e=>new Intl.NumberFormat("zh-TW",{style:"currency",currency:"TWD",minimumFractionDigits:0}).format(e),v=e=>{switch(e){case"published":return s.jsx(d,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:73",className:"bg-green-500",children:"已發布"});case"draft":return s.jsx(d,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:75",variant:"secondary",children:"草稿"});case"archived":return s.jsx(d,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:77",variant:"outline",children:"已封存"});default:return s.jsx(d,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:79",variant:"outline",children:e})}},f=(e,w)=>{const b=w==="published"?"draft":"published";V.mutate({id:e,status:b})},N=()=>{r&&j.mutate({id:r})};return s.jsxs("div",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:95",className:"space-y-6",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:96",className:"flex items-center justify-between",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:97",children:[s.jsx("h1",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:98",className:"text-2xl font-bold",children:"錄播課程管理"}),s.jsx("p",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:99",className:"text-muted-foreground",children:"管理您的線上錄播課程"})]}),s.jsx(n,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:101",href:"/admin/video-courses/new",children:s.jsxs(x,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:102",children:[s.jsx(p,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:103",className:"h-4 w-4 mr-2"}),"新增課程"]})})]}),s.jsxs(A,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:109",children:[s.jsx(T,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:110",children:s.jsx(k,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:111",children:"課程列表"})}),s.jsx(E,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:113",children:C?s.jsx("div",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:115",className:"space-y-4",children:[1,2,3].map(e=>s.jsx(M,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:117",className:"h-16 w-full"},e))}):o&&o.length>0?s.jsxs(S,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:121",children:[s.jsx(P,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:122",children:s.jsxs(h,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:123",children:[s.jsx(a,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:124",children:"課程名稱"}),s.jsx(a,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:125",children:"價格"}),s.jsx(a,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:126",children:"學員數"}),s.jsx(a,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:127",children:"狀態"}),s.jsx(a,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:128",className:"text-right",children:"操作"})]})}),s.jsx(I,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:131",children:o.map(e=>s.jsxs(h,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:133",children:[s.jsx(i,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:134",children:s.jsxs("div",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:135",className:"flex items-center gap-3",children:[e.coverImage&&s.jsx("img",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:137",src:e.coverImage,alt:e.title,className:"h-12 w-16 object-cover rounded"}),s.jsxs("div",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:143",children:[s.jsx("p",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:144",className:"font-medium",children:e.title}),s.jsx("p",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:145",className:"text-sm text-muted-foreground",children:e.slug})]})]})}),s.jsx(i,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:149",children:s.jsxs("div",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:150",children:[s.jsx("p",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:151",className:"font-medium",children:g(e.price)}),e.originalPrice&&e.originalPrice>e.price&&s.jsx("p",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:153",className:"text-sm text-muted-foreground line-through",children:g(e.originalPrice)})]})}),s.jsx(i,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:159",children:e.studentCount}),s.jsx(i,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:160",children:v(e.status)}),s.jsx(i,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:161",className:"text-right",children:s.jsxs(B,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:162",children:[s.jsx(F,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:163",asChild:!0,children:s.jsx(x,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:164",variant:"ghost",size:"sm",children:s.jsx(X,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:165",className:"h-4 w-4"})})}),s.jsxs(L,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:168",align:"end",children:[s.jsx(n,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:169",href:`/admin/video-courses/${e.id}`,children:s.jsxs(m,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:170",children:[s.jsx(J,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:171",className:"h-4 w-4 mr-2"}),"編輯"]})}),s.jsx(m,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:175",onClick:()=>f(e.id,e.status),children:e.status==="published"?s.jsxs(s.Fragment,{children:[s.jsx(H,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:178",className:"h-4 w-4 mr-2"}),"下架"]}):s.jsxs(s.Fragment,{children:[s.jsx(z,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:183",className:"h-4 w-4 mr-2"}),"發布"]})}),s.jsxs(m,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:188",className:"text-destructive",onClick:()=>l(e.id),children:[s.jsx(K,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:192",className:"h-4 w-4 mr-2"}),"刪除"]})]})]})})]},e.id))})]}):s.jsxs("div",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:203",className:"text-center py-12",children:[s.jsx("p",{"data-loc":"client/src/pages/admin/VideoCourses.tsx:204",className:"text-muted-foreground mb-4",children:"尚未建立任何課程"}),s.jsx(n,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:205",href:"/admin/video-courses/new",children:s.jsxs(x,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:206",children:[s.jsx(p,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:207",className:"h-4 w-4 mr-2"}),"新增第一個課程"]})})]})})]}),s.jsx(O,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:217",open:!!r,onOpenChange:()=>l(null),children:s.jsxs(q,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:218",children:[s.jsxs(Q,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:219",children:[s.jsx(R,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:220",children:"確å
6®šè¦åˆªé™¤æ­¤èª²ç¨‹ï¼Ÿ"}),s.jsx(W,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:221",children:"此操作無法復原。刪除後,所有相關的購買記錄和學員筆記也會一併刪除。"})]}),s.jsxs(U,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:225",children:[s.jsx($,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:226",children:"取消"}),s.jsx(G,{"data-loc":"client/src/pages/admin/VideoCourses.tsx:227",onClick:N,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"刪除"})]})]})})]})}export{es as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.