Files
nademitex_admin/dist/assets/ProductsView-D1KGixmP.js
T

1 line
9.9 KiB
JavaScript

import{A as e,B as t,G as n,H as r,I as ee,K as i,L as a,P as o,Q as s,T as te,U as c,V as ne,X as l,_ as u,at as d,ct as f,et as p,ft as m,it as h,j as re,k as ie,lt as g,n as _,o as v,q as y,st as ae,u as oe,w as b,z as x}from"./index-dG7O4aC2.js";import{t as S}from"./AdminSelect-BsjBHdZj.js";import{n as se,r as ce,t as C}from"./ActiveSwitchCell-DxxSF-SL.js";import{t as le}from"./AdminCurrencyInput-Bo4teStb.js";var ue={class:`products-page`},de={class:`products-page__filters admin-card`},fe={class:`products-page__search`},pe={key:1,class:`products-page__table admin-card desktop-only`},me={class:`admin-table-wrap`},he={class:`admin-table`},ge={class:`numeric`},_e={class:`numeric`},ve={class:`numeric`},ye={class:`numeric`},w={class:`status`},T={class:`actions`},E=[`onClick`],D={key:2,class:`compact-only admin-card-list`},O={class:`admin-card-item__header`},k={class:`admin-card-item__title`},A={class:`admin-card-item__header-actions`},j=[`onClick`],M={class:`admin-card-item__meta`},N={key:0,class:`admin-form__error`,role:`alert`},P={class:`admin-form__field`},be={class:`admin-form__row`},xe={class:`admin-form__field`},Se={class:`admin-form__field`},F={class:`admin-form__field`},Ce={class:`admin-form__row`},we={class:`admin-form__field`},Te={class:`admin-form__field`},Ee={class:`admin-form__row`},De={class:`admin-form__field`},Oe={class:`admin-form__field`},ke={class:`admin-form__field`},Ae=[`disabled`],I=re(y({__name:`ProductsView`,setup(re){let y=f([]),I=f([]),L=f(``),R=f(`all`),z=f(null),B=f(null),V=f(``),H=f(!1),U=e(),je=x(()=>[{value:`all`,label:`همه کالیته‌ها`},...I.value.map(e=>({value:e.id,label:`${e.code} — ${e.name}`}))]),Me=x(()=>I.value.map(e=>({value:e.id,label:`${e.code} — ${e.name} (${e.companyName})`}))),W=()=>({catalogId:I.value[0]?.id??``,name:``,color:``,productCode:``,minMeterage:100,orderStep:50,price:null,internalStock:0,isActive:!0}),G=ae(W()),Ne=x(()=>z.value!==null),Pe=x(()=>z.value===`edit`?`ویرایش محصول`:`افزودن محصول`),K=x(()=>G.name.trim()&&G.catalogId&&G.minMeterage>0),q=x(()=>L.value.trim().length>0||R.value!==`all`),J=x(()=>{let e=y.value;R.value!==`all`&&(e=e.filter(e=>e.catalogId===R.value));let t=L.value.trim();return t&&(e=e.filter(e=>e.name.includes(t)||e.color.includes(t)||e.productCode.includes(t)||e.catalogCode.includes(t))),e});async function Fe(){try{let[e,t]=await Promise.all([u.list(),oe.list()]);y.value=e,I.value=t}catch(e){U.error(e instanceof b?e.message:`بارگذاری محصولات انجام نشد.`)}}l(()=>{Fe()});function Ie(e){return I.value.find(t=>t.id===e)}function Y(){z.value=`add`,B.value=null,Object.assign(G,W()),V.value=``}function X(e){z.value=`edit`,B.value=e.id,G.catalogId=e.catalogId,G.name=e.name,G.color=e.color,G.productCode=e.productCode,G.minMeterage=e.minMeterage,G.orderStep=e.orderStep,G.price=e.price,G.internalStock=e.internalStock,G.isActive=e.isActive,V.value=``}function Z(){z.value=null,B.value=null,V.value=``}async function Q(){if(!K.value){V.value=`نام محصول، کالیته و حداقل متراژ الزامی هستند.`;return}let e=Ie(G.catalogId);if(!e){V.value=`کالیته معتبر انتخاب کنید.`;return}let t=G.productCode.trim()||`${e.code}-NEW`;H.value=!0;try{if(z.value===`edit`&&B.value){let e=await u.update(B.value,{catalogId:G.catalogId,name:G.name.trim(),color:G.color.trim()||`—`,code:t,productCode:t,minMeterage:G.minMeterage,orderStep:G.orderStep,price:G.price,internalStock:G.internalStock,isActive:G.isActive}),n=y.value.findIndex(e=>e.id===B.value);n!==-1&&(y.value[n]={...y.value[n],...e}),U.success(`اطلاعات محصول به‌روزرسانی شد.`)}else{let n=await u.create({companyId:e.companyId,catalogId:G.catalogId,name:G.name.trim(),color:G.color.trim()||`—`,code:t,productCode:t,minMeterage:G.minMeterage,orderStep:G.orderStep,price:G.price,internalStock:G.internalStock,isActive:G.isActive});y.value.push(n),U.success(`محصول جدید ثبت شد.`)}Z()}catch(e){U.error(e instanceof b?e.message:`ذخیره محصول انجام نشد.`)}finally{H.value=!1}}async function $(e,t){await u.setActive(e,t)}function Le(){L.value=``,R.value=`all`}return(e,l)=>(s(),c(`div`,ue,[t(`div`,{class:`admin-page-header`},[l[11]||=t(`div`,null,[t(`h1`,{class:`admin-page-header__title`},`محصولات`),t(`p`,{class:`admin-page-header__breadcrumb`},`مدیریت / محصولات`)],-1),t(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن محصول `)]),t(`div`,de,[t(`div`,fe,[i(te,{name:`search`,size:18}),d(t(`input`,{"onUpdate:modelValue":l[0]||=e=>L.value=e,type:`search`,class:`products-page__search-input`,placeholder:`جستجو در نام، رنگ، کد...`},null,512),[[o,L.value]])]),i(S,{modelValue:R.value,"onUpdate:modelValue":l[1]||=e=>R.value=e,class:`products-page__catalog-filter`,"aria-label":`فیلتر کالیته`,options:je.value},null,8,[`modelValue`,`options`])]),J.value.length?(s(),c(`div`,pe,[t(`div`,me,[t(`table`,he,[l[12]||=t(`thead`,null,[t(`tr`,null,[t(`th`,null,`کد محصول`),t(`th`,null,`نام`),t(`th`,null,`رنگ`),t(`th`,null,`کالیته`),t(`th`,null,`شرکت`),t(`th`,{class:`numeric`},`حداقل متراژ`),t(`th`,{class:`numeric`},`ضریب`),t(`th`,{class:`numeric`},`قیمت`),t(`th`,{class:`numeric`},`موجودی`),t(`th`,{class:`status`},`وضعیت`),t(`th`,{class:`actions`},`عملیات`)])],-1),t(`tbody`,null,[(s(!0),c(a,null,p(J.value,e=>(s(),c(`tr`,{key:e.id},[t(`td`,null,m(e.productCode),1),t(`td`,null,m(e.name),1),t(`td`,null,m(e.color),1),t(`td`,null,m(e.catalogCode),1),t(`td`,null,m(e.companyName),1),t(`td`,ge,m(g(v)(e.minMeterage))+` متر`,1),t(`td`,_e,m(g(v)(e.orderStep)),1),t(`td`,ve,m(e.price?g(_)(e.price):`—`),1),t(`td`,ye,m(g(v)(e.internalStock))+` متر`,1),t(`td`,w,[i(C,{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`])]),t(`td`,T,[t(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,E)])]))),128))])])])])):(s(),ne(se,{key:0,class:`admin-card`,icon:`products`,title:q.value?`نتیجه‌ای یافت نشد`:`محصولی ثبت نشده`,description:q.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین محصول را ثبت کنید.`},{default:h(()=>[q.value?(s(),c(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Le},` پاک کردن فیلترها `)):(s(),c(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` افزودن محصول `))]),_:1},8,[`title`,`description`])),J.value.length?(s(),c(`div`,D,[(s(!0),c(a,null,p(J.value,e=>(s(),c(`article`,{key:e.id,class:`admin-card-item`},[t(`div`,O,[t(`p`,k,m(e.name),1),t(`div`,A,[i(C,{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`]),t(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,j)])]),t(`div`,M,[t(`span`,null,m(e.productCode),1),t(`span`,null,m(e.color),1),t(`span`,null,`کالیته `+m(e.catalogCode),1),t(`span`,null,m(e.price?g(_)(e.price):`بدون قیمت`),1)])]))),128))])):r(``,!0),i(ie,{open:Ne.value,title:Pe.value,size:`lg`,onClose:Z},{footer:h(()=>[t(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),t(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!K.value||H.value,onClick:Q},m(z.value===`edit`?`ذخیره تغییرات`:`ثبت محصول`),9,Ae)]),default:h(()=>[t(`form`,{class:`admin-form`,onSubmit:ee(Q,[`prevent`])},[V.value?(s(),c(`p`,N,m(V.value),1)):r(``,!0),t(`div`,P,[l[13]||=t(`label`,null,[n(`کالیته `),t(`span`,{class:`admin-form__required`},`*`)],-1),i(S,{modelValue:G.catalogId,"onUpdate:modelValue":l[2]||=e=>G.catalogId=e,block:``,"aria-label":`انتخاب کالیته`,placeholder:`انتخاب کالیته`,options:Me.value},null,8,[`modelValue`,`options`])]),t(`div`,be,[t(`div`,xe,[l[14]||=t(`label`,{for:`product-name`},[n(`نام محصول `),t(`span`,{class:`admin-form__required`},`*`)],-1),d(t(`input`,{id:`product-name`,"onUpdate:modelValue":l[3]||=e=>G.name=e,type:`text`,class:`admin-input`},null,512),[[o,G.name]])]),t(`div`,Se,[l[15]||=t(`label`,{for:`product-color`},`رنگ / نوع`,-1),d(t(`input`,{id:`product-color`,"onUpdate:modelValue":l[4]||=e=>G.color=e,type:`text`,class:`admin-input`},null,512),[[o,G.color]])])]),t(`div`,F,[l[16]||=t(`label`,{for:`product-code`},`کد محصول`,-1),d(t(`input`,{id:`product-code`,"onUpdate:modelValue":l[5]||=e=>G.productCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[o,G.productCode]])]),t(`div`,Ce,[t(`div`,we,[l[17]||=t(`label`,{for:`product-min`},`حداقل متراژ`,-1),d(t(`input`,{id:`product-min`,"onUpdate:modelValue":l[6]||=e=>G.minMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[o,G.minMeterage,void 0,{number:!0}]])]),t(`div`,Te,[l[18]||=t(`label`,{for:`product-step`},`ضریب سفارش`,-1),d(t(`input`,{id:`product-step`,"onUpdate:modelValue":l[7]||=e=>G.orderStep=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[o,G.orderStep,void 0,{number:!0}]])])]),t(`div`,Ee,[t(`div`,De,[l[19]||=t(`label`,{for:`product-price`},`قیمت (تومان)`,-1),i(le,{id:`product-price`,modelValue:G.price,"onUpdate:modelValue":l[8]||=e=>G.price=e},null,8,[`modelValue`])]),t(`div`,Oe,[l[20]||=t(`label`,{for:`product-stock`},`موجودی داخلی (متر)`,-1),d(t(`input`,{id:`product-stock`,"onUpdate:modelValue":l[9]||=e=>G.internalStock=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[o,G.internalStock,void 0,{number:!0}]])])]),t(`div`,ke,[i(ce,{modelValue:G.isActive,"onUpdate:modelValue":l[10]||=e=>G.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-70aa7065`]]);export{I as default};