- GroupEdit: replace raw JSON persona dump with a labeled, sectioned PersonaForm
(ข้อมูลพื้นฐาน / ข้อมูลลูกค้า / การขาย / ช่องทาง) shown in a modal; admin edits by field.
- New reusable components/PersonaForm.vue.
- GroupBuilder + Personas: add friendly step-by-step guidance cards ('วิธีสร้าง',
'วิธีฝึก') so admins/trainees know what to do at each step.
- Rebuild dist.
2 lines
3.5 KiB
JavaScript
2 lines
3.5 KiB
JavaScript
import{_ as N,k as V,c as i,l as k,m as u,a as t,t as s,u as a,i as n,f as y,e as b,F as _,p as f,h as z,q as I,s as L,r as x,o,j as w,z as p,A}from"./index-B2m5OgR7.js";const T={class:"row",style:{"align-items":"center"}},j={style:{margin:"0"}},F={class:"muted",style:{"margin-left":"auto"}},q={key:0,class:"card guide"},D={key:1,class:"row",style:{margin:"12px 0",gap:"10px"}},E={class:"primary"},M={class:"grid"},R={class:"row",style:{"justify-content":"space-between"}},S={class:"diff"},G={class:"muted"},H={class:"muted"},J={class:"muted"},K={class:"muted",style:{"margin-top":"6px"}},O={class:"primary",style:{width:"100%"}},Q={class:"primary",style:{width:"100%"}},U={key:1,class:"muted",style:{"margin-top":"auto","font-size":"12px"}},W={__name:"Personas",setup(X){const d=z().params.gid,g=x([]),B=x(!0);async function C(){try{g.value=(await I.listPersonas(d)).personas}finally{B.value=!1}}function P(l){return g.value.filter(r=>r.tier===l)}function $(l){return n.t(l==="A"?"tierA":l==="B"?"tierB":"tierC")}function h(l){return l==="won"?n.t("won"):l==="lost"?n.t("lost"):n.t("notTried")}return V(C),(l,r)=>{const c=L("router-link");return o(),i("div",null,[k(c,{to:"/training",class:"btn-back"},{default:u(()=>[w("← "+s(a(n).t("training")),1)]),_:1}),t("div",T,[t("h2",j,s(a(n).t("personas")),1),t("span",F,s(a(n).t("selectPersona")),1)]),a(y).isAdmin?b("",!0):(o(),i("div",q,[...r[0]||(r[0]=[t("strong",null,"🎯 วิธีฝึก",-1),t("ol",{style:{margin:"8px 0 0","padding-left":"20px","line-height":"1.8"}},[t("li",null,"เลือกลูกค้าจำลอง (บุคคลต้นแบบ) คนหนึ่งที่อยากฝึกด้วย"),t("li",null,"ระดับ A ง่ายสุด → ระดับ C ยากสุด (ดูจากดาว ★ ความยาก)"),t("li",null,"กดปุ่มสำหรับฝึกแชทกับลูกค้าคนนั้น (ฝึกได้คนละครั้งเท่านั้น)")],-1)])])),a(y).isAdmin?(o(),i("div",D,[k(c,{to:`/admin/groups/${a(d)}/edit`},{default:u(()=>[t("button",E,"🛠 "+s(a(n).t("managePersonas")),1)]),_:1},8,["to"]),r[1]||(r[1]=t("span",{class:"muted"},"Admin: full persona data + edit available here.",-1))])):b("",!0),(o(),i(_,null,f(["A","B","C"],m=>t("div",{key:m,style:{margin:"20px 0"}},[t("h4",null,s($(m)),1),t("div",M,[(o(!0),i(_,null,f(P(m),e=>(o(),i("div",{key:e.id,class:"card pcard lift"},[t("div",R,[t("strong",null,s(e.name),1),t("span",{class:p(["badge",e.my_outcome])},s(h(e.my_outcome)),3)]),t("div",S,[(o(),i(_,null,f(5,v=>t("span",{key:v,class:p(["star",{on:v<=(e.difficulty||1)}])},"★",2)),64)),t("span",G,s(a(n).t("difficulty"))+" "+s(e.difficulty||1)+"/5",1)]),t("div",H,[w(s(e.profession)+" · "+s(e.age_group)+" · "+s(e.location),1),r[2]||(r[2]=t("br",null,null,-1)),t("span",{class:p(["badge",e.channel])},s(e.channel),3),t("span",J," · "+s(e.initiation_mode==="seller"?a(n).t("sellerInitiated"):a(n).t("customerInitiated")),1)]),t("div",K,s(e.product_context),1),a(y).isAdmin?(o(),A(c,{key:0,to:`/groups/${a(d)}/chat/${e.id}`,style:{"margin-top":"auto"}},{default:u(()=>[t("button",O,s(a(n).t("chat")),1)]),_:1},8,["to"])):(o(),i(_,{key:1},[e.my_outcome==="not_tried"?(o(),A(c,{key:0,to:`/groups/${a(d)}/chat/${e.id}`,style:{"margin-top":"auto"}},{default:u(()=>[t("button",Q,s(a(n).t("chat")),1)]),_:1},8,["to"])):(o(),i("div",U,"✓ "+s(a(n).t("trained"))+" ("+s(h(e.my_outcome))+")",1))],64))]))),128))])])),64))])}}},tt=N(W,[["__scopeId","data-v-0fa25205"]]);export{tt as default};
|