Publish the verified admin build output. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 line
17 KiB
JavaScript
1 line
17 KiB
JavaScript
import{B as e,O as t,Ot as n,R as r,T as i,Tt as a,V as o,Y as s,Z as c,at as l,c as u,d,g as f,h as p,j as m,l as h,m as g,r as _,s as v,t as y,u as b}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{D as x,K as S,N as C,P as w,R as T,S as E,W as D,a as O,g as k,i as ee,u as te,v as ne,z as re}from"./index-CXa4EMLW.js";import{t as ie}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as ae}from"./BaseSwitch-TV5Yvtf7.js";import{t as oe}from"./BaseEmptyState-BmO9aDcK.js";import{t as A}from"./AdminSelect-9UfEJQzN.js";import{r as j}from"./adminLabels-Cz9ccm1Z.js";import{t as M}from"./ActiveSwitchCell-DJZQHZ-8.js";var N={class:`suggestions-panel`},P={key:0,class:`suggestions-panel__loading`},F={class:`suggestions-panel__add`},I={class:`field`},L={key:0,class:`suggestions-panel__picked`},R=[`onClick`],z={class:`field`},B=[`disabled`],V={key:0,class:`suggestions-panel__list`},H={class:`muted`,dir:`ltr`},U={key:0,class:`note`},W={class:`suggestions-panel__actions`},G=[`onClick`],K={key:1,class:`suggestions-panel__empty`},se=y(f({__name:`CustomerSuggestionsPanel`,props:{customerId:{}},setup(e){let s=e,l=re(),f=c(!0),h=c(!1),y=c([]),S=c([]),w=c([]),T=c(``),O=v(()=>S.value.filter(e=>!y.value.some(t=>t.productId===e.id&&t.isActive)).map(e=>({value:e.id,label:`${e.name} (${e.productCode})`})));async function k(){if(s.customerId){f.value=!0;try{let[e,t]=await Promise.all([x.list(s.customerId),E.list()]);y.value=e,S.value=t}catch(e){l.error(e instanceof C?e.message:`بارگذاری پیشنهادها ناموفق بود`)}finally{f.value=!1}}}async function ee(){if(w.value.length){h.value=!0;try{for(let e of w.value)await x.create({customerId:s.customerId,productId:e,note:T.value.trim()||void 0});w.value=[],T.value=``,l.success(`پیشنهادها به صفحه خانه مشتری اضافه شد`),await k()}catch(e){l.error(e instanceof C?e.message:`ثبت پیشنهاد ناموفق بود`)}finally{h.value=!1}}}async function te(e){try{await x.setActive(e.id,!e.isActive),await k()}catch(e){l.error(e instanceof C?e.message:`بهروزرسانی ناموفق بود`)}}function ne(e){e&&(w.value.includes(e)||(w.value=[...w.value,e]))}function ie(e){w.value=w.value.filter(t=>t!==e)}return r(()=>s.customerId,()=>{k()}),i(()=>{k()}),(e,r)=>(t(),d(`section`,N,[r[4]||=u(`header`,{class:`suggestions-panel__head`},[u(`div`,null,[u(`h3`,{class:`suggestions-panel__title`},`پیشنهاد اختصاصی در اپ`),u(`p`,{class:`suggestions-panel__hint`},` محصولات انتخابشده در بخش «پیشنهاد اختصاصی ما برای شما» در صفحه خانه مشتری نمایش داده میشوند. `)])],-1),f.value?(t(),d(`div`,P,`در حال بارگذاری...`)):(t(),d(_,{key:1},[u(`div`,F,[u(`label`,I,[r[1]||=g(` افزودن محصول (کد کالیته) `,-1),p(A,{"model-value":``,options:[{value:``,label:`انتخاب محصول...`},...O.value],"onUpdate:modelValue":ne},null,8,[`options`])]),w.value.length?(t(),d(`div`,L,[(t(!0),d(_,null,m(w.value,e=>(t(),d(`span`,{key:e,class:`suggestions-panel__chip`},[g(n(S.value.find(t=>t.id===e)?.productCode||e)+` `,1),u(`button`,{type:`button`,"aria-label":`حذف`,onClick:t=>ie(e)},`×`,8,R)]))),128))])):b(``,!0),u(`label`,z,[r[2]||=g(` یادداشت (اختیاری) `,-1),o(u(`textarea`,{"onUpdate:modelValue":r[0]||=e=>T.value=e,class:`admin-input`,rows:`2`,placeholder:`دلیل پیشنهاد برای مشتری`},null,512),[[D,T.value]])]),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!w.value.length||h.value,onClick:ee},` افزودن به صفحه خانه مشتری `,8,B)]),y.value.length?(t(),d(`div`,V,[r[3]||=u(`h4`,{class:`suggestions-panel__sub`},`پیشنهادهای ثبتشده`,-1),u(`ul`,null,[(t(!0),d(_,null,m(y.value,e=>(t(),d(`li`,{key:e.id,class:`suggestions-panel__row`},[u(`div`,null,[u(`strong`,null,n(e.productName),1),u(`span`,H,`(`+n(e.productCode)+`)`,1),e.note?(t(),d(`p`,U,n(e.note),1)):b(``,!0)]),u(`div`,W,[u(`span`,{class:a(e.isActive?`on`:`off`)},n(e.isActive?`فعال`:`غیرفعال`),3),u(`button`,{type:`button`,class:`link`,onClick:t=>te(e)},n(e.isActive?`حذف از خانه`:`فعالسازی`),9,G)])]))),128))])])):(t(),d(`p`,K,`هنوز پیشنهادی برای این مشتری ثبت نشده است.`))],64))]))}}),[[`__scopeId`,`data-v-4182e847`]]),ce={class:`customers-page`},le={class:`admin-page-header`},ue={class:`customers-page__tabs`,role:`tablist`,"aria-label":`نوع کاربر`},de=[`aria-selected`],fe=[`aria-selected`],pe={class:`customers-page__search admin-card`},me={key:2,class:`customers-page__table admin-card desktop-only`},he={class:`admin-table-wrap`},ge={class:`admin-table`},_e={key:0},ve={key:1},ye={key:2},be={key:3},xe={key:4},Se={key:0},Ce={key:1},we={key:2},Te={key:3},Ee={key:4},De={class:`numeric`},Oe={class:`numeric`},ke={class:`status`},Ae={class:`actions`},je=[`onClick`],Me={key:3,class:`compact-only admin-card-list`},Ne={class:`admin-card-item__header`},Pe={class:`admin-card-item__title`},Fe={class:`admin-card-item__header-actions`},Ie=[`onClick`],Le={class:`admin-card-item__meta`},Re={key:0},ze={key:1},Be={key:2},Ve={key:3},He={key:4},Ue={key:0,class:`admin-form__error`,role:`alert`},We={class:`admin-form__field`},Ge={class:`admin-form__row`},Ke={class:`admin-form__field`},qe={class:`admin-form__field`},Je={class:`admin-form__row`},Ye={class:`admin-form__field`},Xe={class:`admin-form__field`},Ze={class:`admin-form__row`},Qe={class:`admin-form__field`},$e={class:`admin-form__field`},et={class:`admin-form__row`},tt={class:`admin-form__field`},nt={key:0,class:`admin-form__field`},rt={key:1,class:`admin-form__field`},it={class:`customers-page__brands`},at=[`checked`,`onChange`],ot={class:`admin-form__field`},st=[`disabled`],ct={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},q=y(f({__name:`CustomersView`,setup(r){let f=c([]),y=c([]),x=c([]),E=c([]),N=c(``),P=c(`customer`),F=c(!0),I=c(null),L=c(null),R=c(``),z=c(!1),B=re();function V(e){if(e==null)return`-`;if(typeof e==`number`)return Number.isFinite(e)?String(e):`-`;let t=e.trim();return!t||t===`—`?`-`:t}function H(e){return e==null||!Number.isFinite(e)?`-`:O(e)}let U=[{value:`wholesale`,label:`عمدهفروش`},{value:`retail`,label:`خردهفروش`}],W=[{value:`customer`,label:`مشتری`},{value:`agent`,label:`واسطه`}],G={customer:`مشتری`,agent:`واسطه`};function K(e){return G[e===`agent`?`agent`:`customer`]}let q=v(()=>[{value:``,label:`بدون سطح`},...y.value.map(e=>({value:e.id,label:e.label}))]),lt=v(()=>[{value:``,label:`بدون واسطه`},...x.value.filter(e=>e.id!==L.value).map(e=>({value:e.id,label:e.name+(e.agentCode?` (${e.agentCode})`:``)}))]),J=()=>({name:``,phone:``,nationalId:``,customerType:`wholesale`,companyName:``,isActive:!0,levelDefId:``,assignedAgentId:``,brandIds:[],appRole:`customer`,agentCode:``}),Y=s(J()),ut=v(()=>I.value!==null),dt=v(()=>I.value===`edit`?`ویرایش مشتری`:`افزودن مشتری`),ft=v(()=>Y.name.trim()&&Y.phone.trim()&&Y.nationalId.trim()),X=v(()=>{let e=N.value.trim();return e?f.value.filter(t=>t.name.includes(e)||t.phone.includes(e)||t.nationalId.includes(e)||t.companyName.includes(e)):f.value});function pt(e,t){t?Y.brandIds.includes(e)||Y.brandIds.push(e):Y.brandIds=Y.brandIds.filter(t=>t!==e)}async function mt(){F.value=!0;try{f.value=await k.list(void 0,P.value)}catch(e){B.error(e instanceof C?e.message:P.value===`agent`?`بارگذاری واسطهها انجام نشد.`:`بارگذاری مشتریان انجام نشد.`)}finally{F.value=!1}}function Z(e){P.value!==e&&(P.value=e,N.value=``,mt())}async function ht(){try{let[e,t,n]=await Promise.all([ne.list(),k.list(void 0,`agent`),te.list()]);y.value=e,x.value=t,E.value=n}catch(e){B.error(e instanceof C?e.message:`بارگذاری اطلاعات کمکی انجام نشد.`)}}i(()=>{mt(),ht()});function gt(){I.value=`add`,L.value=null,Object.assign(Y,J()),Y.appRole=P.value,R.value=``}function _t(e){I.value=`edit`,L.value=e.id,Y.name=e.name,Y.phone=e.phone,Y.nationalId=e.nationalId,Y.customerType=e.customerType,Y.companyName=e.companyName,Y.isActive=e.isActive,Y.levelDefId=e.levelDefId??``,Y.assignedAgentId=e.assignedAgentId??``,Y.brandIds=[...e.brandIds??[]],Y.appRole=e.appRole===`agent`?`agent`:`customer`,Y.agentCode=e.agentCode??``,R.value=``}function Q(){I.value=null,L.value=null,R.value=``}async function vt(){if(!ft.value){R.value=`نام، تلفن و شناسه ملی الزامی هستند.`;return}z.value=!0;let e={name:Y.name.trim(),phone:Y.phone.trim(),nationalId:Y.nationalId.trim(),customerType:Y.customerType,isActive:Y.isActive,levelDefId:Y.levelDefId||null,assignedAgentId:Y.assignedAgentId||null,brandIds:[...Y.brandIds],appRole:Y.appRole,agentCode:Y.appRole===`agent`&&Y.agentCode.trim()||null};try{if(I.value===`edit`&&L.value){let t=await k.update(L.value,e),n=f.value.findIndex(e=>e.id===L.value);n!==-1&&(f.value[n]={...f.value[n],...t})}else{let t=await k.create(e);f.value.unshift(t)}B.success(I.value===`edit`?`اطلاعات مشتری بهروزرسانی شد.`:`مشتری جدید ثبت شد.`),Q(),e.appRole===`agent`&&ht()}catch(e){B.error(e instanceof C?e.message:`ذخیره مشتری انجام نشد.`)}finally{z.value=!1}}async function $(e,t){await k.setActive(e,t)}function yt(){N.value=``}return(r,i)=>(t(),d(`div`,ce,[u(`div`,le,[i[13]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`مشتریان و واسطهها`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:gt},n(P.value===`agent`?`افزودن واسطه`:`افزودن مشتری`),1)]),u(`div`,ue,[u(`button`,{type:`button`,role:`tab`,class:a([`customers-page__tab`,{"is-active":P.value===`customer`}]),"aria-selected":P.value===`customer`,onClick:i[0]||=e=>Z(`customer`)},` مشتریان `,10,de),u(`button`,{type:`button`,role:`tab`,class:a([`customers-page__tab`,{"is-active":P.value===`agent`}]),"aria-selected":P.value===`agent`,onClick:i[1]||=e=>Z(`agent`)},` واسطهها `,10,fe)]),u(`div`,pe,[p(w,{name:`search`,size:18}),o(u(`input`,{"onUpdate:modelValue":i[2]||=e=>N.value=e,type:`search`,class:`customers-page__search-input`,placeholder:`جستجو در نام، تلفن، شناسه ملی...`},null,512),[[D,N.value]])]),F.value?(t(),h(ie,{key:0,variant:`table`})):X.value.length?(t(),d(`div`,me,[u(`div`,he,[u(`table`,ge,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,n(P.value===`agent`?`نام واسطه`:`نام مشتری`),1),i[14]||=u(`th`,null,`تلفن`,-1),i[15]||=u(`th`,null,`نقش`,-1),P.value===`agent`?(t(),d(`th`,_e,`کد واسطه`)):b(``,!0),P.value===`customer`?(t(),d(`th`,ve,`نوع`)):b(``,!0),P.value===`customer`?(t(),d(`th`,ye,`سطح`)):b(``,!0),P.value===`customer`?(t(),d(`th`,be,`واسطه`)):b(``,!0),P.value===`customer`?(t(),d(`th`,xe,`شرکت`)):b(``,!0),i[16]||=u(`th`,{class:`numeric`},`تعداد سفارش`,-1),i[17]||=u(`th`,{class:`numeric`},`مجموع متراژ`,-1),i[18]||=u(`th`,{class:`status`},`وضعیت`,-1),i[19]||=u(`th`,null,`تاریخ ثبت`,-1),i[20]||=u(`th`,{class:`actions`},`عملیات`,-1)])]),u(`tbody`,null,[(t(!0),d(_,null,m(X.value,e=>(t(),d(`tr`,{key:e.id},[u(`td`,null,n(V(e.name)),1),u(`td`,null,n(V(e.phone)),1),u(`td`,null,n(K(e.appRole)),1),P.value===`agent`?(t(),d(`td`,Se,n(V(e.agentCode)),1)):b(``,!0),P.value===`customer`?(t(),d(`td`,Ce,n(V(l(j)[e.customerType])),1)):b(``,!0),P.value===`customer`?(t(),d(`td`,we,n(V(e.levelLabel)),1)):b(``,!0),P.value===`customer`?(t(),d(`td`,Te,n(V(e.assignedAgentName)),1)):b(``,!0),P.value===`customer`?(t(),d(`td`,Ee,n(V(e.companyName)),1)):b(``,!0),u(`td`,De,n(V(e.orderCount)),1),u(`td`,Oe,n(H(e.totalMeterage)),1),u(`td`,ke,[p(M,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`مشتری`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),u(`td`,null,n(V(l(ee)(e.registeredAt))),1),u(`td`,Ae,[u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>_t(e)},` ویرایش `,8,je)])]))),128))])])])])):(t(),h(oe,{key:1,class:`admin-card`,icon:`customers`,title:N.value.trim()?`نتیجهای یافت نشد`:P.value===`agent`?`واسطهای ثبت نشده`:`مشتریان ثبت شده`,description:N.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:P.value===`agent`?`برای شروع، اولین واسطه را ثبت کنید.`:`برای شروع، اولین مشتری را ثبت کنید.`},{default:e(()=>[N.value.trim()?(t(),d(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:yt},` پاک کردن جستجو `)):(t(),d(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:gt},n(P.value===`agent`?`افزودن واسطه`:`افزودن مشتری`),1))]),_:1},8,[`title`,`description`])),!F.value&&X.value.length?(t(),d(`div`,Me,[(t(!0),d(_,null,m(X.value,e=>(t(),d(`article`,{key:e.id,class:`admin-card-item`},[u(`div`,Ne,[u(`p`,Pe,n(V(e.name)),1),u(`div`,Fe,[p(M,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`مشتری`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`]),u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>_t(e)},` ویرایش `,8,Ie)])]),u(`div`,Le,[u(`span`,null,n(V(e.phone)),1),P.value===`agent`?(t(),d(`span`,Re,`کد: `+n(V(e.agentCode)),1)):b(``,!0),P.value===`customer`?(t(),d(`span`,ze,n(V(l(j)[e.customerType])),1)):b(``,!0),P.value===`customer`?(t(),d(`span`,Be,n(V(e.levelLabel)),1)):b(``,!0),P.value===`customer`?(t(),d(`span`,Ve,`واسطه: `+n(V(e.assignedAgentName)),1)):b(``,!0),P.value===`customer`?(t(),d(`span`,He,n(V(e.companyName)),1)):b(``,!0),u(`span`,null,n(V(e.orderCount))+` سفارش · `+n(H(e.totalMeterage)),1)])]))),128))])):b(``,!0),p(T,{open:ut.value,title:dt.value,size:`lg`,onClose:Q},{footer:e(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Q},`انصراف`),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!ft.value||z.value,onClick:vt},[z.value?(t(),d(`span`,ct)):b(``,!0),g(` `+n(I.value===`edit`?`ذخیره تغییرات`:Y.appRole===`agent`?`ثبت واسطه`:`ثبت مشتری`),1)],8,st)]),default:e(()=>[u(`form`,{class:`admin-form`,onSubmit:S(vt,[`prevent`])},[R.value?(t(),d(`p`,Ue,n(R.value),1)):b(``,!0),u(`div`,We,[i[21]||=u(`label`,{for:`customer-name`},[g(`نام مشتری `),u(`span`,{class:`admin-form__required`},`*`)],-1),o(u(`input`,{id:`customer-name`,"onUpdate:modelValue":i[3]||=e=>Y.name=e,type:`text`,class:`admin-input`},null,512),[[D,Y.name]])]),u(`div`,Ge,[u(`div`,Ke,[i[22]||=u(`label`,{for:`customer-phone`},[g(`تلفن `),u(`span`,{class:`admin-form__required`},`*`)],-1),o(u(`input`,{id:`customer-phone`,"onUpdate:modelValue":i[4]||=e=>Y.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[D,Y.phone]])]),u(`div`,qe,[i[23]||=u(`label`,{for:`customer-national-id`},[g(`شناسه ملی `),u(`span`,{class:`admin-form__required`},`*`)],-1),o(u(`input`,{id:`customer-national-id`,"onUpdate:modelValue":i[5]||=e=>Y.nationalId=e,type:`text`,class:`admin-input`,inputmode:`numeric`,dir:`ltr`},null,512),[[D,Y.nationalId]])])]),u(`div`,Je,[u(`div`,Ye,[i[24]||=u(`label`,null,`نوع مشتری`,-1),p(A,{modelValue:Y.customerType,"onUpdate:modelValue":i[6]||=e=>Y.customerType=e,block:``,"aria-label":`نوع مشتری`,options:U},null,8,[`modelValue`])]),u(`div`,Xe,[i[25]||=u(`label`,{for:`customer-company`},`شرکت مرتبط`,-1),o(u(`input`,{id:`customer-company`,"onUpdate:modelValue":i[7]||=e=>Y.companyName=e,type:`text`,class:`admin-input`},null,512),[[D,Y.companyName]])])]),u(`div`,Ze,[u(`div`,Qe,[i[26]||=u(`label`,null,`سطح`,-1),p(A,{modelValue:Y.levelDefId,"onUpdate:modelValue":i[8]||=e=>Y.levelDefId=e,block:``,"aria-label":`سطح مشتری`,options:q.value},null,8,[`modelValue`,`options`])]),u(`div`,$e,[i[27]||=u(`label`,null,`واسطه`,-1),p(A,{modelValue:Y.assignedAgentId,"onUpdate:modelValue":i[9]||=e=>Y.assignedAgentId=e,block:``,"aria-label":`واسطه اختصاصیافته`,options:lt.value},null,8,[`modelValue`,`options`])])]),u(`div`,et,[u(`div`,tt,[i[28]||=u(`label`,null,`نقش در اپ`,-1),p(A,{modelValue:Y.appRole,"onUpdate:modelValue":i[10]||=e=>Y.appRole=e,block:``,"aria-label":`نقش در اپ`,options:W},null,8,[`modelValue`])]),Y.appRole===`agent`?(t(),d(`div`,nt,[i[29]||=u(`label`,{for:`customer-agent-code`},`کد واسطه`,-1),o(u(`input`,{id:`customer-agent-code`,"onUpdate:modelValue":i[11]||=e=>Y.agentCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[D,Y.agentCode]])])):b(``,!0)]),E.value.length?(t(),d(`div`,rt,[i[30]||=u(`label`,null,`برندها`,-1),u(`div`,it,[(t(!0),d(_,null,m(E.value,e=>(t(),d(`label`,{key:e.id,class:`customers-page__brand`},[u(`input`,{type:`checkbox`,checked:Y.brandIds.includes(e.id),onChange:t=>pt(e.id,t.target.checked)},null,40,at),u(`span`,null,n(e.name),1)]))),128))])])):b(``,!0),u(`div`,ot,[p(ae,{modelValue:Y.isActive,"onUpdate:modelValue":i[12]||=e=>Y.isActive=e,label:`وضعیت`},null,8,[`modelValue`])]),I.value===`edit`&&L.value&&Y.appRole===`customer`?(t(),h(se,{key:2,"customer-id":L.value},null,8,[`customer-id`])):b(``,!0)],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-db05c8d1`]]);export{q as default}; |