2 lines
9.0 KiB
JavaScript
2 lines
9.0 KiB
JavaScript
import{d as X,l as Y,c as g,b as l,w as i,$ as F,h as y,n as k,r as v,g as Z,o as p,a as o,O as b,e as S,U as h,f as u,a2 as ee,a3 as ae,s as L,v as z,F as M,z as V,x as O,y as w,t as A,V as se,i as te,B as f,_ as le}from"./index-BOpodV_K.js";import{C as ie}from"./CrownOutlined-DnFnrjHz.js";const oe={class:"m-form-page"},re={class:"m-steps"},ne={class:"m-card"},de={class:"m-card"},ue={class:"m-super-title"},pe={key:0,class:"m-roles-container"},me={class:"m-roles-list"},ce=["onClick"],ve={class:"m-role-pill-top"},fe={class:"m-role-name"},_e={class:"m-role-desc"},ge={class:"m-card"},ye={class:"m-form-actions"},ke=X({__name:"MAdminFormView",setup(we){const N=se(),G=te(),I=F(()=>!!N.params.id),C=F(()=>N.params.id),x=y(!1),T=y(!1),r=y(0),q=y([]),_=y([]),E=y([]),e=Z({name:"",email:"",mobile:"",password:"",status:"ACTIVE",isSuperAdmin:!1,roleIds:[],workspaceId:"",scopeType:"ALL",specificCampaignIds:[]});async function j(){var m,a,n;try{const[t,d,c]=await Promise.all([k.get("/admin/roles"),k.get("/admin/workspaces"),k.get("/admin/campaigns",{params:{pageSize:100}})]);q.value=Array.isArray(t.data)?t.data:((m=t.data)==null?void 0:m.data)||[],_.value=Array.isArray(d.data)?d.data:((a=d.data)==null?void 0:a.data)||[],E.value=Array.isArray(c.data)?c.data:((n=c.data)==null?void 0:n.data)||[],!e.workspaceId&&_.value.length>0&&(e.workspaceId=_.value[0].id)}catch{}}async function H(m){var a;x.value=!0;try{const t=(await k.get(`/admin/managers/${m}`)).data;if(e.name=t.name||"",e.email=t.email||"",e.mobile=t.mobile||"",e.password="",e.status=t.status||"ACTIVE",e.isSuperAdmin=!!t.isSuperAdmin,e.roleIds=t.roles?t.roles.map(d=>{var c;return((c=d.role)==null?void 0:c.id)||d.roleId}):[],t.workspaceAssignments&&t.workspaceAssignments.length>0){const d=t.workspaceAssignments[0];e.workspaceId=d.workspaceId||((a=d.workspace)==null?void 0:a.id)||"",e.scopeType=d.scopeType||"ALL",e.specificCampaignIds=Array.isArray(d.specificCampaignIds)?d.specificCampaignIds:[]}else _.value.length>0&&(e.workspaceId=_.value[0].id)}finally{x.value=!1}}function J(){if(r.value===0){if(!e.name.trim()){f.error("لطفاً نام و نام خانوادگی مدیر را وارد کنید.");return}if(!e.mobile.trim()||!/^09\d{9}$/.test(e.mobile.trim())){f.error("شماره موبایل باید ۱۱ رقمی باشد و با ۰۹ شروع شود.");return}if(!e.email.trim()||!/^\S+@\S+\.\S+$/.test(e.email.trim())){f.error("لطفاً یک آدرس ایمیل معتبر وارد کنید.");return}if(!I.value&&(!e.password||e.password.length<6)){f.error("کلمه عبور ورود باید حداقل ۶ کاراکتر باشد.");return}}if(r.value===1&&!e.isSuperAdmin&&e.roleIds.length===0){f.error("لطفاً حداقل یک نقش سازمانی انتخاب کنید یا وضعیت مدیر ارشد را فعال نمایید.");return}r.value+=1}function K(m){const a=e.roleIds.indexOf(m);a>-1?e.roleIds.splice(a,1):e.roleIds.push(m)}async function Q(){var m,a;if(!e.name.trim()){f.error("نام الزامی است");return}T.value=!0;try{const n={name:e.name.trim(),email:e.email.trim().toLowerCase(),mobile:e.mobile.trim(),status:e.status,isSuperAdmin:e.isSuperAdmin,roleIds:e.isSuperAdmin?[]:e.roleIds};e.password&&(n.password=e.password),e.workspaceId&&(n.workspaceAssignments=[{workspaceId:e.workspaceId,scopeType:e.scopeType,specificCampaignIds:e.scopeType==="CUSTOM_CAMPAIGNS"?e.specificCampaignIds:void 0}]),I.value&&C.value?(await k.patch(`/admin/managers/${C.value}`,n),f.success("مشخصات مدیر با موفقیت بهروزرسانی شد.")):(await k.post("/admin/managers",n),f.success("مدیر جدید با موفقیت ایجاد شد.")),G.push("/m/managers")}catch(n){const t=((a=(m=n.response)==null?void 0:m.data)==null?void 0:a.message)||"خطا در ثبت اطلاعات مدیر";f.error(Array.isArray(t)?t.join(" | "):t)}finally{T.value=!1}}return Y(async()=>{await j(),C.value&&await H(C.value)}),(m,a)=>{const n=v("a-input"),t=v("a-form-item"),d=v("a-input-password"),c=v("a-radio-button"),R=v("a-radio-group"),$=v("a-form"),B=v("a-checkbox"),D=v("a-select-option"),P=v("a-select"),U=v("a-button"),W=v("a-spin");return p(),g("div",oe,[l(W,{spinning:x.value},{default:i(()=>[o("div",re,[o("div",{class:b(["m-step",{active:r.value===0,done:r.value>0}])},[l(S(h)),a[10]||(a[10]=u(" ۱. هویتی ",-1))],2),o("div",{class:b(["m-step",{active:r.value===1,done:r.value>1}])},[l(S(ee)),a[11]||(a[11]=u(" ۲. نقشها ",-1))],2),o("div",{class:b(["m-step",{active:r.value===2}])},[l(S(ae)),a[12]||(a[12]=u(" ۳. دسترسی ",-1))],2)]),L(o("div",ne,[l($,{layout:"vertical"},{default:i(()=>[l(t,{label:"نام و نام خانوادگی",required:""},{default:i(()=>[l(n,{value:e.name,"onUpdate:value":a[0]||(a[0]=s=>e.name=s),size:"large",placeholder:"مثال: علی رضایی"},null,8,["value"])]),_:1}),l(t,{label:"شماره موبایل سازمانی",required:""},{default:i(()=>[l(n,{value:e.mobile,"onUpdate:value":a[1]||(a[1]=s=>e.mobile=s),size:"large",placeholder:"09xxxxxxxxx",dir:"ltr",maxLength:"11"},null,8,["value"])]),_:1}),l(t,{label:"ایمیل سازمانی (نام کاربری)",required:""},{default:i(()=>[l(n,{value:e.email,"onUpdate:value":a[2]||(a[2]=s=>e.email=s),size:"large",placeholder:"admin@example.com",dir:"ltr"},null,8,["value"])]),_:1}),l(t,{label:I.value?"کلمه عبور جدید (اختیاری)":"کلمه عبور ورود",required:!I.value},{default:i(()=>[l(d,{value:e.password,"onUpdate:value":a[3]||(a[3]=s=>e.password=s),size:"large",placeholder:"حداقل ۶ کاراکتر",dir:"ltr"},null,8,["value"])]),_:1},8,["label","required"]),l(t,{label:"وضعیت حساب کاربری"},{default:i(()=>[l(R,{value:e.status,"onUpdate:value":a[4]||(a[4]=s=>e.status=s),buttonStyle:"solid",class:"m-radio-full"},{default:i(()=>[l(c,{value:"ACTIVE"},{default:i(()=>[...a[13]||(a[13]=[u("فعال",-1)])]),_:1}),l(c,{value:"DISABLED"},{default:i(()=>[...a[14]||(a[14]=[u("غیرفعال / مسدود",-1)])]),_:1})]),_:1},8,["value"])]),_:1})]),_:1})],512),[[z,r.value===0]]),L(o("div",de,[o("div",{class:b(["m-super-admin-card",{"is-selected":e.isSuperAdmin}])},[l(B,{checked:e.isSuperAdmin,"onUpdate:checked":a[5]||(a[5]=s=>e.isSuperAdmin=s)},{default:i(()=>[o("span",ue,[l(S(ie),{style:{color:"#f59e0b","margin-left":"6px"}}),a[15]||(a[15]=u(" مدیر ارشد سامانه (Super Admin) ",-1))])]),_:1},8,["checked"]),a[16]||(a[16]=o("p",{class:"m-super-desc"}," مدیر ارشد به تمامی ماژولها، نقشها، گزارشها و فضاهای کاری دسترسی کامل و بیقیدوشرط دارد. ",-1))],2),e.isSuperAdmin?O("",!0):(p(),g("div",pe,[a[17]||(a[17]=o("div",{class:"m-section-label"},"انتخاب نقشهای سازمانی مدیر:",-1)),o("div",me,[(p(!0),g(M,null,V(q.value.filter(s=>s.code!=="SUPER_ADMIN"),s=>(p(),g("div",{key:s.id,class:b(["m-role-pill",{"is-active":e.roleIds.includes(s.id)}]),onClick:Ae=>K(s.id)},[o("div",ve,[l(B,{checked:e.roleIds.includes(s.id)},null,8,["checked"]),o("span",fe,A(s.name),1)]),o("p",_e,A(s.description),1)],10,ce))),128))])]))],512),[[z,r.value===1]]),L(o("div",ge,[l($,{layout:"vertical"},{default:i(()=>[l(t,{label:"انتخاب فضای کاری سازمانی",required:""},{default:i(()=>[l(P,{value:e.workspaceId,"onUpdate:value":a[6]||(a[6]=s=>e.workspaceId=s),size:"large",style:{width:"100%"}},{default:i(()=>[(p(!0),g(M,null,V(_.value,s=>(p(),w(D,{key:s.id,value:s.id},{default:i(()=>[u(A(s.name)+" ("+A(s.slug)+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),l(t,{label:"اسکوپ دسترسی کمپینها"},{default:i(()=>[l(R,{value:e.scopeType,"onUpdate:value":a[7]||(a[7]=s=>e.scopeType=s),buttonStyle:"solid",class:"m-radio-full"},{default:i(()=>[l(c,{value:"ALL"},{default:i(()=>[...a[18]||(a[18]=[u("همه کمپینها",-1)])]),_:1}),l(c,{value:"CUSTOM_CAMPAIGNS"},{default:i(()=>[...a[19]||(a[19]=[u("کمپینهای مشخص",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),e.scopeType==="CUSTOM_CAMPAIGNS"?(p(),w(t,{key:0,label:"کمپینهای مجاز برای این مدیر",required:""},{default:i(()=>[l(P,{value:e.specificCampaignIds,"onUpdate:value":a[8]||(a[8]=s=>e.specificCampaignIds=s),mode:"multiple",size:"large",placeholder:"کمپینها را انتخاب کنید",style:{width:"100%"}},{default:i(()=>[(p(!0),g(M,null,V(E.value,s=>(p(),w(D,{key:s.id,value:s.id},{default:i(()=>[u(A(s.title),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1})):O("",!0)]),_:1})],512),[[z,r.value===2]]),o("div",ye,[r.value>0?(p(),w(U,{key:0,size:"large",block:"",onClick:a[9]||(a[9]=s=>r.value-=1)},{default:i(()=>[...a[20]||(a[20]=[u(" مرحله قبلی ",-1)])]),_:1})):O("",!0),r.value<2?(p(),w(U,{key:1,type:"primary",size:"large",block:"",onClick:J},{default:i(()=>[...a[21]||(a[21]=[u(" مرحله بعدی ",-1)])]),_:1})):(p(),w(U,{key:2,type:"primary",size:"large",block:"",loading:T.value,onClick:Q},{default:i(()=>[u(A(I.value?"ذخیره تغییرات مدیر":"ایجاد مدیر جدید"),1)]),_:1},8,["loading"]))])]),_:1},8,["spinning"])])}}}),Ce=le(ke,[["__scopeId","data-v-ccc89cd2"]]);export{Ce as default};
|