Files
nademitex_admin/dist/assets/CatalogsView-BqUCTvB5.js
T
mohmdsdgandCopilot 9854842ada fix(auth): secure sessions and app routing
Validate sessions against the API, honor configurable base paths, and route unknown pages to 404. Keep development ports stable so user and admin apps cannot be confused.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-24 20:14:11 +03:30

1 line
8.8 KiB
JavaScript

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