1 line
8.8 KiB
JavaScript
1 line
8.8 KiB
JavaScript
import{$ as e,B as t,K as ee,N as n,P as te,Q as r,R as ne,St as i,W as a,X as o,Y as s,Z as c,_t as re,bt as l,ct as u,h as ie,ht as d,mt as f,nt as p,ot as ae,p as m,q as h,rt as g,tt as _,ut as v,vt as y,xt as b,z as oe}from"./index-BHqDDh7X.js";import{t as se}from"./AdminPageSkeleton-E50Kwv4j.js";import{t as ce}from"./BaseSwitch-DYYNQNXf.js";import{t as le}from"./BaseEmptyState-vNIhbGdV.js";import{t as ue}from"./AdminImagePicker-DzV79efN.js";import{t as x}from"./AdminSelect-BjB6PHdr.js";import{t as S}from"./ActiveSwitchCell-BzzYl8MV.js";var de={class:`catalogs-page`},fe={class:`catalogs-page__filters admin-card`},pe={class:`catalogs-page__search`},me={key:2,class:`catalogs-page__table admin-card desktop-only`},he={class:`admin-table-wrap`},ge={class:`admin-table`},_e={class:`numeric`},ve={class:`numeric`},ye={class:`status`},be={class:`actions`},xe=[`onClick`],C={key:3,class:`compact-only admin-card-list`},w={class:`admin-card-item__header`},T={class:`admin-card-item__title`},E={class:`admin-card-item__meta`},D={class:`admin-card-item__actions`},O=[`onClick`],k={key:0,class:`admin-form__error`,role:`alert`},A={class:`admin-form__field`},j={class:`admin-form__row`},M={class:`admin-form__field`},Se={class:`admin-form__field`},Ce={class:`admin-form__row`},we={class:`admin-form__field`},Te={class:`admin-form__field`},Ee=[`disabled`],N=t(g({__name:`CatalogsView`,setup(t){let g=y([]),N=y([]),P=y(``),F=y(`all`),I=y(!0),L=y(null),R=y(null),z=y(``),B=y(!1),V=oe(),De=s(()=>[{value:`all`,label:`همه شرکتها`},...N.value.map(e=>({value:e.id,label:e.name}))]),Oe=s(()=>N.value.map(e=>({value:e.id,label:e.name}))),H=()=>({companyId:N.value[0]?.id??``,code:``,name:``,displayOrder:g.value.length+1,isActive:!0,imageUrl:null}),U=re(H()),ke=s(()=>L.value!==null),W=s(()=>L.value===`edit`?`ویرایش کالیته`:`افزودن کالیته`),G=s(()=>U.code.trim()&&U.name.trim()&&U.companyId),K=s(()=>P.value.trim().length>0||F.value!==`all`),q=s(()=>{let e=g.value;F.value!==`all`&&(e=e.filter(e=>e.companyId===F.value));let t=P.value.trim();return t&&(e=e.filter(e=>e.code.includes(t)||e.name.includes(t)||e.companyName.includes(t))),e});async function Ae(){I.value=!0;try{let[e,t]=await Promise.all([m.list(),ie.list()]);g.value=e,N.value=t}catch(e){V.error(e instanceof n?e.message:`بارگذاری کالیتهها انجام نشد.`)}finally{I.value=!1}}ae(()=>{Ae()});function J(e){return N.value.find(t=>t.id===e)?.name??`—`}function Y(){L.value=`add`,R.value=null,Object.assign(U,H()),z.value=``}function X(e){L.value=`edit`,R.value=e.id,U.companyId=e.companyId,U.code=e.code,U.name=e.name,U.displayOrder=e.displayOrder,U.isActive=e.isActive,U.imageUrl=e.imageUrl??null,z.value=``}function Z(){L.value=null,R.value=null,z.value=``}async function Q(){if(!G.value){z.value=`کد، نام و شرکت الزامی هستند.`;return}B.value=!0;try{if(L.value===`edit`&&R.value){let e=await m.update(R.value,{code:U.code.trim(),name:U.name.trim(),displayOrder:Number(U.displayOrder)||1,isActive:U.isActive,imageUrl:U.imageUrl}),t=g.value.findIndex(e=>e.id===R.value);t!==-1&&(g.value[t]={...g.value[t],...e,companyName:J(U.companyId)}),V.success(`اطلاعات کالیته بهروزرسانی شد.`)}else{let e=await m.create({companyId:U.companyId,code:U.code.trim(),name:U.name.trim(),displayOrder:Number(U.displayOrder)||1,isActive:U.isActive,imageUrl:U.imageUrl});g.value.push({...e,companyName:e.companyName||J(U.companyId),productCount:e.productCount??0}),V.success(`کالیته جدید ثبت شد.`)}Z()}catch(e){V.error(e instanceof n?e.message:`ذخیره کالیته انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await m.setActive(e,t)}function je(){P.value=``,F.value=`all`}return(t,n)=>(u(),e(`div`,de,[o(`div`,{class:`admin-page-header`},[n[8]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`کالیتهها`)],-1),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کالیته `)]),o(`div`,fe,[o(`div`,pe,[p(te,{name:`search`,size:18}),d(o(`input`,{"onUpdate:modelValue":n[0]||=e=>P.value=e,type:`search`,class:`catalogs-page__search-input`,placeholder:`جستجو بر اساس کد یا نام...`},null,512),[[a,P.value]])]),p(x,{modelValue:F.value,"onUpdate:modelValue":n[1]||=e=>F.value=e,class:`catalogs-page__company-filter`,"aria-label":`فیلتر شرکت`,options:De.value},null,8,[`modelValue`,`options`])]),I.value?(u(),c(se,{key:0,variant:`table`})):q.value.length?(u(),e(`div`,me,[o(`div`,he,[o(`table`,ge,[n[9]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`تصویر`),o(`th`,null,`کد`),o(`th`,null,`نام کالیته`),o(`th`,null,`شرکت`),o(`th`,{class:`numeric`},`ترتیب`),o(`th`,{class:`numeric`},`تعداد محصول`),o(`th`,{class:`status`},`وضعیت`),o(`th`,{class:`actions`},`عملیات`)])],-1),o(`tbody`,null,[(u(!0),e(h,null,v(q.value,t=>(u(),e(`tr`,{key:t.id},[o(`td`,null,[o(`span`,{class:l([`catalog-thumb`,{"catalog-thumb--empty":!t.imageUrl}]),style:b(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},null,6)]),o(`td`,null,i(t.code),1),o(`td`,null,i(t.name),1),o(`td`,null,i(t.companyName),1),o(`td`,_e,i(t.displayOrder),1),o(`td`,ve,i(t.productCount),1),o(`td`,ye,[p(S,{id:t.id,modelValue:t.isActive,"onUpdate:modelValue":e=>t.isActive=e,"entity-name":t.name,"entity-type":`کالیته`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),o(`td`,be,[o(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>X(t)},` ویرایش `,8,xe)])]))),128))])])])])):(u(),c(le,{key:1,class:`admin-card`,icon:`catalogs`,title:K.value?`نتیجهای یافت نشد`:`کالیتهای ثبت نشده`,description:K.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کالیته را ثبت کنید.`},{default:f(()=>[K.value?(u(),e(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:je},` پاک کردن فیلترها `)):(u(),e(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` افزودن کالیته `))]),_:1},8,[`title`,`description`])),!I.value&&q.value.length?(u(),e(`div`,C,[(u(!0),e(h,null,v(q.value,t=>(u(),e(`article`,{key:t.id,class:`admin-card-item`},[o(`div`,w,[o(`span`,{class:l([`catalog-thumb`,{"catalog-thumb--empty":!t.imageUrl}]),style:b(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},null,6),o(`p`,T,`کالیته `+i(t.code)+` — `+i(t.name),1),p(S,{id:t.id,modelValue:t.isActive,"onUpdate:modelValue":e=>t.isActive=e,"entity-name":t.name,"entity-type":`کالیته`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),o(`div`,E,[o(`span`,null,i(t.companyName),1),o(`span`,null,i(t.productCount)+` محصول`,1),o(`span`,null,`ترتیب: `+i(t.displayOrder),1)]),o(`div`,D,[o(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>X(t)},` ویرایش `,8,O)])]))),128))])):r(``,!0),p(ne,{open:ke.value,title:W.value,size:`lg`,onClose:Z},{footer:f(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!G.value||B.value,onClick:Q},i(L.value===`edit`?`ذخیره تغییرات`:`ثبت کالیته`),9,Ee)]),default:f(()=>[o(`form`,{class:`admin-form`,onSubmit:ee(Q,[`prevent`])},[z.value?(u(),e(`p`,k,i(z.value),1)):r(``,!0),o(`div`,A,[n[10]||=o(`label`,null,[_(`شرکت `),o(`span`,{class:`admin-form__required`},`*`)],-1),p(x,{modelValue:U.companyId,"onUpdate:modelValue":n[2]||=e=>U.companyId=e,block:``,"aria-label":`انتخاب شرکت`,placeholder:`انتخاب شرکت`,options:Oe.value},null,8,[`modelValue`,`options`])]),o(`div`,j,[o(`div`,M,[n[11]||=o(`label`,{for:`catalog-code`},[_(`کد کالیته `),o(`span`,{class:`admin-form__required`},`*`)],-1),d(o(`input`,{id:`catalog-code`,"onUpdate:modelValue":n[3]||=e=>U.code=e,type:`text`,class:`admin-input`,placeholder:`377`},null,512),[[a,U.code]])]),o(`div`,Se,[n[12]||=o(`label`,{for:`catalog-name`},[_(`نام کالیته `),o(`span`,{class:`admin-form__required`},`*`)],-1),d(o(`input`,{id:`catalog-name`,"onUpdate:modelValue":n[4]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[a,U.name]])])]),o(`div`,Ce,[o(`div`,we,[n[13]||=o(`label`,{for:`catalog-order`},`ترتیب نمایش`,-1),d(o(`input`,{id:`catalog-order`,"onUpdate:modelValue":n[5]||=e=>U.displayOrder=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[a,U.displayOrder,void 0,{number:!0}]])]),o(`div`,Te,[p(ce,{modelValue:U.isActive,"onUpdate:modelValue":n[6]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])]),p(ue,{modelValue:U.imageUrl,"onUpdate:modelValue":n[7]||=e=>U.imageUrl=e,label:`تصویر بنر کالیته`},null,8,[`modelValue`])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-4fb827ad`]]);export{N as default}; |