Files
nademitex_admin/dist/assets/BannersView-nv4M7RNj.js
T
2026-09-30 09:53:30 +03:30

1 line
6.6 KiB
JavaScript

import{$ as e,At as t,Dt as n,E as r,H as i,M as ee,U as a,Z as o,c as s,d as c,g as l,h as u,k as d,kt as f,l as p,m,r as h,s as g,t as _,u as v}from"./_plugin-vue_export-helper-QrIvvHC8.js";import{a as y,f as b,t as x}from"./http-BjLkjdQu.js";import{H as S,f as C}from"./index-BzcByePp.js";import{t as te}from"./AdminPageSkeleton-oWhHYjl4.js";import{t as w}from"./BaseSwitch-pJwnFBVo.js";import{t as T}from"./BaseEmptyState-B7aEMvHg.js";import{t as E}from"./AdminImagePicker-DLFdrgWU.js";import{t as D}from"./AdminSelect-8XDtPu3U.js";var O={class:`banners-page`},k={key:2,class:`admin-card`},A={class:`admin-table`},j={key:0,class:`banner-sub`},M={class:`actions`},N=[`onClick`],P=[`onClick`],F={class:`field`},I={class:`field`},L={class:`field__head`},R={class:`field`},z={class:`field__head`},ne={class:`field`},B={class:`field__head`},V={class:`field`},H={class:`field`},U=[`disabled`],W=_(l({__name:`BannersView`,setup(l){let _=[{value:`home_hero`,label:`خانه — بنر اصلی`},{value:`products_hero`,label:`لیست محصولات`},{value:`categories_hero`,label:`دسته‌بندی‌ها`}],W=e([]),G=e(!0),K=e(!1),q=e(!1),J=e(null),Y=y(),X=o({slot:`home_hero`,title:``,subtitle:``,ctaLabel:``,ctaLink:`/categories`,imageUrl:null,displayOrder:0,isActive:!0,showTitle:!0,showSubtitle:!0,showCta:!0}),Z=g(()=>J.value?`ویرایش بنر`:`افزودن بنر`);function re(e){return _.find(t=>t.value===e)?.label??e}async function Q(){G.value=!0;try{W.value=await C.list()}catch(e){Y.error(e instanceof x?e.message:`بارگذاری بنرها ناموفق بود.`)}finally{G.value=!1}}function $(){J.value=null,Object.assign(X,{slot:`home_hero`,title:``,subtitle:``,ctaLabel:`مشاهده کالکشن`,ctaLink:`/categories`,imageUrl:null,displayOrder:W.value.length,isActive:!0,showTitle:!0,showSubtitle:!0,showCta:!0}),q.value=!0}function ie(e){J.value=e.id,Object.assign(X,{slot:e.slot,title:e.title,subtitle:e.subtitle,ctaLabel:e.ctaLabel,ctaLink:e.ctaLink||`/categories`,imageUrl:e.imageUrl||null,displayOrder:e.displayOrder,isActive:e.isActive,showTitle:e.showTitle!==!1,showSubtitle:e.showSubtitle!==!1,showCta:e.showCta!==!1}),q.value=!0}async function ae(){if(X.title.trim()){K.value=!0;try{let e={slot:X.slot,title:X.title.trim(),subtitle:X.subtitle.trim()||null,ctaLabel:X.ctaLabel.trim()||null,ctaLink:X.ctaLink.trim()||null,imageUrl:X.imageUrl,displayOrder:X.displayOrder,isActive:X.isActive,showTitle:X.showTitle,showSubtitle:X.showSubtitle,showCta:X.showCta};J.value?await C.update(J.value,e):await C.create(e),q.value=!1,Y.success(`بنر ذخیره شد.`),await Q()}catch(e){Y.error(e instanceof x?e.message:`ذخیره بنر ناموفق بود.`)}finally{K.value=!1}}}async function oe(e){if(window.confirm(`بنر «${e.title}» حذف شود؟`))try{await C.remove(e.id),Y.success(`بنر حذف شد.`),await Q()}catch(e){Y.error(e instanceof x?e.message:`حذف بنر ناموفق بود.`)}}return r(()=>{Q()}),(e,r)=>(d(),c(`div`,O,[s(`div`,{class:`admin-page-header`},[r[13]||=s(`div`,null,[s(`h1`,{class:`admin-page-header__title`},`بنرها`),s(`p`,{class:`admin-page-header__sub`},`بنر بخش‌های مختلف اپ کاربر را از اینجا مدیریت کنید.`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:$},`افزودن بنر`)]),G.value?(d(),p(te,{key:0,variant:`table`})):W.value.length?(d(),c(`div`,k,[s(`table`,A,[r[14]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`تصویر`),s(`th`,null,`عنوان`),s(`th`,null,`بخش`),s(`th`,null,`دکمه`),s(`th`,null,`فعال`),s(`th`,{class:`actions`},`عملیات`)])],-1),s(`tbody`,null,[(d(!0),c(h,null,ee(W.value,e=>(d(),c(`tr`,{key:e.id},[s(`td`,null,[s(`span`,{class:n([`banner-thumb`,{"banner-thumb--empty":!e.imageUrl}]),style:f(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6)]),s(`td`,null,[s(`strong`,null,t(e.title),1),e.subtitle?(d(),c(`p`,j,t(e.subtitle),1)):v(``,!0)]),s(`td`,null,t(re(e.slot)),1),s(`td`,null,t(e.ctaLabel||`—`),1),s(`td`,null,t(e.isActive?`بله`:`خیر`),1),s(`td`,M,[s(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>ie(e)},` ویرایش `,8,N),s(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>oe(e)},` حذف `,8,P)])]))),128))])])])):(d(),p(T,{key:1,title:`بنری ثبت نشده`,description:`اولین بنر خانه را اضافه کنید.`},{default:i(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:$},` افزودن بنر `)]),_:1})),u(S,{open:q.value,title:Z.value,onClose:r[12]||=e=>q.value=!1},{footer:i(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:r[11]||=e=>q.value=!1},`انصراف`),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.title.trim()||K.value,onClick:ae},t(K.value?`در حال ذخیره...`:`ذخیره`),9,U)]),default:i(()=>[s(`label`,F,[r[15]||=m(` بخش نمایش `,-1),u(D,{modelValue:X.slot,"onUpdate:modelValue":r[0]||=e=>X.slot=e,options:_},null,8,[`modelValue`])]),s(`div`,I,[s(`span`,L,[r[16]||=m(` عنوان `,-1),u(w,{modelValue:X.showTitle,"onUpdate:modelValue":r[1]||=e=>X.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),a(s(`input`,{"onUpdate:modelValue":r[2]||=e=>X.title=e,class:`admin-input`},null,512),[[b,X.title]])]),s(`div`,R,[s(`span`,z,[r[17]||=m(` زیرعنوان `,-1),u(w,{modelValue:X.showSubtitle,"onUpdate:modelValue":r[3]||=e=>X.showSubtitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),a(s(`input`,{"onUpdate:modelValue":r[4]||=e=>X.subtitle=e,class:`admin-input`},null,512),[[b,X.subtitle]])]),s(`div`,ne,[s(`span`,B,[r[18]||=m(` متن دکمه `,-1),u(w,{modelValue:X.showCta,"onUpdate:modelValue":r[5]||=e=>X.showCta=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),a(s(`input`,{"onUpdate:modelValue":r[6]||=e=>X.ctaLabel=e,class:`admin-input`},null,512),[[b,X.ctaLabel]])]),s(`label`,V,[r[19]||=m(` لینک دکمه `,-1),a(s(`input`,{"onUpdate:modelValue":r[7]||=e=>X.ctaLink=e,class:`admin-input`,dir:`ltr`,placeholder:`/categories`},null,512),[[b,X.ctaLink]])]),s(`label`,H,[r[20]||=m(`ترتیب نمایش`,-1),a(s(`input`,{"onUpdate:modelValue":r[8]||=e=>X.displayOrder=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[b,X.displayOrder,void 0,{number:!0}]])]),u(E,{modelValue:X.imageUrl,"onUpdate:modelValue":r[9]||=e=>X.imageUrl=e,label:`تصویر بنر`},null,8,[`modelValue`]),u(w,{modelValue:X.isActive,"onUpdate:modelValue":r[10]||=e=>X.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-1ca3d686`]]);export{W as default};