PageSourceSearch

https://bacctrack-7ha7hyw7.manus.space/assets/AdminBanksPage-vINzjyip.js

js bacctrack-7ha7hyw7.manus.space collected 2026-10-03 05:01:50 UTC 13,481 bytes, 1 lines download raw bytes

1import{t as r,r as m,b as d,j as a,g as G,X as L}from"./index-C3Qps0S4.js";import{C as b,a as v}from"./card-DtXeaqs_.js";import{B as t}from"./button-xdpkFraK.js";import{I as c}from"./input-Dj8udylZ.js";import{D as f,a as W,b as C,c as z,d as y}from"./dialog-BY1FISUw.js";import{B as H}from"./badge-DBCec9J8.js";import{P as J}from"./plus-BLlLQSZn.js";import{B as X}from"./building-2-asTqpEXT.js";import{Q as w}from"./qr-code-BU__z4eM.js";import{S as $}from"./square-pen-B5oOKm1w.js";import{T as K}from"./trash-2-DOBLe4Vk.js";import{U as V}from"./upload-_gXBE_kq.js";import{I as Y}from"./image-BchddWpn.js";import"./index-Jol-UBUv.js";import"./index-BKUanX19.js";import"./index-Dr02_Kwf.js";function pa(){const{data:k,isLoading:U,refetch:g}=r.admin.bankAccounts.useQuery(),x=r.admin.createBankAccount.useMutation({onSuccess:()=>{g(),B(!1),d.success("เพิ่มบัญชีสำเร็จ")}}),o=r.admin.updateBankAccount.useMutation({onSuccess:()=>{g(),u(null),d.success("อัปเดตสำเร็จ")}}),q=r.admin.deleteBankAccount.useMutation({onSuccess:()=>{g(),d.success("ลบสำเร็จ")}}),O=r.admin.uploadBannerImage.useMutation({onError:e=>{d.error(`อัปโหลดไม่สำเร็จ: ${e.message}`)}}),[S,B]=m.useState(!1),[p,u]=m.useState(null),[s,n]=m.useState({bankName:"",accountName:"",accountNumber:"",qrCodeUrl:"",displayOrder:"0"}),[l,P]=m.useState(!1),h=m.useRef(null),I=()=>n({bankName:"",accountName:"",accountNumber:"",qrCodeUrl:"",displayOrder:"0"}),M=async e=>{if(e.size>10*1024*1024){d.error("ไฟล์ใหญ่เกิน 10MB");return}if(!e.type.startsWith("image/")){d.error("กรุณาเลือกไฟล์รูปภาพ");return}P(!0);try{const i=new FileReader,E=await new Promise((N,T)=>{i.onload=()=>{const F=i.result;N(F.split(",")[1])},i.onerror=T,i.readAsDataURL(e)}),j=await O.mutateAsync({base64:E,mimeType:e.type,field:"desktop"});j.url&&(n(N=>({...N,qrCodeUrl:j.url})),d.success("อัปโหลด QR Code สำเร็จ"))}catch{}finally{P(!1)}},R=()=>{x.mutate({bankName:s.bankName,accountName:s.accountName,accountNumber:s.accountNumber,qrCodeUrl:s.qrCodeUrl||void 0,displayOrder:parseInt(s.displayOrder)||0})},Q=()=>{p&&o.mutate({id:p,bankName:s.bankName,accountName:s.accountName,accountNumber:s.accountNumber,qrCodeUrl:s.qrCodeUrl||null,displayOrder:parseInt(s.displayOrder)||0})},D=e=>{n({bankName:e.bankName,accountName:e.accountName,accountNumber:e.accountNumber,qrCodeUrl:e.qrCodeUrl||"",displayOrder:String(e.displayOrder)}),u(e.id)},A=()=>a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:80",className:"space-y-2",children:[a.jsxs("label",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:81",className:"text-xs text-zinc-400 flex items-center gap-1",children:[a.jsx(w,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:82",className:"w-3 h-3"})," QR Code พร้อมเพย์ (ไม่บังคับ)"]}),a.jsx("input",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:84",ref:h,type:"file",accept:"image/*",className:"hidden",onChange:e=>{const i=e.target.files?.[0];i&&M(i),e.target.value=""}}),s.qrCodeUrl?a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:96",className:"relative",children:[a.jsx("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:97",className:"rounded-lg overflow-hidden border border-zinc-700 bg-white p-2 flex justify-center",children:a.jsx("img",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:98",src:G(s.qrCodeUrl),alt:"QR Code",className:"max-h-48 object-contain"})}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:100",className:"flex gap-2 mt-2",children:[a.jsxs(t,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:101",type:"button",variant:"outline",size:"sm",onClick:()=>h.current?.click(),disabled:l,className:"border-emerald-600/50 text-emerald-400 hover:bg-emerald-600/10 flex-1",children:[l?a.jsx("span",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:109",className:"animate-spin",children:"⏳"}):a.jsx(V,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:109",className:"w-4 h-4 mr-1"}),l?"กำลังอัปโหลด...":"เปลี่ยนรูป"]}),a.jsxs(t,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:112",type:"button",variant:"ghost",size:"sm",onClick:()=>n({...s,qrCodeUrl:""}),className:"text-red-400 hover:bg-red-900/20",children:[a.jsx(L,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:119",className:"w-4 h-4 mr-1"})," ลบ"]})]})]}):a.jsx("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:124",onClick:()=>h.current?.click(),className:"border-2 border-dashed border-zinc-700 rounded-lg p-6 text-center cursor-pointer hover:border-emerald-500/50 transition-colors active:scale-[0.98]",children:l?a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:129",className:"space-y-2",children:[a.jsx("span",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:130",className:"text-2xl animate-spin inline-block",children:"⏳"}),a.jsx("p",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:131",className:"text-xs text-zinc-400",children:"กำลังอัปโหลด..."})]}):a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:134",className:"space-y-2",children:[a.jsx(Y,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:135",className:"w-8 h-8 mx-auto text-zinc-500"}),a.jsx("p",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:136",className:"text-xs text-zinc-400",children:"คลิกเพื่ออัปโหลดรูป QR Code"}),a.jsx("p",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:137",className:"text-[10px] text-zinc-600",children:"รองรับ JPG, PNG, GIF, WebP ไม่เกิน 10MB"})]})})]});return a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:146",className:"space-y-6",children:[a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:147",className:"flex items-center justify-between",children:[a.jsx("h1",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:148",className:"text-2xl font-bold text-orange-400",children:"บัญชีธนาคาร"}),a.jsxs(f,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:149",open:S,onOpenChange:e=>{B(e),e&&I()},children:[a.jsx(W,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:150",asChild:!0,children:a.jsxs(t,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:151",size:"sm",className:"bg-orange-600 hover:bg-orange-700",children:[a.jsx(J,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:151",className:"w-4 h-4 mr-1"})," เพิ่มบัญชี"]})}),a.jsxs(C,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:153",className:"bg-zinc-900 border-zinc-700 max-h-[90vh] overflow-y-auto",children:[a.jsx(z,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:154",children:a.jsx(y,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:154",className:"text-orange-400",children:"เพิ่มบัญชีธนาคาร"})}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:155",className:"space-y-3",children:[a.jsx(c,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:156",placeholder:"ชื่อธนาคาร (เช่น กสิกรไทย)",value:s.bankName,onChange:e=>n({...s,bankName:e.target.value}),className:"bg-zinc-800 border-zinc-700"}),a.jsx(c,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:157",placeholder:"ชื่อบัญชี",value:s.accountName,onChange:e=>n({...s,accountName:e.target.value}),className:"bg-zinc-800 border-zinc-700"}),a.jsx(c,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:158",placeholder:"เลขบัญชี",value:s.accountNumber,onChange:e=>n({...s,accountNumber:e.target.value}),className:"bg-zinc-800 border-zinc-700"}),a.jsx(A,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:159"}),a.jsx(c,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:160",placeholder:"ลำดับแสดง",type:"number",value:s.displayOrder,onChange:e=>n({...s,displayOrder:e.target.value}),className:"bg-zinc-800 border-zinc-700"}),a.jsx(t,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:161",onClick:R,disabled:x.isPending||l,className:"w-full bg-orange-600 hover:bg-orange-700",children:x.isPending?"กำลังเพิ่ม...":"เพิ่มบัญชี"})]})]})]})]}),a.jsx(f,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:169",open:p!==null,onOpenChange:e=>{e||u(null)},children:a.jsxs(C,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:170",className:"bg-zinc-900 border-zinc-700 max-h-[90vh] overflow-y-auto",children:[a.jsx(z,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:171",children:a.jsx(y,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:171",className:"text-orange-400",children:"แก้ไขบัญชีธนาคาร"})}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:172",className:"space-y-3",children:[a.jsx(c,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:173",placeholder:"ชื่อธนาคาร",value:s.bankName,onChange:e=>n({...s,bankName:e.target.value}),className:"bg-zinc-800 border-zinc-700"}),a.jsx(c,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:174",placeholder:"ชื่อบัญชี",value:s.accountName,onChange:e=>n({...s,accountName:e.target.value}),className:"bg-zinc-800 border-zinc-700"}),a.jsx(c,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:175",placeholder:"เลขบัญชี",value:s.accountNumber,onChange:e=>n({...s,accountNumber:e.target.value}),className:"bg-zinc-800 border-zinc-700"}),a.jsx(A,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:176"}),a.jsx(c,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:177",placeholder:"ลำดับแสดง",type:"number",value:s.displayOrder,onChange:e=>n({...s,displayOrder:e.target.value}),className:"bg-zinc-800 border-zinc-700"}),a.jsx(t,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:178",onClick:Q,disabled:o.isPending||l,className:"w-full bg-orange-600 hover:bg-orange-700",children:o.isPending?"กำลังบันทึก...":"บันทึก"})]})]})}),U?a.jsx("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:186",className:"text-zinc-400",children:"กำลังโหลด..."}):k?.length?a.jsx("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:195",className:"grid gap-3",children:k.map(e=>a.jsx(b,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:197",className:"bg-zinc-900/50 border-zinc-800",children:a.jsx(v,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:198",className:"p-4",children:a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:199",className:"flex items-start justify-between",children:[a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:200",className:"flex-1 min-w-0",children:[a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:201",className:"flex items-center gap-2",children:[a.jsx("span",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:202",className:"font-medium text-zinc-200",children:e.bankName}),a.jsx(H,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:203",variant:e.status==="active"?"default":"secondary",className:e.status==="active"?"bg-green-600/20 text-green-400 border-green-600/30":"",children:e.status==="active"?"เปิดใช้":"ปิด"})]}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:207",className:"text-sm text-zinc-400 mt-1",children:[e.accountName," | ",e.accountNumber]}),e.qrCodeUrl&&a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:211",className:"mt-2 inline-flex items-center gap-1 text-xs text-emerald-400",children:[a.jsx(w,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:212",className:"w-3 h-3"})," มี QR Code"]})]}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:216",className:"flex gap-2 shrink-0",children:[a.jsx(t,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:217",size:"sm",variant:"outline",onClick:()=>D(e),className:"border-zinc-700",children:a.jsx($,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:218",className:"w-3 h-3"})}),a.jsx(t,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:220",size:"sm",variant:"outline",onClick:()=>o.mutate({id:e.id,status:e.status==="active"?"inactive":"active"}),className:"border-zinc-700",children:e.status==="active"?"ปิด":"เปิด"}),a.jsx(t,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:223",size:"sm",variant:"outline",onClick:()=>{confirm("ลบบัญชีนี้?")&&q.mutate({id:e.id})},className:"border-red-700 text-red-400 hover:bg-red-900/30",children:a.jsx(K,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:224",className:"w-3 h-3"})})]})]})})},e.id))}):a.jsx(b,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:188",className:"bg-zinc-900/50 border-zinc-800",children:a.jsxs(v,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:189",className:"py-8 text-center text-zinc-400",children:[a.jsx(X,{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:190",className:"w-12 h-12 mx-auto mb-3 opacity-50"}),a.jsx("p",{"data-loc":"client/src/pages/admin/AdminBanksPage.tsx:191",children:"ยังไม่มีบัญชีธนาคาร"})]})})]})}export{pa 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.