Files
sales-trainer/frontend/dist/assets/AdminUsers-K3vzxj9L.js
Macky 22d3e51980 ux(ui): beginner-friendly guidance across trainee/admin flows + fix AdminUsers to username
- Chat: add 'How to practice' guide card; render revealed persona as readable
  label:value grid instead of JSON.
- AdminUsers: switch create form to username (matches username login), add step guide,
  role explanation (user=ฝึก, admin=ดูแลระบบ).
- Analytics (admin overview) + MyBoard (personal): add plain-Thai explainer subtitle.
- Rebuild dist. Verified user create with username -> 201.
2026-08-08 10:34:24 +07:00

2 lines
3.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{_ as f,k as x,c as o,a as e,t as l,u as d,i,H as w,w as u,v as c,C as U,e as g,F as k,p as V,q as y,r as p,o as n,z as h}from"./index-BhdfH8-z.js";const C={class:"card",style:{"margin-bottom":"16px"}},B={style:{"margin-top":"0"}},L={class:"row"},M={class:"row",style:{"margin-top":"10px"}},N=["disabled"],S={key:0,class:"error"},z={key:0,class:"card empty-state"},A={style:{flex:"1"}},D={class:"badge"},F={__name:"AdminUsers",setup(q){const v=p([]),r=p(""),t=p({username:"",name:"",password:"",role:"user"});async function m(){v.value=(await y.adminListUsers()).users}async function _(){r.value="";try{await y.adminCreateUser({...t.value}),t.value={username:"",name:"",password:"",role:"user"},await m()}catch(b){r.value=b.message}}return x(m),(b,a)=>(n(),o("div",null,[e("h2",null,"👥 "+l(d(i).t("users")),1),a[6]||(a[6]=w('<div class="card guide" data-v-6b85bc80><strong data-v-6b85bc80>📋 วิธีเพิ่มผู้ใช้งาน</strong><ol style="margin:8px 0 0;padding-left:20px;line-height:1.8;" data-v-6b85bc80><li data-v-6b85bc80>กรอก <strong data-v-6b85bc80>ชื่อผู้ใช้ (สำหรับเข้าสู่ระบบ)</strong>, ชื่อ, และรหัสผ่านเริ่มต้น</li><li data-v-6b85bc80>เลือกสิทธิ์: <strong data-v-6b85bc80>user</strong> = ผู้เข้าฝึกขาย, <strong data-v-6b85bc80>admin</strong> = จัดการระบบ</li><li data-v-6b85bc80>กด <strong data-v-6b85bc80>สร้าง</strong> — นำชื่อผู้ใช้ + รหัสผ่านไปแจ้งให้ผู้ใช้นั้นเข้าสู่ระบบได้เลย</li></ol></div>',1)),e("div",C,[e("h4",B," "+l(d(i).t("create"))+" "+l(d(i).t("users").toLowerCase()),1),e("div",L,[u(e("input",{"onUpdate:modelValue":a[0]||(a[0]=s=>t.value.username=s),placeholder:"ชื่อผู้ใช้ (เข้าสู่ระบบ)",style:{flex:"1"}},null,512),[[c,t.value.username]]),u(e("input",{"onUpdate:modelValue":a[1]||(a[1]=s=>t.value.name=s),placeholder:"ชื่อจริง",style:{flex:"1"}},null,512),[[c,t.value.name]]),u(e("input",{"onUpdate:modelValue":a[2]||(a[2]=s=>t.value.password=s),type:"password",placeholder:"รหัสผ่านเริ่มต้น",style:{flex:"1"}},null,512),[[c,t.value.password]])]),e("div",M,[u(e("select",{"onUpdate:modelValue":a[3]||(a[3]=s=>t.value.role=s),style:{flex:"1"}},[...a[4]||(a[4]=[e("option",{value:"user"},"🙂 user — ผู้เข้าฝึก",-1),e("option",{value:"admin"},"🛠 admin — ผู้ดูแลระบบ",-1)])],512),[[U,t.value.role]]),e("button",{class:"primary",onClick:_,disabled:!t.value.username||!t.value.password}," "+l(d(i).t("create")),9,N)]),r.value?(n(),o("div",S,l(r.value),1)):g("",!0)]),v.value.length===0?(n(),o("div",z,[...a[5]||(a[5]=[e("strong",null,"ยังไม่มีผู้ใช้งาน",-1),e("span",null,"สร้างผู้ใช้งานคนแรกด้วยฟอร์มด้านบน",-1)])])):g("",!0),(n(!0),o(k,null,V(v.value,s=>(n(),o("div",{class:"card",key:s.id,style:{"margin-bottom":"8px",display:"flex","align-items":"center",gap:"12px"}},[e("strong",A,l(s.name)+" ("+l(s.username)+")",1),e("span",D,l(s.role),1),e("span",{class:h(["badge",s.active?"won":"lost"])},l(s.active?"active":"inactive"),3)]))),128))]))}},H=f(F,[["__scopeId","data-v-6b85bc80"]]);export{H as default};