From 148f00a75d7d7ece5c5ebb2ecd74f3c250c8cb40 Mon Sep 17 00:00:00 2001 From: adonis Date: Thu, 24 Sep 2026 22:29:28 +0330 Subject: [PATCH] feat: complete application updates Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- dist/apple-touch-icon.png | Bin 0 -> 10421 bytes dist/assets/ActiveSwitchCell-CLCpM6ho.js | 1 + dist/assets/ActiveSwitchCell-DJZQHZ-8.js | 1 - dist/assets/AdminCurrencyInput-BSNgTEBD.js | 1 + dist/assets/AdminCurrencyInput-D6MsBhvR.js | 1 - dist/assets/AdminSelect-9UfEJQzN.js | 1 - dist/assets/AdminSelect-DK-_otkw.js | 1 + dist/assets/BankAccountsView-CARvNvzB.js | 1 + dist/assets/BankAccountsView-CjjgU3ea.js | 1 - dist/assets/BannersView-KHMLub3-.js | 1 - dist/assets/BannersView-bUbLqnD2.js | 1 + ...BmO9aDcK.js => BaseEmptyState-D6sk-aI_.js} | 2 +- dist/assets/BrandsView-BxPkwxAy.js | 1 + dist/assets/BrandsView-Il4Q4zqB.js | 1 - dist/assets/CashPaymentsView-BmPMXCl-.js | 1 - dist/assets/CashPaymentsView-CQhRcl_A.js | 1 + dist/assets/CatalogRequestsView-C4CHdApz.js | 1 + dist/assets/CatalogRequestsView-DQu3_M_v.js | 1 - dist/assets/CatalogsView-CkUrL58L.js | 1 + dist/assets/CatalogsView-DJJrDHxo.js | 1 - dist/assets/CategoriesView-DAT9P8-Q.js | 1 - dist/assets/CategoriesView-cHE39jAd.js | 1 + dist/assets/CheckManagementView-BVfVFn5F.js | 1 + dist/assets/CheckManagementView-D9Dy0r7I.js | 1 - dist/assets/ChecksListView-Bmazx0UH.js | 1 + dist/assets/ChecksListView-DgtZLWw5.js | 1 - dist/assets/CompaniesView-C28l_bkY.js | 1 - dist/assets/CompaniesView-CS8K7UTP.js | 1 + dist/assets/CustomersView-D2DfLX0j.js | 1 - dist/assets/CustomersView-D5oj1Urm.js | 1 + dist/assets/DashboardView-BEyyH9tP.js | 1 + ...mb__ujh.css => DashboardView-CFmOMgpM.css} | 2 +- dist/assets/DashboardView-cyaZFrOQ.js | 1 - ...iew-Cos5Q_ra.js => LevelsView-D3ss2h-3.js} | 6 +- dist/assets/LoginView-D9TVA-2V.css | 1 + dist/assets/LoginView-DGmyTEGH.js | 1 + dist/assets/LoginView-IFH_z0sG.css | 1 - dist/assets/LoginView-w-SE2utd.js | 1 - dist/assets/OrderPricingView-BjVBgK4W.js | 1 + dist/assets/OrderPricingView-vS7IKrtc.js | 1 - dist/assets/OrdersView-DGNYhZg3.js | 1 - dist/assets/OrdersView-gEeEvVCz.js | 1 + dist/assets/ProductsView-C6janYUE.js | 1 + dist/assets/ProductsView-NLVncfjZ.js | 1 - dist/assets/ReportsView-Dev1cfMC.js | 1 + dist/assets/ReportsView-uTGceQoW.js | 1 - dist/assets/SettingsView-BSpASBj1.js | 1 - dist/assets/SettingsView-Bhs1XSG2.js | 1 + dist/assets/ShippingView-Ck9kASgn.js | 1 - dist/assets/ShippingView-D-kzjDly.js | 1 + dist/assets/SmsTariffView-DfW33peq.css | 1 + dist/assets/SmsTariffView-XVhpP0ug.js | 1 + dist/assets/StockAlertsView-B7WDBhjL.js | 1 - dist/assets/StockAlertsView-DhDos3Ot.js | 1 + dist/assets/SuggestionsView-CXxCS34d.js | 1 + dist/assets/SuggestionsView-SvmEopB3.js | 1 - dist/assets/UsersView-DVbizERy.js | 1 + dist/assets/UsersView-OSVbK-od.js | 1 - dist/assets/http-Djf2pGxE.js | 1 + dist/assets/index-BZ7aOp8K.css | 1 + dist/assets/index-C3X1YgAk.css | 1 - dist/assets/index-CXa4EMLW.js | 382 --------------- dist/assets/index-CznUUXv3.js | 382 +++++++++++++++ dist/brand-logo.png | Bin 0 -> 47625 bytes dist/brand-mark.png | Bin 0 -> 43971 bytes dist/favicon.ico | Bin 4286 -> 4286 bytes dist/icon-192.png | Bin 0 -> 11165 bytes dist/icon-512.png | Bin 0 -> 23041 bytes dist/index.html | 13 +- dist/manifest.webmanifest | 25 + dist/sw.js | 26 + index.html | 8 +- public/apple-touch-icon.png | Bin 0 -> 10421 bytes public/brand-logo.png | Bin 0 -> 47625 bytes public/brand-mark.png | Bin 0 -> 43971 bytes public/favicon.ico | Bin 4286 -> 4286 bytes public/icon-192.png | Bin 0 -> 11165 bytes public/icon-512.png | Bin 0 -> 23041 bytes public/manifest.webmanifest | 25 + public/sw.js | 26 + src/assets/styles/admin.css | 2 +- src/assets/styles/main.css | 62 +-- src/components/charts/SalesAreaChart.vue | 2 +- src/components/layout/AdminHeader.vue | 193 +++++++- src/components/layout/AdminMobileDrawer.vue | 16 +- src/components/layout/AdminSidebar.vue | 16 +- src/composables/useSmsWalletSummary.ts | 12 + src/main.ts | 8 + src/router/index.ts | 11 + src/services/api.ts | 43 ++ src/utils/navigation.ts | 16 + src/utils/smsFormat.ts | 12 + src/views/auth/LoginView.vue | 17 +- src/views/sms/SmsTariffView.vue | 445 ++++++++++++++++++ 94 files changed, 1351 insertions(+), 458 deletions(-) create mode 100644 dist/apple-touch-icon.png create mode 100644 dist/assets/ActiveSwitchCell-CLCpM6ho.js delete mode 100644 dist/assets/ActiveSwitchCell-DJZQHZ-8.js create mode 100644 dist/assets/AdminCurrencyInput-BSNgTEBD.js delete mode 100644 dist/assets/AdminCurrencyInput-D6MsBhvR.js delete mode 100644 dist/assets/AdminSelect-9UfEJQzN.js create mode 100644 dist/assets/AdminSelect-DK-_otkw.js create mode 100644 dist/assets/BankAccountsView-CARvNvzB.js delete mode 100644 dist/assets/BankAccountsView-CjjgU3ea.js delete mode 100644 dist/assets/BannersView-KHMLub3-.js create mode 100644 dist/assets/BannersView-bUbLqnD2.js rename dist/assets/{BaseEmptyState-BmO9aDcK.js => BaseEmptyState-D6sk-aI_.js} (92%) create mode 100644 dist/assets/BrandsView-BxPkwxAy.js delete mode 100644 dist/assets/BrandsView-Il4Q4zqB.js delete mode 100644 dist/assets/CashPaymentsView-BmPMXCl-.js create mode 100644 dist/assets/CashPaymentsView-CQhRcl_A.js create mode 100644 dist/assets/CatalogRequestsView-C4CHdApz.js delete mode 100644 dist/assets/CatalogRequestsView-DQu3_M_v.js create mode 100644 dist/assets/CatalogsView-CkUrL58L.js delete mode 100644 dist/assets/CatalogsView-DJJrDHxo.js delete mode 100644 dist/assets/CategoriesView-DAT9P8-Q.js create mode 100644 dist/assets/CategoriesView-cHE39jAd.js create mode 100644 dist/assets/CheckManagementView-BVfVFn5F.js delete mode 100644 dist/assets/CheckManagementView-D9Dy0r7I.js create mode 100644 dist/assets/ChecksListView-Bmazx0UH.js delete mode 100644 dist/assets/ChecksListView-DgtZLWw5.js delete mode 100644 dist/assets/CompaniesView-C28l_bkY.js create mode 100644 dist/assets/CompaniesView-CS8K7UTP.js delete mode 100644 dist/assets/CustomersView-D2DfLX0j.js create mode 100644 dist/assets/CustomersView-D5oj1Urm.js create mode 100644 dist/assets/DashboardView-BEyyH9tP.js rename dist/assets/{DashboardView-Tmb__ujh.css => DashboardView-CFmOMgpM.css} (75%) delete mode 100644 dist/assets/DashboardView-cyaZFrOQ.js rename dist/assets/{LevelsView-Cos5Q_ra.js => LevelsView-D3ss2h-3.js} (65%) create mode 100644 dist/assets/LoginView-D9TVA-2V.css create mode 100644 dist/assets/LoginView-DGmyTEGH.js delete mode 100644 dist/assets/LoginView-IFH_z0sG.css delete mode 100644 dist/assets/LoginView-w-SE2utd.js create mode 100644 dist/assets/OrderPricingView-BjVBgK4W.js delete mode 100644 dist/assets/OrderPricingView-vS7IKrtc.js delete mode 100644 dist/assets/OrdersView-DGNYhZg3.js create mode 100644 dist/assets/OrdersView-gEeEvVCz.js create mode 100644 dist/assets/ProductsView-C6janYUE.js delete mode 100644 dist/assets/ProductsView-NLVncfjZ.js create mode 100644 dist/assets/ReportsView-Dev1cfMC.js delete mode 100644 dist/assets/ReportsView-uTGceQoW.js delete mode 100644 dist/assets/SettingsView-BSpASBj1.js create mode 100644 dist/assets/SettingsView-Bhs1XSG2.js delete mode 100644 dist/assets/ShippingView-Ck9kASgn.js create mode 100644 dist/assets/ShippingView-D-kzjDly.js create mode 100644 dist/assets/SmsTariffView-DfW33peq.css create mode 100644 dist/assets/SmsTariffView-XVhpP0ug.js delete mode 100644 dist/assets/StockAlertsView-B7WDBhjL.js create mode 100644 dist/assets/StockAlertsView-DhDos3Ot.js create mode 100644 dist/assets/SuggestionsView-CXxCS34d.js delete mode 100644 dist/assets/SuggestionsView-SvmEopB3.js create mode 100644 dist/assets/UsersView-DVbizERy.js delete mode 100644 dist/assets/UsersView-OSVbK-od.js create mode 100644 dist/assets/http-Djf2pGxE.js create mode 100644 dist/assets/index-BZ7aOp8K.css delete mode 100644 dist/assets/index-C3X1YgAk.css delete mode 100644 dist/assets/index-CXa4EMLW.js create mode 100644 dist/assets/index-CznUUXv3.js create mode 100644 dist/brand-logo.png create mode 100644 dist/brand-mark.png create mode 100644 dist/icon-192.png create mode 100644 dist/icon-512.png create mode 100644 dist/manifest.webmanifest create mode 100644 dist/sw.js create mode 100644 public/apple-touch-icon.png create mode 100644 public/brand-logo.png create mode 100644 public/brand-mark.png create mode 100644 public/icon-192.png create mode 100644 public/icon-512.png create mode 100644 public/manifest.webmanifest create mode 100644 public/sw.js create mode 100644 src/composables/useSmsWalletSummary.ts create mode 100644 src/utils/smsFormat.ts create mode 100644 src/views/sms/SmsTariffView.vue diff --git a/dist/apple-touch-icon.png b/dist/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..68d5a355c939b29fccadfb32547ba08cec49f002 GIT binary patch literal 10421 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 literal 0 HcmV?d00001 diff --git a/dist/assets/ActiveSwitchCell-CLCpM6ho.js b/dist/assets/ActiveSwitchCell-CLCpM6ho.js new file mode 100644 index 0000000..03d0669 --- /dev/null +++ b/dist/assets/ActiveSwitchCell-CLCpM6ho.js @@ -0,0 +1 @@ +import{O as e,Z as t,at as n,g as r,l as i}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a}from"./http-Djf2pGxE.js";import{B as o}from"./index-CznUUXv3.js";import{t as s}from"./BaseSwitch-TV5Yvtf7.js";function c(e=480){return new Promise(t=>{window.setTimeout(t,e)})}function l(e){let n=t(null),r=t(null),i=a();async function o(t,a){if(n.value)return a;let o=!a;if(!o&&e.confirmOff&&!await e.confirmOff())return a;n.value=t,r.value=null;let s=a;try{return await e.onPersist(o),i.success(e.successMessage?.(o)??(o?`وضعیت فعال شد.`:`وضعیت غیرفعال شد.`)),o}catch{return r.value=t,i.error(e.errorMessage??`به‌روزرسانی وضعیت انجام نشد.`),s}finally{n.value=null}}function s(e){return n.value===e}function c(e){return r.value===e}return{toggle:o,isLoading:s,hasError:c}}var u=r({__name:`ActiveSwitchCell`,props:{id:{},modelValue:{type:Boolean},entityName:{},entityType:{},persist:{type:Function}},emits:[`update:modelValue`],setup(t,{emit:r}){let a=t,u=r,{toggle:d,isLoading:f,hasError:p}=l({onPersist:async e=>{a.persist?await a.persist(a.id,e):await c()},successMessage:e=>e?`${a.entityType??`مورد`} «${a.entityName}» فعال شد.`:`${a.entityType??`مورد`} «${a.entityName}» غیرفعال شد.`});async function m(e){if(e===a.modelValue)return;let t=a.entityType??`مورد`;if(!await o({title:e?`فعال‌سازی ${t}`:`غیرفعال‌سازی ${t}`,message:e?`آیا از فعال کردن «${a.entityName}» مطمئن هستید؟`:`آیا از غیرفعال کردن «${a.entityName}» مطمئن هستید؟`,tone:e?`primary`:`danger`,confirmLabel:e?`فعال کردن`:`غیرفعال کردن`,cancelLabel:`انصراف`}))return;let n=await d(a.id,a.modelValue);u(`update:modelValue`,n)}return(r,a)=>(e(),i(s,{"model-value":t.modelValue,loading:n(f)(t.id),error:n(p)(t.id),"onUpdate:modelValue":m},null,8,[`model-value`,`loading`,`error`]))}});export{u as t}; \ No newline at end of file diff --git a/dist/assets/ActiveSwitchCell-DJZQHZ-8.js b/dist/assets/ActiveSwitchCell-DJZQHZ-8.js deleted file mode 100644 index b1965db..0000000 --- a/dist/assets/ActiveSwitchCell-DJZQHZ-8.js +++ /dev/null @@ -1 +0,0 @@ -import{O as e,Z as t,at as n,g as r,l as i}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{L as a,z as o}from"./index-CXa4EMLW.js";import{t as s}from"./BaseSwitch-TV5Yvtf7.js";function c(e=480){return new Promise(t=>{window.setTimeout(t,e)})}function l(e){let n=t(null),r=t(null),i=o();async function a(t,a){if(n.value)return a;let o=!a;if(!o&&e.confirmOff&&!await e.confirmOff())return a;n.value=t,r.value=null;let s=a;try{return await e.onPersist(o),i.success(e.successMessage?.(o)??(o?`وضعیت فعال شد.`:`وضعیت غیرفعال شد.`)),o}catch{return r.value=t,i.error(e.errorMessage??`به‌روزرسانی وضعیت انجام نشد.`),s}finally{n.value=null}}function s(e){return n.value===e}function c(e){return r.value===e}return{toggle:a,isLoading:s,hasError:c}}var u=r({__name:`ActiveSwitchCell`,props:{id:{},modelValue:{type:Boolean},entityName:{},entityType:{},persist:{type:Function}},emits:[`update:modelValue`],setup(t,{emit:r}){let o=t,u=r,{toggle:d,isLoading:f,hasError:p}=l({onPersist:async e=>{o.persist?await o.persist(o.id,e):await c()},successMessage:e=>e?`${o.entityType??`مورد`} «${o.entityName}» فعال شد.`:`${o.entityType??`مورد`} «${o.entityName}» غیرفعال شد.`});async function m(e){if(e===o.modelValue)return;let t=o.entityType??`مورد`;if(!await a({title:e?`فعال‌سازی ${t}`:`غیرفعال‌سازی ${t}`,message:e?`آیا از فعال کردن «${o.entityName}» مطمئن هستید؟`:`آیا از غیرفعال کردن «${o.entityName}» مطمئن هستید؟`,tone:e?`primary`:`danger`,confirmLabel:e?`فعال کردن`:`غیرفعال کردن`,cancelLabel:`انصراف`}))return;let n=await d(o.id,o.modelValue);u(`update:modelValue`,n)}return(r,a)=>(e(),i(s,{"model-value":t.modelValue,loading:n(f)(t.id),error:n(p)(t.id),"onUpdate:modelValue":m},null,8,[`model-value`,`loading`,`error`]))}});export{u as t}; \ No newline at end of file diff --git a/dist/assets/AdminCurrencyInput-BSNgTEBD.js b/dist/assets/AdminCurrencyInput-BSNgTEBD.js new file mode 100644 index 0000000..02b9bd4 --- /dev/null +++ b/dist/assets/AdminCurrencyInput-BSNgTEBD.js @@ -0,0 +1 @@ +import{O as e,Tt as t,d as n,g as r,s as i,t as a}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{c as o,r as s}from"./index-CznUUXv3.js";var c=[`id`,`value`,`placeholder`,`disabled`],l=a(r({__name:`AdminCurrencyInput`,props:{modelValue:{default:null},placeholder:{default:``},disabled:{type:Boolean,default:!1},id:{},inputClass:{default:`admin-input`},allowEmpty:{type:Boolean,default:!0}},emits:[`update:modelValue`],setup(r,{emit:a}){let l=r,u=a,d=i(()=>l.modelValue==null||!Number.isFinite(l.modelValue)?``:o(l.modelValue));function f(e){let t=e.target,n=s(t.value);if(!n){u(`update:modelValue`,l.allowEmpty?null:0),t.value=``;return}let r=Number(n);u(`update:modelValue`,r),t.value=o(r)}return(i,a)=>(e(),n(`input`,{id:r.id,type:`text`,inputmode:`numeric`,dir:`ltr`,class:t([`admin-currency-input`,r.inputClass]),value:d.value,placeholder:r.placeholder,disabled:r.disabled,onInput:f},null,42,c))}}),[[`__scopeId`,`data-v-56435fc8`]]);export{l as t}; \ No newline at end of file diff --git a/dist/assets/AdminCurrencyInput-D6MsBhvR.js b/dist/assets/AdminCurrencyInput-D6MsBhvR.js deleted file mode 100644 index 8e42bd3..0000000 --- a/dist/assets/AdminCurrencyInput-D6MsBhvR.js +++ /dev/null @@ -1 +0,0 @@ -import{O as e,Tt as t,d as n,g as r,s as i,t as a}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{o,t as s}from"./index-CXa4EMLW.js";var c=[`id`,`value`,`placeholder`,`disabled`],l=a(r({__name:`AdminCurrencyInput`,props:{modelValue:{default:null},placeholder:{default:``},disabled:{type:Boolean,default:!1},id:{},inputClass:{default:`admin-input`},allowEmpty:{type:Boolean,default:!0}},emits:[`update:modelValue`],setup(r,{emit:a}){let l=r,u=a,d=i(()=>l.modelValue==null||!Number.isFinite(l.modelValue)?``:o(l.modelValue));function f(e){let t=e.target,n=s(t.value);if(!n){u(`update:modelValue`,l.allowEmpty?null:0),t.value=``;return}let r=Number(n);u(`update:modelValue`,r),t.value=o(r)}return(i,a)=>(e(),n(`input`,{id:r.id,type:`text`,inputmode:`numeric`,dir:`ltr`,class:t([`admin-currency-input`,r.inputClass]),value:d.value,placeholder:r.placeholder,disabled:r.disabled,onInput:f},null,42,c))}}),[[`__scopeId`,`data-v-56435fc8`]]);export{l as t}; \ No newline at end of file diff --git a/dist/assets/AdminSelect-9UfEJQzN.js b/dist/assets/AdminSelect-9UfEJQzN.js deleted file mode 100644 index a40daf4..0000000 --- a/dist/assets/AdminSelect-9UfEJQzN.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e,Dt as t,E as n,M as r,O as i,Ot as a,R as o,Tt as s,V as c,Z as l,a as u,c as d,d as f,g as p,h as m,j as h,l as g,r as _,s as v,t as y,u as b}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{G as x,K as S,O as C,P as w,W as T}from"./index-CXa4EMLW.js";var E=[`id`],D=[`aria-label`,`aria-expanded`],O={class:`admin-select__trigger-content`},k={class:`admin-select__value`},A={class:`admin-select__chevron`,"aria-hidden":`true`},j=[`aria-label`],M={key:0,class:`admin-select__search`,role:`presentation`},N=[`placeholder`],P={key:1,class:`admin-select__empty`,role:`presentation`},F=[`aria-selected`,`onClick`],I={class:`admin-select__option-label`},L=y(p({__name:`AdminSelect`,props:{modelValue:{},options:{},placeholder:{default:`انتخاب کنید`},ariaLabel:{default:`انتخاب`},block:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},searchPlaceholder:{default:`جستجو…`},id:{default:void 0}},emits:[`update:modelValue`],setup(p,{emit:y}){let L=p,R=y,z=l(!1),B=l(``),V=l(null),H=l(null),U=l(null),W=l({});C(V,()=>{z.value=!1,B.value=``},{ignore:[H]});let G=v(()=>L.options.find(e=>e.value===L.modelValue)),K=v(()=>G.value?.label??L.placeholder),q=v(()=>{let e=B.value.trim().toLowerCase();return e?L.options.filter(t=>t.label.toLowerCase().includes(e)):L.options});function J(){let e=V.value;if(!e)return;let t=e.getBoundingClientRect(),n=Math.min(320,window.innerHeight*.5),r=window.innerHeight-t.bottom-6,i=t.top-6,a=rr,o=Math.max(120,Math.min(n,a?i:r));W.value={position:`fixed`,left:`${Math.max(8,Math.min(t.left,window.innerWidth-Math.max(t.width,220)-8))}px`,width:`${Math.max(t.width,220)}px`,zIndex:`1100`,maxHeight:`${o}px`,...a?{top:`auto`,bottom:`${window.innerHeight-t.top+6}px`}:{top:`${t.bottom+6}px`,bottom:`auto`}}}function Y(e){e?(window.addEventListener(`resize`,J),window.addEventListener(`scroll`,J,!0)):(window.removeEventListener(`resize`,J),window.removeEventListener(`scroll`,J,!0))}async function X(){z.value=!z.value,z.value&&(await e(),J(),L.searchable&&(B.value=``,await e(),U.value?.focus()))}function Z(e){R(`update:modelValue`,e),z.value=!1,B.value=``}return o(z,t=>{Y(t),t&&e(()=>J())}),n(()=>{Y(!1)}),(e,n)=>(i(),f(`div`,{id:p.id,ref_key:`rootRef`,ref:V,class:s([`admin-select`,{"admin-select--open":z.value,"admin-select--block":p.block}])},[d(`button`,{type:`button`,class:`admin-select__trigger`,"aria-label":p.ariaLabel,"aria-expanded":z.value,"aria-haspopup":`listbox`,onClick:X},[d(`span`,O,[r(e.$slots,`option-leading`,{option:G.value},void 0,!0),d(`span`,k,a(K.value),1)]),d(`span`,A,[m(w,{name:`chevron-down`,size:16})])],8,D),(i(),g(u,{to:`body`},[z.value?(i(),f(`ul`,{key:0,ref_key:`menuRef`,ref:H,class:`admin-select__menu`,role:`listbox`,"aria-label":p.ariaLabel,style:t(W.value)},[p.searchable?(i(),f(`li`,M,[c(d(`input`,{ref_key:`searchInputRef`,ref:U,"onUpdate:modelValue":n[0]||=e=>B.value=e,type:`search`,class:`admin-select__search-input`,placeholder:p.searchPlaceholder,onClick:n[1]||=S(()=>{},[`stop`]),onKeydown:n[2]||=x(S(e=>z.value=!1,[`stop`]),[`esc`])},null,40,N),[[T,B.value]])])):b(``,!0),q.value.length?b(``,!0):(i(),f(`li`,P,` موردی یافت نشد `)),(i(!0),f(_,null,h(q.value,t=>(i(),f(`li`,{key:t.value,role:`presentation`},[d(`button`,{type:`button`,class:s([`admin-select__option`,{"admin-select__option--active":t.value===p.modelValue}]),role:`option`,"aria-selected":t.value===p.modelValue,onClick:e=>Z(t.value)},[d(`span`,I,[r(e.$slots,`option-leading`,{option:t},void 0,!0),d(`span`,null,a(t.label),1)]),t.value===p.modelValue?(i(),g(w,{key:0,name:`check`,size:16,class:`admin-select__check`})):b(``,!0)],10,F)]))),128))],12,j)):b(``,!0)]))],10,E))}}),[[`__scopeId`,`data-v-4623e322`]]);export{L as t}; \ No newline at end of file diff --git a/dist/assets/AdminSelect-DK-_otkw.js b/dist/assets/AdminSelect-DK-_otkw.js new file mode 100644 index 0000000..121ef65 --- /dev/null +++ b/dist/assets/AdminSelect-DK-_otkw.js @@ -0,0 +1 @@ +import{C as e,Dt as t,E as n,M as r,O as i,Ot as a,R as o,Tt as s,V as c,Z as l,a as u,c as d,d as f,g as p,h as m,j as h,l as g,r as _,s as v,t as y,u as b}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{f as x,m as S,p as C}from"./http-Djf2pGxE.js";import{L as w,M as T}from"./index-CznUUXv3.js";var E=[`id`],D=[`aria-label`,`aria-expanded`],O={class:`admin-select__trigger-content`},k={class:`admin-select__value`},A={class:`admin-select__chevron`,"aria-hidden":`true`},j=[`aria-label`],M={key:0,class:`admin-select__search`,role:`presentation`},N=[`placeholder`],P={key:1,class:`admin-select__empty`,role:`presentation`},F=[`aria-selected`,`onClick`],I={class:`admin-select__option-label`},L=y(p({__name:`AdminSelect`,props:{modelValue:{},options:{},placeholder:{default:`انتخاب کنید`},ariaLabel:{default:`انتخاب`},block:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},searchPlaceholder:{default:`جستجو…`},id:{default:void 0}},emits:[`update:modelValue`],setup(p,{emit:y}){let L=p,R=y,z=l(!1),B=l(``),V=l(null),H=l(null),U=l(null),W=l({});T(V,()=>{z.value=!1,B.value=``},{ignore:[H]});let G=v(()=>L.options.find(e=>e.value===L.modelValue)),K=v(()=>G.value?.label??L.placeholder),q=v(()=>{let e=B.value.trim().toLowerCase();return e?L.options.filter(t=>t.label.toLowerCase().includes(e)):L.options});function J(){let e=V.value;if(!e)return;let t=e.getBoundingClientRect(),n=Math.min(320,window.innerHeight*.5),r=window.innerHeight-t.bottom-6,i=t.top-6,a=rr,o=Math.max(120,Math.min(n,a?i:r));W.value={position:`fixed`,left:`${Math.max(8,Math.min(t.left,window.innerWidth-Math.max(t.width,220)-8))}px`,width:`${Math.max(t.width,220)}px`,zIndex:`1100`,maxHeight:`${o}px`,...a?{top:`auto`,bottom:`${window.innerHeight-t.top+6}px`}:{top:`${t.bottom+6}px`,bottom:`auto`}}}function Y(e){e?(window.addEventListener(`resize`,J),window.addEventListener(`scroll`,J,!0)):(window.removeEventListener(`resize`,J),window.removeEventListener(`scroll`,J,!0))}async function X(){z.value=!z.value,z.value&&(await e(),J(),L.searchable&&(B.value=``,await e(),U.value?.focus()))}function Z(e){R(`update:modelValue`,e),z.value=!1,B.value=``}return o(z,t=>{Y(t),t&&e(()=>J())}),n(()=>{Y(!1)}),(e,n)=>(i(),f(`div`,{id:p.id,ref_key:`rootRef`,ref:V,class:s([`admin-select`,{"admin-select--open":z.value,"admin-select--block":p.block}])},[d(`button`,{type:`button`,class:`admin-select__trigger`,"aria-label":p.ariaLabel,"aria-expanded":z.value,"aria-haspopup":`listbox`,onClick:X},[d(`span`,O,[r(e.$slots,`option-leading`,{option:G.value},void 0,!0),d(`span`,k,a(K.value),1)]),d(`span`,A,[m(w,{name:`chevron-down`,size:16})])],8,D),(i(),g(u,{to:`body`},[z.value?(i(),f(`ul`,{key:0,ref_key:`menuRef`,ref:H,class:`admin-select__menu`,role:`listbox`,"aria-label":p.ariaLabel,style:t(W.value)},[p.searchable?(i(),f(`li`,M,[c(d(`input`,{ref_key:`searchInputRef`,ref:U,"onUpdate:modelValue":n[0]||=e=>B.value=e,type:`search`,class:`admin-select__search-input`,placeholder:p.searchPlaceholder,onClick:n[1]||=S(()=>{},[`stop`]),onKeydown:n[2]||=C(S(e=>z.value=!1,[`stop`]),[`esc`])},null,40,N),[[x,B.value]])])):b(``,!0),q.value.length?b(``,!0):(i(),f(`li`,P,` موردی یافت نشد `)),(i(!0),f(_,null,h(q.value,t=>(i(),f(`li`,{key:t.value,role:`presentation`},[d(`button`,{type:`button`,class:s([`admin-select__option`,{"admin-select__option--active":t.value===p.modelValue}]),role:`option`,"aria-selected":t.value===p.modelValue,onClick:e=>Z(t.value)},[d(`span`,I,[r(e.$slots,`option-leading`,{option:t},void 0,!0),d(`span`,null,a(t.label),1)]),t.value===p.modelValue?(i(),g(w,{key:0,name:`check`,size:16,class:`admin-select__check`})):b(``,!0)],10,F)]))),128))],12,j)):b(``,!0)]))],10,E))}}),[[`__scopeId`,`data-v-4623e322`]]);export{L as t}; \ No newline at end of file diff --git a/dist/assets/BankAccountsView-CARvNvzB.js b/dist/assets/BankAccountsView-CARvNvzB.js new file mode 100644 index 0000000..99b9c1c --- /dev/null +++ b/dist/assets/BankAccountsView-CARvNvzB.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as ee,V as r,Y as i,Z as a,c as o,d as s,g as te,h as c,j as l,l as u,m as d,r as f,s as p,t as m,u as h}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as g,f as _,m as ne,t as v}from"./http-Djf2pGxE.js";import{R as y,V as re,d as b,v as ie,z as ae}from"./index-CznUUXv3.js";import{t as oe}from"./BaseSwitch-TV5Yvtf7.js";import{t as se}from"./BaseEmptyState-D6sk-aI_.js";import{t as x}from"./ActiveSwitchCell-CLCpM6ho.js";var ce={class:`accounts-page`},le={class:`admin-page-header`},ue={class:`admin-page-header__title`},de={key:1,class:`accounts-page__table admin-card desktop-only`},fe={class:`admin-table-wrap`},pe={class:`admin-table`},S={class:`status`},C={key:2,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={key:0},O={key:1,dir:`ltr`},k={key:0,class:`admin-form__error`,role:`alert`},A={class:`admin-form__row`},j={class:`admin-form__field`},M={class:`admin-form__field`},N={class:`admin-form__field`},P={class:`admin-form__row`},F={class:`admin-form__field`},I={class:`admin-form__field`},L={class:`admin-form__field`},me=[`disabled`],R=m(te({__name:`BankAccountsView`,setup(te){let m=y(),R=ae(),z=g(),B=a(null),V=a([]),H=a(!1),U=a(``),W=a(!1),G=p(()=>String(m.params.companyId)),K=p(()=>V.value),q=()=>({bankName:``,accountNumber:``,accountHolder:B.value?.name??``,cardNumber:``,iban:``,isActive:!0}),J=i(q()),Y=p(()=>J.bankName.trim().length>0&&J.accountNumber.trim().length>0&&J.accountHolder.trim().length>0);async function he(){try{let[e,t]=await Promise.all([ie.get(G.value),b.listByCompany(G.value)]);B.value=e,V.value=t}catch(e){z.error(e instanceof v?e.message:`بارگذاری حساب‌ها انجام نشد.`)}}ee(()=>{he()});function X(){Object.assign(J,q()),U.value=``,H.value=!0}function Z(){H.value=!1,U.value=``}async function Q(){if(!Y.value){U.value=`فیلدهای ستاره‌دار الزامی هستند.`;return}W.value=!0;try{let e=await b.create(G.value,{bankName:J.bankName.trim(),accountNumber:J.accountNumber.trim(),accountHolder:J.accountHolder.trim(),cardNumber:J.cardNumber.trim()||`-`,iban:J.iban.trim()||`-`,isActive:J.isActive,displayOrder:V.value.length+1});V.value.push(e),z.success(`حساب بانکی جدید ثبت شد.`),Z()}catch(e){z.error(e instanceof v?e.message:`ثبت حساب انجام نشد.`)}finally{W.value=!1}}async function $(e,t){await b.setActive(e,t)}function ge(){R.push(`/companies`)}return(ee,i)=>(t(),s(`div`,ce,[o(`div`,le,[o(`div`,null,[o(`h1`,ue,` مدیریت حساب‌های بانکی — `+n(B.value?.name??`…`),1)]),o(`div`,{class:`admin-action-group`},[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:X},` افزودن حساب `),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ge},` بازگشت `)])]),K.value.length?(t(),s(`div`,de,[o(`div`,fe,[o(`table`,pe,[i[6]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`بانک`),o(`th`,null,`حساب بانکی`),o(`th`,null,`نام صاحب`),o(`th`,null,`شماره کارت`),o(`th`,null,`شماره شبا`),o(`th`,{class:`status`},`وضعیت`)])],-1),o(`tbody`,null,[(t(!0),s(f,null,l(K.value,e=>(t(),s(`tr`,{key:e.id},[o(`td`,null,n(e.bankName),1),o(`td`,null,n(e.accountNumber),1),o(`td`,null,n(e.accountHolder),1),o(`td`,null,n(e.cardNumber||`—`),1),o(`td`,null,n(e.iban||`—`),1),o(`td`,S,[c(x,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.bankName,"entity-type":`حساب بانکی`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])])]))),128))])])])])):(t(),u(se,{key:0,class:`admin-card`,icon:`wallet`,title:`حساب بانکی ثبت نشده`,description:`برای این شرکت هنوز حساب بانکی ثبت نشده است.`},{default:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:X},` افزودن حساب `)]),_:1})),K.value.length?(t(),s(`div`,C,[(t(!0),s(f,null,l(K.value,e=>(t(),s(`article`,{key:e.id,class:`admin-card-item`},[o(`div`,w,[o(`p`,T,`بانک `+n(e.bankName),1),c(x,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.bankName,"entity-type":`حساب بانکی`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),o(`div`,E,[o(`span`,null,n(e.accountHolder),1),o(`span`,null,`حساب: `+n(e.accountNumber),1),e.cardNumber?(t(),s(`span`,D,`کارت: `+n(e.cardNumber),1)):h(``,!0),e.iban?(t(),s(`span`,O,n(e.iban),1)):h(``,!0)])]))),128))])):h(``,!0),c(re,{open:H.value,title:`افزودن حساب بانکی`,size:`lg`,onClose:Z},{footer:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},` انصراف `),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Y.value||W.value,onClick:Q},` ثبت حساب `,8,me)]),default:e(()=>[o(`form`,{class:`admin-form`,onSubmit:ne(Q,[`prevent`])},[U.value?(t(),s(`p`,k,n(U.value),1)):h(``,!0),o(`div`,A,[o(`div`,j,[i[7]||=o(`label`,{for:`bank-name`},[d(`نام بانک `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`bank-name`,"onUpdate:modelValue":i[0]||=e=>J.bankName=e,type:`text`,class:`admin-input`,placeholder:`مثال: ملت`},null,512),[[_,J.bankName]])]),o(`div`,M,[i[8]||=o(`label`,{for:`account-number`},[d(` شماره حساب `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`account-number`,"onUpdate:modelValue":i[1]||=e=>J.accountNumber=e,type:`text`,class:`admin-input`,placeholder:`1234567890`,inputmode:`numeric`,dir:`ltr`},null,512),[[_,J.accountNumber]])])]),o(`div`,N,[i[9]||=o(`label`,{for:`account-holder`},[d(` نام صاحب حساب `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`account-holder`,"onUpdate:modelValue":i[2]||=e=>J.accountHolder=e,type:`text`,class:`admin-input`},null,512),[[_,J.accountHolder]])]),o(`div`,P,[o(`div`,F,[i[10]||=o(`label`,{for:`card-number`},`شماره کارت`,-1),r(o(`input`,{id:`card-number`,"onUpdate:modelValue":i[3]||=e=>J.cardNumber=e,type:`text`,class:`admin-input`,placeholder:`6104 3378 0077 1234`,inputmode:`numeric`,dir:`ltr`},null,512),[[_,J.cardNumber]])]),o(`div`,I,[i[11]||=o(`label`,{for:`iban`},`شماره شبا`,-1),r(o(`input`,{id:`iban`,"onUpdate:modelValue":i[4]||=e=>J.iban=e,type:`text`,class:`admin-input`,placeholder:`IR...`,dir:`ltr`},null,512),[[_,J.iban]])])]),o(`div`,L,[c(oe,{modelValue:J.isActive,"onUpdate:modelValue":i[5]||=e=>J.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-0011826b`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/BankAccountsView-CjjgU3ea.js b/dist/assets/BankAccountsView-CjjgU3ea.js deleted file mode 100644 index e8eb6fe..0000000 --- a/dist/assets/BankAccountsView-CjjgU3ea.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,O as t,Ot as n,T as ee,V as r,Y as i,Z as a,c as o,d as s,g as te,h as c,j as l,l as u,m as d,r as f,s as p,t as m,u as h}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as g,I as ne,K as re,N as _,R as v,W as y,c as b,h as ie,z as ae}from"./index-CXa4EMLW.js";import{t as oe}from"./BaseSwitch-TV5Yvtf7.js";import{t as se}from"./BaseEmptyState-BmO9aDcK.js";import{t as x}from"./ActiveSwitchCell-DJZQHZ-8.js";var ce={class:`accounts-page`},le={class:`admin-page-header`},ue={class:`admin-page-header__title`},de={key:1,class:`accounts-page__table admin-card desktop-only`},fe={class:`admin-table-wrap`},pe={class:`admin-table`},S={class:`status`},C={key:2,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={key:0},O={key:1,dir:`ltr`},k={key:0,class:`admin-form__error`,role:`alert`},A={class:`admin-form__row`},j={class:`admin-form__field`},M={class:`admin-form__field`},N={class:`admin-form__field`},P={class:`admin-form__row`},F={class:`admin-form__field`},I={class:`admin-form__field`},L={class:`admin-form__field`},me=[`disabled`],R=m(te({__name:`BankAccountsView`,setup(te){let m=g(),R=ne(),z=ae(),B=a(null),V=a([]),H=a(!1),U=a(``),W=a(!1),G=p(()=>String(m.params.companyId)),K=p(()=>V.value),q=()=>({bankName:``,accountNumber:``,accountHolder:B.value?.name??``,cardNumber:``,iban:``,isActive:!0}),J=i(q()),Y=p(()=>J.bankName.trim().length>0&&J.accountNumber.trim().length>0&&J.accountHolder.trim().length>0);async function he(){try{let[e,t]=await Promise.all([ie.get(G.value),b.listByCompany(G.value)]);B.value=e,V.value=t}catch(e){z.error(e instanceof _?e.message:`بارگذاری حساب‌ها انجام نشد.`)}}ee(()=>{he()});function X(){Object.assign(J,q()),U.value=``,H.value=!0}function Z(){H.value=!1,U.value=``}async function Q(){if(!Y.value){U.value=`فیلدهای ستاره‌دار الزامی هستند.`;return}W.value=!0;try{let e=await b.create(G.value,{bankName:J.bankName.trim(),accountNumber:J.accountNumber.trim(),accountHolder:J.accountHolder.trim(),cardNumber:J.cardNumber.trim()||`-`,iban:J.iban.trim()||`-`,isActive:J.isActive,displayOrder:V.value.length+1});V.value.push(e),z.success(`حساب بانکی جدید ثبت شد.`),Z()}catch(e){z.error(e instanceof _?e.message:`ثبت حساب انجام نشد.`)}finally{W.value=!1}}async function $(e,t){await b.setActive(e,t)}function ge(){R.push(`/companies`)}return(ee,i)=>(t(),s(`div`,ce,[o(`div`,le,[o(`div`,null,[o(`h1`,ue,` مدیریت حساب‌های بانکی — `+n(B.value?.name??`…`),1)]),o(`div`,{class:`admin-action-group`},[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:X},` افزودن حساب `),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ge},` بازگشت `)])]),K.value.length?(t(),s(`div`,de,[o(`div`,fe,[o(`table`,pe,[i[6]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`بانک`),o(`th`,null,`حساب بانکی`),o(`th`,null,`نام صاحب`),o(`th`,null,`شماره کارت`),o(`th`,null,`شماره شبا`),o(`th`,{class:`status`},`وضعیت`)])],-1),o(`tbody`,null,[(t(!0),s(f,null,l(K.value,e=>(t(),s(`tr`,{key:e.id},[o(`td`,null,n(e.bankName),1),o(`td`,null,n(e.accountNumber),1),o(`td`,null,n(e.accountHolder),1),o(`td`,null,n(e.cardNumber||`—`),1),o(`td`,null,n(e.iban||`—`),1),o(`td`,S,[c(x,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.bankName,"entity-type":`حساب بانکی`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])])]))),128))])])])])):(t(),u(se,{key:0,class:`admin-card`,icon:`wallet`,title:`حساب بانکی ثبت نشده`,description:`برای این شرکت هنوز حساب بانکی ثبت نشده است.`},{default:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:X},` افزودن حساب `)]),_:1})),K.value.length?(t(),s(`div`,C,[(t(!0),s(f,null,l(K.value,e=>(t(),s(`article`,{key:e.id,class:`admin-card-item`},[o(`div`,w,[o(`p`,T,`بانک `+n(e.bankName),1),c(x,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.bankName,"entity-type":`حساب بانکی`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),o(`div`,E,[o(`span`,null,n(e.accountHolder),1),o(`span`,null,`حساب: `+n(e.accountNumber),1),e.cardNumber?(t(),s(`span`,D,`کارت: `+n(e.cardNumber),1)):h(``,!0),e.iban?(t(),s(`span`,O,n(e.iban),1)):h(``,!0)])]))),128))])):h(``,!0),c(v,{open:H.value,title:`افزودن حساب بانکی`,size:`lg`,onClose:Z},{footer:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},` انصراف `),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Y.value||W.value,onClick:Q},` ثبت حساب `,8,me)]),default:e(()=>[o(`form`,{class:`admin-form`,onSubmit:re(Q,[`prevent`])},[U.value?(t(),s(`p`,k,n(U.value),1)):h(``,!0),o(`div`,A,[o(`div`,j,[i[7]||=o(`label`,{for:`bank-name`},[d(`نام بانک `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`bank-name`,"onUpdate:modelValue":i[0]||=e=>J.bankName=e,type:`text`,class:`admin-input`,placeholder:`مثال: ملت`},null,512),[[y,J.bankName]])]),o(`div`,M,[i[8]||=o(`label`,{for:`account-number`},[d(` شماره حساب `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`account-number`,"onUpdate:modelValue":i[1]||=e=>J.accountNumber=e,type:`text`,class:`admin-input`,placeholder:`1234567890`,inputmode:`numeric`,dir:`ltr`},null,512),[[y,J.accountNumber]])])]),o(`div`,N,[i[9]||=o(`label`,{for:`account-holder`},[d(` نام صاحب حساب `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`account-holder`,"onUpdate:modelValue":i[2]||=e=>J.accountHolder=e,type:`text`,class:`admin-input`},null,512),[[y,J.accountHolder]])]),o(`div`,P,[o(`div`,F,[i[10]||=o(`label`,{for:`card-number`},`شماره کارت`,-1),r(o(`input`,{id:`card-number`,"onUpdate:modelValue":i[3]||=e=>J.cardNumber=e,type:`text`,class:`admin-input`,placeholder:`6104 3378 0077 1234`,inputmode:`numeric`,dir:`ltr`},null,512),[[y,J.cardNumber]])]),o(`div`,I,[i[11]||=o(`label`,{for:`iban`},`شماره شبا`,-1),r(o(`input`,{id:`iban`,"onUpdate:modelValue":i[4]||=e=>J.iban=e,type:`text`,class:`admin-input`,placeholder:`IR...`,dir:`ltr`},null,512),[[y,J.iban]])])]),o(`div`,L,[c(oe,{modelValue:J.isActive,"onUpdate:modelValue":i[5]||=e=>J.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-0011826b`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/BannersView-KHMLub3-.js b/dist/assets/BannersView-KHMLub3-.js deleted file mode 100644 index c6519d2..0000000 --- a/dist/assets/BannersView-KHMLub3-.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,Dt as t,O as n,Ot as r,T as i,Tt as a,V as o,Y as s,Z as c,c as l,d as u,g as d,h as f,j as p,l as m,m as h,r as g,s as _,t as v,u as y}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{N as b,R as ee,W as x,l as S,z as C}from"./index-CXa4EMLW.js";import{t as te}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as w}from"./BaseSwitch-TV5Yvtf7.js";import{t as T}from"./BaseEmptyState-BmO9aDcK.js";import{t as E}from"./AdminImagePicker-C4toq7MG.js";import{t as D}from"./AdminSelect-9UfEJQzN.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`},B={class:`field`},ne={class:`field__head`},V={class:`field`},H={class:`field`},U=[`disabled`],W=v(d({__name:`BannersView`,setup(d){let v=[{value:`home_hero`,label:`خانه — بنر اصلی`},{value:`products_hero`,label:`لیست محصولات`},{value:`categories_hero`,label:`دسته‌بندی‌ها`}],W=c([]),G=c(!0),K=c(!1),q=c(!1),J=c(null),Y=C(),X=s({slot:`home_hero`,title:``,subtitle:``,ctaLabel:``,ctaLink:`/categories`,imageUrl:null,displayOrder:0,isActive:!0,showTitle:!0,showSubtitle:!0,showCta:!0}),Z=_(()=>J.value?`ویرایش بنر`:`افزودن بنر`);function re(e){return v.find(t=>t.value===e)?.label??e}async function Q(){G.value=!0;try{W.value=await S.list()}catch(e){Y.error(e instanceof b?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 S.update(J.value,e):await S.create(e),q.value=!1,Y.success(`بنر ذخیره شد.`),await Q()}catch(e){Y.error(e instanceof b?e.message:`ذخیره بنر ناموفق بود.`)}finally{K.value=!1}}}async function oe(e){if(window.confirm(`بنر «${e.title}» حذف شود؟`))try{await S.remove(e.id),Y.success(`بنر حذف شد.`),await Q()}catch(e){Y.error(e instanceof b?e.message:`حذف بنر ناموفق بود.`)}}return i(()=>{Q()}),(i,s)=>(n(),u(`div`,O,[l(`div`,{class:`admin-page-header`},[s[13]||=l(`div`,null,[l(`h1`,{class:`admin-page-header__title`},`بنرها`),l(`p`,{class:`admin-page-header__sub`},`بنر بخش‌های مختلف اپ کاربر را از اینجا مدیریت کنید.`)],-1),l(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:$},`افزودن بنر`)]),G.value?(n(),m(te,{key:0,variant:`table`})):W.value.length?(n(),u(`div`,k,[l(`table`,A,[s[14]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`تصویر`),l(`th`,null,`عنوان`),l(`th`,null,`بخش`),l(`th`,null,`دکمه`),l(`th`,null,`فعال`),l(`th`,{class:`actions`},`عملیات`)])],-1),l(`tbody`,null,[(n(!0),u(g,null,p(W.value,e=>(n(),u(`tr`,{key:e.id},[l(`td`,null,[l(`span`,{class:a([`banner-thumb`,{"banner-thumb--empty":!e.imageUrl}]),style:t(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6)]),l(`td`,null,[l(`strong`,null,r(e.title),1),e.subtitle?(n(),u(`p`,j,r(e.subtitle),1)):y(``,!0)]),l(`td`,null,r(re(e.slot)),1),l(`td`,null,r(e.ctaLabel||`—`),1),l(`td`,null,r(e.isActive?`بله`:`خیر`),1),l(`td`,M,[l(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>ie(e)},` ویرایش `,8,N),l(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>oe(e)},` حذف `,8,P)])]))),128))])])])):(n(),m(T,{key:1,title:`بنری ثبت نشده`,description:`اولین بنر خانه را اضافه کنید.`},{default:e(()=>[l(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:$},` افزودن بنر `)]),_:1})),f(ee,{open:q.value,title:Z.value,onClose:s[12]||=e=>q.value=!1},{footer:e(()=>[l(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:s[11]||=e=>q.value=!1},`انصراف`),l(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.title.trim()||K.value,onClick:ae},r(K.value?`در حال ذخیره...`:`ذخیره`),9,U)]),default:e(()=>[l(`label`,F,[s[15]||=h(` بخش نمایش `,-1),f(D,{modelValue:X.slot,"onUpdate:modelValue":s[0]||=e=>X.slot=e,options:v},null,8,[`modelValue`])]),l(`div`,I,[l(`span`,L,[s[16]||=h(` عنوان `,-1),f(w,{modelValue:X.showTitle,"onUpdate:modelValue":s[1]||=e=>X.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),o(l(`input`,{"onUpdate:modelValue":s[2]||=e=>X.title=e,class:`admin-input`},null,512),[[x,X.title]])]),l(`div`,R,[l(`span`,z,[s[17]||=h(` زیرعنوان `,-1),f(w,{modelValue:X.showSubtitle,"onUpdate:modelValue":s[3]||=e=>X.showSubtitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),o(l(`input`,{"onUpdate:modelValue":s[4]||=e=>X.subtitle=e,class:`admin-input`},null,512),[[x,X.subtitle]])]),l(`div`,B,[l(`span`,ne,[s[18]||=h(` متن دکمه `,-1),f(w,{modelValue:X.showCta,"onUpdate:modelValue":s[5]||=e=>X.showCta=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),o(l(`input`,{"onUpdate:modelValue":s[6]||=e=>X.ctaLabel=e,class:`admin-input`},null,512),[[x,X.ctaLabel]])]),l(`label`,V,[s[19]||=h(` لینک دکمه `,-1),o(l(`input`,{"onUpdate:modelValue":s[7]||=e=>X.ctaLink=e,class:`admin-input`,dir:`ltr`,placeholder:`/categories`},null,512),[[x,X.ctaLink]])]),l(`label`,H,[s[20]||=h(`ترتیب نمایش`,-1),o(l(`input`,{"onUpdate:modelValue":s[8]||=e=>X.displayOrder=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[x,X.displayOrder,void 0,{number:!0}]])]),f(E,{modelValue:X.imageUrl,"onUpdate:modelValue":s[9]||=e=>X.imageUrl=e,label:`تصویر بنر`},null,8,[`modelValue`]),f(w,{modelValue:X.isActive,"onUpdate:modelValue":s[10]||=e=>X.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-1ca3d686`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/BannersView-bUbLqnD2.js b/dist/assets/BannersView-bUbLqnD2.js new file mode 100644 index 0000000..ccd913c --- /dev/null +++ b/dist/assets/BannersView-bUbLqnD2.js @@ -0,0 +1 @@ +import{B as e,Dt as t,O as n,Ot as r,T as i,Tt as a,V as o,Y as s,Z as c,c as l,d as u,g as ee,h as d,j as f,l as p,m,r as h,s as g,t as _,u as v}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as y,f as b,t as x}from"./http-Djf2pGxE.js";import{V as S,f as C}from"./index-CznUUXv3.js";import{t as te}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as w}from"./BaseSwitch-TV5Yvtf7.js";import{t as T}from"./BaseEmptyState-D6sk-aI_.js";import{t as E}from"./AdminImagePicker-C4toq7MG.js";import{t as D}from"./AdminSelect-DK-_otkw.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`},B={class:`field`},ne={class:`field__head`},V={class:`field`},H={class:`field`},U=[`disabled`],W=_(ee({__name:`BannersView`,setup(ee){let _=[{value:`home_hero`,label:`خانه — بنر اصلی`},{value:`products_hero`,label:`لیست محصولات`},{value:`categories_hero`,label:`دسته‌بندی‌ها`}],W=c([]),G=c(!0),K=c(!1),q=c(!1),J=c(null),Y=y(),X=s({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 i(()=>{Q()}),(i,s)=>(n(),u(`div`,O,[l(`div`,{class:`admin-page-header`},[s[13]||=l(`div`,null,[l(`h1`,{class:`admin-page-header__title`},`بنرها`),l(`p`,{class:`admin-page-header__sub`},`بنر بخش‌های مختلف اپ کاربر را از اینجا مدیریت کنید.`)],-1),l(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:$},`افزودن بنر`)]),G.value?(n(),p(te,{key:0,variant:`table`})):W.value.length?(n(),u(`div`,k,[l(`table`,A,[s[14]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`تصویر`),l(`th`,null,`عنوان`),l(`th`,null,`بخش`),l(`th`,null,`دکمه`),l(`th`,null,`فعال`),l(`th`,{class:`actions`},`عملیات`)])],-1),l(`tbody`,null,[(n(!0),u(h,null,f(W.value,e=>(n(),u(`tr`,{key:e.id},[l(`td`,null,[l(`span`,{class:a([`banner-thumb`,{"banner-thumb--empty":!e.imageUrl}]),style:t(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6)]),l(`td`,null,[l(`strong`,null,r(e.title),1),e.subtitle?(n(),u(`p`,j,r(e.subtitle),1)):v(``,!0)]),l(`td`,null,r(re(e.slot)),1),l(`td`,null,r(e.ctaLabel||`—`),1),l(`td`,null,r(e.isActive?`بله`:`خیر`),1),l(`td`,M,[l(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>ie(e)},` ویرایش `,8,N),l(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>oe(e)},` حذف `,8,P)])]))),128))])])])):(n(),p(T,{key:1,title:`بنری ثبت نشده`,description:`اولین بنر خانه را اضافه کنید.`},{default:e(()=>[l(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:$},` افزودن بنر `)]),_:1})),d(S,{open:q.value,title:Z.value,onClose:s[12]||=e=>q.value=!1},{footer:e(()=>[l(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:s[11]||=e=>q.value=!1},`انصراف`),l(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.title.trim()||K.value,onClick:ae},r(K.value?`در حال ذخیره...`:`ذخیره`),9,U)]),default:e(()=>[l(`label`,F,[s[15]||=m(` بخش نمایش `,-1),d(D,{modelValue:X.slot,"onUpdate:modelValue":s[0]||=e=>X.slot=e,options:_},null,8,[`modelValue`])]),l(`div`,I,[l(`span`,L,[s[16]||=m(` عنوان `,-1),d(w,{modelValue:X.showTitle,"onUpdate:modelValue":s[1]||=e=>X.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),o(l(`input`,{"onUpdate:modelValue":s[2]||=e=>X.title=e,class:`admin-input`},null,512),[[b,X.title]])]),l(`div`,R,[l(`span`,z,[s[17]||=m(` زیرعنوان `,-1),d(w,{modelValue:X.showSubtitle,"onUpdate:modelValue":s[3]||=e=>X.showSubtitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),o(l(`input`,{"onUpdate:modelValue":s[4]||=e=>X.subtitle=e,class:`admin-input`},null,512),[[b,X.subtitle]])]),l(`div`,B,[l(`span`,ne,[s[18]||=m(` متن دکمه `,-1),d(w,{modelValue:X.showCta,"onUpdate:modelValue":s[5]||=e=>X.showCta=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),o(l(`input`,{"onUpdate:modelValue":s[6]||=e=>X.ctaLabel=e,class:`admin-input`},null,512),[[b,X.ctaLabel]])]),l(`label`,V,[s[19]||=m(` لینک دکمه `,-1),o(l(`input`,{"onUpdate:modelValue":s[7]||=e=>X.ctaLink=e,class:`admin-input`,dir:`ltr`,placeholder:`/categories`},null,512),[[b,X.ctaLink]])]),l(`label`,H,[s[20]||=m(`ترتیب نمایش`,-1),o(l(`input`,{"onUpdate:modelValue":s[8]||=e=>X.displayOrder=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[b,X.displayOrder,void 0,{number:!0}]])]),d(E,{modelValue:X.imageUrl,"onUpdate:modelValue":s[9]||=e=>X.imageUrl=e,label:`تصویر بنر`},null,8,[`modelValue`]),d(w,{modelValue:X.isActive,"onUpdate:modelValue":s[10]||=e=>X.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-1ca3d686`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/BaseEmptyState-BmO9aDcK.js b/dist/assets/BaseEmptyState-D6sk-aI_.js similarity index 92% rename from dist/assets/BaseEmptyState-BmO9aDcK.js rename to dist/assets/BaseEmptyState-D6sk-aI_.js index a9c7d65..3d84699 100644 --- a/dist/assets/BaseEmptyState-BmO9aDcK.js +++ b/dist/assets/BaseEmptyState-D6sk-aI_.js @@ -1 +1 @@ -import{M as e,O as t,Ot as n,Tt as r,c as i,d as a,g as o,h as s,t as c,u as l}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{P as u}from"./index-CXa4EMLW.js";var d={class:`base-empty__icon`,"aria-hidden":`true`},f={class:`base-empty__title`},p={key:0,class:`base-empty__description`},m={key:1,class:`base-empty__actions`},h=c(o({__name:`BaseEmptyState`,props:{icon:{default:`file`},title:{},description:{},compact:{type:Boolean}},emits:[`action`,`secondary`],setup(o){return(c,h)=>(t(),a(`div`,{class:r([`base-empty`,{"base-empty--compact":o.compact}])},[i(`div`,d,[s(u,{name:o.icon,size:o.compact?28:36},null,8,[`name`,`size`])]),i(`h3`,f,n(o.title),1),o.description?(t(),a(`p`,p,n(o.description),1)):l(``,!0),c.$slots.default||c.$slots.secondary?(t(),a(`div`,m,[e(c.$slots,`default`,{},void 0,!0),e(c.$slots,`secondary`,{},void 0,!0)])):l(``,!0)],2))}}),[[`__scopeId`,`data-v-47ea81e4`]]);export{h as t}; \ No newline at end of file +import{M as e,O as t,Ot as n,Tt as r,c as i,d as a,g as o,h as s,t as c,u as l}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{L as u}from"./index-CznUUXv3.js";var d={class:`base-empty__icon`,"aria-hidden":`true`},f={class:`base-empty__title`},p={key:0,class:`base-empty__description`},m={key:1,class:`base-empty__actions`},h=c(o({__name:`BaseEmptyState`,props:{icon:{default:`file`},title:{},description:{},compact:{type:Boolean}},emits:[`action`,`secondary`],setup(o){return(c,h)=>(t(),a(`div`,{class:r([`base-empty`,{"base-empty--compact":o.compact}])},[i(`div`,d,[s(u,{name:o.icon,size:o.compact?28:36},null,8,[`name`,`size`])]),i(`h3`,f,n(o.title),1),o.description?(t(),a(`p`,p,n(o.description),1)):l(``,!0),c.$slots.default||c.$slots.secondary?(t(),a(`div`,m,[e(c.$slots,`default`,{},void 0,!0),e(c.$slots,`secondary`,{},void 0,!0)])):l(``,!0)],2))}}),[[`__scopeId`,`data-v-47ea81e4`]]);export{h as t}; \ No newline at end of file diff --git a/dist/assets/BrandsView-BxPkwxAy.js b/dist/assets/BrandsView-BxPkwxAy.js new file mode 100644 index 0000000..42976f0 --- /dev/null +++ b/dist/assets/BrandsView-BxPkwxAy.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,m as p,r as m,s as h,t as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as _,f as v,t as y}from"./http-Djf2pGxE.js";import{V as b,p as x}from"./index-CznUUXv3.js";import{t as S}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as C}from"./BaseSwitch-TV5Yvtf7.js";import{t as w}from"./BaseEmptyState-D6sk-aI_.js";var T={class:`admin-page`},E={key:2,class:`admin-table`},D={dir:`ltr`},O=[`onClick`],k={class:`field`},A={class:`field`},j={class:`field`},M={class:`field`},N=[`disabled`],P=g(l({__name:`BrandsView`,setup(l){let g=o([]),P=o(!0),F=o(!1),I=o(null),L=_(),R=a({name:``,slug:``,description:``,displayOrder:0,isActive:!0}),z=h(()=>I.value?`ویرایش برند`:`افزودن برند`);async function B(){P.value=!0;try{g.value=await x.list()}catch(e){L.error(e instanceof y?e.message:`بارگذاری برندها ناموفق بود`)}finally{P.value=!1}}function V(){I.value=null,Object.assign(R,{name:``,slug:``,description:``,displayOrder:g.value.length+1,isActive:!0}),F.value=!0}function H(e){I.value=e.id,Object.assign(R,{name:e.name,slug:e.slug??``,description:e.description??``,displayOrder:e.displayOrder,isActive:e.isActive}),F.value=!0}async function U(){try{let e={name:R.name.trim(),slug:R.slug.trim()||void 0,description:R.description.trim()||void 0,displayOrder:R.displayOrder,isActive:R.isActive};I.value?await x.update(I.value,e):await x.create(e),F.value=!1,L.success(`ذخیره شد`),await B()}catch(e){L.error(e instanceof y?e.message:`ذخیره ناموفق بود`)}}return r(()=>{B()}),(r,a)=>(t(),c(`div`,T,[s(`header`,{class:`admin-page__head`},[a[6]||=s(`div`,null,[s(`h1`,null,`برندها`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`افزودن برند`)]),P.value?(t(),f(S,{key:0,variant:`table`})):g.value.length?(t(),c(`table`,E,[a[7]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`نام`),s(`th`,null,`شناسه لاتین`),s(`th`,null,`مشتریان`),s(`th`,null,`فعال`),s(`th`)])],-1),s(`tbody`,null,[(t(!0),c(m,null,d(g.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,null,n(e.name),1),s(`td`,D,n(e.slug||`—`),1),s(`td`,null,n(e.customersCount??0),1),s(`td`,null,n(e.isActive?`بله`:`خیر`),1),s(`td`,null,[s(`button`,{type:`button`,class:`link`,onClick:t=>H(e)},`ویرایش`,8,O)])]))),128))])])):(t(),f(w,{key:1,title:`برندی ثبت نشده`})),u(b,{open:F.value,title:z.value,onClose:a[5]||=e=>F.value=!1},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!R.name.trim(),onClick:U},`ذخیره`,8,N)]),default:e(()=>[s(`label`,k,[a[8]||=p(`نام`,-1),i(s(`input`,{"onUpdate:modelValue":a[0]||=e=>R.name=e,class:`admin-input`},null,512),[[v,R.name]])]),s(`label`,A,[a[9]||=p(`شناسه لاتین`,-1),i(s(`input`,{"onUpdate:modelValue":a[1]||=e=>R.slug=e,class:`admin-input`,dir:`ltr`,placeholder:`مثلاً nademi-silk`},null,512),[[v,R.slug]])]),s(`label`,j,[a[10]||=p(`توضیح`,-1),i(s(`textarea`,{"onUpdate:modelValue":a[2]||=e=>R.description=e,class:`admin-input`,rows:`3`},null,512),[[v,R.description]])]),s(`label`,M,[a[11]||=p(`ترتیب`,-1),i(s(`input`,{"onUpdate:modelValue":a[3]||=e=>R.displayOrder=e,type:`number`,class:`admin-input`},null,512),[[v,R.displayOrder,void 0,{number:!0}]])]),u(C,{modelValue:R.isActive,"onUpdate:modelValue":a[4]||=e=>R.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-88043806`]]);export{P as default}; \ No newline at end of file diff --git a/dist/assets/BrandsView-Il4Q4zqB.js b/dist/assets/BrandsView-Il4Q4zqB.js deleted file mode 100644 index 5e935b2..0000000 --- a/dist/assets/BrandsView-Il4Q4zqB.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,m as p,r as m,s as h,t as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{N as _,R as v,W as y,u as b,z as x}from"./index-CXa4EMLW.js";import{t as S}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as C}from"./BaseSwitch-TV5Yvtf7.js";import{t as w}from"./BaseEmptyState-BmO9aDcK.js";var T={class:`admin-page`},E={key:2,class:`admin-table`},D={dir:`ltr`},O=[`onClick`],k={class:`field`},A={class:`field`},j={class:`field`},M={class:`field`},N=[`disabled`],P=g(l({__name:`BrandsView`,setup(l){let g=o([]),P=o(!0),F=o(!1),I=o(null),L=x(),R=a({name:``,slug:``,description:``,displayOrder:0,isActive:!0}),z=h(()=>I.value?`ویرایش برند`:`افزودن برند`);async function B(){P.value=!0;try{g.value=await b.list()}catch(e){L.error(e instanceof _?e.message:`بارگذاری برندها ناموفق بود`)}finally{P.value=!1}}function V(){I.value=null,Object.assign(R,{name:``,slug:``,description:``,displayOrder:g.value.length+1,isActive:!0}),F.value=!0}function H(e){I.value=e.id,Object.assign(R,{name:e.name,slug:e.slug??``,description:e.description??``,displayOrder:e.displayOrder,isActive:e.isActive}),F.value=!0}async function U(){try{let e={name:R.name.trim(),slug:R.slug.trim()||void 0,description:R.description.trim()||void 0,displayOrder:R.displayOrder,isActive:R.isActive};I.value?await b.update(I.value,e):await b.create(e),F.value=!1,L.success(`ذخیره شد`),await B()}catch(e){L.error(e instanceof _?e.message:`ذخیره ناموفق بود`)}}return r(()=>{B()}),(r,a)=>(t(),c(`div`,T,[s(`header`,{class:`admin-page__head`},[a[6]||=s(`div`,null,[s(`h1`,null,`برندها`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`افزودن برند`)]),P.value?(t(),f(S,{key:0,variant:`table`})):g.value.length?(t(),c(`table`,E,[a[7]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`نام`),s(`th`,null,`شناسه لاتین`),s(`th`,null,`مشتریان`),s(`th`,null,`فعال`),s(`th`)])],-1),s(`tbody`,null,[(t(!0),c(m,null,d(g.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,null,n(e.name),1),s(`td`,D,n(e.slug||`—`),1),s(`td`,null,n(e.customersCount??0),1),s(`td`,null,n(e.isActive?`بله`:`خیر`),1),s(`td`,null,[s(`button`,{type:`button`,class:`link`,onClick:t=>H(e)},`ویرایش`,8,O)])]))),128))])])):(t(),f(w,{key:1,title:`برندی ثبت نشده`})),u(v,{open:F.value,title:z.value,onClose:a[5]||=e=>F.value=!1},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!R.name.trim(),onClick:U},`ذخیره`,8,N)]),default:e(()=>[s(`label`,k,[a[8]||=p(`نام`,-1),i(s(`input`,{"onUpdate:modelValue":a[0]||=e=>R.name=e,class:`admin-input`},null,512),[[y,R.name]])]),s(`label`,A,[a[9]||=p(`شناسه لاتین`,-1),i(s(`input`,{"onUpdate:modelValue":a[1]||=e=>R.slug=e,class:`admin-input`,dir:`ltr`,placeholder:`مثلاً nademi-silk`},null,512),[[y,R.slug]])]),s(`label`,j,[a[10]||=p(`توضیح`,-1),i(s(`textarea`,{"onUpdate:modelValue":a[2]||=e=>R.description=e,class:`admin-input`,rows:`3`},null,512),[[y,R.description]])]),s(`label`,M,[a[11]||=p(`ترتیب`,-1),i(s(`input`,{"onUpdate:modelValue":a[3]||=e=>R.displayOrder=e,type:`number`,class:`admin-input`},null,512),[[y,R.displayOrder,void 0,{number:!0}]])]),u(C,{modelValue:R.isActive,"onUpdate:modelValue":a[4]||=e=>R.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-88043806`]]);export{P as default}; \ No newline at end of file diff --git a/dist/assets/CashPaymentsView-BmPMXCl-.js b/dist/assets/CashPaymentsView-BmPMXCl-.js deleted file mode 100644 index 0e7d38a..0000000 --- a/dist/assets/CashPaymentsView-BmPMXCl-.js +++ /dev/null @@ -1 +0,0 @@ -import{O as e,Ot as t,T as n,Tt as r,V as ee,Z as i,at as a,c as o,d as s,g as te,h as c,j as l,l as u,r as d,s as ne,t as f,u as p}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as re,N as m,P as h,W as g,d as _,i as v,n as y,x as ie,z as ae}from"./index-CXa4EMLW.js";import{t as b}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as oe}from"./AdminSelect-9UfEJQzN.js";import{n as x,t as S}from"./adminLabels-Cz9ccm1Z.js";var se={class:`cash-payments-page`},C={class:`cash-payments-page__filters admin-card`},w={class:`cash-payments-page__search`},T={class:`cash-payments-page__table admin-card desktop-only`},E={class:`admin-table-wrap`},D={class:`admin-table`},O={dir:`ltr`},k={key:0,class:`admin-action-group`},A=[`disabled`,`onClick`],j=[`disabled`,`onClick`],M={key:1,class:`admin-action-group`},N=[`disabled`,`onClick`],P={key:2},F={class:`compact-only admin-card-list`},I={class:`admin-card-item__header`},L={class:`admin-card-item__title`},ce={class:`admin-card-item__meta`},R={key:0},z={dir:`ltr`},B={key:0,class:`admin-card-item__actions`},V=[`disabled`,`onClick`],H=[`disabled`,`onClick`],U=[`disabled`,`onClick`],W=f(te({__name:`CashPaymentsView`,setup(te){let f=re(),W=i([]),G=i(f.query.order??``),K=i(`all`),q=i(!0),J=ae(),Y=i(null),le=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار تأیید`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`},{value:`expired`,label:`منقضی‌شده`}],X=ne(()=>{let e=W.value;K.value!==`all`&&(e=e.filter(e=>e.status===K.value));let t=G.value.trim();return t&&(e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t)||e.trackingCode.includes(t))),e});async function ue(){q.value=!0;try{W.value=await _.list()}catch(e){J.error(e instanceof m?e.message:`بارگذاری پرداخت‌ها انجام نشد.`)}finally{q.value=!1}}n(()=>{ue()});async function Z(e){Y.value=e.id;try{let t=await _.updateStatus(e.id,{status:`approved`}),n=W.value.findIndex(t=>t.id===e.id);n!==-1&&(W.value[n]={...W.value[n],...t}),J.success(`پرداخت سفارش ${e.orderNumber} تأیید شد.`)}catch(e){J.error(e instanceof m?e.message:`تأیید پرداخت انجام نشد.`)}finally{Y.value=null}}async function Q(e){Y.value=e.id;try{await ie.updateStatus(e.orderId,{status:`final_approved`,note:`تأیید نهایی پس از تأیید رسید نقدی`}),J.success(`سفارش ${e.orderNumber} تأیید نهایی شد.`)}catch(e){J.error(e instanceof m?e.message:`تأیید نهایی انجام نشد.`)}finally{Y.value=null}}async function $(e){Y.value=e.id;try{let t=await _.updateStatus(e.id,{status:`rejected`}),n=W.value.findIndex(t=>t.id===e.id);n!==-1&&(W.value[n]={...W.value[n],...t}),J.warning(`پرداخت سفارش ${e.orderNumber} رد شد.`)}catch(e){J.error(e instanceof m?e.message:`رد پرداخت انجام نشد.`)}finally{Y.value=null}}return(n,i)=>(e(),s(`div`,se,[i[3]||=o(`div`,{class:`admin-page-header`},[o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`پرداخت‌های نقدی`)])],-1),o(`div`,C,[o(`div`,w,[c(h,{name:`search`,size:18}),ee(o(`input`,{"onUpdate:modelValue":i[0]||=e=>G.value=e,type:`search`,class:`cash-payments-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، پیگیری...`},null,512),[[g,G.value]])]),c(oe,{modelValue:K.value,"onUpdate:modelValue":i[1]||=e=>K.value=e,class:`cash-payments-page__status-select`,"aria-label":`فیلتر وضعیت پرداخت`,options:le},null,8,[`modelValue`])]),q.value?(e(),u(b,{key:0,variant:`table`})):(e(),s(d,{key:1},[o(`div`,T,[o(`div`,E,[o(`table`,D,[i[2]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`شماره سفارش`),o(`th`,null,`مشتری`),o(`th`,null,`مبلغ فاکتور`),o(`th`,null,`مبلغ واریزی`),o(`th`,null,`تاریخ واریز`),o(`th`,null,`شماره پیگیری`),o(`th`,null,`پایان اعتبار`),o(`th`,null,`وضعیت`),o(`th`,null,`عملیات`)])],-1),o(`tbody`,null,[(e(!0),s(d,null,l(X.value,n=>(e(),s(`tr`,{key:n.id},[o(`td`,null,t(n.orderNumber),1),o(`td`,null,t(n.customerName),1),o(`td`,null,t(a(y)(n.amount)),1),o(`td`,null,t(n.paidAmount?a(y)(n.paidAmount):`—`),1),o(`td`,null,t(n.transferDate?a(v)(n.transferDate):`—`),1),o(`td`,O,t(n.trackingCode),1),o(`td`,null,t(a(v)(n.expiresAt)),1),o(`td`,null,[o(`span`,{class:r([`admin-badge`,a(S)[n.status]])},t(a(x)[n.status]),3)]),o(`td`,null,[n.status===`pending_review`?(e(),s(`div`,k,[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Z(n)},` تأیید `,8,A),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>$(n)},` رد `,8,j)])):n.status===`approved`?(e(),s(`div`,M,[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Q(n)},` تأیید نهایی سفارش `,8,N)])):(e(),s(`span`,P,`—`))])]))),128))])])])]),o(`div`,F,[(e(!0),s(d,null,l(X.value,n=>(e(),s(`article`,{key:n.id,class:`admin-card-item`},[o(`div`,I,[o(`p`,L,t(n.orderNumber),1),o(`span`,{class:r([`admin-badge`,a(S)[n.status]])},t(a(x)[n.status]),3)]),o(`div`,ce,[o(`span`,null,t(n.customerName),1),o(`span`,null,t(a(y)(n.amount)),1),n.paidAmount==null?p(``,!0):(e(),s(`span`,R,`پرداختی: `+t(a(y)(n.paidAmount)),1)),o(`span`,z,t(n.trackingCode),1)]),n.status===`pending_review`||n.status===`approved`?(e(),s(`div`,B,[n.status===`pending_review`?(e(),s(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Z(n)},` تأیید `,8,V)):p(``,!0),n.status===`pending_review`?(e(),s(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>$(n)},` رد `,8,H)):p(``,!0),n.status===`approved`?(e(),s(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Q(n)},` تأیید نهایی سفارش `,8,U)):p(``,!0)])):p(``,!0)]))),128))])],64))]))}}),[[`__scopeId`,`data-v-9afb2a83`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/CashPaymentsView-CQhRcl_A.js b/dist/assets/CashPaymentsView-CQhRcl_A.js new file mode 100644 index 0000000..a7c0197 --- /dev/null +++ b/dist/assets/CashPaymentsView-CQhRcl_A.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,Tt as r,V as ee,Z as i,at as a,c as o,d as s,g as c,h as l,j as u,l as d,r as f,s as te,t as p,u as m}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as ne,f as re,t as h}from"./http-Djf2pGxE.js";import{L as g,R as ie,i as _,m as v,o as y,w as ae}from"./index-CznUUXv3.js";import{t as b}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as oe}from"./AdminSelect-DK-_otkw.js";import{n as x,t as S}from"./adminLabels-Cz9ccm1Z.js";var se={class:`cash-payments-page`},C={class:`cash-payments-page__filters admin-card`},w={class:`cash-payments-page__search`},T={class:`cash-payments-page__table admin-card desktop-only`},E={class:`admin-table-wrap`},D={class:`admin-table`},O={dir:`ltr`},k={key:0,class:`admin-action-group`},A=[`disabled`,`onClick`],j=[`disabled`,`onClick`],M={key:1,class:`admin-action-group`},N=[`disabled`,`onClick`],P={key:2},F={class:`compact-only admin-card-list`},I={class:`admin-card-item__header`},L={class:`admin-card-item__title`},ce={class:`admin-card-item__meta`},R={key:0},z={dir:`ltr`},B={key:0,class:`admin-card-item__actions`},V=[`disabled`,`onClick`],H=[`disabled`,`onClick`],U=[`disabled`,`onClick`],W=p(c({__name:`CashPaymentsView`,setup(c){let p=ie(),W=i([]),G=i(p.query.order??``),K=i(`all`),q=i(!0),J=ne(),Y=i(null),le=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار تأیید`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`},{value:`expired`,label:`منقضی‌شده`}],X=te(()=>{let e=W.value;K.value!==`all`&&(e=e.filter(e=>e.status===K.value));let t=G.value.trim();return t&&(e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t)||e.trackingCode.includes(t))),e});async function ue(){q.value=!0;try{W.value=await v.list()}catch(e){J.error(e instanceof h?e.message:`بارگذاری پرداخت‌ها انجام نشد.`)}finally{q.value=!1}}n(()=>{ue()});async function Z(e){Y.value=e.id;try{let t=await v.updateStatus(e.id,{status:`approved`}),n=W.value.findIndex(t=>t.id===e.id);n!==-1&&(W.value[n]={...W.value[n],...t}),J.success(`پرداخت سفارش ${e.orderNumber} تأیید شد.`)}catch(e){J.error(e instanceof h?e.message:`تأیید پرداخت انجام نشد.`)}finally{Y.value=null}}async function Q(e){Y.value=e.id;try{await ae.updateStatus(e.orderId,{status:`final_approved`,note:`تأیید نهایی پس از تأیید رسید نقدی`}),J.success(`سفارش ${e.orderNumber} تأیید نهایی شد.`)}catch(e){J.error(e instanceof h?e.message:`تأیید نهایی انجام نشد.`)}finally{Y.value=null}}async function $(e){Y.value=e.id;try{let t=await v.updateStatus(e.id,{status:`rejected`}),n=W.value.findIndex(t=>t.id===e.id);n!==-1&&(W.value[n]={...W.value[n],...t}),J.warning(`پرداخت سفارش ${e.orderNumber} رد شد.`)}catch(e){J.error(e instanceof h?e.message:`رد پرداخت انجام نشد.`)}finally{Y.value=null}}return(n,i)=>(e(),s(`div`,se,[i[3]||=o(`div`,{class:`admin-page-header`},[o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`پرداخت‌های نقدی`)])],-1),o(`div`,C,[o(`div`,w,[l(g,{name:`search`,size:18}),ee(o(`input`,{"onUpdate:modelValue":i[0]||=e=>G.value=e,type:`search`,class:`cash-payments-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، پیگیری...`},null,512),[[re,G.value]])]),l(oe,{modelValue:K.value,"onUpdate:modelValue":i[1]||=e=>K.value=e,class:`cash-payments-page__status-select`,"aria-label":`فیلتر وضعیت پرداخت`,options:le},null,8,[`modelValue`])]),q.value?(e(),d(b,{key:0,variant:`table`})):(e(),s(f,{key:1},[o(`div`,T,[o(`div`,E,[o(`table`,D,[i[2]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`شماره سفارش`),o(`th`,null,`مشتری`),o(`th`,null,`مبلغ فاکتور`),o(`th`,null,`مبلغ واریزی`),o(`th`,null,`تاریخ واریز`),o(`th`,null,`شماره پیگیری`),o(`th`,null,`پایان اعتبار`),o(`th`,null,`وضعیت`),o(`th`,null,`عملیات`)])],-1),o(`tbody`,null,[(e(!0),s(f,null,u(X.value,n=>(e(),s(`tr`,{key:n.id},[o(`td`,null,t(n.orderNumber),1),o(`td`,null,t(n.customerName),1),o(`td`,null,t(a(_)(n.amount)),1),o(`td`,null,t(n.paidAmount?a(_)(n.paidAmount):`—`),1),o(`td`,null,t(n.transferDate?a(y)(n.transferDate):`—`),1),o(`td`,O,t(n.trackingCode),1),o(`td`,null,t(a(y)(n.expiresAt)),1),o(`td`,null,[o(`span`,{class:r([`admin-badge`,a(S)[n.status]])},t(a(x)[n.status]),3)]),o(`td`,null,[n.status===`pending_review`?(e(),s(`div`,k,[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Z(n)},` تأیید `,8,A),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>$(n)},` رد `,8,j)])):n.status===`approved`?(e(),s(`div`,M,[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Q(n)},` تأیید نهایی سفارش `,8,N)])):(e(),s(`span`,P,`—`))])]))),128))])])])]),o(`div`,F,[(e(!0),s(f,null,u(X.value,n=>(e(),s(`article`,{key:n.id,class:`admin-card-item`},[o(`div`,I,[o(`p`,L,t(n.orderNumber),1),o(`span`,{class:r([`admin-badge`,a(S)[n.status]])},t(a(x)[n.status]),3)]),o(`div`,ce,[o(`span`,null,t(n.customerName),1),o(`span`,null,t(a(_)(n.amount)),1),n.paidAmount==null?m(``,!0):(e(),s(`span`,R,`پرداختی: `+t(a(_)(n.paidAmount)),1)),o(`span`,z,t(n.trackingCode),1)]),n.status===`pending_review`||n.status===`approved`?(e(),s(`div`,B,[n.status===`pending_review`?(e(),s(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Z(n)},` تأیید `,8,V)):m(``,!0),n.status===`pending_review`?(e(),s(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>$(n)},` رد `,8,H)):m(``,!0),n.status===`approved`?(e(),s(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Q(n)},` تأیید نهایی سفارش `,8,U)):m(``,!0)])):m(``,!0)]))),128))])],64))]))}}),[[`__scopeId`,`data-v-9afb2a83`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/CatalogRequestsView-C4CHdApz.js b/dist/assets/CatalogRequestsView-C4CHdApz.js new file mode 100644 index 0000000..6adacf9 --- /dev/null +++ b/dist/assets/CatalogRequestsView-C4CHdApz.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,Z as r,at as i,c as a,d as o,g as s,h as c,j as l,l as u,m as d,r as f,t as p,u as m}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as h,t as g}from"./http-Djf2pGxE.js";import{h as _,o as v}from"./index-CznUUXv3.js";import{t as y}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as b}from"./BaseEmptyState-D6sk-aI_.js";import{t as x}from"./AdminSelect-DK-_otkw.js";var S={class:`admin-page`},C={class:`admin-page__head`},w={class:`request-card__top`},T={class:`muted`,dir:`ltr`},E={class:`badge`},D={key:0,class:`muted`},O={class:`admin-table`},k={dir:`ltr`},A={key:0,class:`movements`},j={class:`muted`},M=p(s({__name:`CatalogRequestsView`,setup(s){let p=[{value:``,label:`همه وضعیت‌ها`},{value:`new`,label:`درخواست جدید`},{value:`approved`,label:`تأیید شده`},{value:`ready_to_ship`,label:`آماده ارسال`},{value:`delivered`,label:`تحویل به مشتری`},{value:`returned`,label:`بازگردانده شده`},{value:`cancelled`,label:`لغو شده`}],M=[{value:`warehouse`,label:`انبار`},{value:`customer`,label:`مشتری`},{value:`agent`,label:`واسطه`}],N=Object.fromEntries(p.filter(e=>e.value).map(e=>[e.value,e.label])),P=Object.fromEntries(M.map(e=>[e.value,e.label])),F=r([]),I=r(``),L=r(!0),R=r(null),z=h();async function B(){L.value=!0;try{F.value=await _.list(I.value||void 0)}catch(e){z.error(e instanceof g?e.message:`بارگذاری انجام نشد`)}finally{L.value=!1}}async function V(e,t){try{await _.updateStatus(e,t),z.success(`وضعیت به‌روز شد`),await B()}catch(e){z.error(e instanceof g?e.message:`به‌روزرسانی ناموفق بود`)}}async function H(e,t){if(!R.value){R.value=e;try{await _.updateHolder(e,{holderType:t}),z.success(`محل نگهداری به‌روز شد`),await B()}catch(e){z.error(e instanceof g?e.message:`به‌روزرسانی محل ناموفق بود`)}finally{R.value=null}}}function U(e){return P[e]??e}return n(()=>{B()}),(n,r)=>(e(),o(`div`,S,[a(`header`,C,[r[1]||=a(`div`,null,[a(`h1`,null,`درخواست کالیته فیزیکی`),a(`p`,null,`بررسی، گردش وضعیت و محل نگهداری اقلام`)],-1),c(x,{modelValue:I.value,"onUpdate:modelValue":[r[0]||=e=>I.value=e,B],options:p},null,8,[`modelValue`])]),L.value?(e(),u(y,{key:0,variant:`cards`})):F.value.length?(e(!0),o(f,{key:2},l(F.value,n=>(e(),o(`div`,{key:n.id,class:`request-card`},[a(`div`,w,[a(`div`,null,[a(`strong`,null,t(n.customerName),1),a(`span`,T,t(n.customerPhone),1),a(`span`,E,t(i(N)[n.status]??n.status),1)]),c(x,{"model-value":n.status,options:p.filter(e=>e.value),"onUpdate:modelValue":e=>V(n.id,String(e))},null,8,[`model-value`,`options`,`onUpdate:modelValue`])]),n.note?(e(),o(`p`,D,t(n.note),1)):m(``,!0),a(`table`,O,[r[2]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`محصول`),a(`th`,null,`کد`),a(`th`,null,`تعداد`),a(`th`,null,`محل`)])],-1),a(`tbody`,null,[(e(!0),o(f,null,l(n.items,n=>(e(),o(`tr`,{key:n.id},[a(`td`,null,t(n.productName),1),a(`td`,k,t(n.productCode),1),a(`td`,null,t(n.quantity),1),a(`td`,null,[c(x,{"model-value":n.holderType,options:M,"onUpdate:modelValue":e=>H(n.id,String(e))},null,8,[`model-value`,`onUpdate:modelValue`]),n.movements?.length?(e(),o(`ul`,A,[(e(!0),o(f,null,l(n.movements,n=>(e(),o(`li`,{key:n.id},[d(t(U(n.fromHolder))+` → `+t(U(n.toHolder))+` `,1),a(`span`,j,t(i(v)(n.movedAt)),1)]))),128))])):m(``,!0)])]))),128))])])]))),128)):(e(),u(b,{key:1,title:`درخواستی نیست`}))]))}}),[[`__scopeId`,`data-v-747d8f88`]]);export{M as default}; \ No newline at end of file diff --git a/dist/assets/CatalogRequestsView-DQu3_M_v.js b/dist/assets/CatalogRequestsView-DQu3_M_v.js deleted file mode 100644 index 1f64cd0..0000000 --- a/dist/assets/CatalogRequestsView-DQu3_M_v.js +++ /dev/null @@ -1 +0,0 @@ -import{O as e,Ot as t,T as n,Z as r,at as i,c as a,d as o,g as s,h as c,j as l,l as u,m as d,r as f,t as p,u as m}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{N as h,f as g,i as _,z as v}from"./index-CXa4EMLW.js";import{t as y}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as b}from"./BaseEmptyState-BmO9aDcK.js";import{t as x}from"./AdminSelect-9UfEJQzN.js";var S={class:`admin-page`},C={class:`admin-page__head`},w={class:`request-card__top`},T={class:`muted`,dir:`ltr`},E={class:`badge`},D={key:0,class:`muted`},O={class:`admin-table`},k={dir:`ltr`},A={key:0,class:`movements`},j={class:`muted`},M=p(s({__name:`CatalogRequestsView`,setup(s){let p=[{value:``,label:`همه وضعیت‌ها`},{value:`new`,label:`درخواست جدید`},{value:`approved`,label:`تأیید شده`},{value:`ready_to_ship`,label:`آماده ارسال`},{value:`delivered`,label:`تحویل به مشتری`},{value:`returned`,label:`بازگردانده شده`},{value:`cancelled`,label:`لغو شده`}],M=[{value:`warehouse`,label:`انبار`},{value:`customer`,label:`مشتری`},{value:`agent`,label:`واسطه`}],N=Object.fromEntries(p.filter(e=>e.value).map(e=>[e.value,e.label])),P=Object.fromEntries(M.map(e=>[e.value,e.label])),F=r([]),I=r(``),L=r(!0),R=r(null),z=v();async function B(){L.value=!0;try{F.value=await g.list(I.value||void 0)}catch(e){z.error(e instanceof h?e.message:`بارگذاری انجام نشد`)}finally{L.value=!1}}async function V(e,t){try{await g.updateStatus(e,t),z.success(`وضعیت به‌روز شد`),await B()}catch(e){z.error(e instanceof h?e.message:`به‌روزرسانی ناموفق بود`)}}async function H(e,t){if(!R.value){R.value=e;try{await g.updateHolder(e,{holderType:t}),z.success(`محل نگهداری به‌روز شد`),await B()}catch(e){z.error(e instanceof h?e.message:`به‌روزرسانی محل ناموفق بود`)}finally{R.value=null}}}function U(e){return P[e]??e}return n(()=>{B()}),(n,r)=>(e(),o(`div`,S,[a(`header`,C,[r[1]||=a(`div`,null,[a(`h1`,null,`درخواست کالیته فیزیکی`),a(`p`,null,`بررسی، گردش وضعیت و محل نگهداری اقلام`)],-1),c(x,{modelValue:I.value,"onUpdate:modelValue":[r[0]||=e=>I.value=e,B],options:p},null,8,[`modelValue`])]),L.value?(e(),u(y,{key:0,variant:`cards`})):F.value.length?(e(!0),o(f,{key:2},l(F.value,n=>(e(),o(`div`,{key:n.id,class:`request-card`},[a(`div`,w,[a(`div`,null,[a(`strong`,null,t(n.customerName),1),a(`span`,T,t(n.customerPhone),1),a(`span`,E,t(i(N)[n.status]??n.status),1)]),c(x,{"model-value":n.status,options:p.filter(e=>e.value),"onUpdate:modelValue":e=>V(n.id,String(e))},null,8,[`model-value`,`options`,`onUpdate:modelValue`])]),n.note?(e(),o(`p`,D,t(n.note),1)):m(``,!0),a(`table`,O,[r[2]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`محصول`),a(`th`,null,`کد`),a(`th`,null,`تعداد`),a(`th`,null,`محل`)])],-1),a(`tbody`,null,[(e(!0),o(f,null,l(n.items,n=>(e(),o(`tr`,{key:n.id},[a(`td`,null,t(n.productName),1),a(`td`,k,t(n.productCode),1),a(`td`,null,t(n.quantity),1),a(`td`,null,[c(x,{"model-value":n.holderType,options:M,"onUpdate:modelValue":e=>H(n.id,String(e))},null,8,[`model-value`,`onUpdate:modelValue`]),n.movements?.length?(e(),o(`ul`,A,[(e(!0),o(f,null,l(n.movements,n=>(e(),o(`li`,{key:n.id},[d(t(U(n.fromHolder))+` → `+t(U(n.toHolder))+` `,1),a(`span`,j,t(i(_)(n.movedAt)),1)]))),128))])):m(``,!0)])]))),128))])])]))),128)):(e(),u(b,{key:1,title:`درخواستی نیست`}))]))}}),[[`__scopeId`,`data-v-747d8f88`]]);export{M as default}; \ No newline at end of file diff --git a/dist/assets/CatalogsView-CkUrL58L.js b/dist/assets/CatalogsView-CkUrL58L.js new file mode 100644 index 0000000..b296c19 --- /dev/null +++ b/dist/assets/CatalogsView-CkUrL58L.js @@ -0,0 +1 @@ +import{B as e,Dt as t,O as n,Ot as r,T as ee,Tt as i,V as a,Y as o,Z as s,c,d as l,g as te,h as u,j as d,l as f,m as p,r as m,s as h,t as g,u as _}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as ne,f as v,m as re,t as y}from"./http-Djf2pGxE.js";import{L as ie,V as ae,g as b,v as oe}from"./index-CznUUXv3.js";import{t as se}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as ce}from"./BaseSwitch-TV5Yvtf7.js";import{t as le}from"./BaseEmptyState-D6sk-aI_.js";import{t as ue}from"./AdminImagePicker-C4toq7MG.js";import{t as x}from"./AdminSelect-DK-_otkw.js";import{t as S}from"./ActiveSwitchCell-CLCpM6ho.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=g(te({__name:`CatalogsView`,setup(te){let g=s([]),N=s([]),P=s(``),F=s(`all`),I=s(!0),L=s(null),R=s(null),z=s(``),B=s(!1),V=ne(),De=h(()=>[{value:`all`,label:`همه شرکت‌ها`},...N.value.map(e=>({value:e.id,label:e.name}))]),Oe=h(()=>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=o(H()),ke=h(()=>L.value!==null),W=h(()=>L.value===`edit`?`ویرایش کالیته`:`افزودن کالیته`),G=h(()=>U.code.trim()&&U.name.trim()&&U.companyId),K=h(()=>P.value.trim().length>0||F.value!==`all`),q=h(()=>{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([b.list(),oe.list()]);g.value=e,N.value=t}catch(e){V.error(e instanceof y?e.message:`بارگذاری کالیته‌ها انجام نشد.`)}finally{I.value=!1}}ee(()=>{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 b.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 b.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 y?e.message:`ذخیره کالیته انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await b.setActive(e,t)}function je(){P.value=``,F.value=`all`}return(ee,o)=>(n(),l(`div`,de,[c(`div`,{class:`admin-page-header`},[o[8]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`کالیته‌ها`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کالیته `)]),c(`div`,fe,[c(`div`,pe,[u(ie,{name:`search`,size:18}),a(c(`input`,{"onUpdate:modelValue":o[0]||=e=>P.value=e,type:`search`,class:`catalogs-page__search-input`,placeholder:`جستجو بر اساس کد یا نام...`},null,512),[[v,P.value]])]),u(x,{modelValue:F.value,"onUpdate:modelValue":o[1]||=e=>F.value=e,class:`catalogs-page__company-filter`,"aria-label":`فیلتر شرکت`,options:De.value},null,8,[`modelValue`,`options`])]),I.value?(n(),f(se,{key:0,variant:`table`})):q.value.length?(n(),l(`div`,me,[c(`div`,he,[c(`table`,ge,[o[9]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`تصویر`),c(`th`,null,`کد`),c(`th`,null,`نام کالیته`),c(`th`,null,`شرکت`),c(`th`,{class:`numeric`},`ترتیب`),c(`th`,{class:`numeric`},`تعداد محصول`),c(`th`,{class:`status`},`وضعیت`),c(`th`,{class:`actions`},`عملیات`)])],-1),c(`tbody`,null,[(n(!0),l(m,null,d(q.value,e=>(n(),l(`tr`,{key:e.id},[c(`td`,null,[c(`span`,{class:i([`catalog-thumb`,{"catalog-thumb--empty":!e.imageUrl}]),style:t(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6)]),c(`td`,null,r(e.code),1),c(`td`,null,r(e.name),1),c(`td`,null,r(e.companyName),1),c(`td`,_e,r(e.displayOrder),1),c(`td`,ve,r(e.productCount),1),c(`td`,ye,[u(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`])]),c(`td`,be,[c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,xe)])]))),128))])])])])):(n(),f(le,{key:1,class:`admin-card`,icon:`catalogs`,title:K.value?`نتیجه‌ای یافت نشد`:`کالیته‌ای ثبت نشده`,description:K.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کالیته را ثبت کنید.`},{default:e(()=>[K.value?(n(),l(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:je},` پاک کردن فیلترها `)):(n(),l(`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?(n(),l(`div`,C,[(n(!0),l(m,null,d(q.value,e=>(n(),l(`article`,{key:e.id,class:`admin-card-item`},[c(`div`,w,[c(`span`,{class:i([`catalog-thumb`,{"catalog-thumb--empty":!e.imageUrl}]),style:t(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6),c(`p`,T,`کالیته `+r(e.code)+` — `+r(e.name),1),u(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`])]),c(`div`,E,[c(`span`,null,r(e.companyName),1),c(`span`,null,r(e.productCount)+` محصول`,1),c(`span`,null,`ترتیب: `+r(e.displayOrder),1)]),c(`div`,D,[c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,O)])]))),128))])):_(``,!0),u(ae,{open:ke.value,title:W.value,size:`lg`,onClose:Z},{footer:e(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!G.value||B.value,onClick:Q},r(L.value===`edit`?`ذخیره تغییرات`:`ثبت کالیته`),9,Ee)]),default:e(()=>[c(`form`,{class:`admin-form`,onSubmit:re(Q,[`prevent`])},[z.value?(n(),l(`p`,k,r(z.value),1)):_(``,!0),c(`div`,A,[o[10]||=c(`label`,null,[p(`شرکت `),c(`span`,{class:`admin-form__required`},`*`)],-1),u(x,{modelValue:U.companyId,"onUpdate:modelValue":o[2]||=e=>U.companyId=e,block:``,"aria-label":`انتخاب شرکت`,placeholder:`انتخاب شرکت`,options:Oe.value},null,8,[`modelValue`,`options`])]),c(`div`,j,[c(`div`,M,[o[11]||=c(`label`,{for:`catalog-code`},[p(`کد کالیته `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`catalog-code`,"onUpdate:modelValue":o[3]||=e=>U.code=e,type:`text`,class:`admin-input`,placeholder:`377`},null,512),[[v,U.code]])]),c(`div`,Se,[o[12]||=c(`label`,{for:`catalog-name`},[p(`نام کالیته `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`catalog-name`,"onUpdate:modelValue":o[4]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[v,U.name]])])]),c(`div`,Ce,[c(`div`,we,[o[13]||=c(`label`,{for:`catalog-order`},`ترتیب نمایش`,-1),a(c(`input`,{id:`catalog-order`,"onUpdate:modelValue":o[5]||=e=>U.displayOrder=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[v,U.displayOrder,void 0,{number:!0}]])]),c(`div`,Te,[u(ce,{modelValue:U.isActive,"onUpdate:modelValue":o[6]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])]),u(ue,{modelValue:U.imageUrl,"onUpdate:modelValue":o[7]||=e=>U.imageUrl=e,label:`تصویر بنر کالیته`},null,8,[`modelValue`])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-4fb827ad`]]);export{N as default}; \ No newline at end of file diff --git a/dist/assets/CatalogsView-DJJrDHxo.js b/dist/assets/CatalogsView-DJJrDHxo.js deleted file mode 100644 index 159ccd4..0000000 --- a/dist/assets/CatalogsView-DJJrDHxo.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,Dt as t,O as n,Ot as r,T as ee,Tt as i,V as a,Y as o,Z as s,c,d as l,g as te,h as u,j as d,l as f,m as p,r as m,s as h,t as g,u as _}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{K as ne,N as v,P as re,R as ie,W as y,h as ae,p as b,z as oe}from"./index-CXa4EMLW.js";import{t as se}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as ce}from"./BaseSwitch-TV5Yvtf7.js";import{t as le}from"./BaseEmptyState-BmO9aDcK.js";import{t as ue}from"./AdminImagePicker-C4toq7MG.js";import{t as x}from"./AdminSelect-9UfEJQzN.js";import{t as S}from"./ActiveSwitchCell-DJZQHZ-8.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=g(te({__name:`CatalogsView`,setup(te){let g=s([]),N=s([]),P=s(``),F=s(`all`),I=s(!0),L=s(null),R=s(null),z=s(``),B=s(!1),V=oe(),De=h(()=>[{value:`all`,label:`همه شرکت‌ها`},...N.value.map(e=>({value:e.id,label:e.name}))]),Oe=h(()=>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=o(H()),ke=h(()=>L.value!==null),W=h(()=>L.value===`edit`?`ویرایش کالیته`:`افزودن کالیته`),G=h(()=>U.code.trim()&&U.name.trim()&&U.companyId),K=h(()=>P.value.trim().length>0||F.value!==`all`),q=h(()=>{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([b.list(),ae.list()]);g.value=e,N.value=t}catch(e){V.error(e instanceof v?e.message:`بارگذاری کالیته‌ها انجام نشد.`)}finally{I.value=!1}}ee(()=>{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 b.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 b.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 v?e.message:`ذخیره کالیته انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await b.setActive(e,t)}function je(){P.value=``,F.value=`all`}return(ee,o)=>(n(),l(`div`,de,[c(`div`,{class:`admin-page-header`},[o[8]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`کالیته‌ها`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کالیته `)]),c(`div`,fe,[c(`div`,pe,[u(re,{name:`search`,size:18}),a(c(`input`,{"onUpdate:modelValue":o[0]||=e=>P.value=e,type:`search`,class:`catalogs-page__search-input`,placeholder:`جستجو بر اساس کد یا نام...`},null,512),[[y,P.value]])]),u(x,{modelValue:F.value,"onUpdate:modelValue":o[1]||=e=>F.value=e,class:`catalogs-page__company-filter`,"aria-label":`فیلتر شرکت`,options:De.value},null,8,[`modelValue`,`options`])]),I.value?(n(),f(se,{key:0,variant:`table`})):q.value.length?(n(),l(`div`,me,[c(`div`,he,[c(`table`,ge,[o[9]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`تصویر`),c(`th`,null,`کد`),c(`th`,null,`نام کالیته`),c(`th`,null,`شرکت`),c(`th`,{class:`numeric`},`ترتیب`),c(`th`,{class:`numeric`},`تعداد محصول`),c(`th`,{class:`status`},`وضعیت`),c(`th`,{class:`actions`},`عملیات`)])],-1),c(`tbody`,null,[(n(!0),l(m,null,d(q.value,e=>(n(),l(`tr`,{key:e.id},[c(`td`,null,[c(`span`,{class:i([`catalog-thumb`,{"catalog-thumb--empty":!e.imageUrl}]),style:t(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6)]),c(`td`,null,r(e.code),1),c(`td`,null,r(e.name),1),c(`td`,null,r(e.companyName),1),c(`td`,_e,r(e.displayOrder),1),c(`td`,ve,r(e.productCount),1),c(`td`,ye,[u(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`])]),c(`td`,be,[c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,xe)])]))),128))])])])])):(n(),f(le,{key:1,class:`admin-card`,icon:`catalogs`,title:K.value?`نتیجه‌ای یافت نشد`:`کالیته‌ای ثبت نشده`,description:K.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کالیته را ثبت کنید.`},{default:e(()=>[K.value?(n(),l(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:je},` پاک کردن فیلترها `)):(n(),l(`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?(n(),l(`div`,C,[(n(!0),l(m,null,d(q.value,e=>(n(),l(`article`,{key:e.id,class:`admin-card-item`},[c(`div`,w,[c(`span`,{class:i([`catalog-thumb`,{"catalog-thumb--empty":!e.imageUrl}]),style:t(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6),c(`p`,T,`کالیته `+r(e.code)+` — `+r(e.name),1),u(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`])]),c(`div`,E,[c(`span`,null,r(e.companyName),1),c(`span`,null,r(e.productCount)+` محصول`,1),c(`span`,null,`ترتیب: `+r(e.displayOrder),1)]),c(`div`,D,[c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,O)])]))),128))])):_(``,!0),u(ie,{open:ke.value,title:W.value,size:`lg`,onClose:Z},{footer:e(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!G.value||B.value,onClick:Q},r(L.value===`edit`?`ذخیره تغییرات`:`ثبت کالیته`),9,Ee)]),default:e(()=>[c(`form`,{class:`admin-form`,onSubmit:ne(Q,[`prevent`])},[z.value?(n(),l(`p`,k,r(z.value),1)):_(``,!0),c(`div`,A,[o[10]||=c(`label`,null,[p(`شرکت `),c(`span`,{class:`admin-form__required`},`*`)],-1),u(x,{modelValue:U.companyId,"onUpdate:modelValue":o[2]||=e=>U.companyId=e,block:``,"aria-label":`انتخاب شرکت`,placeholder:`انتخاب شرکت`,options:Oe.value},null,8,[`modelValue`,`options`])]),c(`div`,j,[c(`div`,M,[o[11]||=c(`label`,{for:`catalog-code`},[p(`کد کالیته `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`catalog-code`,"onUpdate:modelValue":o[3]||=e=>U.code=e,type:`text`,class:`admin-input`,placeholder:`377`},null,512),[[y,U.code]])]),c(`div`,Se,[o[12]||=c(`label`,{for:`catalog-name`},[p(`نام کالیته `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`catalog-name`,"onUpdate:modelValue":o[4]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[y,U.name]])])]),c(`div`,Ce,[c(`div`,we,[o[13]||=c(`label`,{for:`catalog-order`},`ترتیب نمایش`,-1),a(c(`input`,{id:`catalog-order`,"onUpdate:modelValue":o[5]||=e=>U.displayOrder=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[y,U.displayOrder,void 0,{number:!0}]])]),c(`div`,Te,[u(ce,{modelValue:U.isActive,"onUpdate:modelValue":o[6]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])]),u(ue,{modelValue:U.imageUrl,"onUpdate:modelValue":o[7]||=e=>U.imageUrl=e,label:`تصویر بنر کالیته`},null,8,[`modelValue`])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-4fb827ad`]]);export{N as default}; \ No newline at end of file diff --git a/dist/assets/CategoriesView-DAT9P8-Q.js b/dist/assets/CategoriesView-DAT9P8-Q.js deleted file mode 100644 index d41349c..0000000 --- a/dist/assets/CategoriesView-DAT9P8-Q.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,p,r as m,s as h,t as g,u as _}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{B as v,C as y,N as b,W as x,z as ee}from"./index-CXa4EMLW.js";import{t as te}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as S}from"./BaseSwitch-TV5Yvtf7.js";import{t as C}from"./AdminImagePicker-C4toq7MG.js";import{t as w}from"./AdminSelect-9UfEJQzN.js";var T={class:`category-icon`,"aria-hidden":`true`},E=[`width`,`height`,`stroke`,`stroke-width`],D=[`width`,`height`,`stroke`,`stroke-width`],O=[`width`,`height`,`stroke`,`stroke-width`],k=[`width`,`height`,`stroke`],A=[`width`,`height`,`stroke`],j=[`width`,`height`,`stroke`],M=g(l({__name:`CategoryIcon`,props:{name:{},size:{default:18},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(e){let n=e,r={bolt:`vuesax-linear:flash`,feather:`vuesax-linear:pen-add`,diamond:`vuesax-linear:diamonds`,grid:`vuesax-linear:element-3`,bag:`vuesax-linear:shopping-bag`,weight:`vuesax-linear:shopping-bag`,"id-card":`vuesax-linear:personalcard`,catalog:`vuesax-linear:category`,headset:`vuesax-linear:headphone`,home:`vuesax-linear:home`},i=h(()=>r[n.name]);return(n,r)=>(t(),c(`span`,T,[i.value?(t(),f(v,{key:0,icon:i.value,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`icon`,`size`,`stroke-width`,`color`])):e.name===`shirt`?(t(),c(`svg`,{key:1,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":e.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[0]||=[s(`path`,{d:`M8.25 5.25 12 7.75l3.75-2.5 2.25 2.75L16 9.5V18.5a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V9.5L6 8l2.25-2.75Z`},null,-1),s(`path`,{d:`M12 7.75V18.5`},null,-1)]],8,E)):e.name===`suit`?(t(),c(`svg`,{key:2,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":e.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[1]||=[s(`path`,{d:`M7.5 5.5h9l2 3v10.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1V8.5l2-3Z`},null,-1),s(`path`,{d:`M12 5.5v13`},null,-1),s(`path`,{d:`M7.5 9 12 11.75 16.5 9`},null,-1),s(`path`,{d:`M10.25 5.5V4a1.75 1.75 0 0 1 3.5 0v1.5`},null,-1)]],8,D)):e.name===`trousers`?(t(),c(`svg`,{key:3,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":e.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[2]||=[s(`path`,{d:`M8 4.5h8v4.25l-1.75 11H13l-1-9.5-1 9.5H7.75L6 8.75V4.5Z`},null,-1),s(`path`,{d:`M12 8.75v11`},null,-1),s(`path`,{d:`M8 7.25h8`},null,-1)]],8,O)):e.name===`ruler`?(t(),c(`svg`,{key:4,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[3]||=[p(``,5)]],8,k)):e.name===`composition`?(t(),c(`svg`,{key:5,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[4]||=[s(`path`,{d:`M12 3.5 20 8v8l-8 4.5L4 16V8l8-4.5Z`},null,-1)]],8,A)):e.name===`weave`?(t(),c(`svg`,{key:6,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":`1.6`,"stroke-linecap":`round`},[...r[5]||=[p(``,7)]],8,j)):_(``,!0)]))}}),[[`__scopeId`,`data-v-76e4dc13`]]),ne={class:`categories-admin`},re={class:`admin-page-header`},ie=[`disabled`],ae={key:1,class:`categories-admin__grid`},oe={class:`admin-card categories-panel`},se={class:`categories-panel__head`},ce={key:0,class:`categories-panel__add`},le={key:1,class:`categories-panel__empty`},ue={key:2,class:`categories-panel__list`},N={class:`category-row__fields`},P={class:`category-row__line`},F=[`onUpdate:modelValue`],I={class:`category-row__line`},L=[`onUpdate:modelValue`],R={class:`category-row__line`},z={class:`category-row__id`,dir:`ltr`},B=[`onClick`],V={class:`admin-card categories-panel`},H={class:`categories-panel__head`},U={key:0,class:`categories-panel__add`},de={key:1,class:`categories-panel__empty`},fe={key:2,class:`categories-panel__list`},pe={class:`category-row__fields`},W={class:`category-row__line`},me=[`onUpdate:modelValue`],he={class:`category-row__line`},ge=[`onUpdate:modelValue`],_e={class:`category-row__line`},ve=[`onUpdate:modelValue`],ye={class:`category-row__line`},be={class:`category-row__id`,dir:`ltr`},xe=[`onClick`],G=g(l({__name:`CategoriesView`,setup(l){let p=o([]),g=o([]),v=a({}),T=o(!0),E=o(!1),D=ee(),O=o(!1),k=o(!1),A=[{value:`shirt`,label:`پیراهن`},{value:`suit`,label:`کت‌شلوار`},{value:`trousers`,label:`شلوار`},{value:`bolt`,label:`آذرخش`},{value:`feather`,label:`پر`},{value:`diamond`,label:`الماس`},{value:`grid`,label:`شبکه`},{value:`bag`,label:`کیف`},{value:`id-card`,label:`کارت`},{value:`catalog`,label:`کالیته`},{value:`headset`,label:`پشتیبانی`},{value:`home`,label:`خانه`},{value:`ruler`,label:`عرض`},{value:`composition`,label:`جنس`},{value:`weight`,label:`وزن`},{value:`weave`,label:`نوع بافت`}];function j(e){return e===`shirt`?`shirt`:e===`suit`?`suit`:e===`trousers`?`trousers`:`grid`}function G(e){return e===`summer`?`bolt`:e===`winter`?`feather`:`diamond`}let K=a({id:``,title:``,subtitle:`مشاهده محصولات`,icon:`grid`,showTitle:!0,showSubtitle:!0,showIcon:!0}),q=a({id:``,title:``,description:``,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0});function J(e){return e!==!1}let Y=h(()=>p.value.map(e=>e.id)),X=h(()=>g.value.map(e=>e.id));function Z(e){return e.trim().toLowerCase().replace(/\s+/g,`_`).replace(/[^a-z0-9_\u0600-\u06ff-]/gi,``).slice(0,48)}function Q(){let e=[...Y.value,...X.value];for(let t of e)t in v||(v[t]=null);for(let t of Object.keys(v))e.includes(t)||delete v[t]}async function $(){T.value=!0;try{let e=await y.get();p.value=e.categoryDefsJson?.usage?.length?e.categoryDefsJson.usage.map(e=>({id:e.id,title:e.title,subtitle:e.subtitle||`مشاهده محصولات`,icon:e.icon||j(e.id),showTitle:J(e.showTitle),showSubtitle:J(e.showSubtitle),showIcon:J(e.showIcon)})):[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`,icon:`trousers`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`,icon:`suit`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`,icon:`shirt`,showTitle:!0,showSubtitle:!0,showIcon:!0}],g.value=e.categoryDefsJson?.seasons?.length?e.categoryDefsJson.seasons.map(e=>({id:e.id,title:e.title,description:e.description||``,ctaLabel:e.ctaLabel||`مشاهده محصولات`,icon:e.icon||G(e.id),showTitle:J(e.showTitle),showDescription:J(e.showDescription),showCta:J(e.showCta),showIcon:J(e.showIcon)})):[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`,ctaLabel:`مشاهده محصولات`,icon:`bolt`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`,ctaLabel:`مشاهده محصولات`,icon:`feather`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0}],Q();let t=e.categoryImagesJson??{};for(let e of Object.keys(v))v[e]=t[e]??null}catch(e){D.error(e instanceof b?e.message:`بارگذاری دسته‌ها ناموفق بود.`),p.value.length||(p.value=[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`,icon:`trousers`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`,icon:`suit`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`,icon:`shirt`,showTitle:!0,showSubtitle:!0,showIcon:!0}]),g.value.length||(g.value=[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`,ctaLabel:`مشاهده محصولات`,icon:`bolt`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`,ctaLabel:`مشاهده محصولات`,icon:`feather`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0}]),Q()}finally{T.value=!1}}function Se(){let e=Z(K.id||K.title),t=K.title.trim();if(!e||!t){D.error(`شناسه و عنوان دسته کاربرد الزامی است.`);return}if(Y.value.includes(e)||X.value.includes(e)){D.error(`این شناسه از قبل وجود دارد.`);return}p.value.push({id:e,title:t,subtitle:K.subtitle.trim()||`مشاهده محصولات`,icon:K.icon,showTitle:K.showTitle,showSubtitle:K.showSubtitle,showIcon:K.showIcon}),v[e]=null,K.id=``,K.title=``,K.subtitle=`مشاهده محصولات`,K.icon=`grid`,K.showTitle=!0,K.showSubtitle=!0,K.showIcon=!0,O.value=!1}function Ce(){let e=Z(q.id||q.title),t=q.title.trim();if(!e||!t){D.error(`شناسه و عنوان دسته فصل الزامی است.`);return}if(Y.value.includes(e)||X.value.includes(e)){D.error(`این شناسه از قبل وجود دارد.`);return}g.value.push({id:e,title:t,description:q.description.trim(),ctaLabel:q.ctaLabel.trim()||`مشاهده محصولات`,icon:q.icon,showTitle:q.showTitle,showDescription:q.showDescription,showCta:q.showCta,showIcon:q.showIcon}),v[e]=null,q.id=``,q.title=``,q.description=``,q.ctaLabel=`مشاهده محصولات`,q.icon=`diamond`,q.showTitle=!0,q.showDescription=!0,q.showCta=!0,q.showIcon=!0,k.value=!1}function we(e){if(p.value.length<=1){D.error(`حداقل یک دسته کاربرد لازم است.`);return}p.value=p.value.filter(t=>t.id!==e),delete v[e]}function Te(e){if(g.value.length<=1){D.error(`حداقل یک دسته فصل لازم است.`);return}g.value=g.value.filter(t=>t.id!==e),delete v[e]}async function Ee(){E.value=!0;try{let e={};for(let[t,n]of Object.entries(v))n&&(e[t]=n);await y.update({categoryDefsJson:{usage:p.value,seasons:g.value},categoryImagesJson:e}),D.success(`دسته‌بندی‌ها ذخیره شد.`),await $()}catch(e){D.error(e instanceof b?e.message:`ذخیره دسته‌بندی‌ها ناموفق بود.`)}finally{E.value=!1}}return r(()=>{$()}),(r,a)=>(t(),c(`div`,ne,[s(`div`,re,[a[8]||=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`,disabled:E.value||T.value,onClick:Ee},n(E.value?`در حال ذخیره...`:`ذخیره تغییرات`),9,ie)]),T.value?(t(),f(te,{key:0,variant:`cards`})):(t(),c(`div`,ae,[s(`section`,oe,[s(`div`,se,[s(`div`,null,[a[9]||=s(`h2`,null,`بر اساس کاربرد`,-1),s(`p`,null,n(p.value.length)+` دسته برای فیلتر محصول در اپ کاربر`,1)]),s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:a[0]||=e=>O.value=!O.value},n(O.value?`بستن فرم`:`+ افزودن دسته`),1)]),O.value?(t(),c(`div`,ce,[i(s(`input`,{"onUpdate:modelValue":a[1]||=e=>K.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان (مثلاً پارچه‌های مانتویی)`},null,512),[[x,K.title]]),i(s(`input`,{"onUpdate:modelValue":a[2]||=e=>K.id=e,class:`admin-input`,type:`text`,dir:`ltr`,placeholder:`شناسه انگلیسی (اختیاری، مثلاً mantle)`},null,512),[[x,K.id]]),i(s(`input`,{"onUpdate:modelValue":a[3]||=e=>K.subtitle=e,class:`admin-input`,type:`text`,placeholder:`زیرعنوان`},null,512),[[x,K.subtitle]]),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Se},`ثبت در لیست`)])):_(``,!0),p.value.length?(t(),c(`div`,ue,[(t(!0),c(m,null,d(p.value,r=>(t(),c(`article`,{key:r.id,class:`category-row`},[u(C,{"model-value":v[r.id],"onUpdate:modelValue":e=>v[r.id]=e},null,8,[`model-value`,`onUpdate:modelValue`]),s(`div`,N,[s(`div`,P,[i(s(`input`,{"onUpdate:modelValue":e=>r.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان دسته`},null,8,F),[[x,r.title]]),u(S,{modelValue:r.showTitle,"onUpdate:modelValue":e=>r.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,I,[i(s(`input`,{"onUpdate:modelValue":e=>r.subtitle=e,class:`admin-input`,type:`text`,placeholder:`زیرعنوان`},null,8,L),[[x,r.subtitle]]),u(S,{modelValue:r.showSubtitle,"onUpdate:modelValue":e=>r.showSubtitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,R,[u(w,{modelValue:r.icon,"onUpdate:modelValue":e=>r.icon=e,options:A,"aria-label":`آیکون`,block:``},{"option-leading":e(({option:e})=>[e?(t(),f(M,{key:0,name:e.value,size:18},null,8,[`name`])):_(``,!0)]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),u(S,{modelValue:r.showIcon,"onUpdate:modelValue":e=>r.showIcon=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`p`,z,n(r.id),1)]),s(`button`,{type:`button`,class:`category-row__remove`,onClick:e=>we(r.id)},`حذف`,8,B)]))),128))])):(t(),c(`p`,le,`هنوز دسته‌ای ثبت نشده. با «افزودن دسته» شروع کنید.`))]),s(`section`,V,[s(`div`,H,[s(`div`,null,[a[10]||=s(`h2`,null,`بر اساس فصل`,-1),s(`p`,null,n(g.value.length)+` دسته فصلی برای فیلتر محصول`,1)]),s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:a[4]||=e=>k.value=!k.value},n(k.value?`بستن فرم`:`+ افزودن دسته`),1)]),k.value?(t(),c(`div`,U,[i(s(`input`,{"onUpdate:modelValue":a[5]||=e=>q.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان (مثلاً بهاره)`},null,512),[[x,q.title]]),i(s(`input`,{"onUpdate:modelValue":a[6]||=e=>q.id=e,class:`admin-input`,type:`text`,dir:`ltr`,placeholder:`شناسه انگلیسی (اختیاری، مثلاً spring)`},null,512),[[x,q.id]]),i(s(`input`,{"onUpdate:modelValue":a[7]||=e=>q.description=e,class:`admin-input`,type:`text`,placeholder:`توضیح`},null,512),[[x,q.description]]),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Ce},`ثبت در لیست`)])):_(``,!0),g.value.length?(t(),c(`div`,fe,[(t(!0),c(m,null,d(g.value,r=>(t(),c(`article`,{key:r.id,class:`category-row`},[u(C,{"model-value":v[r.id],"onUpdate:modelValue":e=>v[r.id]=e},null,8,[`model-value`,`onUpdate:modelValue`]),s(`div`,pe,[s(`div`,W,[i(s(`input`,{"onUpdate:modelValue":e=>r.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان دسته`},null,8,me),[[x,r.title]]),u(S,{modelValue:r.showTitle,"onUpdate:modelValue":e=>r.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,he,[i(s(`input`,{"onUpdate:modelValue":e=>r.description=e,class:`admin-input`,type:`text`,placeholder:`توضیح`},null,8,ge),[[x,r.description]]),u(S,{modelValue:r.showDescription,"onUpdate:modelValue":e=>r.showDescription=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,_e,[i(s(`input`,{"onUpdate:modelValue":e=>r.ctaLabel=e,class:`admin-input`,type:`text`,placeholder:`متن لینک (مشاهده محصولات)`},null,8,ve),[[x,r.ctaLabel]]),u(S,{modelValue:r.showCta,"onUpdate:modelValue":e=>r.showCta=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,ye,[u(w,{modelValue:r.icon,"onUpdate:modelValue":e=>r.icon=e,options:A,"aria-label":`آیکون`,block:``},{"option-leading":e(({option:e})=>[e?(t(),f(M,{key:0,name:e.value,size:18},null,8,[`name`])):_(``,!0)]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),u(S,{modelValue:r.showIcon,"onUpdate:modelValue":e=>r.showIcon=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`p`,be,n(r.id),1)]),s(`button`,{type:`button`,class:`category-row__remove`,onClick:e=>Te(r.id)},`حذف`,8,xe)]))),128))])):(t(),c(`p`,de,`هنوز دسته‌ای ثبت نشده. با «افزودن دسته» شروع کنید.`))])]))]))}}),[[`__scopeId`,`data-v-092c0b6f`]]);export{G as default}; \ No newline at end of file diff --git a/dist/assets/CategoriesView-cHE39jAd.js b/dist/assets/CategoriesView-cHE39jAd.js new file mode 100644 index 0000000..7befce3 --- /dev/null +++ b/dist/assets/CategoriesView-cHE39jAd.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,p,r as m,s as h,t as g,u as _}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as ee,f as v,t as y}from"./http-Djf2pGxE.js";import{E as b,H as x}from"./index-CznUUXv3.js";import{t as te}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as S}from"./BaseSwitch-TV5Yvtf7.js";import{t as C}from"./AdminImagePicker-C4toq7MG.js";import{t as w}from"./AdminSelect-DK-_otkw.js";var T={class:`category-icon`,"aria-hidden":`true`},E=[`width`,`height`,`stroke`,`stroke-width`],D=[`width`,`height`,`stroke`,`stroke-width`],O=[`width`,`height`,`stroke`,`stroke-width`],k=[`width`,`height`,`stroke`],A=[`width`,`height`,`stroke`],j=[`width`,`height`,`stroke`],M=g(l({__name:`CategoryIcon`,props:{name:{},size:{default:18},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(e){let n=e,r={bolt:`vuesax-linear:flash`,feather:`vuesax-linear:pen-add`,diamond:`vuesax-linear:diamonds`,grid:`vuesax-linear:element-3`,bag:`vuesax-linear:shopping-bag`,weight:`vuesax-linear:shopping-bag`,"id-card":`vuesax-linear:personalcard`,catalog:`vuesax-linear:category`,headset:`vuesax-linear:headphone`,home:`vuesax-linear:home`},i=h(()=>r[n.name]);return(n,r)=>(t(),c(`span`,T,[i.value?(t(),f(x,{key:0,icon:i.value,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`icon`,`size`,`stroke-width`,`color`])):e.name===`shirt`?(t(),c(`svg`,{key:1,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":e.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[0]||=[s(`path`,{d:`M8.25 5.25 12 7.75l3.75-2.5 2.25 2.75L16 9.5V18.5a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V9.5L6 8l2.25-2.75Z`},null,-1),s(`path`,{d:`M12 7.75V18.5`},null,-1)]],8,E)):e.name===`suit`?(t(),c(`svg`,{key:2,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":e.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[1]||=[s(`path`,{d:`M7.5 5.5h9l2 3v10.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1V8.5l2-3Z`},null,-1),s(`path`,{d:`M12 5.5v13`},null,-1),s(`path`,{d:`M7.5 9 12 11.75 16.5 9`},null,-1),s(`path`,{d:`M10.25 5.5V4a1.75 1.75 0 0 1 3.5 0v1.5`},null,-1)]],8,D)):e.name===`trousers`?(t(),c(`svg`,{key:3,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":e.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[2]||=[s(`path`,{d:`M8 4.5h8v4.25l-1.75 11H13l-1-9.5-1 9.5H7.75L6 8.75V4.5Z`},null,-1),s(`path`,{d:`M12 8.75v11`},null,-1),s(`path`,{d:`M8 7.25h8`},null,-1)]],8,O)):e.name===`ruler`?(t(),c(`svg`,{key:4,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[3]||=[p(``,5)]],8,k)):e.name===`composition`?(t(),c(`svg`,{key:5,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[4]||=[s(`path`,{d:`M12 3.5 20 8v8l-8 4.5L4 16V8l8-4.5Z`},null,-1)]],8,A)):e.name===`weave`?(t(),c(`svg`,{key:6,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":`1.6`,"stroke-linecap":`round`},[...r[5]||=[p(``,7)]],8,j)):_(``,!0)]))}}),[[`__scopeId`,`data-v-76e4dc13`]]),ne={class:`categories-admin`},re={class:`admin-page-header`},ie=[`disabled`],ae={key:1,class:`categories-admin__grid`},oe={class:`admin-card categories-panel`},se={class:`categories-panel__head`},ce={key:0,class:`categories-panel__add`},le={key:1,class:`categories-panel__empty`},ue={key:2,class:`categories-panel__list`},N={class:`category-row__fields`},P={class:`category-row__line`},F=[`onUpdate:modelValue`],I={class:`category-row__line`},L=[`onUpdate:modelValue`],R={class:`category-row__line`},z={class:`category-row__id`,dir:`ltr`},B=[`onClick`],V={class:`admin-card categories-panel`},H={class:`categories-panel__head`},U={key:0,class:`categories-panel__add`},de={key:1,class:`categories-panel__empty`},fe={key:2,class:`categories-panel__list`},pe={class:`category-row__fields`},W={class:`category-row__line`},me=[`onUpdate:modelValue`],he={class:`category-row__line`},ge=[`onUpdate:modelValue`],_e={class:`category-row__line`},ve=[`onUpdate:modelValue`],ye={class:`category-row__line`},be={class:`category-row__id`,dir:`ltr`},xe=[`onClick`],G=g(l({__name:`CategoriesView`,setup(l){let p=o([]),g=o([]),x=a({}),T=o(!0),E=o(!1),D=ee(),O=o(!1),k=o(!1),A=[{value:`shirt`,label:`پیراهن`},{value:`suit`,label:`کت‌شلوار`},{value:`trousers`,label:`شلوار`},{value:`bolt`,label:`آذرخش`},{value:`feather`,label:`پر`},{value:`diamond`,label:`الماس`},{value:`grid`,label:`شبکه`},{value:`bag`,label:`کیف`},{value:`id-card`,label:`کارت`},{value:`catalog`,label:`کالیته`},{value:`headset`,label:`پشتیبانی`},{value:`home`,label:`خانه`},{value:`ruler`,label:`عرض`},{value:`composition`,label:`جنس`},{value:`weight`,label:`وزن`},{value:`weave`,label:`نوع بافت`}];function j(e){return e===`shirt`?`shirt`:e===`suit`?`suit`:e===`trousers`?`trousers`:`grid`}function G(e){return e===`summer`?`bolt`:e===`winter`?`feather`:`diamond`}let K=a({id:``,title:``,subtitle:`مشاهده محصولات`,icon:`grid`,showTitle:!0,showSubtitle:!0,showIcon:!0}),q=a({id:``,title:``,description:``,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0});function J(e){return e!==!1}let Y=h(()=>p.value.map(e=>e.id)),X=h(()=>g.value.map(e=>e.id));function Z(e){return e.trim().toLowerCase().replace(/\s+/g,`_`).replace(/[^a-z0-9_\u0600-\u06ff-]/gi,``).slice(0,48)}function Q(){let e=[...Y.value,...X.value];for(let t of e)t in x||(x[t]=null);for(let t of Object.keys(x))e.includes(t)||delete x[t]}async function $(){T.value=!0;try{let e=await b.get();p.value=e.categoryDefsJson?.usage?.length?e.categoryDefsJson.usage.map(e=>({id:e.id,title:e.title,subtitle:e.subtitle||`مشاهده محصولات`,icon:e.icon||j(e.id),showTitle:J(e.showTitle),showSubtitle:J(e.showSubtitle),showIcon:J(e.showIcon)})):[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`,icon:`trousers`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`,icon:`suit`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`,icon:`shirt`,showTitle:!0,showSubtitle:!0,showIcon:!0}],g.value=e.categoryDefsJson?.seasons?.length?e.categoryDefsJson.seasons.map(e=>({id:e.id,title:e.title,description:e.description||``,ctaLabel:e.ctaLabel||`مشاهده محصولات`,icon:e.icon||G(e.id),showTitle:J(e.showTitle),showDescription:J(e.showDescription),showCta:J(e.showCta),showIcon:J(e.showIcon)})):[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`,ctaLabel:`مشاهده محصولات`,icon:`bolt`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`,ctaLabel:`مشاهده محصولات`,icon:`feather`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0}],Q();let t=e.categoryImagesJson??{};for(let e of Object.keys(x))x[e]=t[e]??null}catch(e){D.error(e instanceof y?e.message:`بارگذاری دسته‌ها ناموفق بود.`),p.value.length||(p.value=[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`,icon:`trousers`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`,icon:`suit`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`,icon:`shirt`,showTitle:!0,showSubtitle:!0,showIcon:!0}]),g.value.length||(g.value=[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`,ctaLabel:`مشاهده محصولات`,icon:`bolt`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`,ctaLabel:`مشاهده محصولات`,icon:`feather`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0}]),Q()}finally{T.value=!1}}function Se(){let e=Z(K.id||K.title),t=K.title.trim();if(!e||!t){D.error(`شناسه و عنوان دسته کاربرد الزامی است.`);return}if(Y.value.includes(e)||X.value.includes(e)){D.error(`این شناسه از قبل وجود دارد.`);return}p.value.push({id:e,title:t,subtitle:K.subtitle.trim()||`مشاهده محصولات`,icon:K.icon,showTitle:K.showTitle,showSubtitle:K.showSubtitle,showIcon:K.showIcon}),x[e]=null,K.id=``,K.title=``,K.subtitle=`مشاهده محصولات`,K.icon=`grid`,K.showTitle=!0,K.showSubtitle=!0,K.showIcon=!0,O.value=!1}function Ce(){let e=Z(q.id||q.title),t=q.title.trim();if(!e||!t){D.error(`شناسه و عنوان دسته فصل الزامی است.`);return}if(Y.value.includes(e)||X.value.includes(e)){D.error(`این شناسه از قبل وجود دارد.`);return}g.value.push({id:e,title:t,description:q.description.trim(),ctaLabel:q.ctaLabel.trim()||`مشاهده محصولات`,icon:q.icon,showTitle:q.showTitle,showDescription:q.showDescription,showCta:q.showCta,showIcon:q.showIcon}),x[e]=null,q.id=``,q.title=``,q.description=``,q.ctaLabel=`مشاهده محصولات`,q.icon=`diamond`,q.showTitle=!0,q.showDescription=!0,q.showCta=!0,q.showIcon=!0,k.value=!1}function we(e){if(p.value.length<=1){D.error(`حداقل یک دسته کاربرد لازم است.`);return}p.value=p.value.filter(t=>t.id!==e),delete x[e]}function Te(e){if(g.value.length<=1){D.error(`حداقل یک دسته فصل لازم است.`);return}g.value=g.value.filter(t=>t.id!==e),delete x[e]}async function Ee(){E.value=!0;try{let e={};for(let[t,n]of Object.entries(x))n&&(e[t]=n);await b.update({categoryDefsJson:{usage:p.value,seasons:g.value},categoryImagesJson:e}),D.success(`دسته‌بندی‌ها ذخیره شد.`),await $()}catch(e){D.error(e instanceof y?e.message:`ذخیره دسته‌بندی‌ها ناموفق بود.`)}finally{E.value=!1}}return r(()=>{$()}),(r,a)=>(t(),c(`div`,ne,[s(`div`,re,[a[8]||=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`,disabled:E.value||T.value,onClick:Ee},n(E.value?`در حال ذخیره...`:`ذخیره تغییرات`),9,ie)]),T.value?(t(),f(te,{key:0,variant:`cards`})):(t(),c(`div`,ae,[s(`section`,oe,[s(`div`,se,[s(`div`,null,[a[9]||=s(`h2`,null,`بر اساس کاربرد`,-1),s(`p`,null,n(p.value.length)+` دسته برای فیلتر محصول در اپ کاربر`,1)]),s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:a[0]||=e=>O.value=!O.value},n(O.value?`بستن فرم`:`+ افزودن دسته`),1)]),O.value?(t(),c(`div`,ce,[i(s(`input`,{"onUpdate:modelValue":a[1]||=e=>K.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان (مثلاً پارچه‌های مانتویی)`},null,512),[[v,K.title]]),i(s(`input`,{"onUpdate:modelValue":a[2]||=e=>K.id=e,class:`admin-input`,type:`text`,dir:`ltr`,placeholder:`شناسه انگلیسی (اختیاری، مثلاً mantle)`},null,512),[[v,K.id]]),i(s(`input`,{"onUpdate:modelValue":a[3]||=e=>K.subtitle=e,class:`admin-input`,type:`text`,placeholder:`زیرعنوان`},null,512),[[v,K.subtitle]]),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Se},`ثبت در لیست`)])):_(``,!0),p.value.length?(t(),c(`div`,ue,[(t(!0),c(m,null,d(p.value,r=>(t(),c(`article`,{key:r.id,class:`category-row`},[u(C,{"model-value":x[r.id],"onUpdate:modelValue":e=>x[r.id]=e},null,8,[`model-value`,`onUpdate:modelValue`]),s(`div`,N,[s(`div`,P,[i(s(`input`,{"onUpdate:modelValue":e=>r.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان دسته`},null,8,F),[[v,r.title]]),u(S,{modelValue:r.showTitle,"onUpdate:modelValue":e=>r.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,I,[i(s(`input`,{"onUpdate:modelValue":e=>r.subtitle=e,class:`admin-input`,type:`text`,placeholder:`زیرعنوان`},null,8,L),[[v,r.subtitle]]),u(S,{modelValue:r.showSubtitle,"onUpdate:modelValue":e=>r.showSubtitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,R,[u(w,{modelValue:r.icon,"onUpdate:modelValue":e=>r.icon=e,options:A,"aria-label":`آیکون`,block:``},{"option-leading":e(({option:e})=>[e?(t(),f(M,{key:0,name:e.value,size:18},null,8,[`name`])):_(``,!0)]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),u(S,{modelValue:r.showIcon,"onUpdate:modelValue":e=>r.showIcon=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`p`,z,n(r.id),1)]),s(`button`,{type:`button`,class:`category-row__remove`,onClick:e=>we(r.id)},`حذف`,8,B)]))),128))])):(t(),c(`p`,le,`هنوز دسته‌ای ثبت نشده. با «افزودن دسته» شروع کنید.`))]),s(`section`,V,[s(`div`,H,[s(`div`,null,[a[10]||=s(`h2`,null,`بر اساس فصل`,-1),s(`p`,null,n(g.value.length)+` دسته فصلی برای فیلتر محصول`,1)]),s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:a[4]||=e=>k.value=!k.value},n(k.value?`بستن فرم`:`+ افزودن دسته`),1)]),k.value?(t(),c(`div`,U,[i(s(`input`,{"onUpdate:modelValue":a[5]||=e=>q.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان (مثلاً بهاره)`},null,512),[[v,q.title]]),i(s(`input`,{"onUpdate:modelValue":a[6]||=e=>q.id=e,class:`admin-input`,type:`text`,dir:`ltr`,placeholder:`شناسه انگلیسی (اختیاری، مثلاً spring)`},null,512),[[v,q.id]]),i(s(`input`,{"onUpdate:modelValue":a[7]||=e=>q.description=e,class:`admin-input`,type:`text`,placeholder:`توضیح`},null,512),[[v,q.description]]),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Ce},`ثبت در لیست`)])):_(``,!0),g.value.length?(t(),c(`div`,fe,[(t(!0),c(m,null,d(g.value,r=>(t(),c(`article`,{key:r.id,class:`category-row`},[u(C,{"model-value":x[r.id],"onUpdate:modelValue":e=>x[r.id]=e},null,8,[`model-value`,`onUpdate:modelValue`]),s(`div`,pe,[s(`div`,W,[i(s(`input`,{"onUpdate:modelValue":e=>r.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان دسته`},null,8,me),[[v,r.title]]),u(S,{modelValue:r.showTitle,"onUpdate:modelValue":e=>r.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,he,[i(s(`input`,{"onUpdate:modelValue":e=>r.description=e,class:`admin-input`,type:`text`,placeholder:`توضیح`},null,8,ge),[[v,r.description]]),u(S,{modelValue:r.showDescription,"onUpdate:modelValue":e=>r.showDescription=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,_e,[i(s(`input`,{"onUpdate:modelValue":e=>r.ctaLabel=e,class:`admin-input`,type:`text`,placeholder:`متن لینک (مشاهده محصولات)`},null,8,ve),[[v,r.ctaLabel]]),u(S,{modelValue:r.showCta,"onUpdate:modelValue":e=>r.showCta=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,ye,[u(w,{modelValue:r.icon,"onUpdate:modelValue":e=>r.icon=e,options:A,"aria-label":`آیکون`,block:``},{"option-leading":e(({option:e})=>[e?(t(),f(M,{key:0,name:e.value,size:18},null,8,[`name`])):_(``,!0)]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),u(S,{modelValue:r.showIcon,"onUpdate:modelValue":e=>r.showIcon=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`p`,be,n(r.id),1)]),s(`button`,{type:`button`,class:`category-row__remove`,onClick:e=>Te(r.id)},`حذف`,8,xe)]))),128))])):(t(),c(`p`,de,`هنوز دسته‌ای ثبت نشده. با «افزودن دسته» شروع کنید.`))])]))]))}}),[[`__scopeId`,`data-v-092c0b6f`]]);export{G as default}; \ No newline at end of file diff --git a/dist/assets/CheckManagementView-BVfVFn5F.js b/dist/assets/CheckManagementView-BVfVFn5F.js new file mode 100644 index 0000000..d150865 --- /dev/null +++ b/dist/assets/CheckManagementView-BVfVFn5F.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,Tt as r,Z as i,a as ee,at as a,c as o,d as s,g as te,h as c,j as l,l as ne,m as u,r as d,s as f,t as p,u as m}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as re,m as h,t as g}from"./http-Djf2pGxE.js";import{B as _,R as ie,S as ae,_ as v,a as y,i as b,o as oe,w as x,z as se}from"./index-CznUUXv3.js";import{c as S}from"./orderStatus-CYVblRJB.js";import{t as C}from"./StatusBadge-Cg2zTE2k.js";var ce={class:`checks-page`},le={class:`admin-page-header`},ue={key:0,class:`checks-page__order-meta`},de={class:`checks-page__stats`},fe={class:`checks-page__stat`},pe={class:`checks-page__stat`},me={class:`checks-page__stat`},he={class:`checks-page__stat`},ge={class:`admin-tabs`},_e={key:0,class:`admin-empty-placeholder admin-card`},ve={key:1,class:`checks-page__list admin-card`},ye=[`onClick`],be={class:`check-row__chevron`,"aria-hidden":`true`},w=[`onClick`],T=[`src`],E={key:1,class:`check-row__thumb check-row__thumb--empty`},D={class:`check-row__meta`},O=[`disabled`,`onClick`],k=[`disabled`,`onClick`],A={key:0,class:`check-row__panel`},j={key:0,class:`check-row__fields`},M=[`dir`],N={key:1,class:`check-row__hint`},xe={class:`check-row__photos`},Se=[`onClick`],Ce=[`src`],we=[`onClick`],Te=[`src`],Ee={key:2,class:`check-row__hint`},De={class:`checks-page__footer`},Oe={class:`checks-page__note`},ke={class:`admin-action-group`},Ae=[`disabled`],je={key:0,class:`admin-empty-placeholder admin-card`},Me={key:1,class:`checks-page__history`},P={class:`checks-page__history-item-head`},Ne={class:`checks-page__history-meta`},Pe={key:0,class:`checks-page__history-note`},Fe={key:1,class:`checks-page__history-note`},Ie={class:`checks-page__history-item-head`},Le={class:`checks-page__history-note`},Re=[`src`],F=p(te({__name:`CheckManagementView`,setup(te){let p=ie(),F=se(),I=re(),L=i(`info`),R=i(null),z=i([]),B=i(null),V=i(null),H=i(null),U=f(()=>R.value?ae(R.value):null),ze=f(()=>z.value.reduce((e,t)=>e+t.amount,0)),W=f(()=>z.value.filter(e=>e.status===`pending_review`)),Be=f(()=>z.value.length>0&&z.value.every(e=>e.status===`approved`)),G=f(()=>!Be.value||!R.value?!1:(R.value.rawStatus??R.value.status)===`checks_approved`),K=i(!1),q=f(()=>{let e=R.value?.statusHistory??[],t=new Set([`check_in_progress`,`awaiting_check_review`,`check_needs_fix`,`check_rejected`,`checks_approved`]),n=e.filter(e=>t.has(e.toStatus)||e.fromStatus&&t.has(e.fromStatus)||/چک/.test(e.note||``)||/چک/.test(e.reason||``));return[...n.length?n:e].sort((e,t)=>new Date(t.changedAt).getTime()-new Date(e.changedAt).getTime())}),J=f(()=>z.value.filter(e=>e.notes?.trim()).map(e=>({id:e.id,row:e.row,status:e.status,notes:e.notes,updatedAt:e.updatedAt})));async function Ve(){let e=String(p.params.id);try{let[t,n]=await Promise.all([x.get(e),v.listByOrder(e)]);R.value=t,z.value=n,n.length===1&&(V.value=n[0].id)}catch(e){I.error(e instanceof g?e.message:`بارگذاری چک‌ها انجام نشد.`)}}n(()=>{Ve()});function He(){F.push(`/orders`)}function Y(e){return e===`approved`?`check_approved`:e===`rejected`?`check_rejected`:`pending_check_review`}function Ue(e){return e?e===`customer`?`مشتری`:e.startsWith(`admin:`)?`ادمین`:e:`—`}function X(e){return oe(e)}function We(e){return[e.ownerFirstName,e.ownerLastName].filter(Boolean).join(` `)}function Z(e){return[{label:`بانک`,value:e.bankName},{label:`شعبه`,value:e.branchName},{label:`شناسه صیادی`,value:e.sayadId,ltr:!0},{label:`شماره چک`,value:e.checkNumber,ltr:!0},{label:`صاحب چک`,value:We(e)},{label:`کد ملی`,value:e.ownerNationalId,ltr:!0},{label:`یادداشت`,value:e.notes}].filter(e=>!!e.value?.trim())}function Ge(e){V.value=V.value===e.id?null:e.id}async function Q(e,t){B.value=e.id;try{let n=await v.updateStatus(e.id,{status:t}),r=z.value.findIndex(t=>t.id===e.id);return r!==-1&&(z.value[r]=n),R.value=await x.get(String(p.params.id)),!0}catch(e){return I.error(e instanceof g?e.message:`به‌روزرسانی وضعیت چک انجام نشد.`),!1}finally{B.value=null}}async function $(e,t){if(t!==`approved`&&t!==`rejected`)return;let n=b(e.amount);await _(t===`approved`?{title:`تأیید چک`,message:`آیا از تأیید چک ردیف ${e.row} به مبلغ ${n} مطمئن هستید؟`,tone:`primary`,confirmLabel:`تأیید چک`,cancelLabel:`انصراف`}:{title:`رد چک`,message:`آیا از رد چک ردیف ${e.row} به مبلغ ${n} مطمئن هستید؟`,tone:`danger`,confirmLabel:`رد چک`,cancelLabel:`انصراف`})&&await Q(e,t)&&I.success(t===`approved`?`چک تأیید شد.`:`چک رد شد.`)}async function Ke(){let e=W.value;if(!e.length){I.error(`چکی برای تأیید وجود ندارد.`);return}if(await _({title:`تأیید همه چک‌ها`,message:`آیا از تأیید ${e.length} چک در انتظار بررسی مطمئن هستید؟`,tone:`primary`,confirmLabel:`تأیید همه`,cancelLabel:`انصراف`})){for(let t of e)if(!await Q(t,`approved`))return;I.success(`همه چک‌های در انتظار تأیید شدند.`)}}async function qe(){if(!(!R.value||K.value)&&await _({title:`تأیید نهایی سفارش`,message:`با تأیید نهایی، سفارش از مرحله بررسی چک خارج می‌شود و وارد آماده‌سازی می‌گردد. ادامه می‌دهید؟`,tone:`primary`,confirmLabel:`تأیید نهایی`,cancelLabel:`انصراف`})){K.value=!0;try{let e=await x.updateStatus(R.value.id,{status:`final_approved`,note:`تأیید نهایی پس از تأیید همه چک‌ها`});R.value=e,I.success(`سفارش تأیید نهایی شد.`)}catch(e){I.error(e instanceof g?e.message:`تأیید نهایی انجام نشد.`)}finally{K.value=!1}}}return(n,i)=>(e(),s(`div`,ce,[o(`div`,le,[i[5]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`مدیریت چک‌های سفارش`)],-1),U.value?(e(),s(`div`,ue,[c(C,{status:U.value.status},null,8,[`status`])])):m(``,!0)]),o(`div`,de,[o(`div`,fe,[i[6]||=o(`span`,null,`تعداد`,-1),o(`strong`,null,t(z.value.length),1)]),o(`div`,pe,[i[7]||=o(`span`,null,`راس`,-1),o(`strong`,null,t(R.value?.checkRassDays??`—`)+` روز`,1)]),o(`div`,me,[i[8]||=o(`span`,null,`مجموع چک`,-1),o(`strong`,null,t(a(b)(ze.value)),1)]),o(`div`,he,[i[9]||=o(`span`,null,`مبلغ سفارش`,-1),o(`strong`,null,t(U.value?.totalAmount?a(b)(U.value.totalAmount):`—`),1)])]),o(`div`,ge,[o(`button`,{type:`button`,class:r([`admin-tab`,{active:L.value===`info`}]),onClick:i[0]||=e=>L.value=`info`},` چک‌ها (`+t(z.value.length)+`) `,3),o(`button`,{type:`button`,class:r([`admin-tab`,{active:L.value===`history`}]),onClick:i[1]||=e=>L.value=`history`},` تاریخچه `,2)]),L.value===`info`?(e(),s(d,{key:0},[z.value.length?(e(),s(`div`,ve,[(e(!0),s(d,null,l(z.value,n=>(e(),s(`div`,{key:n.id,class:r([`check-row`,{open:V.value===n.id}])},[o(`button`,{type:`button`,class:`check-row__main`,onClick:e=>Ge(n)},[o(`span`,be,t(V.value===n.id?`▾`:`◂`),1),n.frontImage||n.backImage?(e(),s(`span`,{key:0,class:`check-row__thumb`,onClick:h(e=>H.value=n.frontImage||n.backImage,[`stop`])},[o(`img`,{src:n.frontImage||n.backImage,alt:``},null,8,T)],8,w)):(e(),s(`span`,E,`بدون عکس`)),o(`span`,D,[o(`strong`,null,`چک `+t(n.row),1),o(`small`,null,[u(t(a(b)(n.amount))+` `,1),n.bankName?(e(),s(d,{key:0},[u(` · `+t(n.bankName),1)],64)):m(``,!0),u(` · `+t(a(y)(n.dueDate)),1)])]),c(C,{status:Y(n.status)},null,8,[`status`])],8,ye),o(`div`,{class:`check-row__actions`,onClick:i[2]||=h(()=>{},[`stop`])},[n.status===`pending_review`?(e(),s(d,{key:0},[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:B.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,O),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:B.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,k)],64)):m(``,!0)]),V.value===n.id?(e(),s(`div`,A,[Z(n).length?(e(),s(`div`,j,[(e(!0),s(d,null,l(Z(n),n=>(e(),s(`div`,{key:n.label,class:`check-row__field`},[o(`span`,null,t(n.label),1),o(`strong`,{dir:n.ltr?`ltr`:void 0},t(n.value),9,M)]))),128))])):(e(),s(`p`,N,`جزئیات متنی بیشتری ثبت نشده است.`)),o(`div`,xe,[n.frontImage?(e(),s(`button`,{key:0,type:`button`,class:`check-row__photo`,onClick:e=>H.value=n.frontImage},[o(`img`,{src:n.frontImage,alt:`روی چک`},null,8,Ce),i[10]||=o(`span`,null,`روی`,-1)],8,Se)):m(``,!0),n.backImage?(e(),s(`button`,{key:1,type:`button`,class:`check-row__photo`,onClick:e=>H.value=n.backImage},[o(`img`,{src:n.backImage,alt:`پشت چک`},null,8,Te),i[11]||=o(`span`,null,`پشت`,-1)],8,we)):m(``,!0),!n.frontImage&&!n.backImage?(e(),s(`p`,Ee,` تصویری ثبت نشده. `)):m(``,!0)])])):m(``,!0)],2))),128))])):(e(),s(`div`,_e,` چکی برای این سفارش ثبت نشده است. `)),o(`div`,De,[o(`p`,Oe,[G.value?(e(),s(d,{key:0},[u(` همه چک‌ها تأیید شده‌اند. برای ادامه، تأیید نهایی سفارش را ثبت کنید. `)],64)):R.value?.checkRassDate?(e(),s(d,{key:1},[u(` راس: `+t(a(y)(R.value.checkRassDate)),1)],64)):(e(),s(d,{key:2},[u(`راس بر اساس تاریخ ثبت سفارش محاسبه می‌شود.`)],64))]),o(`div`,ke,[G.value?(e(),s(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:K.value,onClick:qe},t(K.value?`در حال ثبت…`:`تأیید نهایی سفارش`),9,Ae)):m(``,!0),W.value.length?(e(),s(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,onClick:Ke},` تأیید همه چک‌ها `)):m(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:He},` بازگشت `)])])],64)):(e(),s(d,{key:1},[!q.value.length&&!J.value.length?(e(),s(`div`,je,` هنوز تاریخچه‌ای ثبت نشده است. `)):(e(),s(`div`,Me,[(e(!0),s(d,null,l(q.value,n=>(e(),s(`article`,{key:n.id,class:`admin-card checks-page__history-item`},[o(`div`,P,[o(`strong`,null,t(n.fromStatus?a(S)(n.fromStatus):`—`)+` → `+t(a(S)(n.toStatus)),1),o(`span`,null,t(X(n.changedAt)),1)]),o(`p`,Ne,`توسط `+t(Ue(n.changedBy)),1),n.note?(e(),s(`p`,Pe,t(n.note),1)):m(``,!0),n.reason?(e(),s(`p`,Fe,`دلیل: `+t(n.reason),1)):m(``,!0)]))),128)),(e(!0),s(d,null,l(J.value,n=>(e(),s(`article`,{key:`note-${n.id}`,class:`admin-card checks-page__history-item`},[o(`div`,Ie,[o(`strong`,null,`یادداشت چک `+t(n.row),1),o(`span`,null,t(X(n.updatedAt)),1)]),c(C,{status:Y(n.status)},null,8,[`status`]),o(`p`,Le,t(n.notes),1)]))),128))]))],64)),(e(),ne(ee,{to:`body`},[H.value?(e(),s(`div`,{key:0,class:`checks-page__lightbox`,onClick:i[4]||=h(e=>H.value=null,[`self`])},[o(`button`,{type:`button`,class:`checks-page__lightbox-close`,onClick:i[3]||=e=>H.value=null},` بستن `),o(`img`,{src:H.value,alt:`پیش‌نمایش`},null,8,Re)])):m(``,!0)]))]))}}),[[`__scopeId`,`data-v-af5e25db`]]);export{F as default}; \ No newline at end of file diff --git a/dist/assets/CheckManagementView-D9Dy0r7I.js b/dist/assets/CheckManagementView-D9Dy0r7I.js deleted file mode 100644 index c7dc1c9..0000000 --- a/dist/assets/CheckManagementView-D9Dy0r7I.js +++ /dev/null @@ -1 +0,0 @@ -import{O as e,Ot as t,T as n,Tt as r,Z as i,a as ee,at as a,c as o,d as s,g as te,h as c,j as l,l as ne,m as u,r as d,s as f,t as p,u as m}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as re,I as ie,K as h,L as g,N as _,i as ae,m as v,n as y,r as b,x,y as oe,z as se}from"./index-CXa4EMLW.js";import{c as S}from"./orderStatus-CYVblRJB.js";import{t as C}from"./StatusBadge-Cg2zTE2k.js";var ce={class:`checks-page`},le={class:`admin-page-header`},ue={key:0,class:`checks-page__order-meta`},de={class:`checks-page__stats`},fe={class:`checks-page__stat`},pe={class:`checks-page__stat`},me={class:`checks-page__stat`},he={class:`checks-page__stat`},ge={class:`admin-tabs`},_e={key:0,class:`admin-empty-placeholder admin-card`},ve={key:1,class:`checks-page__list admin-card`},ye=[`onClick`],be={class:`check-row__chevron`,"aria-hidden":`true`},w=[`onClick`],T=[`src`],E={key:1,class:`check-row__thumb check-row__thumb--empty`},D={class:`check-row__meta`},O=[`disabled`,`onClick`],k=[`disabled`,`onClick`],A={key:0,class:`check-row__panel`},j={key:0,class:`check-row__fields`},M=[`dir`],N={key:1,class:`check-row__hint`},xe={class:`check-row__photos`},Se=[`onClick`],Ce=[`src`],we=[`onClick`],Te=[`src`],Ee={key:2,class:`check-row__hint`},De={class:`checks-page__footer`},Oe={class:`checks-page__note`},ke={class:`admin-action-group`},Ae=[`disabled`],je={key:0,class:`admin-empty-placeholder admin-card`},Me={key:1,class:`checks-page__history`},P={class:`checks-page__history-item-head`},Ne={class:`checks-page__history-meta`},Pe={key:0,class:`checks-page__history-note`},Fe={key:1,class:`checks-page__history-note`},Ie={class:`checks-page__history-item-head`},Le={class:`checks-page__history-note`},Re=[`src`],F=p(te({__name:`CheckManagementView`,setup(te){let p=re(),F=ie(),I=se(),L=i(`info`),R=i(null),z=i([]),B=i(null),V=i(null),H=i(null),U=f(()=>R.value?oe(R.value):null),ze=f(()=>z.value.reduce((e,t)=>e+t.amount,0)),W=f(()=>z.value.filter(e=>e.status===`pending_review`)),Be=f(()=>z.value.length>0&&z.value.every(e=>e.status===`approved`)),G=f(()=>!Be.value||!R.value?!1:(R.value.rawStatus??R.value.status)===`checks_approved`),K=i(!1),q=f(()=>{let e=R.value?.statusHistory??[],t=new Set([`check_in_progress`,`awaiting_check_review`,`check_needs_fix`,`check_rejected`,`checks_approved`]),n=e.filter(e=>t.has(e.toStatus)||e.fromStatus&&t.has(e.fromStatus)||/چک/.test(e.note||``)||/چک/.test(e.reason||``));return[...n.length?n:e].sort((e,t)=>new Date(t.changedAt).getTime()-new Date(e.changedAt).getTime())}),J=f(()=>z.value.filter(e=>e.notes?.trim()).map(e=>({id:e.id,row:e.row,status:e.status,notes:e.notes,updatedAt:e.updatedAt})));async function Ve(){let e=String(p.params.id);try{let[t,n]=await Promise.all([x.get(e),v.listByOrder(e)]);R.value=t,z.value=n,n.length===1&&(V.value=n[0].id)}catch(e){I.error(e instanceof _?e.message:`بارگذاری چک‌ها انجام نشد.`)}}n(()=>{Ve()});function He(){F.push(`/orders`)}function Y(e){return e===`approved`?`check_approved`:e===`rejected`?`check_rejected`:`pending_check_review`}function Ue(e){return e?e===`customer`?`مشتری`:e.startsWith(`admin:`)?`ادمین`:e:`—`}function X(e){return ae(e)}function We(e){return[e.ownerFirstName,e.ownerLastName].filter(Boolean).join(` `)}function Z(e){return[{label:`بانک`,value:e.bankName},{label:`شعبه`,value:e.branchName},{label:`شناسه صیادی`,value:e.sayadId,ltr:!0},{label:`شماره چک`,value:e.checkNumber,ltr:!0},{label:`صاحب چک`,value:We(e)},{label:`کد ملی`,value:e.ownerNationalId,ltr:!0},{label:`یادداشت`,value:e.notes}].filter(e=>!!e.value?.trim())}function Ge(e){V.value=V.value===e.id?null:e.id}async function Q(e,t){B.value=e.id;try{let n=await v.updateStatus(e.id,{status:t}),r=z.value.findIndex(t=>t.id===e.id);return r!==-1&&(z.value[r]=n),R.value=await x.get(String(p.params.id)),!0}catch(e){return I.error(e instanceof _?e.message:`به‌روزرسانی وضعیت چک انجام نشد.`),!1}finally{B.value=null}}async function $(e,t){if(t!==`approved`&&t!==`rejected`)return;let n=y(e.amount);await g(t===`approved`?{title:`تأیید چک`,message:`آیا از تأیید چک ردیف ${e.row} به مبلغ ${n} مطمئن هستید؟`,tone:`primary`,confirmLabel:`تأیید چک`,cancelLabel:`انصراف`}:{title:`رد چک`,message:`آیا از رد چک ردیف ${e.row} به مبلغ ${n} مطمئن هستید؟`,tone:`danger`,confirmLabel:`رد چک`,cancelLabel:`انصراف`})&&await Q(e,t)&&I.success(t===`approved`?`چک تأیید شد.`:`چک رد شد.`)}async function Ke(){let e=W.value;if(!e.length){I.error(`چکی برای تأیید وجود ندارد.`);return}if(await g({title:`تأیید همه چک‌ها`,message:`آیا از تأیید ${e.length} چک در انتظار بررسی مطمئن هستید؟`,tone:`primary`,confirmLabel:`تأیید همه`,cancelLabel:`انصراف`})){for(let t of e)if(!await Q(t,`approved`))return;I.success(`همه چک‌های در انتظار تأیید شدند.`)}}async function qe(){if(!(!R.value||K.value)&&await g({title:`تأیید نهایی سفارش`,message:`با تأیید نهایی، سفارش از مرحله بررسی چک خارج می‌شود و وارد آماده‌سازی می‌گردد. ادامه می‌دهید؟`,tone:`primary`,confirmLabel:`تأیید نهایی`,cancelLabel:`انصراف`})){K.value=!0;try{let e=await x.updateStatus(R.value.id,{status:`final_approved`,note:`تأیید نهایی پس از تأیید همه چک‌ها`});R.value=e,I.success(`سفارش تأیید نهایی شد.`)}catch(e){I.error(e instanceof _?e.message:`تأیید نهایی انجام نشد.`)}finally{K.value=!1}}}return(n,i)=>(e(),s(`div`,ce,[o(`div`,le,[i[5]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`مدیریت چک‌های سفارش`)],-1),U.value?(e(),s(`div`,ue,[c(C,{status:U.value.status},null,8,[`status`])])):m(``,!0)]),o(`div`,de,[o(`div`,fe,[i[6]||=o(`span`,null,`تعداد`,-1),o(`strong`,null,t(z.value.length),1)]),o(`div`,pe,[i[7]||=o(`span`,null,`راس`,-1),o(`strong`,null,t(R.value?.checkRassDays??`—`)+` روز`,1)]),o(`div`,me,[i[8]||=o(`span`,null,`مجموع چک`,-1),o(`strong`,null,t(a(y)(ze.value)),1)]),o(`div`,he,[i[9]||=o(`span`,null,`مبلغ سفارش`,-1),o(`strong`,null,t(U.value?.totalAmount?a(y)(U.value.totalAmount):`—`),1)])]),o(`div`,ge,[o(`button`,{type:`button`,class:r([`admin-tab`,{active:L.value===`info`}]),onClick:i[0]||=e=>L.value=`info`},` چک‌ها (`+t(z.value.length)+`) `,3),o(`button`,{type:`button`,class:r([`admin-tab`,{active:L.value===`history`}]),onClick:i[1]||=e=>L.value=`history`},` تاریخچه `,2)]),L.value===`info`?(e(),s(d,{key:0},[z.value.length?(e(),s(`div`,ve,[(e(!0),s(d,null,l(z.value,n=>(e(),s(`div`,{key:n.id,class:r([`check-row`,{open:V.value===n.id}])},[o(`button`,{type:`button`,class:`check-row__main`,onClick:e=>Ge(n)},[o(`span`,be,t(V.value===n.id?`▾`:`◂`),1),n.frontImage||n.backImage?(e(),s(`span`,{key:0,class:`check-row__thumb`,onClick:h(e=>H.value=n.frontImage||n.backImage,[`stop`])},[o(`img`,{src:n.frontImage||n.backImage,alt:``},null,8,T)],8,w)):(e(),s(`span`,E,`بدون عکس`)),o(`span`,D,[o(`strong`,null,`چک `+t(n.row),1),o(`small`,null,[u(t(a(y)(n.amount))+` `,1),n.bankName?(e(),s(d,{key:0},[u(` · `+t(n.bankName),1)],64)):m(``,!0),u(` · `+t(a(b)(n.dueDate)),1)])]),c(C,{status:Y(n.status)},null,8,[`status`])],8,ye),o(`div`,{class:`check-row__actions`,onClick:i[2]||=h(()=>{},[`stop`])},[n.status===`pending_review`?(e(),s(d,{key:0},[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:B.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,O),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:B.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,k)],64)):m(``,!0)]),V.value===n.id?(e(),s(`div`,A,[Z(n).length?(e(),s(`div`,j,[(e(!0),s(d,null,l(Z(n),n=>(e(),s(`div`,{key:n.label,class:`check-row__field`},[o(`span`,null,t(n.label),1),o(`strong`,{dir:n.ltr?`ltr`:void 0},t(n.value),9,M)]))),128))])):(e(),s(`p`,N,`جزئیات متنی بیشتری ثبت نشده است.`)),o(`div`,xe,[n.frontImage?(e(),s(`button`,{key:0,type:`button`,class:`check-row__photo`,onClick:e=>H.value=n.frontImage},[o(`img`,{src:n.frontImage,alt:`روی چک`},null,8,Ce),i[10]||=o(`span`,null,`روی`,-1)],8,Se)):m(``,!0),n.backImage?(e(),s(`button`,{key:1,type:`button`,class:`check-row__photo`,onClick:e=>H.value=n.backImage},[o(`img`,{src:n.backImage,alt:`پشت چک`},null,8,Te),i[11]||=o(`span`,null,`پشت`,-1)],8,we)):m(``,!0),!n.frontImage&&!n.backImage?(e(),s(`p`,Ee,` تصویری ثبت نشده. `)):m(``,!0)])])):m(``,!0)],2))),128))])):(e(),s(`div`,_e,` چکی برای این سفارش ثبت نشده است. `)),o(`div`,De,[o(`p`,Oe,[G.value?(e(),s(d,{key:0},[u(` همه چک‌ها تأیید شده‌اند. برای ادامه، تأیید نهایی سفارش را ثبت کنید. `)],64)):R.value?.checkRassDate?(e(),s(d,{key:1},[u(` راس: `+t(a(b)(R.value.checkRassDate)),1)],64)):(e(),s(d,{key:2},[u(`راس بر اساس تاریخ ثبت سفارش محاسبه می‌شود.`)],64))]),o(`div`,ke,[G.value?(e(),s(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:K.value,onClick:qe},t(K.value?`در حال ثبت…`:`تأیید نهایی سفارش`),9,Ae)):m(``,!0),W.value.length?(e(),s(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,onClick:Ke},` تأیید همه چک‌ها `)):m(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:He},` بازگشت `)])])],64)):(e(),s(d,{key:1},[!q.value.length&&!J.value.length?(e(),s(`div`,je,` هنوز تاریخچه‌ای ثبت نشده است. `)):(e(),s(`div`,Me,[(e(!0),s(d,null,l(q.value,n=>(e(),s(`article`,{key:n.id,class:`admin-card checks-page__history-item`},[o(`div`,P,[o(`strong`,null,t(n.fromStatus?a(S)(n.fromStatus):`—`)+` → `+t(a(S)(n.toStatus)),1),o(`span`,null,t(X(n.changedAt)),1)]),o(`p`,Ne,`توسط `+t(Ue(n.changedBy)),1),n.note?(e(),s(`p`,Pe,t(n.note),1)):m(``,!0),n.reason?(e(),s(`p`,Fe,`دلیل: `+t(n.reason),1)):m(``,!0)]))),128)),(e(!0),s(d,null,l(J.value,n=>(e(),s(`article`,{key:`note-${n.id}`,class:`admin-card checks-page__history-item`},[o(`div`,Ie,[o(`strong`,null,`یادداشت چک `+t(n.row),1),o(`span`,null,t(X(n.updatedAt)),1)]),c(C,{status:Y(n.status)},null,8,[`status`]),o(`p`,Le,t(n.notes),1)]))),128))]))],64)),(e(),ne(ee,{to:`body`},[H.value?(e(),s(`div`,{key:0,class:`checks-page__lightbox`,onClick:i[4]||=h(e=>H.value=null,[`self`])},[o(`button`,{type:`button`,class:`checks-page__lightbox-close`,onClick:i[3]||=e=>H.value=null},` بستن `),o(`img`,{src:H.value,alt:`پیش‌نمایش`},null,8,Re)])):m(``,!0)]))]))}}),[[`__scopeId`,`data-v-af5e25db`]]);export{F as default}; \ No newline at end of file diff --git a/dist/assets/ChecksListView-Bmazx0UH.js b/dist/assets/ChecksListView-Bmazx0UH.js new file mode 100644 index 0000000..f5b2e2d --- /dev/null +++ b/dist/assets/ChecksListView-Bmazx0UH.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,V as r,Z as i,at as a,c as o,d as s,g as ee,h as c,j as l,l as u,r as d,s as f,t as p,u as m}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as te,f as ne,t as h}from"./http-Djf2pGxE.js";import{L as re,_ as g,i as _,o as v,w as ie,z as ae}from"./index-CznUUXv3.js";import{t as oe}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as se}from"./AdminSelect-DK-_otkw.js";import{t as y}from"./StatusBadge-Cg2zTE2k.js";var ce={class:`checks-list-page`},le={class:`admin-page-header`},b={class:`checks-list-page__summary`},x={key:0},S={class:`checks-list-page__filters admin-card`},C={class:`checks-list-page__search`},w={class:`checks-list-page__table admin-card desktop-only`},T={class:`admin-table-wrap`},E={class:`admin-table`},D=[`onClick`],O={dir:`ltr`},k={class:`admin-action-group`},A=[`disabled`,`onClick`],j=[`disabled`,`onClick`],M=[`onClick`],N={key:0,class:`checks-list-page__empty`},P={class:`compact-only admin-card-list`},F={class:`admin-card-item__header`},ue={class:`admin-card-item__title`},I={class:`admin-card-item__meta`},L={key:0},R={class:`admin-card-item__actions`},z=[`disabled`,`onClick`],B=[`disabled`,`onClick`],V=[`onClick`],H={key:0,class:`checks-list-page__empty`},U=p(ee({__name:`ChecksListView`,setup(ee){let p=ae(),U=te(),W=i([]),G=i(!0),K=i(``),q=i(`all`),J=i(null),de=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار بررسی`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`}],Y=f(()=>{let e=W.value;q.value!==`all`&&(e=e.filter(e=>e.status===q.value));let t=K.value.trim();return t&&(e=e.filter(e=>(e.orderNumber??``).includes(t)||(e.customerName??``).includes(t)||(e.bankName??``).includes(t)||(e.sayadId??``).includes(t))),e}),X=f(()=>W.value.filter(e=>e.status===`pending_review`).length);function Z(e){return e===`approved`?`final_approval`:e===`rejected`?`needs_correction`:`pending_check_review`}async function fe(){let e=await ie.list();W.value=e.flatMap(e=>(e.checks??[]).map(t=>({...t,orderNumber:e.orderNumber,customerName:e.customerName,orderStatus:e.status,settlementType:e.settlementMethod??e.settlementType??null})))}async function pe(){G.value=!0;try{W.value=await g.list()}catch{try{await fe()}catch(e){U.error(e instanceof h?e.message:`بارگذاری چک‌ها انجام نشد.`)}}finally{G.value=!1}}n(()=>{pe()});function Q(e){p.push(`/orders/${e.orderId}/checks`)}async function $(e,t){J.value=e.id;try{let n=await g.updateStatus(e.id,{status:t}),r=W.value.findIndex(t=>t.id===e.id);r!==-1&&(W.value[r]={...W.value[r],...n,orderNumber:e.orderNumber,customerName:e.customerName,orderStatus:e.orderStatus,settlementType:e.settlementType}),U.success(t===`approved`?`چک تأیید شد.`:`چک رد شد.`)}catch(e){U.error(e instanceof h?e.message:`به‌روزرسانی وضعیت چک انجام نشد.`)}finally{J.value=null}}return(n,i)=>(e(),s(`div`,ce,[o(`div`,le,[i[2]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`چک‌ها`)],-1),o(`div`,b,[o(`span`,null,t(W.value.length)+` چک`,1),X.value?(e(),s(`span`,x,t(X.value)+` در انتظار بررسی`,1)):m(``,!0)])]),o(`div`,S,[o(`div`,C,[c(re,{name:`search`,size:18}),r(o(`input`,{"onUpdate:modelValue":i[0]||=e=>K.value=e,type:`search`,class:`checks-list-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، بانک، صیاد...`},null,512),[[ne,K.value]])]),c(se,{modelValue:q.value,"onUpdate:modelValue":i[1]||=e=>q.value=e,class:`checks-list-page__status-select`,"aria-label":`فیلتر وضعیت چک`,options:de},null,8,[`modelValue`])]),G.value?(e(),u(oe,{key:0,variant:`table`})):(e(),s(d,{key:1},[o(`div`,w,[o(`div`,T,[o(`table`,E,[i[3]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`شماره سفارش`),o(`th`,null,`مشتری`),o(`th`,null,`ردیف`),o(`th`,null,`مبلغ`),o(`th`,null,`بانک`),o(`th`,null,`شناسه صیادی`),o(`th`,null,`سررسید`),o(`th`,null,`وضعیت`),o(`th`,null,`عملیات`)])],-1),o(`tbody`,null,[(e(!0),s(d,null,l(Y.value,n=>(e(),s(`tr`,{key:n.id},[o(`td`,null,[o(`button`,{type:`button`,class:`checks-list-page__order-link`,onClick:e=>Q(n)},t(n.orderNumber||n.orderId),9,D)]),o(`td`,null,t(n.customerName||`—`),1),o(`td`,null,t(n.row),1),o(`td`,null,t(a(_)(n.amount)),1),o(`td`,null,t(n.bankName||`—`),1),o(`td`,O,t(n.sayadId||`—`),1),o(`td`,null,t(n.dueDate.slice(0,10)),1),o(`td`,null,[c(y,{status:Z(n.status)},null,8,[`status`])]),o(`td`,null,[o(`div`,k,[n.status===`pending_review`?(e(),s(d,{key:0},[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,A),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,j)],64)):m(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:e=>Q(n)},` جزئیات سفارش `,8,M)])])]))),128))])])]),Y.value.length?m(``,!0):(e(),s(`p`,N,` چکی با این فیلتر یافت نشد. `))]),o(`div`,P,[(e(!0),s(d,null,l(Y.value,n=>(e(),s(`article`,{key:n.id,class:`admin-card-item`},[o(`div`,F,[o(`p`,ue,t(n.orderNumber||n.orderId)+` — چک `+t(n.row),1),c(y,{status:Z(n.status)},null,8,[`status`])]),o(`div`,I,[o(`span`,null,t(n.customerName||`—`),1),o(`span`,null,t(a(_)(n.amount)),1),o(`span`,null,t(n.bankName||`—`),1),o(`span`,null,`سررسید `+t(n.dueDate.slice(0,10)),1),n.createdAt?(e(),s(`span`,L,`ثبت `+t(a(v)(n.createdAt)),1)):m(``,!0)]),o(`div`,R,[n.status===`pending_review`?(e(),s(d,{key:0},[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,z),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,B)],64)):m(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:e=>Q(n)},` جزئیات سفارش `,8,V)])]))),128)),Y.value.length?m(``,!0):(e(),s(`p`,H,` چکی با این فیلتر یافت نشد. `))])],64))]))}}),[[`__scopeId`,`data-v-09633f1f`]]);export{U as default}; \ No newline at end of file diff --git a/dist/assets/ChecksListView-DgtZLWw5.js b/dist/assets/ChecksListView-DgtZLWw5.js deleted file mode 100644 index 3e64e1f..0000000 --- a/dist/assets/ChecksListView-DgtZLWw5.js +++ /dev/null @@ -1 +0,0 @@ -import{O as e,Ot as t,T as n,V as r,Z as i,at as a,c as o,d as s,g as ee,h as c,j as l,l as u,r as d,s as f,t as p,u as m}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{I as te,N as h,P as ne,W as re,i as ie,m as g,n as _,x as ae,z as oe}from"./index-CXa4EMLW.js";import{t as se}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as ce}from"./AdminSelect-9UfEJQzN.js";import{t as v}from"./StatusBadge-Cg2zTE2k.js";var le={class:`checks-list-page`},y={class:`admin-page-header`},b={class:`checks-list-page__summary`},x={key:0},S={class:`checks-list-page__filters admin-card`},C={class:`checks-list-page__search`},w={class:`checks-list-page__table admin-card desktop-only`},T={class:`admin-table-wrap`},E={class:`admin-table`},D=[`onClick`],O={dir:`ltr`},k={class:`admin-action-group`},A=[`disabled`,`onClick`],j=[`disabled`,`onClick`],M=[`onClick`],N={key:0,class:`checks-list-page__empty`},P={class:`compact-only admin-card-list`},F={class:`admin-card-item__header`},ue={class:`admin-card-item__title`},I={class:`admin-card-item__meta`},L={key:0},R={class:`admin-card-item__actions`},z=[`disabled`,`onClick`],B=[`disabled`,`onClick`],V=[`onClick`],H={key:0,class:`checks-list-page__empty`},U=p(ee({__name:`ChecksListView`,setup(ee){let p=te(),U=oe(),W=i([]),G=i(!0),K=i(``),q=i(`all`),J=i(null),de=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار بررسی`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`}],Y=f(()=>{let e=W.value;q.value!==`all`&&(e=e.filter(e=>e.status===q.value));let t=K.value.trim();return t&&(e=e.filter(e=>(e.orderNumber??``).includes(t)||(e.customerName??``).includes(t)||(e.bankName??``).includes(t)||(e.sayadId??``).includes(t))),e}),X=f(()=>W.value.filter(e=>e.status===`pending_review`).length);function Z(e){return e===`approved`?`final_approval`:e===`rejected`?`needs_correction`:`pending_check_review`}async function fe(){let e=await ae.list();W.value=e.flatMap(e=>(e.checks??[]).map(t=>({...t,orderNumber:e.orderNumber,customerName:e.customerName,orderStatus:e.status,settlementType:e.settlementMethod??e.settlementType??null})))}async function pe(){G.value=!0;try{W.value=await g.list()}catch{try{await fe()}catch(e){U.error(e instanceof h?e.message:`بارگذاری چک‌ها انجام نشد.`)}}finally{G.value=!1}}n(()=>{pe()});function Q(e){p.push(`/orders/${e.orderId}/checks`)}async function $(e,t){J.value=e.id;try{let n=await g.updateStatus(e.id,{status:t}),r=W.value.findIndex(t=>t.id===e.id);r!==-1&&(W.value[r]={...W.value[r],...n,orderNumber:e.orderNumber,customerName:e.customerName,orderStatus:e.orderStatus,settlementType:e.settlementType}),U.success(t===`approved`?`چک تأیید شد.`:`چک رد شد.`)}catch(e){U.error(e instanceof h?e.message:`به‌روزرسانی وضعیت چک انجام نشد.`)}finally{J.value=null}}return(n,i)=>(e(),s(`div`,le,[o(`div`,y,[i[2]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`چک‌ها`)],-1),o(`div`,b,[o(`span`,null,t(W.value.length)+` چک`,1),X.value?(e(),s(`span`,x,t(X.value)+` در انتظار بررسی`,1)):m(``,!0)])]),o(`div`,S,[o(`div`,C,[c(ne,{name:`search`,size:18}),r(o(`input`,{"onUpdate:modelValue":i[0]||=e=>K.value=e,type:`search`,class:`checks-list-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، بانک، صیاد...`},null,512),[[re,K.value]])]),c(ce,{modelValue:q.value,"onUpdate:modelValue":i[1]||=e=>q.value=e,class:`checks-list-page__status-select`,"aria-label":`فیلتر وضعیت چک`,options:de},null,8,[`modelValue`])]),G.value?(e(),u(se,{key:0,variant:`table`})):(e(),s(d,{key:1},[o(`div`,w,[o(`div`,T,[o(`table`,E,[i[3]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`شماره سفارش`),o(`th`,null,`مشتری`),o(`th`,null,`ردیف`),o(`th`,null,`مبلغ`),o(`th`,null,`بانک`),o(`th`,null,`شناسه صیادی`),o(`th`,null,`سررسید`),o(`th`,null,`وضعیت`),o(`th`,null,`عملیات`)])],-1),o(`tbody`,null,[(e(!0),s(d,null,l(Y.value,n=>(e(),s(`tr`,{key:n.id},[o(`td`,null,[o(`button`,{type:`button`,class:`checks-list-page__order-link`,onClick:e=>Q(n)},t(n.orderNumber||n.orderId),9,D)]),o(`td`,null,t(n.customerName||`—`),1),o(`td`,null,t(n.row),1),o(`td`,null,t(a(_)(n.amount)),1),o(`td`,null,t(n.bankName||`—`),1),o(`td`,O,t(n.sayadId||`—`),1),o(`td`,null,t(n.dueDate.slice(0,10)),1),o(`td`,null,[c(v,{status:Z(n.status)},null,8,[`status`])]),o(`td`,null,[o(`div`,k,[n.status===`pending_review`?(e(),s(d,{key:0},[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,A),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,j)],64)):m(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:e=>Q(n)},` جزئیات سفارش `,8,M)])])]))),128))])])]),Y.value.length?m(``,!0):(e(),s(`p`,N,` چکی با این فیلتر یافت نشد. `))]),o(`div`,P,[(e(!0),s(d,null,l(Y.value,n=>(e(),s(`article`,{key:n.id,class:`admin-card-item`},[o(`div`,F,[o(`p`,ue,t(n.orderNumber||n.orderId)+` — چک `+t(n.row),1),c(v,{status:Z(n.status)},null,8,[`status`])]),o(`div`,I,[o(`span`,null,t(n.customerName||`—`),1),o(`span`,null,t(a(_)(n.amount)),1),o(`span`,null,t(n.bankName||`—`),1),o(`span`,null,`سررسید `+t(n.dueDate.slice(0,10)),1),n.createdAt?(e(),s(`span`,L,`ثبت `+t(a(ie)(n.createdAt)),1)):m(``,!0)]),o(`div`,R,[n.status===`pending_review`?(e(),s(d,{key:0},[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,z),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,B)],64)):m(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:e=>Q(n)},` جزئیات سفارش `,8,V)])]))),128)),Y.value.length?m(``,!0):(e(),s(`p`,H,` چکی با این فیلتر یافت نشد. `))])],64))]))}}),[[`__scopeId`,`data-v-09633f1f`]]);export{U as default}; \ No newline at end of file diff --git a/dist/assets/CompaniesView-C28l_bkY.js b/dist/assets/CompaniesView-C28l_bkY.js deleted file mode 100644 index 85ec57b..0000000 --- a/dist/assets/CompaniesView-C28l_bkY.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,O as t,Ot as n,T as ee,V as r,Y as i,Z as a,c as o,d as s,g as te,h as c,j as l,l as u,m as d,r as f,s as p,t as m,u as h}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{I as ne,K as re,L as ie,N as g,R as ae,T as oe,W as _,h as v,z as se}from"./index-CXa4EMLW.js";import{t as ce}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as le}from"./BaseSwitch-TV5Yvtf7.js";import{t as ue}from"./BaseEmptyState-BmO9aDcK.js";import{t as y}from"./ActiveSwitchCell-DJZQHZ-8.js";var de={class:`companies-page`},fe={key:2,class:`companies-page__table admin-card desktop-only`},pe={class:`admin-table-wrap`},me={class:`admin-table`},he=[`src`,`alt`],ge={key:1,class:`company-logo company-logo--fallback`},_e={class:`numeric`},ve={class:`status`},ye={class:`actions`},be={class:`admin-action-group`},xe=[`onClick`],b=[`onClick`],x={key:3,class:`compact-only admin-card-list`},S={class:`admin-card-item__header`},C={class:`companies-page__card-logo`},w=[`src`,`alt`],T={key:1,class:`company-logo company-logo--fallback`},E={class:`admin-card-item__title`},D={class:`companies-page__card-desc`},O={class:`admin-card-item__meta`},k={class:`admin-card-item__actions`},A=[`onClick`],j=[`onClick`],M={key:0,class:`admin-form__error`,role:`alert`},Se={class:`admin-form__field`},Ce={class:`logo-upload`},we={key:0,class:`logo-upload__preview-wrap`},Te=[`src`],Ee={key:1,class:`logo-upload__dropzone`,for:`company-logo-file`},De={class:`admin-form__field`},Oe={class:`admin-form__field`},N={class:`admin-form__row`},ke={class:`admin-form__field`},Ae={class:`admin-form__field`},je=[`disabled`],Me=2097152,P=m(te({__name:`CompaniesView`,setup(te){let m=[`image/png`,`image/jpeg`,`image/webp`,`image/svg+xml`],P=ne(),F=se(),I=a([]),L=a(!0),R=a(null),z=a(null),B=a(null),V=a(null),H=a(!1);async function Ne(){L.value=!0;try{I.value=await v.list()}catch(e){F.error(e instanceof g?e.message:`بارگذاری شرکت‌ها انجام نشد.`)}finally{L.value=!1}}ee(()=>{Ne()});let U=()=>({name:``,description:``,displayOrder:I.value.length+1,isActive:!0}),W=i(U()),G=a(``),Pe=p(()=>R.value!==null),Fe=p(()=>R.value===`edit`?`ویرایش شرکت`:`افزودن شرکت`),Ie=p(()=>R.value===`edit`?`ذخیره تغییرات`:`ثبت شرکت`),Le=p(()=>W.name.trim().length>0&&B.value!==null);function K(){B.value=null,V.value&&(V.value.value=``)}function q(){R.value=`add`,z.value=null,Object.assign(W,U()),K(),G.value=``}function J(e){R.value=`edit`,z.value=e.id,W.name=e.name,W.description=e.description===`—`?``:e.description,W.displayOrder=e.displayOrder,W.isActive=e.isActive,B.value=e.logoUrl,V.value&&(V.value.value=``),G.value=``}function Y(){R.value=null,z.value=null,G.value=``,K()}function Re(e){let t=e.target.files?.[0];if(!t)return;if(!m.includes(t.type)){G.value=`فرمت مجاز: PNG، JPG، WEBP یا SVG`;return}if(t.size>Me){G.value=`حداکثر حجم تصویر ۲ مگابایت است.`;return}G.value=``;let n=new FileReader;n.onload=()=>{B.value=n.result},n.readAsDataURL(t)}async function ze(){B.value&&await ie({title:`حذف تصویر`,message:`آیا از حذف لوگوی شرکت مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&K()}async function X(){let e=W.name.trim();if(!e){G.value=`نام شرکت الزامی است.`;return}if(!B.value){G.value=`آپلود لوگو الزامی است.`;return}if(I.value.some(t=>t.name===e&&t.id!==z.value)){G.value=`شرکتی با این نام قبلاً ثبت شده است.`;return}H.value=!0;try{if(R.value===`edit`&&z.value){let t=await v.update(z.value,{name:e,description:W.description.trim()||void 0,displayOrder:Number(W.displayOrder)||1,isActive:W.isActive,logoUrl:B.value}),n=I.value.findIndex(e=>e.id===z.value);n!==-1&&(I.value[n]={...I.value[n],...t}),F.success(`اطلاعات شرکت به‌روزرسانی شد.`)}else{let t=await v.create({name:e,slug:oe(e),description:W.description.trim()||void 0,displayOrder:Number(W.displayOrder)||I.value.length+1,isActive:W.isActive,logoUrl:B.value});I.value.push(t),F.success(`شرکت جدید ثبت شد.`)}Y()}catch(e){F.error(e instanceof g?e.message:`ذخیره شرکت انجام نشد.`)}finally{H.value=!1}}async function Z(e,t){await v.setActive(e,t)}function Q(e){P.push(`/companies/${e}/accounts`)}function $(e){return e.trim().charAt(0)||`؟`}return(ee,i)=>(t(),s(`div`,de,[o(`div`,{class:`admin-page-header`},[i[5]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`مدیریت شرکت‌ها`)],-1),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` افزودن شرکت `)]),L.value?(t(),u(ce,{key:0,variant:`table`})):I.value.length?(t(),s(`div`,fe,[o(`div`,pe,[o(`table`,me,[i[6]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`لوگو`),o(`th`,{class:`numeric`},`ترتیب`),o(`th`,{class:`status`},`وضعیت`),o(`th`,null,`توضیحات`),o(`th`,null,`نام شرکت`),o(`th`,{class:`actions`},`عملیات`)])],-1),o(`tbody`,null,[(t(!0),s(f,null,l(I.value,e=>(t(),s(`tr`,{key:e.id},[o(`td`,null,[e.logoUrl?(t(),s(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,he)):(t(),s(`div`,ge,n($(e.name)),1))]),o(`td`,_e,n(e.displayOrder),1),o(`td`,ve,[c(y,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`شرکت`,persist:Z},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),o(`td`,null,n(e.description),1),o(`td`,null,n(e.name),1),o(`td`,ye,[o(`div`,be,[o(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,xe),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,b)])])]))),128))])])])])):(t(),u(ue,{key:1,class:`admin-card`,icon:`companies`,title:`شرکتی ثبت نشده`,description:`برای شروع، اولین شرکت را ثبت کنید.`},{default:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:q},` افزودن شرکت `)]),_:1})),!L.value&&I.value.length?(t(),s(`div`,x,[(t(!0),s(f,null,l(I.value,e=>(t(),s(`article`,{key:e.id,class:`admin-card-item`},[o(`div`,S,[o(`div`,C,[e.logoUrl?(t(),s(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,w)):(t(),s(`div`,T,n($(e.name)),1)),o(`div`,null,[o(`p`,E,n(e.name),1),o(`p`,D,n(e.description),1)])]),c(y,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`شرکت`,persist:Z},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),o(`div`,O,[o(`span`,null,`ترتیب: `+n(e.displayOrder),1)]),o(`div`,k,[o(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,A),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,j)])]))),128))])):h(``,!0),c(ae,{open:Pe.value,title:Fe.value,onClose:Y},{footer:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Y},` انصراف `),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Le.value||H.value,onClick:X},n(Ie.value),9,je)]),default:e(()=>[o(`form`,{class:`admin-form`,onSubmit:re(X,[`prevent`])},[G.value?(t(),s(`p`,M,n(G.value),1)):h(``,!0),o(`div`,Se,[i[8]||=o(`label`,null,[d(`لوگو `),o(`span`,{class:`admin-form__required`},`*`)],-1),o(`div`,Ce,[B.value?(t(),s(`div`,we,[o(`img`,{src:B.value,alt:`پیش‌نمایش لوگو`,class:`logo-upload__preview`},null,8,Te),o(`button`,{type:`button`,class:`logo-upload__remove`,onClick:ze},` حذف تصویر `)])):(t(),s(`label`,Ee,[...i[7]||=[o(`span`,{class:`logo-upload__icon`},`+`,-1),o(`span`,{class:`logo-upload__text`},`انتخاب یا رها کردن تصویر لوگو`,-1),o(`span`,{class:`logo-upload__hint`},`PNG، JPG، WEBP یا SVG — حداکثر ۲ مگابایت`,-1)]])),o(`input`,{id:`company-logo-file`,ref_key:`logoInputRef`,ref:V,type:`file`,accept:`image/png,image/jpeg,image/webp,image/svg+xml`,class:`logo-upload__input`,onChange:Re},null,544),B.value?(t(),s(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm logo-upload__change`,onClick:i[0]||=e=>V.value?.click()},` تغییر تصویر `)):h(``,!0)])]),o(`div`,De,[i[9]||=o(`label`,{for:`company-name`},[d(`نام شرکت `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`company-name`,"onUpdate:modelValue":i[1]||=e=>W.name=e,type:`text`,class:`admin-input`,placeholder:`مثال: شرکت پَر`,autocomplete:`off`},null,512),[[_,W.name]])]),o(`div`,Oe,[i[10]||=o(`label`,{for:`company-description`},`توضیحات`,-1),r(o(`textarea`,{id:`company-description`,"onUpdate:modelValue":i[2]||=e=>W.description=e,class:`admin-form__textarea`,placeholder:`تولید و عرضه انواع پارچه`,rows:`3`},null,512),[[_,W.description]])]),o(`div`,N,[o(`div`,ke,[i[11]||=o(`label`,{for:`company-order`},`ترتیب نمایش`,-1),r(o(`input`,{id:`company-order`,"onUpdate:modelValue":i[3]||=e=>W.displayOrder=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[_,W.displayOrder,void 0,{number:!0}]])]),o(`div`,Ae,[c(le,{modelValue:W.isActive,"onUpdate:modelValue":i[4]||=e=>W.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-b4857c22`]]);export{P as default}; \ No newline at end of file diff --git a/dist/assets/CompaniesView-CS8K7UTP.js b/dist/assets/CompaniesView-CS8K7UTP.js new file mode 100644 index 0000000..a22bca7 --- /dev/null +++ b/dist/assets/CompaniesView-CS8K7UTP.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as ee,V as r,Y as i,Z as a,c as o,d as s,g as te,h as c,j as l,l as u,m as d,r as f,s as p,t as m,u as h}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as ne,f as g,m as re,t as _}from"./http-Djf2pGxE.js";import{B as ie,O as ae,V as oe,v,z as se}from"./index-CznUUXv3.js";import{t as ce}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as le}from"./BaseSwitch-TV5Yvtf7.js";import{t as ue}from"./BaseEmptyState-D6sk-aI_.js";import{t as y}from"./ActiveSwitchCell-CLCpM6ho.js";var de={class:`companies-page`},fe={key:2,class:`companies-page__table admin-card desktop-only`},pe={class:`admin-table-wrap`},me={class:`admin-table`},he=[`src`,`alt`],ge={key:1,class:`company-logo company-logo--fallback`},_e={class:`numeric`},ve={class:`status`},ye={class:`actions`},be={class:`admin-action-group`},xe=[`onClick`],b=[`onClick`],x={key:3,class:`compact-only admin-card-list`},S={class:`admin-card-item__header`},C={class:`companies-page__card-logo`},w=[`src`,`alt`],T={key:1,class:`company-logo company-logo--fallback`},E={class:`admin-card-item__title`},D={class:`companies-page__card-desc`},O={class:`admin-card-item__meta`},k={class:`admin-card-item__actions`},A=[`onClick`],j=[`onClick`],M={key:0,class:`admin-form__error`,role:`alert`},Se={class:`admin-form__field`},Ce={class:`logo-upload`},we={key:0,class:`logo-upload__preview-wrap`},Te=[`src`],Ee={key:1,class:`logo-upload__dropzone`,for:`company-logo-file`},De={class:`admin-form__field`},Oe={class:`admin-form__field`},N={class:`admin-form__row`},ke={class:`admin-form__field`},Ae={class:`admin-form__field`},je=[`disabled`],Me=2097152,P=m(te({__name:`CompaniesView`,setup(te){let m=[`image/png`,`image/jpeg`,`image/webp`,`image/svg+xml`],P=se(),F=ne(),I=a([]),L=a(!0),R=a(null),z=a(null),B=a(null),V=a(null),H=a(!1);async function Ne(){L.value=!0;try{I.value=await v.list()}catch(e){F.error(e instanceof _?e.message:`بارگذاری شرکت‌ها انجام نشد.`)}finally{L.value=!1}}ee(()=>{Ne()});let U=()=>({name:``,description:``,displayOrder:I.value.length+1,isActive:!0}),W=i(U()),G=a(``),Pe=p(()=>R.value!==null),Fe=p(()=>R.value===`edit`?`ویرایش شرکت`:`افزودن شرکت`),Ie=p(()=>R.value===`edit`?`ذخیره تغییرات`:`ثبت شرکت`),Le=p(()=>W.name.trim().length>0&&B.value!==null);function K(){B.value=null,V.value&&(V.value.value=``)}function q(){R.value=`add`,z.value=null,Object.assign(W,U()),K(),G.value=``}function J(e){R.value=`edit`,z.value=e.id,W.name=e.name,W.description=e.description===`—`?``:e.description,W.displayOrder=e.displayOrder,W.isActive=e.isActive,B.value=e.logoUrl,V.value&&(V.value.value=``),G.value=``}function Y(){R.value=null,z.value=null,G.value=``,K()}function Re(e){let t=e.target.files?.[0];if(!t)return;if(!m.includes(t.type)){G.value=`فرمت مجاز: PNG، JPG، WEBP یا SVG`;return}if(t.size>Me){G.value=`حداکثر حجم تصویر ۲ مگابایت است.`;return}G.value=``;let n=new FileReader;n.onload=()=>{B.value=n.result},n.readAsDataURL(t)}async function ze(){B.value&&await ie({title:`حذف تصویر`,message:`آیا از حذف لوگوی شرکت مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&K()}async function X(){let e=W.name.trim();if(!e){G.value=`نام شرکت الزامی است.`;return}if(!B.value){G.value=`آپلود لوگو الزامی است.`;return}if(I.value.some(t=>t.name===e&&t.id!==z.value)){G.value=`شرکتی با این نام قبلاً ثبت شده است.`;return}H.value=!0;try{if(R.value===`edit`&&z.value){let t=await v.update(z.value,{name:e,description:W.description.trim()||void 0,displayOrder:Number(W.displayOrder)||1,isActive:W.isActive,logoUrl:B.value}),n=I.value.findIndex(e=>e.id===z.value);n!==-1&&(I.value[n]={...I.value[n],...t}),F.success(`اطلاعات شرکت به‌روزرسانی شد.`)}else{let t=await v.create({name:e,slug:ae(e),description:W.description.trim()||void 0,displayOrder:Number(W.displayOrder)||I.value.length+1,isActive:W.isActive,logoUrl:B.value});I.value.push(t),F.success(`شرکت جدید ثبت شد.`)}Y()}catch(e){F.error(e instanceof _?e.message:`ذخیره شرکت انجام نشد.`)}finally{H.value=!1}}async function Z(e,t){await v.setActive(e,t)}function Q(e){P.push(`/companies/${e}/accounts`)}function $(e){return e.trim().charAt(0)||`؟`}return(ee,i)=>(t(),s(`div`,de,[o(`div`,{class:`admin-page-header`},[i[5]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`مدیریت شرکت‌ها`)],-1),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` افزودن شرکت `)]),L.value?(t(),u(ce,{key:0,variant:`table`})):I.value.length?(t(),s(`div`,fe,[o(`div`,pe,[o(`table`,me,[i[6]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`لوگو`),o(`th`,{class:`numeric`},`ترتیب`),o(`th`,{class:`status`},`وضعیت`),o(`th`,null,`توضیحات`),o(`th`,null,`نام شرکت`),o(`th`,{class:`actions`},`عملیات`)])],-1),o(`tbody`,null,[(t(!0),s(f,null,l(I.value,e=>(t(),s(`tr`,{key:e.id},[o(`td`,null,[e.logoUrl?(t(),s(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,he)):(t(),s(`div`,ge,n($(e.name)),1))]),o(`td`,_e,n(e.displayOrder),1),o(`td`,ve,[c(y,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`شرکت`,persist:Z},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),o(`td`,null,n(e.description),1),o(`td`,null,n(e.name),1),o(`td`,ye,[o(`div`,be,[o(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,xe),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,b)])])]))),128))])])])])):(t(),u(ue,{key:1,class:`admin-card`,icon:`companies`,title:`شرکتی ثبت نشده`,description:`برای شروع، اولین شرکت را ثبت کنید.`},{default:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:q},` افزودن شرکت `)]),_:1})),!L.value&&I.value.length?(t(),s(`div`,x,[(t(!0),s(f,null,l(I.value,e=>(t(),s(`article`,{key:e.id,class:`admin-card-item`},[o(`div`,S,[o(`div`,C,[e.logoUrl?(t(),s(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,w)):(t(),s(`div`,T,n($(e.name)),1)),o(`div`,null,[o(`p`,E,n(e.name),1),o(`p`,D,n(e.description),1)])]),c(y,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`شرکت`,persist:Z},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),o(`div`,O,[o(`span`,null,`ترتیب: `+n(e.displayOrder),1)]),o(`div`,k,[o(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,A),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,j)])]))),128))])):h(``,!0),c(oe,{open:Pe.value,title:Fe.value,onClose:Y},{footer:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Y},` انصراف `),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Le.value||H.value,onClick:X},n(Ie.value),9,je)]),default:e(()=>[o(`form`,{class:`admin-form`,onSubmit:re(X,[`prevent`])},[G.value?(t(),s(`p`,M,n(G.value),1)):h(``,!0),o(`div`,Se,[i[8]||=o(`label`,null,[d(`لوگو `),o(`span`,{class:`admin-form__required`},`*`)],-1),o(`div`,Ce,[B.value?(t(),s(`div`,we,[o(`img`,{src:B.value,alt:`پیش‌نمایش لوگو`,class:`logo-upload__preview`},null,8,Te),o(`button`,{type:`button`,class:`logo-upload__remove`,onClick:ze},` حذف تصویر `)])):(t(),s(`label`,Ee,[...i[7]||=[o(`span`,{class:`logo-upload__icon`},`+`,-1),o(`span`,{class:`logo-upload__text`},`انتخاب یا رها کردن تصویر لوگو`,-1),o(`span`,{class:`logo-upload__hint`},`PNG، JPG، WEBP یا SVG — حداکثر ۲ مگابایت`,-1)]])),o(`input`,{id:`company-logo-file`,ref_key:`logoInputRef`,ref:V,type:`file`,accept:`image/png,image/jpeg,image/webp,image/svg+xml`,class:`logo-upload__input`,onChange:Re},null,544),B.value?(t(),s(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm logo-upload__change`,onClick:i[0]||=e=>V.value?.click()},` تغییر تصویر `)):h(``,!0)])]),o(`div`,De,[i[9]||=o(`label`,{for:`company-name`},[d(`نام شرکت `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`company-name`,"onUpdate:modelValue":i[1]||=e=>W.name=e,type:`text`,class:`admin-input`,placeholder:`مثال: شرکت پَر`,autocomplete:`off`},null,512),[[g,W.name]])]),o(`div`,Oe,[i[10]||=o(`label`,{for:`company-description`},`توضیحات`,-1),r(o(`textarea`,{id:`company-description`,"onUpdate:modelValue":i[2]||=e=>W.description=e,class:`admin-form__textarea`,placeholder:`تولید و عرضه انواع پارچه`,rows:`3`},null,512),[[g,W.description]])]),o(`div`,N,[o(`div`,ke,[i[11]||=o(`label`,{for:`company-order`},`ترتیب نمایش`,-1),r(o(`input`,{id:`company-order`,"onUpdate:modelValue":i[3]||=e=>W.displayOrder=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[g,W.displayOrder,void 0,{number:!0}]])]),o(`div`,Ae,[c(le,{modelValue:W.isActive,"onUpdate:modelValue":i[4]||=e=>W.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-b4857c22`]]);export{P as default}; \ No newline at end of file diff --git a/dist/assets/CustomersView-D2DfLX0j.js b/dist/assets/CustomersView-D2DfLX0j.js deleted file mode 100644 index 18f3608..0000000 --- a/dist/assets/CustomersView-D2DfLX0j.js +++ /dev/null @@ -1 +0,0 @@ -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}; \ No newline at end of file diff --git a/dist/assets/CustomersView-D5oj1Urm.js b/dist/assets/CustomersView-D5oj1Urm.js new file mode 100644 index 0000000..14a5ecb --- /dev/null +++ b/dist/assets/CustomersView-D5oj1Urm.js @@ -0,0 +1 @@ +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{a as x,f as S,m as C,t as w}from"./http-Djf2pGxE.js";import{L as T,T as E,V as D,j as O,o as ee,p as k,s as te,x as ne,y as A}from"./index-CznUUXv3.js";import{t as re}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as ie}from"./BaseSwitch-TV5Yvtf7.js";import{t as ae}from"./BaseEmptyState-D6sk-aI_.js";import{t as j}from"./AdminSelect-DK-_otkw.js";import{r as M}from"./adminLabels-Cz9ccm1Z.js";import{t as N}from"./ActiveSwitchCell-CLCpM6ho.js";var P={class:`suggestions-panel`},F={key:0,class:`suggestions-panel__loading`},I={class:`suggestions-panel__add`},L={class:`field`},R={key:0,class:`suggestions-panel__picked`},z=[`onClick`],B={class:`field`},V=[`disabled`],H={key:0,class:`suggestions-panel__list`},U={class:`muted`,dir:`ltr`},W={key:0,class:`note`},G={class:`suggestions-panel__actions`},K=[`onClick`],q={key:1,class:`suggestions-panel__empty`},oe=y(f({__name:`CustomerSuggestionsPanel`,props:{customerId:{}},setup(e){let s=e,l=x(),f=c(!0),h=c(!1),y=c([]),C=c([]),T=c([]),D=c(``),ee=v(()=>C.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([O.list(s.customerId),E.list()]);y.value=e,C.value=t}catch(e){l.error(e instanceof w?e.message:`بارگذاری پیشنهادها ناموفق بود`)}finally{f.value=!1}}}async function te(){if(T.value.length){h.value=!0;try{for(let e of T.value)await O.create({customerId:s.customerId,productId:e,note:D.value.trim()||void 0});T.value=[],D.value=``,l.success(`پیشنهادها به صفحه خانه مشتری اضافه شد`),await k()}catch(e){l.error(e instanceof w?e.message:`ثبت پیشنهاد ناموفق بود`)}finally{h.value=!1}}}async function ne(e){try{await O.setActive(e.id,!e.isActive),await k()}catch(e){l.error(e instanceof w?e.message:`به‌روزرسانی ناموفق بود`)}}function A(e){e&&(T.value.includes(e)||(T.value=[...T.value,e]))}function re(e){T.value=T.value.filter(t=>t!==e)}return r(()=>s.customerId,()=>{k()}),i(()=>{k()}),(e,r)=>(t(),d(`section`,P,[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`,F,`در حال بارگذاری...`)):(t(),d(_,{key:1},[u(`div`,I,[u(`label`,L,[r[1]||=g(` افزودن محصول (کد کالیته) `,-1),p(j,{"model-value":``,options:[{value:``,label:`انتخاب محصول...`},...ee.value],"onUpdate:modelValue":A},null,8,[`options`])]),T.value.length?(t(),d(`div`,R,[(t(!0),d(_,null,m(T.value,e=>(t(),d(`span`,{key:e,class:`suggestions-panel__chip`},[g(n(C.value.find(t=>t.id===e)?.productCode||e)+` `,1),u(`button`,{type:`button`,"aria-label":`حذف`,onClick:t=>re(e)},`×`,8,z)]))),128))])):b(``,!0),u(`label`,B,[r[2]||=g(` یادداشت (اختیاری) `,-1),o(u(`textarea`,{"onUpdate:modelValue":r[0]||=e=>D.value=e,class:`admin-input`,rows:`2`,placeholder:`دلیل پیشنهاد برای مشتری`},null,512),[[S,D.value]])]),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!T.value.length||h.value,onClick:te},` افزودن به صفحه خانه مشتری `,8,V)]),y.value.length?(t(),d(`div`,H,[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`,U,`(`+n(e.productCode)+`)`,1),e.note?(t(),d(`p`,W,n(e.note),1)):b(``,!0)]),u(`div`,G,[u(`span`,{class:a(e.isActive?`on`:`off`)},n(e.isActive?`فعال`:`غیرفعال`),3),u(`button`,{type:`button`,class:`link`,onClick:t=>ne(e)},n(e.isActive?`حذف از خانه`:`فعال‌سازی`),9,K)])]))),128))])])):(t(),d(`p`,q,`هنوز پیشنهادی برای این مشتری ثبت نشده است.`))],64))]))}}),[[`__scopeId`,`data-v-4182e847`]]),se={class:`customers-page`},ce={class:`admin-page-header`},le={class:`customers-page__tabs`,role:`tablist`,"aria-label":`نوع کاربر`},ue=[`aria-selected`],de=[`aria-selected`],fe={class:`customers-page__search admin-card`},pe={key:2,class:`customers-page__table admin-card desktop-only`},me={class:`admin-table-wrap`},he={class:`admin-table`},ge={key:0},_e={key:1},ve={key:2},ye={key:3},be={key:4},xe={key:0},Se={key:1},Ce={key:2},we={key:3},Te={key:4},Ee={class:`numeric`},De={class:`numeric`},Oe={class:`status`},ke={class:`actions`},Ae=[`onClick`],je={key:3,class:`compact-only admin-card-list`},Me={class:`admin-card-item__header`},Ne={class:`admin-card-item__title`},Pe={class:`admin-card-item__header-actions`},Fe=[`onClick`],Ie={class:`admin-card-item__meta`},Le={key:0},Re={key:1},ze={key:2},Be={key:3},Ve={key:4},He={key:0,class:`admin-form__error`,role:`alert`},Ue={class:`admin-form__field`},We={class:`admin-form__row`},Ge={class:`admin-form__field`},Ke={class:`admin-form__field`},qe={class:`admin-form__row`},Je={class:`admin-form__field`},Ye={class:`admin-form__field`},Xe={class:`admin-form__row`},Ze={class:`admin-form__field`},Qe={class:`admin-form__field`},$e={class:`admin-form__row`},et={class:`admin-form__field`},tt={key:0,class:`admin-form__field`},nt={key:1,class:`admin-form__field`},rt={class:`customers-page__brands`},it=[`checked`,`onChange`],at={class:`admin-form__field`},ot=[`disabled`],st={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},J=y(f({__name:`CustomersView`,setup(r){let f=c([]),y=c([]),E=c([]),O=c([]),P=c(``),F=c(`customer`),I=c(!0),L=c(null),R=c(null),z=c(``),B=c(!1),V=x();function H(e){if(e==null)return`-`;if(typeof e==`number`)return Number.isFinite(e)?String(e):`-`;let t=e.trim();return!t||t===`—`?`-`:t}function U(e){return e==null||!Number.isFinite(e)?`-`:te(e)}let W=[{value:`wholesale`,label:`عمده‌فروش`},{value:`retail`,label:`خرده‌فروش`}],G=[{value:`customer`,label:`مشتری`},{value:`agent`,label:`واسطه`}],K={customer:`مشتری`,agent:`واسطه`};function q(e){return K[e===`agent`?`agent`:`customer`]}let J=v(()=>[{value:``,label:`بدون سطح`},...y.value.map(e=>({value:e.id,label:e.label}))]),ct=v(()=>[{value:``,label:`بدون واسطه`},...E.value.filter(e=>e.id!==R.value).map(e=>({value:e.id,label:e.name+(e.agentCode?` (${e.agentCode})`:``)}))]),Y=()=>({name:``,phone:``,nationalId:``,customerType:`wholesale`,companyName:``,isActive:!0,levelDefId:``,assignedAgentId:``,brandIds:[],appRole:`customer`,agentCode:``}),X=s(Y()),lt=v(()=>L.value!==null),ut=v(()=>L.value===`edit`?`ویرایش مشتری`:`افزودن مشتری`),dt=v(()=>X.name.trim()&&X.phone.trim()&&X.nationalId.trim()),Z=v(()=>{let e=P.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 ft(e,t){t?X.brandIds.includes(e)||X.brandIds.push(e):X.brandIds=X.brandIds.filter(t=>t!==e)}async function pt(){I.value=!0;try{f.value=await A.list(void 0,F.value)}catch(e){V.error(e instanceof w?e.message:F.value===`agent`?`بارگذاری واسطه‌ها انجام نشد.`:`بارگذاری مشتریان انجام نشد.`)}finally{I.value=!1}}function Q(e){F.value!==e&&(F.value=e,P.value=``,pt())}async function mt(){try{let[e,t,n]=await Promise.all([ne.list(),A.list(void 0,`agent`),k.list()]);y.value=e,E.value=t,O.value=n}catch(e){V.error(e instanceof w?e.message:`بارگذاری اطلاعات کمکی انجام نشد.`)}}i(()=>{pt(),mt()});function ht(){L.value=`add`,R.value=null,Object.assign(X,Y()),X.appRole=F.value,z.value=``}function gt(e){L.value=`edit`,R.value=e.id,X.name=e.name,X.phone=e.phone,X.nationalId=e.nationalId,X.customerType=e.customerType,X.companyName=e.companyName,X.isActive=e.isActive,X.levelDefId=e.levelDefId??``,X.assignedAgentId=e.assignedAgentId??``,X.brandIds=[...e.brandIds??[]],X.appRole=e.appRole===`agent`?`agent`:`customer`,X.agentCode=e.agentCode??``,z.value=``}function $(){L.value=null,R.value=null,z.value=``}async function _t(){if(!dt.value){z.value=`نام، تلفن و شناسه ملی الزامی هستند.`;return}B.value=!0;let e={name:X.name.trim(),phone:X.phone.trim(),nationalId:X.nationalId.trim(),customerType:X.customerType,isActive:X.isActive,levelDefId:X.levelDefId||null,assignedAgentId:X.assignedAgentId||null,brandIds:[...X.brandIds],appRole:X.appRole,agentCode:X.appRole===`agent`&&X.agentCode.trim()||null};try{if(L.value===`edit`&&R.value){let t=await A.update(R.value,e),n=f.value.findIndex(e=>e.id===R.value);n!==-1&&(f.value[n]={...f.value[n],...t})}else{let t=await A.create(e);f.value.unshift(t)}V.success(L.value===`edit`?`اطلاعات مشتری به‌روزرسانی شد.`:`مشتری جدید ثبت شد.`),$(),e.appRole===`agent`&&mt()}catch(e){V.error(e instanceof w?e.message:`ذخیره مشتری انجام نشد.`)}finally{B.value=!1}}async function vt(e,t){await A.setActive(e,t)}function yt(){P.value=``}return(r,i)=>(t(),d(`div`,se,[u(`div`,ce,[i[13]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`مشتریان و واسطه‌ها`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:ht},n(F.value===`agent`?`افزودن واسطه`:`افزودن مشتری`),1)]),u(`div`,le,[u(`button`,{type:`button`,role:`tab`,class:a([`customers-page__tab`,{"is-active":F.value===`customer`}]),"aria-selected":F.value===`customer`,onClick:i[0]||=e=>Q(`customer`)},` مشتریان `,10,ue),u(`button`,{type:`button`,role:`tab`,class:a([`customers-page__tab`,{"is-active":F.value===`agent`}]),"aria-selected":F.value===`agent`,onClick:i[1]||=e=>Q(`agent`)},` واسطه‌ها `,10,de)]),u(`div`,fe,[p(T,{name:`search`,size:18}),o(u(`input`,{"onUpdate:modelValue":i[2]||=e=>P.value=e,type:`search`,class:`customers-page__search-input`,placeholder:`جستجو در نام، تلفن، شناسه ملی...`},null,512),[[S,P.value]])]),I.value?(t(),h(re,{key:0,variant:`table`})):Z.value.length?(t(),d(`div`,pe,[u(`div`,me,[u(`table`,he,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,n(F.value===`agent`?`نام واسطه`:`نام مشتری`),1),i[14]||=u(`th`,null,`تلفن`,-1),i[15]||=u(`th`,null,`نقش`,-1),F.value===`agent`?(t(),d(`th`,ge,`کد واسطه`)):b(``,!0),F.value===`customer`?(t(),d(`th`,_e,`نوع`)):b(``,!0),F.value===`customer`?(t(),d(`th`,ve,`سطح`)):b(``,!0),F.value===`customer`?(t(),d(`th`,ye,`واسطه`)):b(``,!0),F.value===`customer`?(t(),d(`th`,be,`شرکت`)):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(Z.value,e=>(t(),d(`tr`,{key:e.id},[u(`td`,null,n(H(e.name)),1),u(`td`,null,n(H(e.phone)),1),u(`td`,null,n(q(e.appRole)),1),F.value===`agent`?(t(),d(`td`,xe,n(H(e.agentCode)),1)):b(``,!0),F.value===`customer`?(t(),d(`td`,Se,n(H(l(M)[e.customerType])),1)):b(``,!0),F.value===`customer`?(t(),d(`td`,Ce,n(H(e.levelLabel)),1)):b(``,!0),F.value===`customer`?(t(),d(`td`,we,n(H(e.assignedAgentName)),1)):b(``,!0),F.value===`customer`?(t(),d(`td`,Te,n(H(e.companyName)),1)):b(``,!0),u(`td`,Ee,n(H(e.orderCount)),1),u(`td`,De,n(U(e.totalMeterage)),1),u(`td`,Oe,[p(N,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`مشتری`,persist:vt},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),u(`td`,null,n(H(l(ee)(e.registeredAt))),1),u(`td`,ke,[u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>gt(e)},` ویرایش `,8,Ae)])]))),128))])])])])):(t(),h(ae,{key:1,class:`admin-card`,icon:`customers`,title:P.value.trim()?`نتیجه‌ای یافت نشد`:F.value===`agent`?`واسطه‌ای ثبت نشده`:`مشتریان ثبت شده`,description:P.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:F.value===`agent`?`برای شروع، اولین واسطه را ثبت کنید.`:`برای شروع، اولین مشتری را ثبت کنید.`},{default:e(()=>[P.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:ht},n(F.value===`agent`?`افزودن واسطه`:`افزودن مشتری`),1))]),_:1},8,[`title`,`description`])),!I.value&&Z.value.length?(t(),d(`div`,je,[(t(!0),d(_,null,m(Z.value,e=>(t(),d(`article`,{key:e.id,class:`admin-card-item`},[u(`div`,Me,[u(`p`,Ne,n(H(e.name)),1),u(`div`,Pe,[p(N,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`مشتری`,persist:vt},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`]),u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>gt(e)},` ویرایش `,8,Fe)])]),u(`div`,Ie,[u(`span`,null,n(H(e.phone)),1),F.value===`agent`?(t(),d(`span`,Le,`کد: `+n(H(e.agentCode)),1)):b(``,!0),F.value===`customer`?(t(),d(`span`,Re,n(H(l(M)[e.customerType])),1)):b(``,!0),F.value===`customer`?(t(),d(`span`,ze,n(H(e.levelLabel)),1)):b(``,!0),F.value===`customer`?(t(),d(`span`,Be,`واسطه: `+n(H(e.assignedAgentName)),1)):b(``,!0),F.value===`customer`?(t(),d(`span`,Ve,n(H(e.companyName)),1)):b(``,!0),u(`span`,null,n(H(e.orderCount))+` سفارش · `+n(U(e.totalMeterage)),1)])]))),128))])):b(``,!0),p(D,{open:lt.value,title:ut.value,size:`lg`,onClose:$},{footer:e(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:$},`انصراف`),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!dt.value||B.value,onClick:_t},[B.value?(t(),d(`span`,st)):b(``,!0),g(` `+n(L.value===`edit`?`ذخیره تغییرات`:X.appRole===`agent`?`ثبت واسطه`:`ثبت مشتری`),1)],8,ot)]),default:e(()=>[u(`form`,{class:`admin-form`,onSubmit:C(_t,[`prevent`])},[z.value?(t(),d(`p`,He,n(z.value),1)):b(``,!0),u(`div`,Ue,[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=>X.name=e,type:`text`,class:`admin-input`},null,512),[[S,X.name]])]),u(`div`,We,[u(`div`,Ge,[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=>X.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[S,X.phone]])]),u(`div`,Ke,[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=>X.nationalId=e,type:`text`,class:`admin-input`,inputmode:`numeric`,dir:`ltr`},null,512),[[S,X.nationalId]])])]),u(`div`,qe,[u(`div`,Je,[i[24]||=u(`label`,null,`نوع مشتری`,-1),p(j,{modelValue:X.customerType,"onUpdate:modelValue":i[6]||=e=>X.customerType=e,block:``,"aria-label":`نوع مشتری`,options:W},null,8,[`modelValue`])]),u(`div`,Ye,[i[25]||=u(`label`,{for:`customer-company`},`شرکت مرتبط`,-1),o(u(`input`,{id:`customer-company`,"onUpdate:modelValue":i[7]||=e=>X.companyName=e,type:`text`,class:`admin-input`},null,512),[[S,X.companyName]])])]),u(`div`,Xe,[u(`div`,Ze,[i[26]||=u(`label`,null,`سطح`,-1),p(j,{modelValue:X.levelDefId,"onUpdate:modelValue":i[8]||=e=>X.levelDefId=e,block:``,"aria-label":`سطح مشتری`,options:J.value},null,8,[`modelValue`,`options`])]),u(`div`,Qe,[i[27]||=u(`label`,null,`واسطه`,-1),p(j,{modelValue:X.assignedAgentId,"onUpdate:modelValue":i[9]||=e=>X.assignedAgentId=e,block:``,"aria-label":`واسطه اختصاص‌یافته`,options:ct.value},null,8,[`modelValue`,`options`])])]),u(`div`,$e,[u(`div`,et,[i[28]||=u(`label`,null,`نقش در اپ`,-1),p(j,{modelValue:X.appRole,"onUpdate:modelValue":i[10]||=e=>X.appRole=e,block:``,"aria-label":`نقش در اپ`,options:G},null,8,[`modelValue`])]),X.appRole===`agent`?(t(),d(`div`,tt,[i[29]||=u(`label`,{for:`customer-agent-code`},`کد واسطه`,-1),o(u(`input`,{id:`customer-agent-code`,"onUpdate:modelValue":i[11]||=e=>X.agentCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[S,X.agentCode]])])):b(``,!0)]),O.value.length?(t(),d(`div`,nt,[i[30]||=u(`label`,null,`برندها`,-1),u(`div`,rt,[(t(!0),d(_,null,m(O.value,e=>(t(),d(`label`,{key:e.id,class:`customers-page__brand`},[u(`input`,{type:`checkbox`,checked:X.brandIds.includes(e.id),onChange:t=>ft(e.id,t.target.checked)},null,40,it),u(`span`,null,n(e.name),1)]))),128))])])):b(``,!0),u(`div`,at,[p(ie,{modelValue:X.isActive,"onUpdate:modelValue":i[12]||=e=>X.isActive=e,label:`وضعیت`},null,8,[`modelValue`])]),L.value===`edit`&&R.value&&X.appRole===`customer`?(t(),h(oe,{key:2,"customer-id":R.value},null,8,[`customer-id`])):b(``,!0)],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-db05c8d1`]]);export{J as default}; \ No newline at end of file diff --git a/dist/assets/DashboardView-BEyyH9tP.js b/dist/assets/DashboardView-BEyyH9tP.js new file mode 100644 index 0000000..e2a1010 --- /dev/null +++ b/dist/assets/DashboardView-BEyyH9tP.js @@ -0,0 +1 @@ +import{B as e,Dt as t,N as n,O as r,Ot as i,T as a,Tt as o,Z as s,at as c,c as l,d as u,g as d,h as f,j as p,l as m,m as h,r as g,s as _,t as v,u as y}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as b,t as x}from"./http-Djf2pGxE.js";import{L as S,S as C,b as w,c as T,i as E,o as D,z as O}from"./index-CznUUXv3.js";import{t as k}from"./StatusBadge-Cg2zTE2k.js";var ee={class:`sales-chart`},A={key:0,class:`sales-chart__header`},j={key:0,class:`sales-chart__title`},M={key:1,class:`sales-chart__subtitle`},N=[`viewBox`,`aria-label`],te=[`x1`,`x2`,`y1`,`y2`],P=[`points`],F=[`points`],I=[`x1`,`x2`,`y1`,`y2`],L=[`cx`,`cy`],R={class:`sales-chart__tooltip-label`},z={key:1,class:`sales-chart__axis`},B=320,V=120,H=v(d({__name:`SalesAreaChart`,props:{data:{},title:{},subtitle:{},height:{default:160},color:{default:`#091d36`},unit:{default:`میلیارد تومان`},labels:{}},setup(e){let n=e,a=s(null),o={top:12,right:8,bottom:8,left:8},d=_(()=>Math.max(...n.data,.001)),f=_(()=>{let e=B-o.left-o.right,t=V-o.top-o.bottom,r=e/Math.max(n.data.length-1,1);return n.data.map((e,n)=>({x:o.left+n*r,y:o.top+t-e/d.value*t,value:e,index:n}))}),m=_(()=>f.value.map(e=>`${e.x},${e.y}`).join(` `)),h=_(()=>{let e=V-o.bottom,t=f.value[0],n=f.value[f.value.length-1];return!t||!n?``:`${t.x},${e} ${m.value} ${n.x},${e}`}),v=_(()=>{let e=V-o.top-o.bottom;return[0,.5,1].map(t=>o.top+e*t)}),b=_(()=>a.value===null?null:f.value[a.value]??null);function x(e){let t=e.currentTarget.getBoundingClientRect(),n=(e.clientX-t.left)/t.width*B,r=0,i=1/0;f.value.forEach(e=>{let t=Math.abs(e.x-n);t(r(),u(`div`,ee,[e.title||e.subtitle?(r(),u(`div`,A,[l(`div`,null,[e.title?(r(),u(`h3`,j,i(e.title),1)):y(``,!0),e.subtitle?(r(),u(`p`,M,i(e.subtitle),1)):y(``,!0)])])):y(``,!0),l(`div`,{class:`sales-chart__body`,style:t({height:`${e.height}px`})},[(r(),u(`svg`,{class:`sales-chart__svg`,viewBox:`0 0 ${B} ${V}`,preserveAspectRatio:`none`,role:`img`,"aria-label":e.title||`نمودار فروش`,onMousemove:x,onMouseleave:S},[(r(!0),u(g,null,p(v.value,(e,t)=>(r(),u(`line`,{key:t,x1:o.left,x2:B-o.right,y1:e,y2:e,class:`sales-chart__grid`},null,8,te))),128)),h.value?(r(),u(`polygon`,{key:0,points:h.value,class:`sales-chart__area`,style:t({fill:`${e.color}22`})},null,12,P)):y(``,!0),l(`polyline`,{points:m.value,class:`sales-chart__line`,style:t({stroke:e.color})},null,12,F),b.value?(r(),u(g,{key:1},[l(`line`,{x1:b.value.x,x2:b.value.x,y1:o.top,y2:V-o.bottom,class:`sales-chart__cursor`},null,8,I),l(`circle`,{cx:b.value.x,cy:b.value.y,r:`4`,class:`sales-chart__dot`,style:t({fill:e.color})},null,12,L)],64)):y(``,!0)],40,N)),b.value?(r(),u(`div`,{key:0,class:`sales-chart__tooltip`,style:t({left:`${b.value.x/B*100}%`})},[l(`span`,R,i(e.labels?.[b.value.index]??`روز ${b.value.index+1}`),1),l(`strong`,null,i(c(T)(b.value.value))+` `+i(e.unit),1)],4)):y(``,!0)],4),e.labels?.length?(r(),u(`div`,z,[(r(!0),u(g,null,p(e.labels,(e,t)=>(r(),u(`span`,{key:t},i(e),1))),128))])):y(``,!0)]))}}),[[`__scopeId`,`data-v-36d15f13`]]),U={info:`var(--color-info-light)`,warning:`var(--color-warning-light)`,purple:`var(--color-purple-light)`,success:`var(--color-success-light)`},W={info:`var(--color-info)`,warning:`var(--color-warning-dark)`,purple:`var(--color-purple)`,success:`var(--color-success)`},G=()=>({newOrders:0,pendingReview:0,pendingCheck:0,finalApproval:0,todaySales:0,todaySalesGrowth:0,monthSales:0});function K(){let e=O(),t=b(),n=s(G()),r=s([]),i=s(Array.from({length:28},()=>0)),o=s([`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`]),c=s([]),l=s(!1),u=_(()=>[{label:`سفارش‌های جدید`,value:n.value.newOrders,icon:`cart`,tone:`info`,link:`/orders`},{label:`در انتظار بررسی`,value:n.value.pendingReview,icon:`file`,tone:`warning`,link:`/orders?tab=pending_review`},{label:`بررسی چک`,value:n.value.pendingCheck,icon:`wallet`,tone:`purple`,link:`/orders?tab=pending_check`},{label:`تأیید نهایی شده`,value:n.value.finalApproval,icon:`check-circle`,tone:`success`,link:`/orders?tab=final_approval`}]),d=_(()=>{let e=i.value;if(!e.length)return``;let t=Math.max(...e,.001),n=e.length>1?280/(e.length-1):280;return e.map((e,r)=>`${r*n},${120-e/t*110-5}`).join(` `)});async function f(){l.value=!0;try{let e=await w.get();n.value=e.stats,r.value=(e.recentOrders??[]).map(e=>C(e)),i.value=e.salesChartData?.length?e.salesChartData:Array.from({length:28},()=>0),o.value=e.chartAxisLabels?.length?e.chartAxisLabels:[`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`],c.value=e.checkDeadlines??[]}catch(e){t.error(e instanceof x?e.message:`بارگذاری داشبورد انجام نشد.`)}finally{l.value=!1}}a(()=>{f()});function p(){e.push(`/orders`)}return{checkDeadlines:c,dashboardStats:n,recentOrders:r,chartPoints:d,salesChartData:i,chartAxisLabels:o,statCards:u,loading:l,goOrders:p,loadDashboard:f}}var q={class:`dashboard`},J={class:`dashboard__toolbar`},Y={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},X={class:`dashboard__stats`},Z={class:`admin-stat-card__label`},Q={class:`admin-stat-card__value`},ne={class:`dashboard__sales-card admin-stat-card`},re={class:`dashboard__sales-header`},ie={class:`admin-stat-card__value dashboard__sales-value`},ae={class:`dashboard__sales-growth`},oe={class:`dashboard__grid`},se={class:`dashboard__chart-card admin-card`},ce={class:`dashboard__orders-card admin-card`},le={class:`admin-table-wrap`},ue={class:`admin-table admin-table--compact`},de={class:`dashboard__card-footer`},fe={class:`dashboard__checks-card admin-card`},pe={class:`dashboard__deadline-list`},me={class:`dashboard__deadline-count`},he={class:`dashboard__deadline-amount`},ge={class:`dashboard__card-footer`},_e=v(d({__name:`DesktopDashboard`,setup(a){let{checkDeadlines:s,dashboardStats:d,recentOrders:m,salesChartData:_,chartAxisLabels:v,goOrders:y,statCards:b}=K();return(a,x)=>{let C=n(`RouterLink`);return r(),u(`div`,q,[l(`div`,J,[l(`button`,Y,[f(S,{name:`calendar`,size:16}),x[1]||=h(` امروز `,-1)])]),l(`div`,X,[(r(!0),u(g,null,p(c(b),n=>(r(),u(`div`,{key:n.label,class:`admin-stat-card`},[l(`div`,{class:`admin-stat-card__icon`,style:t({background:c(U)[n.tone],color:c(W)[n.tone]})},[f(S,{name:n.icon,size:20},null,8,[`name`])],4),l(`p`,Z,i(n.label),1),l(`p`,Q,i(n.value),1),f(C,{to:n.link,class:`admin-stat-card__link`},{default:e(()=>[...x[2]||=[h(`مشاهده سفارش‌ها`,-1)]]),_:1},8,[`to`])]))),128)),l(`div`,ne,[l(`div`,re,[l(`div`,null,[x[3]||=l(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),l(`p`,ie,i(c(E)(c(d).todaySales)),1),l(`span`,ae,` +`+i(c(d).todaySalesGrowth)+`% نسبت به دیروز `,1)]),f(S,{name:`calendar`,size:20,class:`dashboard__sales-icon`})]),x[4]||=l(`svg`,{class:`dashboard__sparkline`,viewBox:`0 0 120 32`,preserveAspectRatio:`none`},[l(`polyline`,{fill:`none`,stroke:`#159660`,"stroke-width":`2`,points:`0,24 20,18 40,22 60,12 80,16 100,8 120,14`})],-1)])]),l(`div`,oe,[l(`div`,se,[f(H,{title:`فروش ماه جاری`,subtitle:c(E)(c(d).monthSales),data:c(_),labels:c(v),unit:`میلیارد`,height:168},null,8,[`subtitle`,`data`,`labels`])]),l(`div`,ce,[x[7]||=l(`div`,{class:`dashboard__card-header`},[l(`h2`,{class:`dashboard__card-title`},`سفارش‌های اخیر`)],-1),l(`div`,le,[l(`table`,ue,[x[5]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`شماره سفارش`),l(`th`,null,`مشتری`),l(`th`,null,`شرکت`),l(`th`,null,`وضعیت`),l(`th`,null,`تاریخ ثبت`)])],-1),l(`tbody`,null,[(r(!0),u(g,null,p(c(m),e=>(r(),u(`tr`,{key:e.id},[l(`td`,null,i(e.orderNumber),1),l(`td`,null,i(e.customerName),1),l(`td`,null,i(e.companyName),1),l(`td`,null,[f(k,{status:e.status},null,8,[`status`])]),l(`td`,null,i(c(D)(e.createdAt)),1)]))),128))])])]),l(`div`,de,[l(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:x[0]||=(...e)=>c(y)&&c(y)(...e)},[x[6]||=h(` مشاهده همه سفارش‌ها `,-1),f(S,{name:`chevron-left`,size:16})])])]),l(`div`,fe,[x[9]||=l(`div`,{class:`dashboard__card-header`},[l(`h2`,{class:`dashboard__card-title`},`سررسید چک‌ها`)],-1),l(`ul`,pe,[(r(!0),u(g,null,p(c(s),e=>(r(),u(`li`,{key:e.id,class:`dashboard__deadline-item`},[l(`span`,{class:o([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},i(e.label),3),l(`span`,me,i(e.count)+` فقره`,1),l(`span`,he,i(c(E)(e.amount)),1)]))),128))]),l(`div`,ge,[f(C,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm`},{default:e(()=>[x[8]||=h(` مشاهده همه `,-1),f(S,{name:`chevron-left`,size:16})]),_:1})])])])])}}}),[[`__scopeId`,`data-v-bf2ebdae`]]),ve={class:`compact-dashboard page-shell`},ye={class:`flex justify-end mb-3`},be={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},xe={class:`compact-stats-grid`},Se={class:`admin-stat-card__label`},Ce={class:`admin-stat-card__value`},we={class:`admin-stat-card col-span-full`},$={class:`admin-stat-card__value`},Te={class:`text-xs font-semibold text-success`},Ee={class:`compact-section-grid`},De={class:`compact-section-card admin-panel`},Oe={class:`compact-section-card admin-panel`},ke={class:`admin-card-list`},Ae={class:`admin-card-item__header`},je={class:`admin-card-item__title`},Me={class:`admin-card-item__meta`},Ne={class:`compact-section-card admin-panel`},Pe={class:`m-0 p-0 list-none flex flex-col gap-2.5`},Fe={class:`mr-auto text-xs`},Ie=d({__name:`CompactDashboard`,setup(a){let{checkDeadlines:s,dashboardStats:d,recentOrders:_,salesChartData:v,chartAxisLabels:y,goOrders:b,statCards:x}=K();return(a,C)=>{let w=n(`RouterLink`);return r(),u(`div`,ve,[l(`div`,ye,[l(`button`,be,[f(S,{name:`calendar`,size:16}),C[1]||=h(` امروز `,-1)])]),l(`div`,xe,[(r(!0),u(g,null,p(c(x),n=>(r(),u(`div`,{key:n.label,class:`admin-stat-card`},[l(`div`,{class:`admin-stat-card__icon`,style:t({background:c(U)[n.tone],color:c(W)[n.tone]})},[f(S,{name:n.icon,size:20},null,8,[`name`])],4),l(`p`,Se,i(n.label),1),l(`p`,Ce,i(n.value),1),f(w,{to:n.link,class:`admin-stat-card__link`},{default:e(()=>[...C[2]||=[h(`مشاهده`,-1)]]),_:1},8,[`to`])]))),128)),l(`div`,we,[C[3]||=l(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),l(`p`,$,i(c(E)(c(d).todaySales)),1),l(`span`,Te,` +`+i(c(d).todaySalesGrowth)+`% نسبت به دیروز `,1)])]),l(`div`,Ee,[l(`section`,De,[f(H,{title:`فروش ماه جاری`,subtitle:c(E)(c(d).monthSales),data:c(v),labels:c(y),unit:`میلیارد`,height:140},null,8,[`subtitle`,`data`,`labels`])]),l(`section`,Oe,[C[5]||=l(`h2`,{class:`compact-section-card__title`},`سفارش‌های اخیر`,-1),l(`div`,ke,[(r(!0),u(g,null,p(c(_),t=>(r(),m(w,{key:t.id,to:`/orders`,class:`admin-card-item block no-underline text-inherit`},{default:e(()=>[l(`div`,Ae,[l(`p`,je,i(t.orderNumber),1),f(k,{status:t.status},null,8,[`status`])]),l(`div`,Me,[l(`span`,null,i(t.customerName),1),l(`span`,null,i(c(D)(t.createdAt)),1)])]),_:2},1024))),128))]),l(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm inline-flex mt-3`,onClick:C[0]||=(...e)=>c(b)&&c(b)(...e)},[C[4]||=h(` مشاهده همه سفارش‌ها `,-1),f(S,{name:`chevron-left`,size:16})])]),l(`section`,Ne,[C[7]||=l(`h2`,{class:`compact-section-card__title`},`سررسید چک‌ها`,-1),l(`ul`,Pe,[(r(!0),u(g,null,p(c(s),e=>(r(),u(`li`,{key:e.id,class:`flex flex-wrap items-center gap-2 text-sm`},[l(`span`,{class:o([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},i(e.label),3),l(`span`,null,i(e.count)+` فقره`,1),l(`strong`,Fe,i(c(E)(e.amount)),1)]))),128))]),f(w,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm inline-flex mt-3 no-underline`},{default:e(()=>[C[6]||=h(` مشاهده همه `,-1),f(S,{name:`chevron-left`,size:16})]),_:1})])])])}}}),Le=d({__name:`DashboardView`,setup(e){return(e,t)=>(r(),u(g,null,[f(_e,{class:`desktop-only`}),f(Ie,{class:`compact-only`})],64))}});export{Le as default}; \ No newline at end of file diff --git a/dist/assets/DashboardView-Tmb__ujh.css b/dist/assets/DashboardView-CFmOMgpM.css similarity index 75% rename from dist/assets/DashboardView-Tmb__ujh.css rename to dist/assets/DashboardView-CFmOMgpM.css index 87dda20..e1a9aef 100644 --- a/dist/assets/DashboardView-Tmb__ujh.css +++ b/dist/assets/DashboardView-CFmOMgpM.css @@ -1 +1 @@ -.sales-chart__header[data-v-85c70c78]{margin-bottom:12px}.sales-chart__title[data-v-85c70c78]{margin:0;font-size:.9375rem;font-weight:700}.sales-chart__subtitle[data-v-85c70c78]{color:var(--color-text-muted);margin:4px 0 0;font-size:.8125rem}.sales-chart__body[data-v-85c70c78]{position:relative}.sales-chart__svg[data-v-85c70c78]{width:100%;height:100%;display:block}.sales-chart__grid[data-v-85c70c78]{stroke:var(--color-border);stroke-width:1px;stroke-dasharray:4 4}.sales-chart__line[data-v-85c70c78]{fill:none;stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round}.sales-chart__cursor[data-v-85c70c78]{stroke:var(--color-border);stroke-width:1px;stroke-dasharray:3 3}.sales-chart__dot[data-v-85c70c78]{stroke:#fff;stroke-width:2px}.sales-chart__tooltip[data-v-85c70c78]{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);min-width:120px;box-shadow:var(--shadow-sm);pointer-events:none;text-align:center;padding:8px 10px;position:absolute;top:8px;transform:translate(-50%)}.sales-chart__tooltip-label[data-v-85c70c78]{color:var(--color-text-muted);margin-bottom:2px;font-size:.6875rem;display:block}.sales-chart__tooltip strong[data-v-85c70c78]{font-size:.8125rem}.sales-chart__axis[data-v-85c70c78]{color:var(--color-text-muted);justify-content:space-between;margin-top:8px;font-size:.6875rem;display:flex}.dashboard__toolbar[data-v-bf2ebdae]{justify-content:flex-end;margin-bottom:16px;display:flex}.dashboard__stats[data-v-bf2ebdae]{grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:20px;display:grid}.dashboard__sales-header[data-v-bf2ebdae]{justify-content:space-between;align-items:flex-start;display:flex}.dashboard__sales-value[data-v-bf2ebdae]{font-size:1.25rem!important}.dashboard__sales-growth[data-v-bf2ebdae]{color:var(--color-success);font-size:.75rem;font-weight:600}.dashboard__sales-icon[data-v-bf2ebdae]{color:var(--color-text-muted)}.dashboard__sparkline[data-v-bf2ebdae]{width:100%;height:32px;margin-top:8px}.dashboard__grid[data-v-bf2ebdae]{grid-template-columns:1fr 1.4fr .9fr;gap:16px;display:grid}.dashboard__chart-card[data-v-bf2ebdae],.dashboard__orders-card[data-v-bf2ebdae],.dashboard__checks-card[data-v-bf2ebdae]{padding:20px}.dashboard__chart-card[data-v-bf2ebdae] .sales-chart__header{margin-bottom:0}.dashboard__card-header[data-v-bf2ebdae]{margin-bottom:16px}.dashboard__card-title[data-v-bf2ebdae]{margin:0;font-size:.9375rem;font-weight:700}.dashboard__card-value[data-v-bf2ebdae]{margin:4px 0 0;font-size:1.125rem;font-weight:700}.dashboard__chart[data-v-bf2ebdae]{width:100%;height:140px}.dashboard__chart-axis[data-v-bf2ebdae]{color:var(--color-text-muted);justify-content:space-between;margin-top:8px;font-size:.6875rem;display:flex}.dashboard__card-footer[data-v-bf2ebdae]{border-top:1px solid var(--color-border-light);justify-content:flex-start;margin-top:12px;padding-top:12px;display:flex}.dashboard__card-footer .admin-btn[data-v-bf2ebdae]{text-decoration:none}.dashboard__deadline-list[data-v-bf2ebdae]{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.dashboard__deadline-item[data-v-bf2ebdae]{grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;font-size:.8125rem;display:grid}.dashboard__deadline-count[data-v-bf2ebdae]{color:var(--color-text-muted)}.dashboard__deadline-amount[data-v-bf2ebdae]{font-size:.75rem;font-weight:600} +.sales-chart__header[data-v-36d15f13]{margin-bottom:12px}.sales-chart__title[data-v-36d15f13]{margin:0;font-size:.9375rem;font-weight:700}.sales-chart__subtitle[data-v-36d15f13]{color:var(--color-text-muted);margin:4px 0 0;font-size:.8125rem}.sales-chart__body[data-v-36d15f13]{position:relative}.sales-chart__svg[data-v-36d15f13]{width:100%;height:100%;display:block}.sales-chart__grid[data-v-36d15f13]{stroke:var(--color-border);stroke-width:1px;stroke-dasharray:4 4}.sales-chart__line[data-v-36d15f13]{fill:none;stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round}.sales-chart__cursor[data-v-36d15f13]{stroke:var(--color-border);stroke-width:1px;stroke-dasharray:3 3}.sales-chart__dot[data-v-36d15f13]{stroke:#fff;stroke-width:2px}.sales-chart__tooltip[data-v-36d15f13]{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);min-width:120px;box-shadow:var(--shadow-sm);pointer-events:none;text-align:center;padding:8px 10px;position:absolute;top:8px;transform:translate(-50%)}.sales-chart__tooltip-label[data-v-36d15f13]{color:var(--color-text-muted);margin-bottom:2px;font-size:.6875rem;display:block}.sales-chart__tooltip strong[data-v-36d15f13]{font-size:.8125rem}.sales-chart__axis[data-v-36d15f13]{color:var(--color-text-muted);justify-content:space-between;margin-top:8px;font-size:.6875rem;display:flex}.dashboard__toolbar[data-v-bf2ebdae]{justify-content:flex-end;margin-bottom:16px;display:flex}.dashboard__stats[data-v-bf2ebdae]{grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:20px;display:grid}.dashboard__sales-header[data-v-bf2ebdae]{justify-content:space-between;align-items:flex-start;display:flex}.dashboard__sales-value[data-v-bf2ebdae]{font-size:1.25rem!important}.dashboard__sales-growth[data-v-bf2ebdae]{color:var(--color-success);font-size:.75rem;font-weight:600}.dashboard__sales-icon[data-v-bf2ebdae]{color:var(--color-text-muted)}.dashboard__sparkline[data-v-bf2ebdae]{width:100%;height:32px;margin-top:8px}.dashboard__grid[data-v-bf2ebdae]{grid-template-columns:1fr 1.4fr .9fr;gap:16px;display:grid}.dashboard__chart-card[data-v-bf2ebdae],.dashboard__orders-card[data-v-bf2ebdae],.dashboard__checks-card[data-v-bf2ebdae]{padding:20px}.dashboard__chart-card[data-v-bf2ebdae] .sales-chart__header{margin-bottom:0}.dashboard__card-header[data-v-bf2ebdae]{margin-bottom:16px}.dashboard__card-title[data-v-bf2ebdae]{margin:0;font-size:.9375rem;font-weight:700}.dashboard__card-value[data-v-bf2ebdae]{margin:4px 0 0;font-size:1.125rem;font-weight:700}.dashboard__chart[data-v-bf2ebdae]{width:100%;height:140px}.dashboard__chart-axis[data-v-bf2ebdae]{color:var(--color-text-muted);justify-content:space-between;margin-top:8px;font-size:.6875rem;display:flex}.dashboard__card-footer[data-v-bf2ebdae]{border-top:1px solid var(--color-border-light);justify-content:flex-start;margin-top:12px;padding-top:12px;display:flex}.dashboard__card-footer .admin-btn[data-v-bf2ebdae]{text-decoration:none}.dashboard__deadline-list[data-v-bf2ebdae]{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.dashboard__deadline-item[data-v-bf2ebdae]{grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;font-size:.8125rem;display:grid}.dashboard__deadline-count[data-v-bf2ebdae]{color:var(--color-text-muted)}.dashboard__deadline-amount[data-v-bf2ebdae]{font-size:.75rem;font-weight:600} diff --git a/dist/assets/DashboardView-cyaZFrOQ.js b/dist/assets/DashboardView-cyaZFrOQ.js deleted file mode 100644 index 44fc2ee..0000000 --- a/dist/assets/DashboardView-cyaZFrOQ.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,Dt as t,N as n,O as r,Ot as i,T as a,Tt as o,Z as s,at as c,c as l,d as u,g as d,h as f,j as p,l as m,m as h,r as g,s as _,t as v,u as y}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{I as b,N as x,P as S,_ as C,i as w,n as T,o as E,y as D,z as O}from"./index-CXa4EMLW.js";import{t as k}from"./StatusBadge-Cg2zTE2k.js";var ee={class:`sales-chart`},A={key:0,class:`sales-chart__header`},j={key:0,class:`sales-chart__title`},M={key:1,class:`sales-chart__subtitle`},N=[`viewBox`,`aria-label`],te=[`x1`,`x2`,`y1`,`y2`],P=[`points`],F=[`points`],I=[`x1`,`x2`,`y1`,`y2`],L=[`cx`,`cy`],R={class:`sales-chart__tooltip-label`},z={key:1,class:`sales-chart__axis`},B=320,V=120,H=v(d({__name:`SalesAreaChart`,props:{data:{},title:{},subtitle:{},height:{default:160},color:{default:`#0a353c`},unit:{default:`میلیارد تومان`},labels:{}},setup(e){let n=e,a=s(null),o={top:12,right:8,bottom:8,left:8},d=_(()=>Math.max(...n.data,.001)),f=_(()=>{let e=B-o.left-o.right,t=V-o.top-o.bottom,r=e/Math.max(n.data.length-1,1);return n.data.map((e,n)=>({x:o.left+n*r,y:o.top+t-e/d.value*t,value:e,index:n}))}),m=_(()=>f.value.map(e=>`${e.x},${e.y}`).join(` `)),h=_(()=>{let e=V-o.bottom,t=f.value[0],n=f.value[f.value.length-1];return!t||!n?``:`${t.x},${e} ${m.value} ${n.x},${e}`}),v=_(()=>{let e=V-o.top-o.bottom;return[0,.5,1].map(t=>o.top+e*t)}),b=_(()=>a.value===null?null:f.value[a.value]??null);function x(e){let t=e.currentTarget.getBoundingClientRect(),n=(e.clientX-t.left)/t.width*B,r=0,i=1/0;f.value.forEach(e=>{let t=Math.abs(e.x-n);t(r(),u(`div`,ee,[e.title||e.subtitle?(r(),u(`div`,A,[l(`div`,null,[e.title?(r(),u(`h3`,j,i(e.title),1)):y(``,!0),e.subtitle?(r(),u(`p`,M,i(e.subtitle),1)):y(``,!0)])])):y(``,!0),l(`div`,{class:`sales-chart__body`,style:t({height:`${e.height}px`})},[(r(),u(`svg`,{class:`sales-chart__svg`,viewBox:`0 0 ${B} ${V}`,preserveAspectRatio:`none`,role:`img`,"aria-label":e.title||`نمودار فروش`,onMousemove:x,onMouseleave:S},[(r(!0),u(g,null,p(v.value,(e,t)=>(r(),u(`line`,{key:t,x1:o.left,x2:B-o.right,y1:e,y2:e,class:`sales-chart__grid`},null,8,te))),128)),h.value?(r(),u(`polygon`,{key:0,points:h.value,class:`sales-chart__area`,style:t({fill:`${e.color}22`})},null,12,P)):y(``,!0),l(`polyline`,{points:m.value,class:`sales-chart__line`,style:t({stroke:e.color})},null,12,F),b.value?(r(),u(g,{key:1},[l(`line`,{x1:b.value.x,x2:b.value.x,y1:o.top,y2:V-o.bottom,class:`sales-chart__cursor`},null,8,I),l(`circle`,{cx:b.value.x,cy:b.value.y,r:`4`,class:`sales-chart__dot`,style:t({fill:e.color})},null,12,L)],64)):y(``,!0)],40,N)),b.value?(r(),u(`div`,{key:0,class:`sales-chart__tooltip`,style:t({left:`${b.value.x/B*100}%`})},[l(`span`,R,i(e.labels?.[b.value.index]??`روز ${b.value.index+1}`),1),l(`strong`,null,i(c(E)(b.value.value))+` `+i(e.unit),1)],4)):y(``,!0)],4),e.labels?.length?(r(),u(`div`,z,[(r(!0),u(g,null,p(e.labels,(e,t)=>(r(),u(`span`,{key:t},i(e),1))),128))])):y(``,!0)]))}}),[[`__scopeId`,`data-v-85c70c78`]]),U={info:`var(--color-info-light)`,warning:`var(--color-warning-light)`,purple:`var(--color-purple-light)`,success:`var(--color-success-light)`},W={info:`var(--color-info)`,warning:`var(--color-warning-dark)`,purple:`var(--color-purple)`,success:`var(--color-success)`},G=()=>({newOrders:0,pendingReview:0,pendingCheck:0,finalApproval:0,todaySales:0,todaySalesGrowth:0,monthSales:0});function K(){let e=b(),t=O(),n=s(G()),r=s([]),i=s(Array.from({length:28},()=>0)),o=s([`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`]),c=s([]),l=s(!1),u=_(()=>[{label:`سفارش‌های جدید`,value:n.value.newOrders,icon:`cart`,tone:`info`,link:`/orders`},{label:`در انتظار بررسی`,value:n.value.pendingReview,icon:`file`,tone:`warning`,link:`/orders?tab=pending_review`},{label:`بررسی چک`,value:n.value.pendingCheck,icon:`wallet`,tone:`purple`,link:`/orders?tab=pending_check`},{label:`تأیید نهایی شده`,value:n.value.finalApproval,icon:`check-circle`,tone:`success`,link:`/orders?tab=final_approval`}]),d=_(()=>{let e=i.value;if(!e.length)return``;let t=Math.max(...e,.001),n=e.length>1?280/(e.length-1):280;return e.map((e,r)=>`${r*n},${120-e/t*110-5}`).join(` `)});async function f(){l.value=!0;try{let e=await C.get();n.value=e.stats,r.value=(e.recentOrders??[]).map(e=>D(e)),i.value=e.salesChartData?.length?e.salesChartData:Array.from({length:28},()=>0),o.value=e.chartAxisLabels?.length?e.chartAxisLabels:[`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`],c.value=e.checkDeadlines??[]}catch(e){t.error(e instanceof x?e.message:`بارگذاری داشبورد انجام نشد.`)}finally{l.value=!1}}a(()=>{f()});function p(){e.push(`/orders`)}return{checkDeadlines:c,dashboardStats:n,recentOrders:r,chartPoints:d,salesChartData:i,chartAxisLabels:o,statCards:u,loading:l,goOrders:p,loadDashboard:f}}var q={class:`dashboard`},J={class:`dashboard__toolbar`},Y={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},X={class:`dashboard__stats`},Z={class:`admin-stat-card__label`},Q={class:`admin-stat-card__value`},ne={class:`dashboard__sales-card admin-stat-card`},re={class:`dashboard__sales-header`},ie={class:`admin-stat-card__value dashboard__sales-value`},ae={class:`dashboard__sales-growth`},oe={class:`dashboard__grid`},se={class:`dashboard__chart-card admin-card`},ce={class:`dashboard__orders-card admin-card`},le={class:`admin-table-wrap`},ue={class:`admin-table admin-table--compact`},de={class:`dashboard__card-footer`},fe={class:`dashboard__checks-card admin-card`},pe={class:`dashboard__deadline-list`},me={class:`dashboard__deadline-count`},he={class:`dashboard__deadline-amount`},ge={class:`dashboard__card-footer`},_e=v(d({__name:`DesktopDashboard`,setup(a){let{checkDeadlines:s,dashboardStats:d,recentOrders:m,salesChartData:_,chartAxisLabels:v,goOrders:y,statCards:b}=K();return(a,x)=>{let C=n(`RouterLink`);return r(),u(`div`,q,[l(`div`,J,[l(`button`,Y,[f(S,{name:`calendar`,size:16}),x[1]||=h(` امروز `,-1)])]),l(`div`,X,[(r(!0),u(g,null,p(c(b),n=>(r(),u(`div`,{key:n.label,class:`admin-stat-card`},[l(`div`,{class:`admin-stat-card__icon`,style:t({background:c(U)[n.tone],color:c(W)[n.tone]})},[f(S,{name:n.icon,size:20},null,8,[`name`])],4),l(`p`,Z,i(n.label),1),l(`p`,Q,i(n.value),1),f(C,{to:n.link,class:`admin-stat-card__link`},{default:e(()=>[...x[2]||=[h(`مشاهده سفارش‌ها`,-1)]]),_:1},8,[`to`])]))),128)),l(`div`,ne,[l(`div`,re,[l(`div`,null,[x[3]||=l(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),l(`p`,ie,i(c(T)(c(d).todaySales)),1),l(`span`,ae,` +`+i(c(d).todaySalesGrowth)+`% نسبت به دیروز `,1)]),f(S,{name:`calendar`,size:20,class:`dashboard__sales-icon`})]),x[4]||=l(`svg`,{class:`dashboard__sparkline`,viewBox:`0 0 120 32`,preserveAspectRatio:`none`},[l(`polyline`,{fill:`none`,stroke:`#159660`,"stroke-width":`2`,points:`0,24 20,18 40,22 60,12 80,16 100,8 120,14`})],-1)])]),l(`div`,oe,[l(`div`,se,[f(H,{title:`فروش ماه جاری`,subtitle:c(T)(c(d).monthSales),data:c(_),labels:c(v),unit:`میلیارد`,height:168},null,8,[`subtitle`,`data`,`labels`])]),l(`div`,ce,[x[7]||=l(`div`,{class:`dashboard__card-header`},[l(`h2`,{class:`dashboard__card-title`},`سفارش‌های اخیر`)],-1),l(`div`,le,[l(`table`,ue,[x[5]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`شماره سفارش`),l(`th`,null,`مشتری`),l(`th`,null,`شرکت`),l(`th`,null,`وضعیت`),l(`th`,null,`تاریخ ثبت`)])],-1),l(`tbody`,null,[(r(!0),u(g,null,p(c(m),e=>(r(),u(`tr`,{key:e.id},[l(`td`,null,i(e.orderNumber),1),l(`td`,null,i(e.customerName),1),l(`td`,null,i(e.companyName),1),l(`td`,null,[f(k,{status:e.status},null,8,[`status`])]),l(`td`,null,i(c(w)(e.createdAt)),1)]))),128))])])]),l(`div`,de,[l(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:x[0]||=(...e)=>c(y)&&c(y)(...e)},[x[6]||=h(` مشاهده همه سفارش‌ها `,-1),f(S,{name:`chevron-left`,size:16})])])]),l(`div`,fe,[x[9]||=l(`div`,{class:`dashboard__card-header`},[l(`h2`,{class:`dashboard__card-title`},`سررسید چک‌ها`)],-1),l(`ul`,pe,[(r(!0),u(g,null,p(c(s),e=>(r(),u(`li`,{key:e.id,class:`dashboard__deadline-item`},[l(`span`,{class:o([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},i(e.label),3),l(`span`,me,i(e.count)+` فقره`,1),l(`span`,he,i(c(T)(e.amount)),1)]))),128))]),l(`div`,ge,[f(C,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm`},{default:e(()=>[x[8]||=h(` مشاهده همه `,-1),f(S,{name:`chevron-left`,size:16})]),_:1})])])])])}}}),[[`__scopeId`,`data-v-bf2ebdae`]]),ve={class:`compact-dashboard page-shell`},ye={class:`flex justify-end mb-3`},be={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},xe={class:`compact-stats-grid`},Se={class:`admin-stat-card__label`},Ce={class:`admin-stat-card__value`},we={class:`admin-stat-card col-span-full`},$={class:`admin-stat-card__value`},Te={class:`text-xs font-semibold text-success`},Ee={class:`compact-section-grid`},De={class:`compact-section-card admin-panel`},Oe={class:`compact-section-card admin-panel`},ke={class:`admin-card-list`},Ae={class:`admin-card-item__header`},je={class:`admin-card-item__title`},Me={class:`admin-card-item__meta`},Ne={class:`compact-section-card admin-panel`},Pe={class:`m-0 p-0 list-none flex flex-col gap-2.5`},Fe={class:`mr-auto text-xs`},Ie=d({__name:`CompactDashboard`,setup(a){let{checkDeadlines:s,dashboardStats:d,recentOrders:_,salesChartData:v,chartAxisLabels:y,goOrders:b,statCards:x}=K();return(a,C)=>{let E=n(`RouterLink`);return r(),u(`div`,ve,[l(`div`,ye,[l(`button`,be,[f(S,{name:`calendar`,size:16}),C[1]||=h(` امروز `,-1)])]),l(`div`,xe,[(r(!0),u(g,null,p(c(x),n=>(r(),u(`div`,{key:n.label,class:`admin-stat-card`},[l(`div`,{class:`admin-stat-card__icon`,style:t({background:c(U)[n.tone],color:c(W)[n.tone]})},[f(S,{name:n.icon,size:20},null,8,[`name`])],4),l(`p`,Se,i(n.label),1),l(`p`,Ce,i(n.value),1),f(E,{to:n.link,class:`admin-stat-card__link`},{default:e(()=>[...C[2]||=[h(`مشاهده`,-1)]]),_:1},8,[`to`])]))),128)),l(`div`,we,[C[3]||=l(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),l(`p`,$,i(c(T)(c(d).todaySales)),1),l(`span`,Te,` +`+i(c(d).todaySalesGrowth)+`% نسبت به دیروز `,1)])]),l(`div`,Ee,[l(`section`,De,[f(H,{title:`فروش ماه جاری`,subtitle:c(T)(c(d).monthSales),data:c(v),labels:c(y),unit:`میلیارد`,height:140},null,8,[`subtitle`,`data`,`labels`])]),l(`section`,Oe,[C[5]||=l(`h2`,{class:`compact-section-card__title`},`سفارش‌های اخیر`,-1),l(`div`,ke,[(r(!0),u(g,null,p(c(_),t=>(r(),m(E,{key:t.id,to:`/orders`,class:`admin-card-item block no-underline text-inherit`},{default:e(()=>[l(`div`,Ae,[l(`p`,je,i(t.orderNumber),1),f(k,{status:t.status},null,8,[`status`])]),l(`div`,Me,[l(`span`,null,i(t.customerName),1),l(`span`,null,i(c(w)(t.createdAt)),1)])]),_:2},1024))),128))]),l(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm inline-flex mt-3`,onClick:C[0]||=(...e)=>c(b)&&c(b)(...e)},[C[4]||=h(` مشاهده همه سفارش‌ها `,-1),f(S,{name:`chevron-left`,size:16})])]),l(`section`,Ne,[C[7]||=l(`h2`,{class:`compact-section-card__title`},`سررسید چک‌ها`,-1),l(`ul`,Pe,[(r(!0),u(g,null,p(c(s),e=>(r(),u(`li`,{key:e.id,class:`flex flex-wrap items-center gap-2 text-sm`},[l(`span`,{class:o([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},i(e.label),3),l(`span`,null,i(e.count)+` فقره`,1),l(`strong`,Fe,i(c(T)(e.amount)),1)]))),128))]),f(E,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm inline-flex mt-3 no-underline`},{default:e(()=>[C[6]||=h(` مشاهده همه `,-1),f(S,{name:`chevron-left`,size:16})]),_:1})])])])}}}),Le=d({__name:`DashboardView`,setup(e){return(e,t)=>(r(),u(g,null,[f(_e,{class:`desktop-only`}),f(Ie,{class:`compact-only`})],64))}});export{Le as default}; \ No newline at end of file diff --git a/dist/assets/LevelsView-Cos5Q_ra.js b/dist/assets/LevelsView-D3ss2h-3.js similarity index 65% rename from dist/assets/LevelsView-Cos5Q_ra.js rename to dist/assets/LevelsView-D3ss2h-3.js index 66fa97e..c419462 100644 --- a/dist/assets/LevelsView-Cos5Q_ra.js +++ b/dist/assets/LevelsView-D3ss2h-3.js @@ -1,3 +1,3 @@ -import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,m as p,r as m,s as h,t as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{N as _,R as v,W as y,v as b,z as x}from"./index-CXa4EMLW.js";import{t as S}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as C}from"./BaseEmptyState-BmO9aDcK.js";var w={class:`admin-page`},T={key:2,class:`admin-table`},E={dir:`ltr`},D=[`onClick`],O={class:`field`},k={class:`field`},A={class:`field`},j={class:`field`},M=[`disabled`],N=g(l({__name:`LevelsView`,setup(l){let g=o([]),N=o(!0),P=o(!1),F=o(null),I=x(),L=a({code:``,label:``,sortOrder:0,benefitsText:``}),R=h(()=>F.value?`ویرایش سطح`:`سطح جدید`);function z(e){return e.split(` -`).map(e=>e.trim()).filter(Boolean).map(e=>({title:e}))}async function B(){N.value=!0;try{g.value=await b.list()}catch(e){I.error(e instanceof _?e.message:`بارگذاری سطوح ناموفق بود`)}finally{N.value=!1}}function V(){F.value=null,Object.assign(L,{code:``,label:``,sortOrder:g.value.length+1,benefitsText:``}),P.value=!0}function H(e){F.value=e.id,Object.assign(L,{code:e.code,label:e.label,sortOrder:e.sortOrder,benefitsText:e.benefits.map(e=>e.title).join(` -`)}),P.value=!0}async function U(){try{let e={code:L.code.trim(),label:L.label.trim(),sortOrder:L.sortOrder,benefits:z(L.benefitsText)};F.value?await b.update(F.value,e):await b.create(e),P.value=!1,I.success(`ذخیره شد`),await B()}catch(e){I.error(e instanceof _?e.message:`ذخیره ناموفق بود`)}}return r(()=>{B()}),(r,a)=>(t(),c(`div`,w,[s(`header`,{class:`admin-page__head`},[a[5]||=s(`div`,null,[s(`h1`,null,`سطوح و مزایای مشتری`),s(`p`,null,`تعریف Level داخلی CRM و مزایای هر سطح (نمایش فقط در ادمین)`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`سطح جدید`)]),N.value?(t(),f(S,{key:0,variant:`table`})):g.value.length?(t(),c(`table`,T,[a[6]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`کد`),s(`th`,null,`عنوان`),s(`th`,null,`مزایا`),s(`th`,null,`مشتریان`),s(`th`)])],-1),s(`tbody`,null,[(t(!0),c(m,null,d(g.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,E,n(e.code),1),s(`td`,null,n(e.label),1),s(`td`,null,n(e.benefits.map(e=>e.title).join(`، `)||`—`),1),s(`td`,null,n(e.customersCount),1),s(`td`,null,[s(`button`,{type:`button`,class:`link`,onClick:t=>H(e)},`ویرایش`,8,D)])]))),128))])])):(t(),f(C,{key:1,title:`سطحی تعریف نشده`})),u(v,{open:P.value,title:R.value,onClose:a[4]||=e=>P.value=!1},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!L.code.trim()||!L.label.trim(),onClick:U},` ذخیره `,8,M)]),default:e(()=>[s(`label`,O,[a[7]||=p(`کد`,-1),i(s(`input`,{"onUpdate:modelValue":a[0]||=e=>L.code=e,class:`admin-input`,dir:`ltr`},null,512),[[y,L.code]])]),s(`label`,k,[a[8]||=p(`عنوان`,-1),i(s(`input`,{"onUpdate:modelValue":a[1]||=e=>L.label=e,class:`admin-input`},null,512),[[y,L.label]])]),s(`label`,A,[a[9]||=p(`ترتیب`,-1),i(s(`input`,{"onUpdate:modelValue":a[2]||=e=>L.sortOrder=e,type:`number`,class:`admin-input`},null,512),[[y,L.sortOrder,void 0,{number:!0}]])]),s(`label`,j,[a[10]||=p(` مزایا (هر خط یک مورد) `,-1),i(s(`textarea`,{"onUpdate:modelValue":a[3]||=e=>L.benefitsText=e,class:`admin-input`,rows:`4`},null,512),[[y,L.benefitsText]])])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-44c7f808`]]);export{N as default}; \ No newline at end of file +import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,m as p,r as m,s as h,t as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as _,f as v,t as y}from"./http-Djf2pGxE.js";import{V as b,x}from"./index-CznUUXv3.js";import{t as S}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as C}from"./BaseEmptyState-D6sk-aI_.js";var w={class:`admin-page`},T={key:2,class:`admin-table`},E={dir:`ltr`},D=[`onClick`],O={class:`field`},k={class:`field`},A={class:`field`},j={class:`field`},M=[`disabled`],N=g(l({__name:`LevelsView`,setup(l){let g=o([]),N=o(!0),P=o(!1),F=o(null),I=_(),L=a({code:``,label:``,sortOrder:0,benefitsText:``}),R=h(()=>F.value?`ویرایش سطح`:`سطح جدید`);function z(e){return e.split(` +`).map(e=>e.trim()).filter(Boolean).map(e=>({title:e}))}async function B(){N.value=!0;try{g.value=await x.list()}catch(e){I.error(e instanceof y?e.message:`بارگذاری سطوح ناموفق بود`)}finally{N.value=!1}}function V(){F.value=null,Object.assign(L,{code:``,label:``,sortOrder:g.value.length+1,benefitsText:``}),P.value=!0}function H(e){F.value=e.id,Object.assign(L,{code:e.code,label:e.label,sortOrder:e.sortOrder,benefitsText:e.benefits.map(e=>e.title).join(` +`)}),P.value=!0}async function U(){try{let e={code:L.code.trim(),label:L.label.trim(),sortOrder:L.sortOrder,benefits:z(L.benefitsText)};F.value?await x.update(F.value,e):await x.create(e),P.value=!1,I.success(`ذخیره شد`),await B()}catch(e){I.error(e instanceof y?e.message:`ذخیره ناموفق بود`)}}return r(()=>{B()}),(r,a)=>(t(),c(`div`,w,[s(`header`,{class:`admin-page__head`},[a[5]||=s(`div`,null,[s(`h1`,null,`سطوح و مزایای مشتری`),s(`p`,null,`تعریف Level داخلی CRM و مزایای هر سطح (نمایش فقط در ادمین)`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`سطح جدید`)]),N.value?(t(),f(S,{key:0,variant:`table`})):g.value.length?(t(),c(`table`,T,[a[6]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`کد`),s(`th`,null,`عنوان`),s(`th`,null,`مزایا`),s(`th`,null,`مشتریان`),s(`th`)])],-1),s(`tbody`,null,[(t(!0),c(m,null,d(g.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,E,n(e.code),1),s(`td`,null,n(e.label),1),s(`td`,null,n(e.benefits.map(e=>e.title).join(`، `)||`—`),1),s(`td`,null,n(e.customersCount),1),s(`td`,null,[s(`button`,{type:`button`,class:`link`,onClick:t=>H(e)},`ویرایش`,8,D)])]))),128))])])):(t(),f(C,{key:1,title:`سطحی تعریف نشده`})),u(b,{open:P.value,title:R.value,onClose:a[4]||=e=>P.value=!1},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!L.code.trim()||!L.label.trim(),onClick:U},` ذخیره `,8,M)]),default:e(()=>[s(`label`,O,[a[7]||=p(`کد`,-1),i(s(`input`,{"onUpdate:modelValue":a[0]||=e=>L.code=e,class:`admin-input`,dir:`ltr`},null,512),[[v,L.code]])]),s(`label`,k,[a[8]||=p(`عنوان`,-1),i(s(`input`,{"onUpdate:modelValue":a[1]||=e=>L.label=e,class:`admin-input`},null,512),[[v,L.label]])]),s(`label`,A,[a[9]||=p(`ترتیب`,-1),i(s(`input`,{"onUpdate:modelValue":a[2]||=e=>L.sortOrder=e,type:`number`,class:`admin-input`},null,512),[[v,L.sortOrder,void 0,{number:!0}]])]),s(`label`,j,[a[10]||=p(` مزایا (هر خط یک مورد) `,-1),i(s(`textarea`,{"onUpdate:modelValue":a[3]||=e=>L.benefitsText=e,class:`admin-input`,rows:`4`},null,512),[[v,L.benefitsText]])])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-44c7f808`]]);export{N as default}; \ No newline at end of file diff --git a/dist/assets/LoginView-D9TVA-2V.css b/dist/assets/LoginView-D9TVA-2V.css new file mode 100644 index 0000000..00d2d41 --- /dev/null +++ b/dist/assets/LoginView-D9TVA-2V.css @@ -0,0 +1 @@ +.login-page[data-v-df8d196a]{background:var(--color-bg);grid-template-columns:1.05fr 1fr;min-height:100dvh;display:grid}.login-page__brand[data-v-df8d196a]{background:linear-gradient(160deg, var(--color-primary-dark) 0%, var(--color-primary) 55%, var(--color-sidebar-active) 100%);color:#fff;justify-content:center;align-items:center;padding:48px 40px;display:flex}.login-page__brand-inner[data-v-df8d196a]{max-width:420px}.login-page__brand-logo[data-v-df8d196a]{object-fit:contain;width:min(220px,70%);height:150px;margin-bottom:28px;display:block}.login-page__brand-badge[data-v-df8d196a]{background:#ffffff1f;border-radius:999px;margin:0 0 16px;padding:6px 12px;font-size:.8125rem;font-weight:700;display:inline-flex}.login-page__brand-title[data-v-df8d196a]{margin:0 0 12px;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.35}.login-page__brand-text[data-v-df8d196a]{color:#ffffffc7;margin:0;font-size:.9375rem;line-height:1.8}.login-page__form-wrap[data-v-df8d196a]{justify-content:center;align-items:center;padding:32px 24px;display:flex}.login-page__card[data-v-df8d196a]{width:min(100%,420px);padding:28px 24px}.login-page__header[data-v-df8d196a]{margin-bottom:20px}.login-page__title[data-v-df8d196a]{margin:0 0 6px;font-size:1.25rem;font-weight:700}.login-page__subtitle[data-v-df8d196a]{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.6}.login-page__mock-hint[data-v-df8d196a]{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary);border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:.8125rem;line-height:1.5}.login-page__input-wrap[data-v-df8d196a]{color:var(--color-text-muted);position:relative}.login-page__field-icon[data-v-df8d196a]{pointer-events:none;z-index:1;display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.login-page__input[data-v-df8d196a]{padding-right:42px}.login-page__input--with-toggle[data-v-df8d196a]{padding-left:44px}.login-page__toggle-password[data-v-df8d196a]{z-index:1;width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:color .15s,background-color .15s;display:inline-flex;position:absolute;top:50%;left:6px;transform:translateY(-50%)}.login-page__toggle-password[data-v-df8d196a]:hover{color:var(--color-primary);background:var(--color-bg-muted,#0000000a)}.login-page__remember[data-v-df8d196a]{color:var(--color-text-muted);align-items:center;gap:8px;font-size:.8125rem;display:flex}.login-page__remember input[data-v-df8d196a]{width:16px;height:16px;accent-color:var(--color-primary)}.login-page__submit[data-v-df8d196a]{width:100%;margin-top:4px}@media (width<=900px){.login-page[data-v-df8d196a]{grid-template-columns:1fr}.login-page__form-wrap[data-v-df8d196a]{order:2}.login-page__brand[data-v-df8d196a]{order:1;min-height:auto;padding:28px 20px}.login-page__brand-text[data-v-df8d196a]{font-size:.875rem}} diff --git a/dist/assets/LoginView-DGmyTEGH.js b/dist/assets/LoginView-DGmyTEGH.js new file mode 100644 index 0000000..c6db65f --- /dev/null +++ b/dist/assets/LoginView-DGmyTEGH.js @@ -0,0 +1 @@ +import{O as e,Ot as t,V as n,Z as r,at as i,c as a,d as o,g as s,h as c,m as l,s as u,t as d,u as f}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as p,f as m,l as h,m as g,u as _}from"./http-Djf2pGxE.js";import{F as v,I as y,L as b,P as x,R as S,z as C}from"./index-CznUUXv3.js";var w={class:`login-page`},T={class:`login-page__form-wrap`},E={class:`login-page__card admin-card`},D={class:`login-page__header`},O={key:0,class:`login-page__mock-hint`},k={dir:`ltr`},A={dir:`ltr`},j={key:0,class:`admin-form__error`,role:`alert`},M={class:`admin-form__field`},N={class:`login-page__input-wrap`},P={class:`login-page__field-icon`,"aria-hidden":`true`},F={class:`admin-form__field`},I={class:`login-page__input-wrap login-page__input-wrap--password`},L={class:`login-page__field-icon`,"aria-hidden":`true`},R=[`type`],z=[`aria-label`],B={class:`login-page__remember`},V=[`disabled`],H={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},U=d(s({__name:`LoginView`,setup(s){let d=C(),U=S(),W=x(),G=p(),K=r(y()?v.phone:``),q=r(y()?v.password:``),J=r(!0),Y=r(!1),X=y(),Z=u(()=>K.value.trim().length>0&&q.value.length>0);function Q(e){return e.replace(/[۰-۹]/g,e=>String(`۰۱۲۳۴۵۶۷۸۹`.indexOf(e))).replace(/[٠-٩]/g,e=>String(`٠١٢٣٤٥٦٧٨٩`.indexOf(e)))}async function $(){if(!Z.value){W.error=`لطفاً شماره موبایل و رمز عبور را وارد کنید.`;return}if(!await W.login(Q(K.value.trim()),q.value,J.value))return;G.success(`خوش آمدید، ${W.fullName}`);let e=typeof U.query.redirect==`string`?U.query.redirect:`/`,t=`/admin/`.replace(/\/$/,``),n=e.startsWith(t)?e.slice(t.length)||`/`:e;await d.replace(n)}return(r,s)=>(e(),o(`div`,w,[a(`div`,T,[a(`div`,E,[a(`div`,D,[s[8]||=a(`h2`,{class:`login-page__title`},`ورود به پنل مدیریت`,-1),s[9]||=a(`p`,{class:`login-page__subtitle`},`برای ادامه، اطلاعات حساب کاربری خود را وارد کنید.`,-1),i(X)?(e(),o(`p`,O,[s[6]||=l(` حالت موک فعال است — `,-1),a(`span`,k,t(i(v).phone),1),s[7]||=l(` / `,-1),a(`span`,A,t(i(v).password),1)])):f(``,!0)]),a(`form`,{class:`admin-form login-page__form`,onSubmit:g($,[`prevent`])},[i(W).error?(e(),o(`p`,j,t(i(W).error),1)):f(``,!0),a(`div`,M,[s[10]||=a(`label`,{for:`login-phone`},`شماره موبایل`,-1),a(`div`,N,[a(`span`,P,[c(b,{name:`phone`,size:18})]),n(a(`input`,{id:`login-phone`,"onUpdate:modelValue":s[0]||=e=>K.value=e,type:`tel`,class:`admin-input login-page__input`,placeholder:`۰۹۱۲۱۱۱۱۲۲۲۲`,autocomplete:`username`,inputmode:`tel`,dir:`ltr`,onInput:s[1]||=e=>i(W).clearError()},null,544),[[m,K.value]])])]),a(`div`,F,[s[11]||=a(`label`,{for:`login-password`},`رمز عبور`,-1),a(`div`,I,[a(`span`,L,[c(b,{name:`lock`,size:18})]),n(a(`input`,{id:`login-password`,"onUpdate:modelValue":s[2]||=e=>q.value=e,type:Y.value?`text`:`password`,class:`admin-input login-page__input login-page__input--with-toggle`,placeholder:`رمز عبور`,autocomplete:`current-password`,onInput:s[3]||=e=>i(W).clearError()},null,40,R),[[_,q.value]]),a(`button`,{type:`button`,class:`login-page__toggle-password`,"aria-label":Y.value?`پنهان کردن رمز`:`نمایش رمز`,onClick:s[4]||=e=>Y.value=!Y.value},[c(b,{name:Y.value?`eye-off`:`eye`,size:18},null,8,[`name`])],8,z)])]),a(`label`,B,[n(a(`input`,{"onUpdate:modelValue":s[5]||=e=>J.value=e,type:`checkbox`},null,512),[[h,J.value]]),s[12]||=a(`span`,null,`مرا به خاطر بسپار`,-1)]),a(`button`,{type:`submit`,class:`admin-btn admin-btn--primary login-page__submit`,disabled:!Z.value||i(W).loading},[i(W).loading?(e(),o(`span`,H)):f(``,!0),s[13]||=l(` ورود به پنل `,-1)],8,V)],32)])]),a(`div`,{class:`login-page__brand`},[a(`div`,{class:`login-page__brand-inner`},[a(`img`,{src:`/admin/brand-logo.png`,alt:`نادمی تکس`,class:`login-page__brand-logo`}),s[14]||=a(`p`,{class:`login-page__brand-badge`},`پارچه`,-1),s[15]||=a(`h1`,{class:`login-page__brand-title`},`پنل مدیریت سفارش‌های عمده`,-1),s[16]||=a(`p`,{class:`login-page__brand-text`},` مدیریت سفارش‌ها، مشتریان، قیمت‌گذاری، چک‌ها و گزارش‌های فروش در یک محیط یکپارچه. `,-1)])])]))}}),[[`__scopeId`,`data-v-df8d196a`]]);export{U as default}; \ No newline at end of file diff --git a/dist/assets/LoginView-IFH_z0sG.css b/dist/assets/LoginView-IFH_z0sG.css deleted file mode 100644 index 7291e07..0000000 --- a/dist/assets/LoginView-IFH_z0sG.css +++ /dev/null @@ -1 +0,0 @@ -.login-page[data-v-9aef901d]{background:var(--color-bg);grid-template-columns:1.05fr 1fr;min-height:100dvh;display:grid}.login-page__brand[data-v-9aef901d]{color:#fff;background:linear-gradient(160deg,#062428 0%,#0a353c 55%,#0e454e 100%);justify-content:center;align-items:center;padding:48px 40px;display:flex}.login-page__brand-inner[data-v-9aef901d]{max-width:420px}.login-page__brand-badge[data-v-9aef901d]{background:#ffffff1f;border-radius:999px;margin:0 0 16px;padding:6px 12px;font-size:.8125rem;font-weight:700;display:inline-flex}.login-page__brand-title[data-v-9aef901d]{margin:0 0 12px;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.35}.login-page__brand-text[data-v-9aef901d]{color:#ffffffc7;margin:0;font-size:.9375rem;line-height:1.8}.login-page__form-wrap[data-v-9aef901d]{justify-content:center;align-items:center;padding:32px 24px;display:flex}.login-page__card[data-v-9aef901d]{width:min(100%,420px);padding:28px 24px}.login-page__header[data-v-9aef901d]{margin-bottom:20px}.login-page__title[data-v-9aef901d]{margin:0 0 6px;font-size:1.25rem;font-weight:700}.login-page__subtitle[data-v-9aef901d]{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.6}.login-page__mock-hint[data-v-9aef901d]{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary);border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:.8125rem;line-height:1.5}.login-page__input-wrap[data-v-9aef901d]{color:var(--color-text-muted);position:relative}.login-page__field-icon[data-v-9aef901d]{pointer-events:none;z-index:1;display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.login-page__input[data-v-9aef901d]{padding-right:42px}.login-page__input--with-toggle[data-v-9aef901d]{padding-left:44px}.login-page__toggle-password[data-v-9aef901d]{z-index:1;width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:color .15s,background-color .15s;display:inline-flex;position:absolute;top:50%;left:6px;transform:translateY(-50%)}.login-page__toggle-password[data-v-9aef901d]:hover{color:var(--color-primary);background:var(--color-bg-muted,#0000000a)}.login-page__remember[data-v-9aef901d]{color:var(--color-text-muted);align-items:center;gap:8px;font-size:.8125rem;display:flex}.login-page__remember input[data-v-9aef901d]{width:16px;height:16px;accent-color:var(--color-primary)}.login-page__submit[data-v-9aef901d]{width:100%;margin-top:4px}@media (width<=900px){.login-page[data-v-9aef901d]{grid-template-columns:1fr}.login-page__form-wrap[data-v-9aef901d]{order:2}.login-page__brand[data-v-9aef901d]{order:1;min-height:auto;padding:28px 20px}.login-page__brand-text[data-v-9aef901d]{font-size:.875rem}} diff --git a/dist/assets/LoginView-w-SE2utd.js b/dist/assets/LoginView-w-SE2utd.js deleted file mode 100644 index dd262cc..0000000 --- a/dist/assets/LoginView-w-SE2utd.js +++ /dev/null @@ -1 +0,0 @@ -import{O as e,Ot as t,V as n,Z as r,at as i,c as a,d as o,g as s,h as c,m as l,p as u,s as d,t as f,u as p}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{A as m,F as h,H as g,I as _,K as v,M as y,P as b,V as x,W as S,j as C,z as w}from"./index-CXa4EMLW.js";var T={class:`login-page`},E={class:`login-page__form-wrap`},D={class:`login-page__card admin-card`},O={class:`login-page__header`},k={key:0,class:`login-page__mock-hint`},A={dir:`ltr`},j={dir:`ltr`},M={key:0,class:`admin-form__error`,role:`alert`},N={class:`admin-form__field`},P={class:`login-page__input-wrap`},F={class:`login-page__field-icon`,"aria-hidden":`true`},I={class:`admin-form__field`},L={class:`login-page__input-wrap login-page__input-wrap--password`},R={class:`login-page__field-icon`,"aria-hidden":`true`},z=[`type`],B=[`aria-label`],V={class:`login-page__remember`},H=[`disabled`],U={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},W=f(s({__name:`LoginView`,setup(s){let f=_(),W=h(),G=m(),K=w(),q=r(y()?C.phone:``),J=r(y()?C.password:``),Y=r(!0),X=r(!1),Z=y(),Q=d(()=>q.value.trim().length>0&&J.value.length>0);function $(e){return e.replace(/[۰-۹]/g,e=>String(`۰۱۲۳۴۵۶۷۸۹`.indexOf(e))).replace(/[٠-٩]/g,e=>String(`٠١٢٣٤٥٦٧٨٩`.indexOf(e)))}async function ee(){if(!Q.value){G.error=`لطفاً شماره موبایل و رمز عبور را وارد کنید.`;return}if(!await G.login($(q.value.trim()),J.value,Y.value))return;K.success(`خوش آمدید، ${G.fullName}`);let e=typeof W.query.redirect==`string`?W.query.redirect:`/`,t=`/admin/`.replace(/\/$/,``),n=e.startsWith(t)?e.slice(t.length)||`/`:e;await f.replace(n)}return(r,s)=>(e(),o(`div`,T,[a(`div`,E,[a(`div`,D,[a(`div`,O,[s[8]||=a(`h2`,{class:`login-page__title`},`ورود به پنل مدیریت`,-1),s[9]||=a(`p`,{class:`login-page__subtitle`},`برای ادامه، اطلاعات حساب کاربری خود را وارد کنید.`,-1),i(Z)?(e(),o(`p`,k,[s[6]||=l(` حالت موک فعال است — `,-1),a(`span`,A,t(i(C).phone),1),s[7]||=l(` / `,-1),a(`span`,j,t(i(C).password),1)])):p(``,!0)]),a(`form`,{class:`admin-form login-page__form`,onSubmit:v(ee,[`prevent`])},[i(G).error?(e(),o(`p`,M,t(i(G).error),1)):p(``,!0),a(`div`,N,[s[10]||=a(`label`,{for:`login-phone`},`شماره موبایل`,-1),a(`div`,P,[a(`span`,F,[c(b,{name:`phone`,size:18})]),n(a(`input`,{id:`login-phone`,"onUpdate:modelValue":s[0]||=e=>q.value=e,type:`tel`,class:`admin-input login-page__input`,placeholder:`۰۹۱۲۱۱۱۱۲۲۲۲`,autocomplete:`username`,inputmode:`tel`,dir:`ltr`,onInput:s[1]||=e=>i(G).clearError()},null,544),[[S,q.value]])])]),a(`div`,I,[s[11]||=a(`label`,{for:`login-password`},`رمز عبور`,-1),a(`div`,L,[a(`span`,R,[c(b,{name:`lock`,size:18})]),n(a(`input`,{id:`login-password`,"onUpdate:modelValue":s[2]||=e=>J.value=e,type:X.value?`text`:`password`,class:`admin-input login-page__input login-page__input--with-toggle`,placeholder:`رمز عبور`,autocomplete:`current-password`,onInput:s[3]||=e=>i(G).clearError()},null,40,z),[[g,J.value]]),a(`button`,{type:`button`,class:`login-page__toggle-password`,"aria-label":X.value?`پنهان کردن رمز`:`نمایش رمز`,onClick:s[4]||=e=>X.value=!X.value},[c(b,{name:X.value?`eye-off`:`eye`,size:18},null,8,[`name`])],8,B)])]),a(`label`,V,[n(a(`input`,{"onUpdate:modelValue":s[5]||=e=>Y.value=e,type:`checkbox`},null,512),[[x,Y.value]]),s[12]||=a(`span`,null,`مرا به خاطر بسپار`,-1)]),a(`button`,{type:`submit`,class:`admin-btn admin-btn--primary login-page__submit`,disabled:!Q.value||i(G).loading},[i(G).loading?(e(),o(`span`,U)):p(``,!0),s[13]||=l(` ورود به پنل `,-1)],8,H)],32)])]),s[14]||=u(``,1)]))}}),[[`__scopeId`,`data-v-9aef901d`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/OrderPricingView-BjVBgK4W.js b/dist/assets/OrderPricingView-BjVBgK4W.js new file mode 100644 index 0000000..76c84f1 --- /dev/null +++ b/dist/assets/OrderPricingView-BjVBgK4W.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,R as r,T as i,V as a,Y as ee,Z as o,at as s,c,d as l,g as te,h as u,j as d,l as ne,m as f,r as p,s as m,t as h,u as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as re,f as _,m as ie,t as v}from"./http-Djf2pGxE.js";import{B as y,L as b,R as ae,S as oe,T as se,V as ce,c as x,i as S,w as C,z as le}from"./index-CznUUXv3.js";import{t as ue}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as de}from"./AdminSelect-DK-_otkw.js";import{r as fe}from"./orderStatus-CYVblRJB.js";import{t as pe}from"./StatusBadge-Cg2zTE2k.js";import{t as w}from"./AdminCurrencyInput-BSNgTEBD.js";var me={class:`pricing-page`},he={class:`admin-page-header`},ge={class:`admin-action-group`},_e=[`disabled`],ve=[`disabled`],ye={class:`pricing-page__summary admin-card`},be={class:`pricing-page__order-meta`},xe={class:`pricing-page__order-id`},Se={class:`pricing-page__customer`},Ce={class:`admin-summary-grid`},we={class:`admin-summary-item`},Te={class:`admin-summary-item__value`},Ee={class:`admin-summary-item`},De={class:`admin-summary-item__value`},T={class:`admin-summary-item`},E={class:`admin-summary-item__value`},Oe={class:`pricing-page__table admin-card desktop-only`},ke={class:`admin-table-wrap`},Ae={class:`admin-table`},je=[`onUpdate:modelValue`],Me=[`onClick`],Ne={class:`compact-only admin-card-list pricing-page__compact-items`},Pe={class:`admin-card-item__header`},Fe={class:`admin-card-item__title`},Ie={class:`pricing-page__item-index`},Le={class:`admin-card-item__meta`},Re={key:0},ze={class:`pricing-page__compact-fields`},Be=[`onUpdate:modelValue`],Ve={key:0,class:`pricing-page__line-total`},He={class:`admin-card-item__actions`},Ue=[`onClick`],We={class:`admin-form-grid`},Ge={class:`admin-form-field`},Ke={class:`admin-form-field`},qe={class:`admin-footer-actions`},Je=[`disabled`],Ye=[`disabled`],D={class:`pricing-page__invoice-hint`},Xe={key:0,class:`admin-form__error`,role:`alert`},Ze={class:`admin-form__field`},Qe={class:`admin-form__row`},$e={class:`admin-form__field`},et={class:`admin-form__field`},tt=[`disabled`],O=h(te({__name:`OrderPricingView`,setup(te){let h=ae(),O=le(),k=re(),A=o(null),j=o([]),M=o(0),N=o(``),P=o(!1),F=o(``),I=o(!1),L=o(!1),R=o(!0),z=o([]),B=o([]),V=()=>({productId:``,requestedMeterage:50,confirmedMeterage:50}),H=ee(V()),nt=m(()=>z.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),U=m(()=>H.productId.length>0&&H.requestedMeterage>0),W=m(()=>A.value?oe(A.value):null),G=m(()=>A.value?!fe.includes(A.value.status):!1),K=m(()=>!!A.value?.finalAmount&&!G.value);async function rt(){R.value=!0;try{let e=await C.get(String(h.params.id));A.value=e,j.value=(e.items??[]).map(q),M.value=e.shippingCost??0,B.value=[],z.value=await se.list({activeOnly:!0})}catch(e){k.error(e instanceof v?e.message:`بارگذاری سفارش انجام نشد.`)}finally{R.value=!1}}i(()=>{rt()});function q(e){return{id:e.id,productId:e.productId,catalogCode:e.catalogCode,productName:e.productName,color:e.color,requestedMeterage:e.requestedMeterage,confirmedMeterage:e.confirmedMeterage,supplyPrice:e.supplyPrice,totalAmount:e.totalAmount,companyId:e.companyId,companyName:e.companyName}}function it(){O.push(`/orders`)}async function J(e){let t=j.value.find(t=>t.id===e);await y({title:`حذف محصول`,message:t?`آیا از حذف «${t.productName}» از سفارش مطمئن هستید؟`:`آیا از حذف این محصول از سفارش مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&(e.startsWith(`new-`)||B.value.push(e),j.value=j.value.filter(t=>t.id!==e))}r(()=>H.productId,e=>{let t=z.value.find(t=>t.id===e);if(!t)return;let n=t.rollMeters||t.minMeterage||t.orderStep||50;H.requestedMeterage=n,H.confirmedMeterage=n});function Y(){Object.assign(H,V()),F.value=``,P.value=!0}function X(){P.value=!1,F.value=``}function Z(){if(!U.value){F.value=`محصول و متراژ الزامی هستند.`;return}let e=z.value.find(e=>e.id===H.productId);if(!e){F.value=`محصول انتخاب‌شده یافت نشد.`;return}if(j.value.some(t=>t.productId===e.id||t.catalogCode===e.catalogCode&&t.productName===e.name)){F.value=`این محصول در سفارش هست.`;return}j.value.push({id:`new-${crypto.randomUUID().slice(0,8)}`,productId:e.id,catalogCode:e.catalogCode,productName:e.name,color:e.color||`—`,requestedMeterage:H.requestedMeterage,confirmedMeterage:H.confirmedMeterage||H.requestedMeterage,supplyPrice:e.price,totalAmount:null,companyId:A.value?.companyId,companyName:e.companyName||A.value?.companyName}),X()}async function Q(){if(A.value){if(!j.value.length){k.error(`سفارش باید حداقل یک قلم داشته باشد.`);return}I.value=!0;try{let e=await C.updatePricing(A.value.id,{items:j.value.map(e=>e.id.startsWith(`new-`)?{productId:e.productId,requestedMeterage:e.requestedMeterage,confirmedMeterage:e.confirmedMeterage??void 0,supplyPrice:e.supplyPrice??void 0}:{id:e.id,confirmedMeterage:e.confirmedMeterage??void 0,supplyPrice:e.supplyPrice??void 0}),deletedItemIds:B.value,shippingCost:M.value,note:N.value.trim()||void 0});A.value=e,j.value=(e.items??[]).map(q),B.value=[],k.success(`قیمت‌گذاری ذخیره شد.`)}catch(e){k.error(e instanceof v?e.message:`ذخیره قیمت‌گذاری انجام نشد.`)}finally{I.value=!1}}}async function $(){if(A.value){if(!A.value.finalAmount){k.error(`ابتدا قیمت‌گذاری را ذخیره کنید تا مبلغ فاکتور مشخص شود.`);return}if(await y({title:`ارسال فاکتور برای مشتری`,message:`فاکتور ${S(A.value.finalAmount)} برای مشتری ارسال می‌شود و او روش تسویه را انتخاب می‌کند. ادامه می‌دهید؟`,confirmLabel:`ارسال فاکتور`,cancelLabel:`انصراف`})){L.value=!0;try{let e=await C.updateStatus(A.value.id,{status:`awaiting_settlement`,note:N.value.trim()||void 0});A.value=e,k.success(`فاکتور برای مشتری ارسال شد.`)}catch(e){k.error(e instanceof v?e.message:`ارسال فاکتور انجام نشد.`)}finally{L.value=!1}}}}return(r,i)=>(t(),l(`div`,me,[c(`div`,he,[i[5]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`قیمت‌گذاری سفارش`)],-1),c(`div`,ge,[c(`button`,{type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:I.value||R.value,onClick:Q},n(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,_e),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!K.value||L.value||I.value,onClick:$},n(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,ve),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:it},` بازگشت `)])]),R.value?(t(),ne(ue,{key:0,variant:`detail`})):W.value?(t(),l(p,{key:1},[c(`div`,ye,[c(`div`,be,[c(`div`,null,[c(`strong`,xe,n(W.value.orderNumber),1),c(`p`,Se,n(W.value.customerName),1),u(pe,{status:W.value.status},null,8,[`status`])])]),c(`div`,Ce,[c(`div`,we,[i[6]||=c(`p`,{class:`admin-summary-item__label`},`مجموع مبلغ`,-1),c(`p`,Te,n(W.value.totalAmount?s(S)(W.value.totalAmount):`—`),1)]),c(`div`,Ee,[i[7]||=c(`p`,{class:`admin-summary-item__label`},`هزینه حمل`,-1),c(`p`,De,n(s(S)(M.value)),1)]),c(`div`,T,[i[8]||=c(`p`,{class:`admin-summary-item__label`},`مبلغ نهایی`,-1),c(`p`,E,n(A.value?.finalAmount?s(S)(A.value.finalAmount):`—`),1)])])]),c(`div`,Oe,[c(`div`,ke,[c(`table`,Ae,[i[9]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`ردیف`),c(`th`,null,`شرکت`),c(`th`,null,`کالیته`),c(`th`,null,`محصول`),c(`th`,null,`رنگ / نوع`),c(`th`,null,`متراژ درخواستی`),c(`th`,null,`متراژ تأیید شده`),c(`th`,null,`قیمت تأمینی (واحد)`),c(`th`,null,`مبلغ کل (تومان)`),c(`th`,null,`عملیات`)])],-1),c(`tbody`,null,[(t(!0),l(p,null,d(j.value,(e,r)=>(t(),l(`tr`,{key:e.id},[c(`td`,null,n(r+1),1),c(`td`,null,n(e.companyName||A.value?.companyName||`—`),1),c(`td`,null,n(e.catalogCode),1),c(`td`,null,n(e.productName),1),c(`td`,null,n(e.color),1),c(`td`,null,n(s(x)(e.requestedMeterage)),1),c(`td`,null,[a(c(`input`,{"onUpdate:modelValue":t=>e.confirmedMeterage=t,type:`number`,class:`admin-input admin-input--sm`},null,8,je),[[_,e.confirmedMeterage,void 0,{number:!0}]])]),c(`td`,null,[u(w,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,"input-class":`admin-input admin-input--sm`,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),c(`td`,null,n(e.totalAmount?s(S)(e.totalAmount):`—`),1),c(`td`,null,[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Me)])]))),128))])])]),c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost pricing-page__add-btn`,onClick:Y},[u(b,{name:`products`,size:16}),i[10]||=f(` افزودن محصول `,-1)])]),c(`div`,Ne,[(t(!0),l(p,null,d(j.value,(e,r)=>(t(),l(`article`,{key:e.id,class:`admin-card-item`},[c(`div`,Pe,[c(`p`,Fe,n(e.productName),1),c(`span`,Ie,`#`+n(r+1),1)]),c(`div`,Le,[e.companyName||A.value?.companyName?(t(),l(`span`,Re,n(e.companyName||A.value?.companyName),1)):g(``,!0),c(`span`,null,`کالیته `+n(e.catalogCode),1),c(`span`,null,n(e.color),1),c(`span`,null,`درخواست: `+n(s(x)(e.requestedMeterage))+` متر`,1)]),c(`div`,ze,[c(`label`,null,[i[11]||=f(` متراژ تأیید شده `,-1),a(c(`input`,{"onUpdate:modelValue":t=>e.confirmedMeterage=t,type:`number`,class:`admin-input`},null,8,Be),[[_,e.confirmedMeterage,void 0,{number:!0}]])]),c(`label`,null,[i[12]||=f(` قیمت تأمینی `,-1),u(w,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),e.totalAmount?(t(),l(`p`,Ve,` مبلغ کل: `+n(s(S)(e.totalAmount)),1)):g(``,!0)]),c(`div`,He,[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Ue)])]))),128)),c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost`,onClick:Y},[u(b,{name:`products`,size:16}),i[13]||=f(` افزودن محصول `,-1)])]),c(`div`,We,[c(`div`,Ge,[i[14]||=c(`label`,null,`هزینه حمل (تومان)`,-1),u(w,{modelValue:M.value,"onUpdate:modelValue":i[0]||=e=>M.value=e,"allow-empty":!1},null,8,[`modelValue`])]),c(`div`,Ke,[i[15]||=c(`label`,null,`توضیحات برای مشتری`,-1),a(c(`textarea`,{"onUpdate:modelValue":i[1]||=e=>N.value=e,placeholder:`توضیحات خود را وارد کنید...`},null,512),[[_,N.value]])])]),c(`div`,qe,[c(`button`,{type:`button`,class:`admin-btn admin-btn--success`,disabled:I.value,onClick:Q},n(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,Je),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!K.value||L.value||I.value,onClick:$},n(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,Ye)]),c(`p`,D,[G.value?(t(),l(p,{key:0},[f(` فاکتور این سفارش برای مشتری ارسال شده است؛ انتخاب روش تسویه در اختیار اوست. `)],64)):K.value?(t(),l(p,{key:1},[f(` مبلغ نهایی آماده است. با ارسال فاکتور، مشتری برای انتخاب نقدی یا چک مطلع می‌شود. `)],64)):(t(),l(p,{key:2},[f(` ابتدا قیمت واحد اقلام و هزینه حمل را ذخیره کنید تا مبلغ نهایی فاکتور ساخته شود. `)],64))])],64)):g(``,!0),u(ce,{open:P.value,title:`افزودن محصول`,size:`lg`,onClose:X},{footer:e(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:X},` انصراف `),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!U.value,onClick:Z},` افزودن به سفارش `,8,tt)]),default:e(()=>[c(`form`,{class:`admin-form`,onSubmit:ie(Z,[`prevent`])},[F.value?(t(),l(`p`,Xe,n(F.value),1)):g(``,!0),c(`div`,Ze,[i[16]||=c(`label`,null,[f(`محصول `),c(`span`,{class:`admin-form__required`},`*`)],-1),u(de,{modelValue:H.productId,"onUpdate:modelValue":i[2]||=e=>H.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:nt.value},null,8,[`modelValue`,`options`])]),c(`div`,Qe,[c(`div`,$e,[i[17]||=c(`label`,{for:`requested-meterage`},[f(` متراژ درخواستی `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`requested-meterage`,"onUpdate:modelValue":i[3]||=e=>H.requestedMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[_,H.requestedMeterage,void 0,{number:!0}]])]),c(`div`,et,[i[18]||=c(`label`,{for:`confirmed-meterage`},`متراژ تأیید شده`,-1),a(c(`input`,{id:`confirmed-meterage`,"onUpdate:modelValue":i[4]||=e=>H.confirmedMeterage=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[_,H.confirmedMeterage,void 0,{number:!0}]])])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-ba142b4c`]]);export{O as default}; \ No newline at end of file diff --git a/dist/assets/OrderPricingView-vS7IKrtc.js b/dist/assets/OrderPricingView-vS7IKrtc.js deleted file mode 100644 index a63bf4c..0000000 --- a/dist/assets/OrderPricingView-vS7IKrtc.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,O as t,Ot as n,R as r,T as i,V as a,Y as ee,Z as o,at as s,c,d as l,g as te,h as u,j as d,l as ne,m as f,r as p,s as m,t as h,u as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as re,I as ie,K as ae,L as _,N as v,P as y,R as oe,S as se,W as b,n as x,o as S,x as C,y as ce,z as le}from"./index-CXa4EMLW.js";import{t as ue}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as de}from"./AdminSelect-9UfEJQzN.js";import{r as fe}from"./orderStatus-CYVblRJB.js";import{t as pe}from"./StatusBadge-Cg2zTE2k.js";import{t as w}from"./AdminCurrencyInput-D6MsBhvR.js";var me={class:`pricing-page`},he={class:`admin-page-header`},ge={class:`admin-action-group`},_e=[`disabled`],ve=[`disabled`],ye={class:`pricing-page__summary admin-card`},be={class:`pricing-page__order-meta`},xe={class:`pricing-page__order-id`},Se={class:`pricing-page__customer`},Ce={class:`admin-summary-grid`},we={class:`admin-summary-item`},Te={class:`admin-summary-item__value`},Ee={class:`admin-summary-item`},De={class:`admin-summary-item__value`},T={class:`admin-summary-item`},E={class:`admin-summary-item__value`},Oe={class:`pricing-page__table admin-card desktop-only`},ke={class:`admin-table-wrap`},Ae={class:`admin-table`},je=[`onUpdate:modelValue`],Me=[`onClick`],Ne={class:`compact-only admin-card-list pricing-page__compact-items`},Pe={class:`admin-card-item__header`},Fe={class:`admin-card-item__title`},Ie={class:`pricing-page__item-index`},Le={class:`admin-card-item__meta`},Re={key:0},ze={class:`pricing-page__compact-fields`},Be=[`onUpdate:modelValue`],Ve={key:0,class:`pricing-page__line-total`},He={class:`admin-card-item__actions`},Ue=[`onClick`],We={class:`admin-form-grid`},Ge={class:`admin-form-field`},Ke={class:`admin-form-field`},qe={class:`admin-footer-actions`},Je=[`disabled`],Ye=[`disabled`],D={class:`pricing-page__invoice-hint`},Xe={key:0,class:`admin-form__error`,role:`alert`},Ze={class:`admin-form__field`},Qe={class:`admin-form__row`},$e={class:`admin-form__field`},et={class:`admin-form__field`},tt=[`disabled`],O=h(te({__name:`OrderPricingView`,setup(te){let h=re(),O=ie(),k=le(),A=o(null),j=o([]),M=o(0),N=o(``),P=o(!1),F=o(``),I=o(!1),L=o(!1),R=o(!0),z=o([]),B=o([]),V=()=>({productId:``,requestedMeterage:50,confirmedMeterage:50}),H=ee(V()),nt=m(()=>z.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),U=m(()=>H.productId.length>0&&H.requestedMeterage>0),W=m(()=>A.value?ce(A.value):null),G=m(()=>A.value?!fe.includes(A.value.status):!1),K=m(()=>!!A.value?.finalAmount&&!G.value);async function rt(){R.value=!0;try{let e=await C.get(String(h.params.id));A.value=e,j.value=(e.items??[]).map(q),M.value=e.shippingCost??0,B.value=[],z.value=await se.list({activeOnly:!0})}catch(e){k.error(e instanceof v?e.message:`بارگذاری سفارش انجام نشد.`)}finally{R.value=!1}}i(()=>{rt()});function q(e){return{id:e.id,productId:e.productId,catalogCode:e.catalogCode,productName:e.productName,color:e.color,requestedMeterage:e.requestedMeterage,confirmedMeterage:e.confirmedMeterage,supplyPrice:e.supplyPrice,totalAmount:e.totalAmount,companyId:e.companyId,companyName:e.companyName}}function it(){O.push(`/orders`)}async function J(e){let t=j.value.find(t=>t.id===e);await _({title:`حذف محصول`,message:t?`آیا از حذف «${t.productName}» از سفارش مطمئن هستید؟`:`آیا از حذف این محصول از سفارش مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&(e.startsWith(`new-`)||B.value.push(e),j.value=j.value.filter(t=>t.id!==e))}r(()=>H.productId,e=>{let t=z.value.find(t=>t.id===e);if(!t)return;let n=t.rollMeters||t.minMeterage||t.orderStep||50;H.requestedMeterage=n,H.confirmedMeterage=n});function Y(){Object.assign(H,V()),F.value=``,P.value=!0}function X(){P.value=!1,F.value=``}function Z(){if(!U.value){F.value=`محصول و متراژ الزامی هستند.`;return}let e=z.value.find(e=>e.id===H.productId);if(!e){F.value=`محصول انتخاب‌شده یافت نشد.`;return}if(j.value.some(t=>t.productId===e.id||t.catalogCode===e.catalogCode&&t.productName===e.name)){F.value=`این محصول در سفارش هست.`;return}j.value.push({id:`new-${crypto.randomUUID().slice(0,8)}`,productId:e.id,catalogCode:e.catalogCode,productName:e.name,color:e.color||`—`,requestedMeterage:H.requestedMeterage,confirmedMeterage:H.confirmedMeterage||H.requestedMeterage,supplyPrice:e.price,totalAmount:null,companyId:A.value?.companyId,companyName:e.companyName||A.value?.companyName}),X()}async function Q(){if(A.value){if(!j.value.length){k.error(`سفارش باید حداقل یک قلم داشته باشد.`);return}I.value=!0;try{let e=await C.updatePricing(A.value.id,{items:j.value.map(e=>e.id.startsWith(`new-`)?{productId:e.productId,requestedMeterage:e.requestedMeterage,confirmedMeterage:e.confirmedMeterage??void 0,supplyPrice:e.supplyPrice??void 0}:{id:e.id,confirmedMeterage:e.confirmedMeterage??void 0,supplyPrice:e.supplyPrice??void 0}),deletedItemIds:B.value,shippingCost:M.value,note:N.value.trim()||void 0});A.value=e,j.value=(e.items??[]).map(q),B.value=[],k.success(`قیمت‌گذاری ذخیره شد.`)}catch(e){k.error(e instanceof v?e.message:`ذخیره قیمت‌گذاری انجام نشد.`)}finally{I.value=!1}}}async function $(){if(A.value){if(!A.value.finalAmount){k.error(`ابتدا قیمت‌گذاری را ذخیره کنید تا مبلغ فاکتور مشخص شود.`);return}if(await _({title:`ارسال فاکتور برای مشتری`,message:`فاکتور ${x(A.value.finalAmount)} برای مشتری ارسال می‌شود و او روش تسویه را انتخاب می‌کند. ادامه می‌دهید؟`,confirmLabel:`ارسال فاکتور`,cancelLabel:`انصراف`})){L.value=!0;try{let e=await C.updateStatus(A.value.id,{status:`awaiting_settlement`,note:N.value.trim()||void 0});A.value=e,k.success(`فاکتور برای مشتری ارسال شد.`)}catch(e){k.error(e instanceof v?e.message:`ارسال فاکتور انجام نشد.`)}finally{L.value=!1}}}}return(r,i)=>(t(),l(`div`,me,[c(`div`,he,[i[5]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`قیمت‌گذاری سفارش`)],-1),c(`div`,ge,[c(`button`,{type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:I.value||R.value,onClick:Q},n(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,_e),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!K.value||L.value||I.value,onClick:$},n(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,ve),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:it},` بازگشت `)])]),R.value?(t(),ne(ue,{key:0,variant:`detail`})):W.value?(t(),l(p,{key:1},[c(`div`,ye,[c(`div`,be,[c(`div`,null,[c(`strong`,xe,n(W.value.orderNumber),1),c(`p`,Se,n(W.value.customerName),1),u(pe,{status:W.value.status},null,8,[`status`])])]),c(`div`,Ce,[c(`div`,we,[i[6]||=c(`p`,{class:`admin-summary-item__label`},`مجموع مبلغ`,-1),c(`p`,Te,n(W.value.totalAmount?s(x)(W.value.totalAmount):`—`),1)]),c(`div`,Ee,[i[7]||=c(`p`,{class:`admin-summary-item__label`},`هزینه حمل`,-1),c(`p`,De,n(s(x)(M.value)),1)]),c(`div`,T,[i[8]||=c(`p`,{class:`admin-summary-item__label`},`مبلغ نهایی`,-1),c(`p`,E,n(A.value?.finalAmount?s(x)(A.value.finalAmount):`—`),1)])])]),c(`div`,Oe,[c(`div`,ke,[c(`table`,Ae,[i[9]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`ردیف`),c(`th`,null,`شرکت`),c(`th`,null,`کالیته`),c(`th`,null,`محصول`),c(`th`,null,`رنگ / نوع`),c(`th`,null,`متراژ درخواستی`),c(`th`,null,`متراژ تأیید شده`),c(`th`,null,`قیمت تأمینی (واحد)`),c(`th`,null,`مبلغ کل (تومان)`),c(`th`,null,`عملیات`)])],-1),c(`tbody`,null,[(t(!0),l(p,null,d(j.value,(e,r)=>(t(),l(`tr`,{key:e.id},[c(`td`,null,n(r+1),1),c(`td`,null,n(e.companyName||A.value?.companyName||`—`),1),c(`td`,null,n(e.catalogCode),1),c(`td`,null,n(e.productName),1),c(`td`,null,n(e.color),1),c(`td`,null,n(s(S)(e.requestedMeterage)),1),c(`td`,null,[a(c(`input`,{"onUpdate:modelValue":t=>e.confirmedMeterage=t,type:`number`,class:`admin-input admin-input--sm`},null,8,je),[[b,e.confirmedMeterage,void 0,{number:!0}]])]),c(`td`,null,[u(w,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,"input-class":`admin-input admin-input--sm`,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),c(`td`,null,n(e.totalAmount?s(x)(e.totalAmount):`—`),1),c(`td`,null,[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Me)])]))),128))])])]),c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost pricing-page__add-btn`,onClick:Y},[u(y,{name:`products`,size:16}),i[10]||=f(` افزودن محصول `,-1)])]),c(`div`,Ne,[(t(!0),l(p,null,d(j.value,(e,r)=>(t(),l(`article`,{key:e.id,class:`admin-card-item`},[c(`div`,Pe,[c(`p`,Fe,n(e.productName),1),c(`span`,Ie,`#`+n(r+1),1)]),c(`div`,Le,[e.companyName||A.value?.companyName?(t(),l(`span`,Re,n(e.companyName||A.value?.companyName),1)):g(``,!0),c(`span`,null,`کالیته `+n(e.catalogCode),1),c(`span`,null,n(e.color),1),c(`span`,null,`درخواست: `+n(s(S)(e.requestedMeterage))+` متر`,1)]),c(`div`,ze,[c(`label`,null,[i[11]||=f(` متراژ تأیید شده `,-1),a(c(`input`,{"onUpdate:modelValue":t=>e.confirmedMeterage=t,type:`number`,class:`admin-input`},null,8,Be),[[b,e.confirmedMeterage,void 0,{number:!0}]])]),c(`label`,null,[i[12]||=f(` قیمت تأمینی `,-1),u(w,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),e.totalAmount?(t(),l(`p`,Ve,` مبلغ کل: `+n(s(x)(e.totalAmount)),1)):g(``,!0)]),c(`div`,He,[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Ue)])]))),128)),c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost`,onClick:Y},[u(y,{name:`products`,size:16}),i[13]||=f(` افزودن محصول `,-1)])]),c(`div`,We,[c(`div`,Ge,[i[14]||=c(`label`,null,`هزینه حمل (تومان)`,-1),u(w,{modelValue:M.value,"onUpdate:modelValue":i[0]||=e=>M.value=e,"allow-empty":!1},null,8,[`modelValue`])]),c(`div`,Ke,[i[15]||=c(`label`,null,`توضیحات برای مشتری`,-1),a(c(`textarea`,{"onUpdate:modelValue":i[1]||=e=>N.value=e,placeholder:`توضیحات خود را وارد کنید...`},null,512),[[b,N.value]])])]),c(`div`,qe,[c(`button`,{type:`button`,class:`admin-btn admin-btn--success`,disabled:I.value,onClick:Q},n(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,Je),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!K.value||L.value||I.value,onClick:$},n(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,Ye)]),c(`p`,D,[G.value?(t(),l(p,{key:0},[f(` فاکتور این سفارش برای مشتری ارسال شده است؛ انتخاب روش تسویه در اختیار اوست. `)],64)):K.value?(t(),l(p,{key:1},[f(` مبلغ نهایی آماده است. با ارسال فاکتور، مشتری برای انتخاب نقدی یا چک مطلع می‌شود. `)],64)):(t(),l(p,{key:2},[f(` ابتدا قیمت واحد اقلام و هزینه حمل را ذخیره کنید تا مبلغ نهایی فاکتور ساخته شود. `)],64))])],64)):g(``,!0),u(oe,{open:P.value,title:`افزودن محصول`,size:`lg`,onClose:X},{footer:e(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:X},` انصراف `),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!U.value,onClick:Z},` افزودن به سفارش `,8,tt)]),default:e(()=>[c(`form`,{class:`admin-form`,onSubmit:ae(Z,[`prevent`])},[F.value?(t(),l(`p`,Xe,n(F.value),1)):g(``,!0),c(`div`,Ze,[i[16]||=c(`label`,null,[f(`محصول `),c(`span`,{class:`admin-form__required`},`*`)],-1),u(de,{modelValue:H.productId,"onUpdate:modelValue":i[2]||=e=>H.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:nt.value},null,8,[`modelValue`,`options`])]),c(`div`,Qe,[c(`div`,$e,[i[17]||=c(`label`,{for:`requested-meterage`},[f(` متراژ درخواستی `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`requested-meterage`,"onUpdate:modelValue":i[3]||=e=>H.requestedMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[b,H.requestedMeterage,void 0,{number:!0}]])]),c(`div`,et,[i[18]||=c(`label`,{for:`confirmed-meterage`},`متراژ تأیید شده`,-1),a(c(`input`,{id:`confirmed-meterage`,"onUpdate:modelValue":i[4]||=e=>H.confirmedMeterage=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[b,H.confirmedMeterage,void 0,{number:!0}]])])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-ba142b4c`]]);export{O as default}; \ No newline at end of file diff --git a/dist/assets/OrdersView-DGNYhZg3.js b/dist/assets/OrdersView-DGNYhZg3.js deleted file mode 100644 index 253d74f..0000000 --- a/dist/assets/OrdersView-DGNYhZg3.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,C as t,Dt as n,E as r,K as i,O as a,Ot as o,R as s,T as c,Tt as l,V as u,Y as d,Z as f,a as p,at as m,c as h,d as g,g as _,h as v,j as y,k as b,l as x,m as S,p as C,r as w,s as T,t as E,u as D,x as O}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as k,I as A,K as j,N as M,P as N,R as P,S as F,V as I,W as L,a as R,g as z,h as B,i as ee,k as V,n as H,o as U,x as W,y as G,z as K}from"./index-CXa4EMLW.js";import{t as q}from"./AdminSelect-9UfEJQzN.js";import{r as J}from"./adminLabels-Cz9ccm1Z.js";import{c as Y,i as X,n as Z,o as Q,s as te,t as ne}from"./orderStatus-CYVblRJB.js";import{t as re}from"./StatusBadge-Cg2zTE2k.js";function ie(){let e=k(),t=A(),n=K(),r=f([]),i=f([]),a=new Set(Z.map(e=>e.key));function o(){let t=typeof e.query.tab==`string`?e.query.tab:``;return a.has(t)?t:`all`}let l=f([]),u=f(o()),p=f(``),m=f(``),h=f(!1),g=f(!1),_=f(!1),v=f(``),y=f(!1),b=()=>({customerId:``,customerName:``,customerPhone:``,items:[]}),x=d(b()),S=T(()=>x.customerId.length>0&&x.items.length>0),C=T(()=>{let e=[...i.value];return e.sort((e,t)=>Number(t.isActive)-Number(e.isActive)||e.name.localeCompare(t.name,`fa`)),e});function w(e){let t=i.value.find(t=>t.id===e);x.customerId=e,x.customerName=t?.name??``,x.customerPhone=t?.phone??``}async function E(){try{i.value=await z.list()}catch(e){n.error(e instanceof M?e.message:`بارگذاری مشتریان انجام نشد.`)}}let D=T(()=>{let e=l.value;if(u.value!==`all`&&(e=e.filter(e=>e.status===u.value)),m.value.trim()){let t=m.value.trim();e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t))}return e}),O=T(()=>l.value.find(e=>e.id===p.value)??null);function j(e){let t=e.trim();if(t)return l.value.find(e=>e.id===t||e.orderNumber.toUpperCase()===t.toUpperCase())}async function N(){let n=typeof e.query.order==`string`?e.query.order:``;if(!n||!l.value.length)return;let r=j(n);if(!r){m.value=n;return}let i=typeof e.query.focus==`string`?e.query.focus:``;if(i===`pricing`){await t.replace(`/orders/${r.id}/pricing`);return}if(i===`checks`){await t.replace(`/orders/${r.id}/checks`);return}I(r),m.value=r.orderNumber}async function P(){try{let[e,t,n]=await Promise.all([W.list(),B.list(),z.list()]);l.value=e.map(e=>G(e)),r.value=t,i.value=n,await N()}catch(e){n.error(e instanceof M?e.message:`بارگذاری سفارش‌ها انجام نشد.`)}}c(()=>{P()}),s(()=>[e.query.order,e.query.focus],()=>{N()}),s(()=>e.query.tab,()=>{let e=o();u.value!==e&&(u.value=e)}),s(u,n=>{let r=typeof e.query.tab==`string`?e.query.tab:`all`,i=n===`all`?void 0:n;(r===`all`?void 0:r)!==i&&t.replace({query:{...e.query,tab:i}})});function F(e,t=!1){p.value=e.id,t&&(g.value=!0)}function I(e){p.value=e.id,_.value=!0}function L(){g.value=!1}function R(){_.value=!1}function ee(e){return e?e===`check`?`چکی`:`نقدی`:`انتخاب‌نشده`}let V=f(!1);async function H(e){if(V.value)return null;V.value=!0;try{let t=await W.updateStatus(e.orderId,{status:e.status,note:e.note,reason:e.reason,force:e.force}),r=G(t),i=l.value.findIndex(t=>t.id===e.orderId);return i>=0&&(l.value[i]={...l.value[i],...r}),n.success(`وضعیت سفارش به «${Y(e.status)}» تغییر کرد.`),r}catch(e){return n.error(e instanceof M?e.message:`تغییر وضعیت انجام نشد.`),null}finally{V.value=!1}}function U(e){t.push(`/orders/${e.id}/pricing`)}function q(e){t.push(`/orders/${e.id}/checks`)}function J(e){t.push({path:`/cash-payments`,query:{order:e.orderNumber}})}function X(){Object.assign(x,b()),v.value=``,h.value=!0,E()}function Q(){h.value=!1,v.value=``}function te(e){return x.items.some(t=>t.productId===e.productId)?(v.value=`این محصول قبلاً به سفارش اضافه شده است.`,!1):(x.items.push(e),v.value=``,!0)}function ne(e){x.items=x.items.filter(t=>t.productId!==e)}async function re(){if(!S.value){v.value=`انتخاب مشتری و حداقل یک محصول الزامی است.`;return}y.value=!0;try{let e=await W.create({customerId:x.customerId||void 0,userId:x.customerId||void 0,customerName:x.customerName.trim(),customerPhone:x.customerPhone.trim()||void 0,items:x.items.map(e=>({productId:e.productId,meterage:e.meterage}))}),t=G(e);l.value.unshift(t),p.value=t.id,n.success(`سفارش جدید ثبت شد.`),Q()}catch(e){n.error(e instanceof M?e.message:`ثبت سفارش انجام نشد.`)}finally{y.value=!1}}return{companies:r,customers:i,activeCustomers:C,applyCustomer:w,loadCustomers:E,orderList:l,activeTab:u,selectedOrderId:p,searchQuery:m,showAddModal:h,showDetailPanel:g,showDetailModal:_,formError:v,form:x,addFormItem:te,removeFormItem:ne,isFormValid:S,filteredOrders:D,selectedOrder:O,selectOrder:F,openOrderDetail:I,closeDetailPanel:L,closeDetailModal:R,settlementLabel:ee,changeStatus:H,statusSaving:V,goPricing:U,goChecks:q,goCashReceipt:J,openAddModal:X,closeAddModal:Q,submitAddOrder:re,saving:y}}var ae=Symbol(`orders-page`);function oe(){let e=ie();return b(ae,e),e}function se(){let e=O(ae);if(!e)throw Error(`Orders page context is missing`);return e}var ce={class:`order-detail__hero`},$={class:`order-detail__hero-text`},le={class:`order-detail__id`},ue={key:0,class:`order-detail__raw-status`},de={class:`order-detail__actions no-print`},fe=[`disabled`],pe={class:`order-detail__panels`},me={class:`order-detail__section`},he={class:`order-detail__info`},ge={class:`order-detail__info-row`},_e={class:`order-detail__info-value`},ve={class:`order-detail__info-row`},ye={class:`order-detail__info-value order-detail__info-value--phone`,dir:`ltr`},be={class:`order-detail__info-row`},xe={class:`order-detail__info-value`},Se={class:`order-detail__info-row`},Ce={class:`order-detail__info-value`},we={class:`order-detail__section`},Te={class:`order-detail__info`},Ee={class:`order-detail__info-row`},De={class:`order-detail__info-value`},Oe={class:`order-detail__info-row`},ke={class:`order-detail__info-value`},Ae={class:`order-detail__info-row`},je={class:`order-detail__info-value`},Me={class:`order-detail__info-row`},Ne={class:`order-detail__info-value`},Pe={key:0,class:`order-detail__section`},Fe={key:0,class:`admin-table-wrap order-detail__table`},Ie={class:`admin-table admin-table--compact`},Le={key:1,class:`order-detail__items`},Re={class:`order-detail__item-head`},ze={class:`order-detail__item-meta`},Be={key:0},Ve={key:1},He={key:2,class:`order-detail__item-total`},Ue={class:`order-detail__section order-detail__status no-print`},We={class:`order-detail__status-head`},Ge={class:`order-detail__manual`},Ke={key:0,class:`order-detail__status-hint`},qe={key:1,class:`order-detail__status-hint`},Je={key:2,class:`order-detail__status-form`},Ye={class:`admin-form__field`},Xe={class:`admin-form__field`},Ze={for:`status-note`},Qe=[`disabled`],$e=E(_({__name:`OrderDetailContent`,props:{order:{},settlementLabel:{},layout:{default:`compact`},statusSaving:{type:Boolean}},emits:[`pricing`,`checks`,`cashReceipt`,`finalApprove`,`status`],setup(e,{emit:t}){let n=e,r=t,i=f(!1),c=f(``),d=f(``),p=Object.keys(X),_=T(()=>n.order.allowedTransitions??[]),b=T(()=>i.value?p.filter(e=>e!==n.order.rawStatus):[..._.value]),x=T(()=>[{value:``,label:`انتخاب کنید…`},...b.value.map(e=>({value:e,label:Y(e)}))]),S=T(()=>i.value),C=T(()=>!!c.value&&(!S.value||d.value.trim().length>0)),E=T(()=>n.layout===`desktop`),O=T(()=>ne[n.order.status]?.label??n.order.status),k=T(()=>{let e=Y(n.order.rawStatus);return!e||e===O.value?``:e}),A=T(()=>{let e=n.order.customerType;return e?J[e]??n.order.customerType??`—`:`—`}),j=T(()=>te(n.order)),M=T(()=>Q(n.order)),P=T(()=>n.order.settlementMethod===`check`&&!j.value),F=T(()=>n.order.settlementMethod===`cash`&&!j.value&&n.order.rawStatus!==`cash_confirmed`),z=T(()=>j.value?`pricing`:M.value?`final`:P.value?`checks`:F.value?`cash`:null);s([()=>n.order.id,i],()=>{c.value=``,d.value=``});function B(){if(!c.value||!C.value)return;let e=d.value.trim()||void 0;r(`status`,{orderId:n.order.id,status:c.value,note:e,reason:i.value?e:void 0,force:i.value||void 0}),c.value=``,d.value=``}return(t,n)=>(a(),g(`div`,{class:l([`order-detail`,`order-detail--${e.layout}`])},[h(`header`,ce,[h(`div`,$,[h(`div`,le,[h(`strong`,null,o(e.order.orderNumber),1),v(re,{status:e.order.status},null,8,[`status`])]),k.value?(a(),g(`p`,ue,o(k.value),1)):D(``,!0)]),h(`div`,de,[j.value?(a(),g(`button`,{key:0,type:`button`,class:l([`admin-btn admin-btn--sm`,z.value===`pricing`?`admin-btn--primary`:`admin-btn--outline`]),onClick:n[0]||=e=>r(`pricing`)},` قیمت‌گذاری سفارش `,2)):D(``,!0),P.value?(a(),g(`button`,{key:1,type:`button`,class:l([`admin-btn admin-btn--sm`,z.value===`checks`?`admin-btn--primary`:`admin-btn--outline`]),onClick:n[1]||=e=>r(`checks`)},` مدیریت چک‌ها `,2)):D(``,!0),F.value?(a(),g(`button`,{key:2,type:`button`,class:l([`admin-btn admin-btn--sm`,z.value===`cash`?`admin-btn--primary`:`admin-btn--outline`]),onClick:n[2]||=e=>r(`cashReceipt`)},` رسید پرداخت `,2)):D(``,!0),M.value?(a(),g(`button`,{key:3,type:`button`,class:l([`admin-btn admin-btn--sm`,z.value===`final`?`admin-btn--primary`:`admin-btn--outline`]),disabled:e.statusSaving,onClick:n[3]||=e=>r(`finalApprove`)},` تأیید نهایی `,10,fe)):D(``,!0)])]),h(`div`,pe,[h(`section`,me,[n[11]||=h(`h3`,{class:`order-detail__section-title`},`اطلاعات مشتری`,-1),h(`div`,he,[h(`div`,ge,[v(N,{name:`building`,size:16}),n[7]||=h(`span`,{class:`order-detail__info-label`},`مشتری`,-1),h(`span`,_e,o(e.order.customerName),1)]),h(`div`,ve,[v(N,{name:`phone`,size:16}),n[8]||=h(`span`,{class:`order-detail__info-label`},`تلفن`,-1),h(`span`,ye,o(e.order.customerPhone??`—`),1)]),h(`div`,be,[v(N,{name:`id-card`,size:16}),n[9]||=h(`span`,{class:`order-detail__info-label`},`شناسه ملی`,-1),h(`span`,xe,o(e.order.customerNationalId??`—`),1)]),h(`div`,Se,[v(N,{name:`user`,size:16}),n[10]||=h(`span`,{class:`order-detail__info-label`},`نوع مشتری`,-1),h(`span`,Ce,o(A.value),1)])])]),h(`section`,we,[n[16]||=h(`h3`,{class:`order-detail__section-title`},`اطلاعات سفارش`,-1),h(`div`,Te,[h(`div`,Ee,[n[12]||=h(`span`,{class:`order-detail__info-label`},`شرکت`,-1),h(`span`,De,o(e.order.companyName),1)]),h(`div`,Oe,[n[13]||=h(`span`,{class:`order-detail__info-label`},`روش تسویه`,-1),h(`span`,ke,o(e.settlementLabel(e.order.settlementMethod)),1)]),h(`div`,Ae,[n[14]||=h(`span`,{class:`order-detail__info-label`},`متراژ کل`,-1),h(`span`,je,o(m(R)(e.order.meterage)),1)]),h(`div`,Me,[n[15]||=h(`span`,{class:`order-detail__info-label`},`مبلغ کل`,-1),h(`span`,Ne,o(e.order.totalAmount==null?`پس از قیمت‌گذاری`:m(H)(e.order.totalAmount)),1)])])])]),e.order.items?.length?(a(),g(`section`,Pe,[n[18]||=h(`h3`,{class:`order-detail__section-title`},`محصولات سفارش`,-1),E.value?(a(),g(`div`,Fe,[h(`table`,Ie,[n[17]||=h(`thead`,null,[h(`tr`,null,[h(`th`,null,`شرکت`),h(`th`,null,`کالیته`),h(`th`,null,`محصول`),h(`th`,null,`رنگ`),h(`th`,null,`متراژ`),h(`th`,null,`قیمت`),h(`th`,null,`مبلغ`)])],-1),h(`tbody`,null,[(a(!0),g(w,null,y(e.order.items,t=>(a(),g(`tr`,{key:t.id},[h(`td`,null,o(t.companyName||e.order.companyName),1),h(`td`,null,o(t.catalogCode),1),h(`td`,null,o(t.productName),1),h(`td`,null,o(t.color),1),h(`td`,null,o(m(U)(t.confirmedMeterage??t.requestedMeterage)),1),h(`td`,null,o(t.supplyPrice==null?`—`:m(H)(t.supplyPrice)),1),h(`td`,null,o(t.totalAmount==null?`—`:m(H)(t.totalAmount)),1)]))),128))])])])):(a(),g(`ul`,Le,[(a(!0),g(w,null,y(e.order.items,e=>(a(),g(`li`,{key:e.id,class:`order-detail__item`},[h(`div`,Re,[h(`strong`,null,o(e.productName),1),h(`span`,null,o(e.catalogCode),1)]),h(`div`,ze,[e.companyName?(a(),g(`span`,Be,o(e.companyName),1)):D(``,!0),h(`span`,null,o(e.color),1),h(`span`,null,o(m(R)(e.confirmedMeterage??e.requestedMeterage)),1),e.supplyPrice==null?D(``,!0):(a(),g(`span`,Ve,o(m(H)(e.supplyPrice)),1)),e.totalAmount==null?D(``,!0):(a(),g(`span`,He,o(m(H)(e.totalAmount)),1))])]))),128))]))])):D(``,!0),h(`section`,Ue,[h(`div`,We,[n[20]||=h(`h3`,{class:`order-detail__section-title`},`تغییر وضعیت`,-1),h(`label`,Ge,[u(h(`input`,{"onUpdate:modelValue":n[4]||=e=>i.value=e,type:`checkbox`},null,512),[[I,i.value]]),n[19]||=h(`span`,null,`تغییر دستی`,-1)])]),i.value?(a(),g(`p`,Ke,` این گذر خارج از روال استاندارد است؛ ثبت یادداشت اجباری است. `)):b.value.length?D(``,!0):(a(),g(`p`,qe,` در این وضعیت گذر خودکاری وجود ندارد. برای تغییر، حالت دستی را فعال کنید. `)),b.value.length?(a(),g(`div`,Je,[h(`div`,Ye,[n[21]||=h(`label`,null,`وضعیت بعدی`,-1),v(q,{modelValue:c.value,"onUpdate:modelValue":n[5]||=e=>c.value=e,block:``,"aria-label":`وضعیت بعدی`,placeholder:`انتخاب کنید…`,options:x.value},null,8,[`modelValue`,`options`])]),h(`div`,Xe,[h(`label`,Ze,` یادداشت`+o(S.value?` (اجباری)`:` (اختیاری)`),1),u(h(`input`,{id:`status-note`,"onUpdate:modelValue":n[6]||=e=>d.value=e,type:`text`,class:`admin-input`,placeholder:`دلیل یا توضیح این تغییر`},null,512),[[L,d.value]])]),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!C.value||e.statusSaving,onClick:B},o(e.statusSaving?`در حال ثبت…`:`ثبت وضعیت`),9,Qe)])):D(``,!0)])],2))}}),[[`__scopeId`,`data-v-bfe77a62`]]),et={class:`orders-page`},tt={class:`orders-page__list-panel admin-card`},nt={class:`orders-page__list-header`},rt={class:`orders-page__list-actions`},it={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},at={class:`orders-page__search`},ot={class:`admin-tabs`},st=[`onClick`],ct={class:`admin-table-wrap`},lt={class:`admin-table admin-table--compact`},ut=[`onClick`],dt={class:`orders-page__actions-cell`},ft=[`aria-expanded`,`onClick`],pt={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},mt=E(_({__name:`DesktopOrdersPage`,setup(s){let d=V(`(min-width: 1280px)`),{activeTab:_,selectedOrderId:b,searchQuery:T,filteredOrders:E,selectedOrder:O,showDetailModal:k,openOrderDetail:A,closeDetailModal:M,settlementLabel:F,goPricing:I,goChecks:z,goCashReceipt:B,changeStatus:U,statusSaving:W,openAddModal:G}=se(),K=f(null),q=f({});function J(){K.value=null}async function Y(e,n){if(n.stopPropagation(),K.value?.id===e.id){J();return}let r=n.currentTarget.getBoundingClientRect();K.value=e,await t();let i=Math.min(Math.max(8,r.right-168),window.innerWidth-168-8);q.value={position:`fixed`,top:`${r.bottom+4}px`,left:`${i}px`,width:`168px`}}function X(){J()}c(()=>{document.addEventListener(`click`,X),window.addEventListener(`scroll`,J,!0),window.addEventListener(`resize`,J)}),r(()=>{document.removeEventListener(`click`,X),window.removeEventListener(`scroll`,J,!0),window.removeEventListener(`resize`,J)});function ne(){O.value&&(M(),I(O.value))}function ie(){O.value&&(M(),z(O.value))}function ae(){O.value&&(M(),B(O.value))}function oe(){O.value&&U({orderId:O.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}function ce(){if(!O.value)return;document.documentElement.classList.add(`printing-order-detail`);let e=()=>{document.documentElement.classList.remove(`printing-order-detail`),window.removeEventListener(`afterprint`,e)};window.addEventListener(`afterprint`,e),window.setTimeout(e,6e4),window.print()}function $(e){let t=K.value;if(t){if(J(),e===`detail`){A(t);return}if(e===`pricing`){I(t);return}if(e===`checks`){z(t);return}if(e===`final`){U({orderId:t.id,status:`final_approved`,note:`تأیید نهایی سفارش`});return}B(t)}}return(t,r)=>(a(),g(`div`,et,[h(`div`,tt,[h(`div`,nt,[r[9]||=h(`div`,null,[h(`h2`,{class:`orders-page__list-title`},`سفارش‌ها`)],-1),h(`div`,rt,[h(`button`,it,[v(N,{name:`filter`,size:16}),r[8]||=S(` فیلتر `,-1)]),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:r[0]||=(...e)=>m(G)&&m(G)(...e)},` سفارش جدید `)])]),h(`div`,at,[v(N,{name:`search`,size:18}),u(h(`input`,{"onUpdate:modelValue":r[1]||=e=>i(T)?T.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[L,m(T)]])]),h(`div`,ot,[(a(!0),g(w,null,y(m(Z),e=>(a(),g(`button`,{key:e.key,type:`button`,class:l([`admin-tab`,{active:m(_)===e.key}]),onClick:t=>_.value=e.key},[S(o(e.label)+` `,1),`count`in e&&e.count?(a(),g(w,{key:0},[S(` (`+o(e.count)+`)`,1)],64)):D(``,!0)],10,st))),128))]),h(`div`,ct,[h(`table`,lt,[r[10]||=h(`thead`,null,[h(`tr`,null,[h(`th`,null,`شماره سفارش`),h(`th`,null,`مشتری`),h(`th`,null,`روش تسویه`),h(`th`,null,`مبلغ کل`),h(`th`,null,`متراژ`),h(`th`,null,`وضعیت`),h(`th`,null,`تاریخ ثبت`),h(`th`,null,`عملیات`)])],-1),h(`tbody`,null,[(a(!0),g(w,null,y(m(E),e=>(a(),g(`tr`,{key:e.id,class:l({"is-selected":m(b)===e.id}),onClick:t=>m(A)(e)},[h(`td`,null,o(e.orderNumber),1),h(`td`,null,o(e.customerName),1),h(`td`,null,o(m(F)(e.settlementMethod)),1),h(`td`,null,o(e.totalAmount?m(H)(e.totalAmount):`—`),1),h(`td`,null,o(m(R)(e.meterage)),1),h(`td`,null,[v(re,{status:e.status},null,8,[`status`])]),h(`td`,null,o(m(ee)(e.createdAt)),1),h(`td`,dt,[h(`button`,{type:`button`,class:`orders-page__more-btn`,"aria-expanded":K.value?.id===e.id,"aria-haspopup":`menu`,"aria-label":`عملیات سفارش`,onClick:t=>Y(e,t)},[v(N,{name:`more`,size:18})],8,ft)])],10,ut))),128))])])]),r[11]||=C(`
نمایش ۱ تا ۷ از ۱۰۳ سفارش
...
`,1)]),(a(),x(p,{to:`body`},[K.value?(a(),g(`div`,{key:0,class:`orders-page__menu`,role:`menu`,style:n(q.value),onClick:r[7]||=j(()=>{},[`stop`])},[h(`button`,{type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[2]||=e=>$(`detail`)},` جزئیات سفارش `),K.value&&m(te)(K.value)?(a(),g(`button`,{key:0,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[3]||=e=>$(`pricing`)},` قیمت‌گذاری `)):D(``,!0),K.value.settlementMethod===`check`?(a(),g(`button`,{key:1,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[4]||=e=>$(`checks`)},` مدیریت چک‌ها `)):D(``,!0),K.value.settlementMethod===`cash`&&K.value.rawStatus!==`cash_confirmed`?(a(),g(`button`,{key:2,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[5]||=e=>$(`cash`)},` رسید پرداخت `)):D(``,!0),m(Q)(K.value)?(a(),g(`button`,{key:3,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[6]||=e=>$(`final`)},` تأیید نهایی `)):D(``,!0)],4)):D(``,!0)])),v(P,{open:m(d)&&m(k)&&!!m(O),title:`جزئیات سفارش`,size:`xl`,onClose:m(M)},{footer:e(()=>[h(`button`,pt,[v(N,{name:`sms`,size:16}),r[12]||=S(` ارسال پیامک `,-1)]),h(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ce},[v(N,{name:`print`,size:16}),r[13]||=S(` چاپ `,-1)])]),default:e(()=>[m(O)?(a(),x($e,{key:0,order:m(O),layout:`desktop`,"settlement-label":m(F),"status-saving":m(W),onPricing:ne,onChecks:ie,onCashReceipt:ae,onFinalApprove:oe,onStatus:m(U)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):D(``,!0)]),_:1},8,[`open`,`onClose`])]))}}),[[`__scopeId`,`data-v-cfed03e1`]]),ht={class:`compact-orders`},gt={class:`compact-page-header`},_t={class:`compact-page-header__row`},vt={class:`compact-page-header__actions`},yt={key:0,class:`compact-orders__filter-dot`,"aria-hidden":`true`},bt={class:`orders-page__search admin-card`},xt={key:0,class:`compact-orders__filter-chip admin-card`},St={key:1,class:`admin-tabs compact-orders__tabs`},Ct=[`onClick`],wt={class:`compact-orders__filter-form`,role:`listbox`,"aria-label":`وضعیت سفارش`},Tt=[`aria-selected`,`onClick`],Et={key:0,class:`compact-orders__filter-check`,"aria-hidden":`true`},Dt={class:`admin-card-list`},Ot=[`onClick`],kt={class:`admin-card-item__header`},At={class:`admin-card-item__title`},jt={class:`admin-card-item__meta`},Mt={key:0,class:`admin-detail-panel__inner`},Nt={class:`admin-detail-panel__header`},Pt={class:`admin-detail-panel__body`},Ft=E(_({__name:`CompactOrdersPage`,setup(t){let n=V(`(max-width: 767px)`),r=V(`(max-width: 1279px)`),{activeTab:s,selectedOrderId:c,searchQuery:d,filteredOrders:p,selectedOrder:_,showDetailPanel:b,showDetailModal:C,selectOrder:E,openOrderDetail:O,closeDetailPanel:k,closeDetailModal:A,settlementLabel:j,goPricing:M,goChecks:F,goCashReceipt:I,changeStatus:z,statusSaving:B,openAddModal:U}=se(),W=f(!1),G=T(()=>s.value!==`all`),K=T(()=>Z.find(e=>e.key===s.value)?.label??`همه`);function q(){W.value=!0}function J(){W.value=!1}function Y(){s.value=`all`,W.value=!1}function X(e){s.value=e,W.value=!1}function Q(e){if(n.value){E(e,!0);return}O(e)}function te(){_.value&&(A(),k(),M(_.value))}function ne(){_.value&&(A(),k(),F(_.value))}function ie(){_.value&&(A(),k(),I(_.value))}function ae(){_.value&&z({orderId:_.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}return(t,f)=>(a(),g(`div`,ht,[h(`div`,gt,[h(`div`,_t,[f[4]||=h(`div`,null,[h(`h2`,{class:`compact-page-header__title`},`سفارش‌ها`)],-1),h(`div`,vt,[h(`button`,{type:`button`,class:l([`admin-btn admin-btn--outline admin-btn--sm`,{"admin-btn--filter-active":G.value}]),onClick:q},[v(N,{name:`filter`,size:16}),f[3]||=S(` فیلتر `,-1),G.value?(a(),g(`span`,yt)):D(``,!0)],2),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:f[0]||=(...e)=>m(U)&&m(U)(...e)},` سفارش جدید `)])])]),h(`div`,bt,[v(N,{name:`search`,size:18}),u(h(`input`,{"onUpdate:modelValue":f[1]||=e=>i(d)?d.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[L,m(d)]])]),m(n)&&G.value?(a(),g(`div`,xt,[h(`span`,null,`وضعیت: `+o(K.value),1),h(`button`,{type:`button`,class:`compact-orders__filter-clear`,onClick:Y},`پاک کردن`)])):D(``,!0),m(n)?D(``,!0):(a(),g(`div`,St,[(a(!0),g(w,null,y(m(Z),e=>(a(),g(`button`,{key:e.key,type:`button`,class:l([`admin-tab`,{active:m(s)===e.key}]),onClick:t=>s.value=e.key},[S(o(e.label)+` `,1),`count`in e&&e.count?(a(),g(w,{key:0},[S(` (`+o(e.count)+`)`,1)],64)):D(``,!0)],10,Ct))),128))])),v(P,{open:W.value,title:`فیلتر سفارش‌ها`,onClose:J},{footer:e(()=>[h(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Y},` پاک کردن `),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:J},` بستن `)]),default:e(()=>[h(`div`,wt,[(a(!0),g(w,null,y(m(Z),e=>(a(),g(`button`,{key:e.key,type:`button`,class:l([`compact-orders__filter-option`,{"is-active":m(s)===e.key}]),role:`option`,"aria-selected":m(s)===e.key,onClick:t=>X(e.key)},[h(`span`,null,o(e.label),1),m(s)===e.key?(a(),g(`span`,Et,`✓`)):D(``,!0)],10,Tt))),128))])]),_:1},8,[`open`]),h(`div`,Dt,[(a(!0),g(w,null,y(m(p),e=>(a(),g(`button`,{key:e.id,type:`button`,class:l([`admin-card-item`,{selected:m(c)===e.id}]),onClick:t=>Q(e)},[h(`div`,kt,[h(`p`,At,o(e.orderNumber),1),v(re,{status:e.status},null,8,[`status`])]),h(`div`,jt,[h(`span`,null,[f[5]||=h(`strong`,null,`مشتری:`,-1),S(` `+o(e.customerName),1)]),h(`span`,null,[f[6]||=h(`strong`,null,`متراژ:`,-1),S(` `+o(m(R)(e.meterage)),1)]),h(`span`,null,[f[7]||=h(`strong`,null,`مبلغ:`,-1),S(` `+o(e.totalAmount?m(H)(e.totalAmount):`—`),1)]),h(`span`,null,o(m(ee)(e.createdAt)),1)])],10,Ot))),128))]),h(`div`,{class:l([`admin-detail-panel compact-orders__mobile-panel`,{open:m(n)&&m(b)&&m(_)}])},[m(_)?(a(),g(`div`,Mt,[h(`div`,Nt,[h(`button`,{type:`button`,class:`admin-detail-panel__back`,"aria-label":`بازگشت به لیست`,onClick:f[2]||=(...e)=>m(k)&&m(k)(...e)},[v(N,{name:`chevron-back`,size:20})]),f[8]||=h(`h2`,{class:`admin-detail-panel__title`},`جزئیات سفارش`,-1)]),h(`div`,Pt,[v($e,{order:m(_),"settlement-label":m(j),"status-saving":m(B),onPricing:te,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:m(z)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])])])):D(``,!0)],2),v(P,{open:m(r)&&!m(n)&&m(C)&&!!m(_),title:`جزئیات سفارش`,size:`xl`,onClose:m(A)},{default:e(()=>[m(_)?(a(),x($e,{key:0,order:m(_),"settlement-label":m(j),"status-saving":m(B),onPricing:te,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:m(z)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):D(``,!0)]),_:1},8,[`open`,`onClose`])]))}}),[[`__scopeId`,`data-v-fe86c1c8`]]),It={key:0,class:`admin-form__error`,role:`alert`},Lt={class:`admin-form__field`},Rt={key:0,class:`admin-form__hint`},zt={class:`admin-form__row`},Bt={class:`admin-form__field`},Vt={class:`admin-form__field`},Ht={key:1,class:`order-add__items`},Ut=[`onClick`],Wt={key:2,class:`admin-form__hint`},Gt=[`disabled`],Kt=E(_({__name:`OrderAddModal`,setup(t){let{showAddModal:n,formError:r,form:i,isFormValid:c,activeCustomers:l,applyCustomer:p,addFormItem:_,removeFormItem:b,closeAddModal:C,submitAddOrder:E}=se(),O=K(),k=f([]),A=d({productId:``,meterage:0}),N=T(()=>l.value.map(e=>{let t=e.phone?` — ${e.phone}`:``,n=e.isActive===!1?` (غیرفعال)`:``;return{value:e.id,label:`${e.name}${t}${n}`}})),I=T(()=>k.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),R=T(()=>k.value.find(e=>e.id===A.productId)??null);s(()=>i.customerId,e=>{if(!e){i.customerName=``,i.customerPhone=``;return}p(e)}),s(n,async e=>{if(e){A.productId=``,A.meterage=0;try{k.value=await F.list({activeOnly:!0})}catch(e){O.error(e instanceof M?e.message:`بارگذاری محصولات انجام نشد.`)}}}),s(()=>A.productId,e=>{let t=k.value.find(t=>t.id===e);t&&(A.meterage=t.rollMeters||t.minMeterage||t.orderStep||50)});function z(){let e=R.value;if(!e){r.value=`محصول را انتخاب کنید.`;return}if(!A.meterage||A.meterage<=0){r.value=`متراژ باید بزرگ‌تر از صفر باشد.`;return}_({productId:e.id,productName:e.name,catalogCode:e.catalogCode,meterage:A.meterage}),A.productId=``,A.meterage=0}return(t,s)=>(a(),x(P,{open:m(n),title:`پیش‌سفارش جدید`,size:`lg`,onClose:m(C)},{footer:e(()=>[h(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:s[4]||=(...e)=>m(C)&&m(C)(...e)},` انصراف `),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!m(c),onClick:s[5]||=(...e)=>m(E)&&m(E)(...e)},` ثبت پیش‌سفارش `,8,Gt)]),default:e(()=>[h(`form`,{class:`admin-form`,onSubmit:s[3]||=j((...e)=>m(E)&&m(E)(...e),[`prevent`])},[m(r)?(a(),g(`p`,It,o(m(r)),1)):D(``,!0),s[9]||=h(`p`,{class:`admin-form__hint`},` مثل سفارش مشتری: ابتدا اقلام ثبت می‌شود، قیمت‌گذاری و تسویه بعداً انجام می‌شود. `,-1),h(`div`,Lt,[s[6]||=h(`label`,{id:`order-customer-label`},[S(` مشتری `),h(`span`,{class:`admin-form__required`},`*`)],-1),v(q,{id:`order-customer`,modelValue:m(i).customerId,"onUpdate:modelValue":s[0]||=e=>m(i).customerId=e,block:``,searchable:``,"aria-label":`انتخاب مشتری از لیست`,placeholder:`انتخاب مشتری از لیست`,"search-placeholder":`جستجوی نام یا موبایل…`,options:N.value},null,8,[`modelValue`,`options`]),N.value.length?D(``,!0):(a(),g(`p`,Rt,` مشتری‌ای در سیستم نیست. ابتدا از بخش «مشتریان» یک مشتری ثبت کنید. `))]),h(`div`,zt,[h(`div`,Bt,[s[7]||=h(`label`,null,`محصول`,-1),v(q,{modelValue:A.productId,"onUpdate:modelValue":s[1]||=e=>A.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:I.value},null,8,[`modelValue`,`options`])]),h(`div`,Vt,[s[8]||=h(`label`,{for:`order-item-meterage`},`متراژ (متر)`,-1),u(h(`input`,{id:`order-item-meterage`,"onUpdate:modelValue":s[2]||=e=>A.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[L,A.meterage,void 0,{number:!0}]])])]),h(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:z},` افزودن به اقلام `),m(i).items.length?(a(),g(`div`,Ht,[(a(!0),g(w,null,y(m(i).items,e=>(a(),g(`div`,{key:e.productId,class:`order-add__item`},[h(`div`,null,[h(`strong`,null,o(e.productName),1),h(`span`,null,`کالیته `+o(e.catalogCode)+` — `+o(m(U)(e.meterage))+` متر`,1)]),h(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>m(b)(e.productId)},` حذف `,8,Ut)]))),128))])):(a(),g(`p`,Wt,`هنوز محصولی به پیش‌سفارش اضافه نشده است.`))],32)]),_:1},8,[`open`,`onClose`]))}}),[[`__scopeId`,`data-v-291a46f0`]]),qt=_({__name:`OrdersView`,setup(e){return oe(),(e,t)=>(a(),g(w,null,[v(mt,{class:`desktop-only`}),v(Ft,{class:`compact-only`}),v(Kt)],64))}});export{qt as default}; \ No newline at end of file diff --git a/dist/assets/OrdersView-gEeEvVCz.js b/dist/assets/OrdersView-gEeEvVCz.js new file mode 100644 index 0000000..ece06cc --- /dev/null +++ b/dist/assets/OrdersView-gEeEvVCz.js @@ -0,0 +1 @@ +import{B as e,C as t,Dt as n,E as r,K as i,O as a,Ot as o,R as s,T as c,Tt as l,V as u,Y as d,Z as f,a as p,at as m,c as h,d as g,g as _,h as v,j as y,k as b,l as x,m as S,p as C,r as w,s as T,t as E,u as D,x as O}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as k,f as A,l as j,m as M,t as N}from"./http-Djf2pGxE.js";import{L as P,N as F,R as I,S as L,T as R,V as z,c as B,i as V,o as ee,s as H,v as U,w as W,y as G,z as K}from"./index-CznUUXv3.js";import{t as q}from"./AdminSelect-DK-_otkw.js";import{r as J}from"./adminLabels-Cz9ccm1Z.js";import{c as Y,i as X,n as Z,o as Q,s as te,t as ne}from"./orderStatus-CYVblRJB.js";import{t as re}from"./StatusBadge-Cg2zTE2k.js";function ie(){let e=I(),t=K(),n=k(),r=f([]),i=f([]),a=new Set(Z.map(e=>e.key));function o(){let t=typeof e.query.tab==`string`?e.query.tab:``;return a.has(t)?t:`all`}let l=f([]),u=f(o()),p=f(``),m=f(``),h=f(!1),g=f(!1),_=f(!1),v=f(``),y=f(!1),b=()=>({customerId:``,customerName:``,customerPhone:``,items:[]}),x=d(b()),S=T(()=>x.customerId.length>0&&x.items.length>0),C=T(()=>{let e=[...i.value];return e.sort((e,t)=>Number(t.isActive)-Number(e.isActive)||e.name.localeCompare(t.name,`fa`)),e});function w(e){let t=i.value.find(t=>t.id===e);x.customerId=e,x.customerName=t?.name??``,x.customerPhone=t?.phone??``}async function E(){try{i.value=await G.list()}catch(e){n.error(e instanceof N?e.message:`بارگذاری مشتریان انجام نشد.`)}}let D=T(()=>{let e=l.value;if(u.value!==`all`&&(e=e.filter(e=>e.status===u.value)),m.value.trim()){let t=m.value.trim();e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t))}return e}),O=T(()=>l.value.find(e=>e.id===p.value)??null);function A(e){let t=e.trim();if(t)return l.value.find(e=>e.id===t||e.orderNumber.toUpperCase()===t.toUpperCase())}async function j(){let n=typeof e.query.order==`string`?e.query.order:``;if(!n||!l.value.length)return;let r=A(n);if(!r){m.value=n;return}let i=typeof e.query.focus==`string`?e.query.focus:``;if(i===`pricing`){await t.replace(`/orders/${r.id}/pricing`);return}if(i===`checks`){await t.replace(`/orders/${r.id}/checks`);return}F(r),m.value=r.orderNumber}async function M(){try{let[e,t,n]=await Promise.all([W.list(),U.list(),G.list()]);l.value=e.map(e=>L(e)),r.value=t,i.value=n,await j()}catch(e){n.error(e instanceof N?e.message:`بارگذاری سفارش‌ها انجام نشد.`)}}c(()=>{M()}),s(()=>[e.query.order,e.query.focus],()=>{j()}),s(()=>e.query.tab,()=>{let e=o();u.value!==e&&(u.value=e)}),s(u,n=>{let r=typeof e.query.tab==`string`?e.query.tab:`all`,i=n===`all`?void 0:n;(r===`all`?void 0:r)!==i&&t.replace({query:{...e.query,tab:i}})});function P(e,t=!1){p.value=e.id,t&&(g.value=!0)}function F(e){p.value=e.id,_.value=!0}function R(){g.value=!1}function z(){_.value=!1}function B(e){return e?e===`check`?`چکی`:`نقدی`:`انتخاب‌نشده`}let V=f(!1);async function ee(e){if(V.value)return null;V.value=!0;try{let t=await W.updateStatus(e.orderId,{status:e.status,note:e.note,reason:e.reason,force:e.force}),r=L(t),i=l.value.findIndex(t=>t.id===e.orderId);return i>=0&&(l.value[i]={...l.value[i],...r}),n.success(`وضعیت سفارش به «${Y(e.status)}» تغییر کرد.`),r}catch(e){return n.error(e instanceof N?e.message:`تغییر وضعیت انجام نشد.`),null}finally{V.value=!1}}function H(e){t.push(`/orders/${e.id}/pricing`)}function q(e){t.push(`/orders/${e.id}/checks`)}function J(e){t.push({path:`/cash-payments`,query:{order:e.orderNumber}})}function X(){Object.assign(x,b()),v.value=``,h.value=!0,E()}function Q(){h.value=!1,v.value=``}function te(e){return x.items.some(t=>t.productId===e.productId)?(v.value=`این محصول قبلاً به سفارش اضافه شده است.`,!1):(x.items.push(e),v.value=``,!0)}function ne(e){x.items=x.items.filter(t=>t.productId!==e)}async function re(){if(!S.value){v.value=`انتخاب مشتری و حداقل یک محصول الزامی است.`;return}y.value=!0;try{let e=await W.create({customerId:x.customerId||void 0,userId:x.customerId||void 0,customerName:x.customerName.trim(),customerPhone:x.customerPhone.trim()||void 0,items:x.items.map(e=>({productId:e.productId,meterage:e.meterage}))}),t=L(e);l.value.unshift(t),p.value=t.id,n.success(`سفارش جدید ثبت شد.`),Q()}catch(e){n.error(e instanceof N?e.message:`ثبت سفارش انجام نشد.`)}finally{y.value=!1}}return{companies:r,customers:i,activeCustomers:C,applyCustomer:w,loadCustomers:E,orderList:l,activeTab:u,selectedOrderId:p,searchQuery:m,showAddModal:h,showDetailPanel:g,showDetailModal:_,formError:v,form:x,addFormItem:te,removeFormItem:ne,isFormValid:S,filteredOrders:D,selectedOrder:O,selectOrder:P,openOrderDetail:F,closeDetailPanel:R,closeDetailModal:z,settlementLabel:B,changeStatus:ee,statusSaving:V,goPricing:H,goChecks:q,goCashReceipt:J,openAddModal:X,closeAddModal:Q,submitAddOrder:re,saving:y}}var ae=Symbol(`orders-page`);function oe(){let e=ie();return b(ae,e),e}function se(){let e=O(ae);if(!e)throw Error(`Orders page context is missing`);return e}var ce={class:`order-detail__hero`},$={class:`order-detail__hero-text`},le={class:`order-detail__id`},ue={key:0,class:`order-detail__raw-status`},de={class:`order-detail__actions no-print`},fe=[`disabled`],pe={class:`order-detail__panels`},me={class:`order-detail__section`},he={class:`order-detail__info`},ge={class:`order-detail__info-row`},_e={class:`order-detail__info-value`},ve={class:`order-detail__info-row`},ye={class:`order-detail__info-value order-detail__info-value--phone`,dir:`ltr`},be={class:`order-detail__info-row`},xe={class:`order-detail__info-value`},Se={class:`order-detail__info-row`},Ce={class:`order-detail__info-value`},we={class:`order-detail__section`},Te={class:`order-detail__info`},Ee={class:`order-detail__info-row`},De={class:`order-detail__info-value`},Oe={class:`order-detail__info-row`},ke={class:`order-detail__info-value`},Ae={class:`order-detail__info-row`},je={class:`order-detail__info-value`},Me={class:`order-detail__info-row`},Ne={class:`order-detail__info-value`},Pe={key:0,class:`order-detail__section`},Fe={key:0,class:`admin-table-wrap order-detail__table`},Ie={class:`admin-table admin-table--compact`},Le={key:1,class:`order-detail__items`},Re={class:`order-detail__item-head`},ze={class:`order-detail__item-meta`},Be={key:0},Ve={key:1},He={key:2,class:`order-detail__item-total`},Ue={class:`order-detail__section order-detail__status no-print`},We={class:`order-detail__status-head`},Ge={class:`order-detail__manual`},Ke={key:0,class:`order-detail__status-hint`},qe={key:1,class:`order-detail__status-hint`},Je={key:2,class:`order-detail__status-form`},Ye={class:`admin-form__field`},Xe={class:`admin-form__field`},Ze={for:`status-note`},Qe=[`disabled`],$e=E(_({__name:`OrderDetailContent`,props:{order:{},settlementLabel:{},layout:{default:`compact`},statusSaving:{type:Boolean}},emits:[`pricing`,`checks`,`cashReceipt`,`finalApprove`,`status`],setup(e,{emit:t}){let n=e,r=t,i=f(!1),c=f(``),d=f(``),p=Object.keys(X),_=T(()=>n.order.allowedTransitions??[]),b=T(()=>i.value?p.filter(e=>e!==n.order.rawStatus):[..._.value]),x=T(()=>[{value:``,label:`انتخاب کنید…`},...b.value.map(e=>({value:e,label:Y(e)}))]),S=T(()=>i.value),C=T(()=>!!c.value&&(!S.value||d.value.trim().length>0)),E=T(()=>n.layout===`desktop`),O=T(()=>ne[n.order.status]?.label??n.order.status),k=T(()=>{let e=Y(n.order.rawStatus);return!e||e===O.value?``:e}),M=T(()=>{let e=n.order.customerType;return e?J[e]??n.order.customerType??`—`:`—`}),N=T(()=>te(n.order)),F=T(()=>Q(n.order)),I=T(()=>n.order.settlementMethod===`check`&&!N.value),L=T(()=>n.order.settlementMethod===`cash`&&!N.value&&n.order.rawStatus!==`cash_confirmed`),R=T(()=>N.value?`pricing`:F.value?`final`:I.value?`checks`:L.value?`cash`:null);s([()=>n.order.id,i],()=>{c.value=``,d.value=``});function z(){if(!c.value||!C.value)return;let e=d.value.trim()||void 0;r(`status`,{orderId:n.order.id,status:c.value,note:e,reason:i.value?e:void 0,force:i.value||void 0}),c.value=``,d.value=``}return(t,n)=>(a(),g(`div`,{class:l([`order-detail`,`order-detail--${e.layout}`])},[h(`header`,ce,[h(`div`,$,[h(`div`,le,[h(`strong`,null,o(e.order.orderNumber),1),v(re,{status:e.order.status},null,8,[`status`])]),k.value?(a(),g(`p`,ue,o(k.value),1)):D(``,!0)]),h(`div`,de,[N.value?(a(),g(`button`,{key:0,type:`button`,class:l([`admin-btn admin-btn--sm`,R.value===`pricing`?`admin-btn--primary`:`admin-btn--outline`]),onClick:n[0]||=e=>r(`pricing`)},` قیمت‌گذاری سفارش `,2)):D(``,!0),I.value?(a(),g(`button`,{key:1,type:`button`,class:l([`admin-btn admin-btn--sm`,R.value===`checks`?`admin-btn--primary`:`admin-btn--outline`]),onClick:n[1]||=e=>r(`checks`)},` مدیریت چک‌ها `,2)):D(``,!0),L.value?(a(),g(`button`,{key:2,type:`button`,class:l([`admin-btn admin-btn--sm`,R.value===`cash`?`admin-btn--primary`:`admin-btn--outline`]),onClick:n[2]||=e=>r(`cashReceipt`)},` رسید پرداخت `,2)):D(``,!0),F.value?(a(),g(`button`,{key:3,type:`button`,class:l([`admin-btn admin-btn--sm`,R.value===`final`?`admin-btn--primary`:`admin-btn--outline`]),disabled:e.statusSaving,onClick:n[3]||=e=>r(`finalApprove`)},` تأیید نهایی `,10,fe)):D(``,!0)])]),h(`div`,pe,[h(`section`,me,[n[11]||=h(`h3`,{class:`order-detail__section-title`},`اطلاعات مشتری`,-1),h(`div`,he,[h(`div`,ge,[v(P,{name:`building`,size:16}),n[7]||=h(`span`,{class:`order-detail__info-label`},`مشتری`,-1),h(`span`,_e,o(e.order.customerName),1)]),h(`div`,ve,[v(P,{name:`phone`,size:16}),n[8]||=h(`span`,{class:`order-detail__info-label`},`تلفن`,-1),h(`span`,ye,o(e.order.customerPhone??`—`),1)]),h(`div`,be,[v(P,{name:`id-card`,size:16}),n[9]||=h(`span`,{class:`order-detail__info-label`},`شناسه ملی`,-1),h(`span`,xe,o(e.order.customerNationalId??`—`),1)]),h(`div`,Se,[v(P,{name:`user`,size:16}),n[10]||=h(`span`,{class:`order-detail__info-label`},`نوع مشتری`,-1),h(`span`,Ce,o(M.value),1)])])]),h(`section`,we,[n[16]||=h(`h3`,{class:`order-detail__section-title`},`اطلاعات سفارش`,-1),h(`div`,Te,[h(`div`,Ee,[n[12]||=h(`span`,{class:`order-detail__info-label`},`شرکت`,-1),h(`span`,De,o(e.order.companyName),1)]),h(`div`,Oe,[n[13]||=h(`span`,{class:`order-detail__info-label`},`روش تسویه`,-1),h(`span`,ke,o(e.settlementLabel(e.order.settlementMethod)),1)]),h(`div`,Ae,[n[14]||=h(`span`,{class:`order-detail__info-label`},`متراژ کل`,-1),h(`span`,je,o(m(H)(e.order.meterage)),1)]),h(`div`,Me,[n[15]||=h(`span`,{class:`order-detail__info-label`},`مبلغ کل`,-1),h(`span`,Ne,o(e.order.totalAmount==null?`پس از قیمت‌گذاری`:m(V)(e.order.totalAmount)),1)])])])]),e.order.items?.length?(a(),g(`section`,Pe,[n[18]||=h(`h3`,{class:`order-detail__section-title`},`محصولات سفارش`,-1),E.value?(a(),g(`div`,Fe,[h(`table`,Ie,[n[17]||=h(`thead`,null,[h(`tr`,null,[h(`th`,null,`شرکت`),h(`th`,null,`کالیته`),h(`th`,null,`محصول`),h(`th`,null,`رنگ`),h(`th`,null,`متراژ`),h(`th`,null,`قیمت`),h(`th`,null,`مبلغ`)])],-1),h(`tbody`,null,[(a(!0),g(w,null,y(e.order.items,t=>(a(),g(`tr`,{key:t.id},[h(`td`,null,o(t.companyName||e.order.companyName),1),h(`td`,null,o(t.catalogCode),1),h(`td`,null,o(t.productName),1),h(`td`,null,o(t.color),1),h(`td`,null,o(m(B)(t.confirmedMeterage??t.requestedMeterage)),1),h(`td`,null,o(t.supplyPrice==null?`—`:m(V)(t.supplyPrice)),1),h(`td`,null,o(t.totalAmount==null?`—`:m(V)(t.totalAmount)),1)]))),128))])])])):(a(),g(`ul`,Le,[(a(!0),g(w,null,y(e.order.items,e=>(a(),g(`li`,{key:e.id,class:`order-detail__item`},[h(`div`,Re,[h(`strong`,null,o(e.productName),1),h(`span`,null,o(e.catalogCode),1)]),h(`div`,ze,[e.companyName?(a(),g(`span`,Be,o(e.companyName),1)):D(``,!0),h(`span`,null,o(e.color),1),h(`span`,null,o(m(H)(e.confirmedMeterage??e.requestedMeterage)),1),e.supplyPrice==null?D(``,!0):(a(),g(`span`,Ve,o(m(V)(e.supplyPrice)),1)),e.totalAmount==null?D(``,!0):(a(),g(`span`,He,o(m(V)(e.totalAmount)),1))])]))),128))]))])):D(``,!0),h(`section`,Ue,[h(`div`,We,[n[20]||=h(`h3`,{class:`order-detail__section-title`},`تغییر وضعیت`,-1),h(`label`,Ge,[u(h(`input`,{"onUpdate:modelValue":n[4]||=e=>i.value=e,type:`checkbox`},null,512),[[j,i.value]]),n[19]||=h(`span`,null,`تغییر دستی`,-1)])]),i.value?(a(),g(`p`,Ke,` این گذر خارج از روال استاندارد است؛ ثبت یادداشت اجباری است. `)):b.value.length?D(``,!0):(a(),g(`p`,qe,` در این وضعیت گذر خودکاری وجود ندارد. برای تغییر، حالت دستی را فعال کنید. `)),b.value.length?(a(),g(`div`,Je,[h(`div`,Ye,[n[21]||=h(`label`,null,`وضعیت بعدی`,-1),v(q,{modelValue:c.value,"onUpdate:modelValue":n[5]||=e=>c.value=e,block:``,"aria-label":`وضعیت بعدی`,placeholder:`انتخاب کنید…`,options:x.value},null,8,[`modelValue`,`options`])]),h(`div`,Xe,[h(`label`,Ze,` یادداشت`+o(S.value?` (اجباری)`:` (اختیاری)`),1),u(h(`input`,{id:`status-note`,"onUpdate:modelValue":n[6]||=e=>d.value=e,type:`text`,class:`admin-input`,placeholder:`دلیل یا توضیح این تغییر`},null,512),[[A,d.value]])]),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!C.value||e.statusSaving,onClick:z},o(e.statusSaving?`در حال ثبت…`:`ثبت وضعیت`),9,Qe)])):D(``,!0)])],2))}}),[[`__scopeId`,`data-v-bfe77a62`]]),et={class:`orders-page`},tt={class:`orders-page__list-panel admin-card`},nt={class:`orders-page__list-header`},rt={class:`orders-page__list-actions`},it={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},at={class:`orders-page__search`},ot={class:`admin-tabs`},st=[`onClick`],ct={class:`admin-table-wrap`},lt={class:`admin-table admin-table--compact`},ut=[`onClick`],dt={class:`orders-page__actions-cell`},ft=[`aria-expanded`,`onClick`],pt={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},mt=E(_({__name:`DesktopOrdersPage`,setup(s){let d=F(`(min-width: 1280px)`),{activeTab:_,selectedOrderId:b,searchQuery:T,filteredOrders:E,selectedOrder:O,showDetailModal:k,openOrderDetail:j,closeDetailModal:N,settlementLabel:I,goPricing:L,goChecks:R,goCashReceipt:B,changeStatus:U,statusSaving:W,openAddModal:G}=se(),K=f(null),q=f({});function J(){K.value=null}async function Y(e,n){if(n.stopPropagation(),K.value?.id===e.id){J();return}let r=n.currentTarget.getBoundingClientRect();K.value=e,await t();let i=Math.min(Math.max(8,r.right-168),window.innerWidth-168-8);q.value={position:`fixed`,top:`${r.bottom+4}px`,left:`${i}px`,width:`168px`}}function X(){J()}c(()=>{document.addEventListener(`click`,X),window.addEventListener(`scroll`,J,!0),window.addEventListener(`resize`,J)}),r(()=>{document.removeEventListener(`click`,X),window.removeEventListener(`scroll`,J,!0),window.removeEventListener(`resize`,J)});function ne(){O.value&&(N(),L(O.value))}function ie(){O.value&&(N(),R(O.value))}function ae(){O.value&&(N(),B(O.value))}function oe(){O.value&&U({orderId:O.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}function ce(){if(!O.value)return;document.documentElement.classList.add(`printing-order-detail`);let e=()=>{document.documentElement.classList.remove(`printing-order-detail`),window.removeEventListener(`afterprint`,e)};window.addEventListener(`afterprint`,e),window.setTimeout(e,6e4),window.print()}function $(e){let t=K.value;if(t){if(J(),e===`detail`){j(t);return}if(e===`pricing`){L(t);return}if(e===`checks`){R(t);return}if(e===`final`){U({orderId:t.id,status:`final_approved`,note:`تأیید نهایی سفارش`});return}B(t)}}return(t,r)=>(a(),g(`div`,et,[h(`div`,tt,[h(`div`,nt,[r[9]||=h(`div`,null,[h(`h2`,{class:`orders-page__list-title`},`سفارش‌ها`)],-1),h(`div`,rt,[h(`button`,it,[v(P,{name:`filter`,size:16}),r[8]||=S(` فیلتر `,-1)]),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:r[0]||=(...e)=>m(G)&&m(G)(...e)},` سفارش جدید `)])]),h(`div`,at,[v(P,{name:`search`,size:18}),u(h(`input`,{"onUpdate:modelValue":r[1]||=e=>i(T)?T.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[A,m(T)]])]),h(`div`,ot,[(a(!0),g(w,null,y(m(Z),e=>(a(),g(`button`,{key:e.key,type:`button`,class:l([`admin-tab`,{active:m(_)===e.key}]),onClick:t=>_.value=e.key},[S(o(e.label)+` `,1),`count`in e&&e.count?(a(),g(w,{key:0},[S(` (`+o(e.count)+`)`,1)],64)):D(``,!0)],10,st))),128))]),h(`div`,ct,[h(`table`,lt,[r[10]||=h(`thead`,null,[h(`tr`,null,[h(`th`,null,`شماره سفارش`),h(`th`,null,`مشتری`),h(`th`,null,`روش تسویه`),h(`th`,null,`مبلغ کل`),h(`th`,null,`متراژ`),h(`th`,null,`وضعیت`),h(`th`,null,`تاریخ ثبت`),h(`th`,null,`عملیات`)])],-1),h(`tbody`,null,[(a(!0),g(w,null,y(m(E),e=>(a(),g(`tr`,{key:e.id,class:l({"is-selected":m(b)===e.id}),onClick:t=>m(j)(e)},[h(`td`,null,o(e.orderNumber),1),h(`td`,null,o(e.customerName),1),h(`td`,null,o(m(I)(e.settlementMethod)),1),h(`td`,null,o(e.totalAmount?m(V)(e.totalAmount):`—`),1),h(`td`,null,o(m(H)(e.meterage)),1),h(`td`,null,[v(re,{status:e.status},null,8,[`status`])]),h(`td`,null,o(m(ee)(e.createdAt)),1),h(`td`,dt,[h(`button`,{type:`button`,class:`orders-page__more-btn`,"aria-expanded":K.value?.id===e.id,"aria-haspopup":`menu`,"aria-label":`عملیات سفارش`,onClick:t=>Y(e,t)},[v(P,{name:`more`,size:18})],8,ft)])],10,ut))),128))])])]),r[11]||=C(`
نمایش ۱ تا ۷ از ۱۰۳ سفارش
...
`,1)]),(a(),x(p,{to:`body`},[K.value?(a(),g(`div`,{key:0,class:`orders-page__menu`,role:`menu`,style:n(q.value),onClick:r[7]||=M(()=>{},[`stop`])},[h(`button`,{type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[2]||=e=>$(`detail`)},` جزئیات سفارش `),K.value&&m(te)(K.value)?(a(),g(`button`,{key:0,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[3]||=e=>$(`pricing`)},` قیمت‌گذاری `)):D(``,!0),K.value.settlementMethod===`check`?(a(),g(`button`,{key:1,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[4]||=e=>$(`checks`)},` مدیریت چک‌ها `)):D(``,!0),K.value.settlementMethod===`cash`&&K.value.rawStatus!==`cash_confirmed`?(a(),g(`button`,{key:2,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[5]||=e=>$(`cash`)},` رسید پرداخت `)):D(``,!0),m(Q)(K.value)?(a(),g(`button`,{key:3,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[6]||=e=>$(`final`)},` تأیید نهایی `)):D(``,!0)],4)):D(``,!0)])),v(z,{open:m(d)&&m(k)&&!!m(O),title:`جزئیات سفارش`,size:`xl`,onClose:m(N)},{footer:e(()=>[h(`button`,pt,[v(P,{name:`sms`,size:16}),r[12]||=S(` ارسال پیامک `,-1)]),h(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ce},[v(P,{name:`print`,size:16}),r[13]||=S(` چاپ `,-1)])]),default:e(()=>[m(O)?(a(),x($e,{key:0,order:m(O),layout:`desktop`,"settlement-label":m(I),"status-saving":m(W),onPricing:ne,onChecks:ie,onCashReceipt:ae,onFinalApprove:oe,onStatus:m(U)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):D(``,!0)]),_:1},8,[`open`,`onClose`])]))}}),[[`__scopeId`,`data-v-cfed03e1`]]),ht={class:`compact-orders`},gt={class:`compact-page-header`},_t={class:`compact-page-header__row`},vt={class:`compact-page-header__actions`},yt={key:0,class:`compact-orders__filter-dot`,"aria-hidden":`true`},bt={class:`orders-page__search admin-card`},xt={key:0,class:`compact-orders__filter-chip admin-card`},St={key:1,class:`admin-tabs compact-orders__tabs`},Ct=[`onClick`],wt={class:`compact-orders__filter-form`,role:`listbox`,"aria-label":`وضعیت سفارش`},Tt=[`aria-selected`,`onClick`],Et={key:0,class:`compact-orders__filter-check`,"aria-hidden":`true`},Dt={class:`admin-card-list`},Ot=[`onClick`],kt={class:`admin-card-item__header`},At={class:`admin-card-item__title`},jt={class:`admin-card-item__meta`},Mt={key:0,class:`admin-detail-panel__inner`},Nt={class:`admin-detail-panel__header`},Pt={class:`admin-detail-panel__body`},Ft=E(_({__name:`CompactOrdersPage`,setup(t){let n=F(`(max-width: 767px)`),r=F(`(max-width: 1279px)`),{activeTab:s,selectedOrderId:c,searchQuery:d,filteredOrders:p,selectedOrder:_,showDetailPanel:b,showDetailModal:C,selectOrder:E,openOrderDetail:O,closeDetailPanel:k,closeDetailModal:j,settlementLabel:M,goPricing:N,goChecks:I,goCashReceipt:L,changeStatus:R,statusSaving:B,openAddModal:U}=se(),W=f(!1),G=T(()=>s.value!==`all`),K=T(()=>Z.find(e=>e.key===s.value)?.label??`همه`);function q(){W.value=!0}function J(){W.value=!1}function Y(){s.value=`all`,W.value=!1}function X(e){s.value=e,W.value=!1}function Q(e){if(n.value){E(e,!0);return}O(e)}function te(){_.value&&(j(),k(),N(_.value))}function ne(){_.value&&(j(),k(),I(_.value))}function ie(){_.value&&(j(),k(),L(_.value))}function ae(){_.value&&R({orderId:_.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}return(t,f)=>(a(),g(`div`,ht,[h(`div`,gt,[h(`div`,_t,[f[4]||=h(`div`,null,[h(`h2`,{class:`compact-page-header__title`},`سفارش‌ها`)],-1),h(`div`,vt,[h(`button`,{type:`button`,class:l([`admin-btn admin-btn--outline admin-btn--sm`,{"admin-btn--filter-active":G.value}]),onClick:q},[v(P,{name:`filter`,size:16}),f[3]||=S(` فیلتر `,-1),G.value?(a(),g(`span`,yt)):D(``,!0)],2),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:f[0]||=(...e)=>m(U)&&m(U)(...e)},` سفارش جدید `)])])]),h(`div`,bt,[v(P,{name:`search`,size:18}),u(h(`input`,{"onUpdate:modelValue":f[1]||=e=>i(d)?d.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[A,m(d)]])]),m(n)&&G.value?(a(),g(`div`,xt,[h(`span`,null,`وضعیت: `+o(K.value),1),h(`button`,{type:`button`,class:`compact-orders__filter-clear`,onClick:Y},`پاک کردن`)])):D(``,!0),m(n)?D(``,!0):(a(),g(`div`,St,[(a(!0),g(w,null,y(m(Z),e=>(a(),g(`button`,{key:e.key,type:`button`,class:l([`admin-tab`,{active:m(s)===e.key}]),onClick:t=>s.value=e.key},[S(o(e.label)+` `,1),`count`in e&&e.count?(a(),g(w,{key:0},[S(` (`+o(e.count)+`)`,1)],64)):D(``,!0)],10,Ct))),128))])),v(z,{open:W.value,title:`فیلتر سفارش‌ها`,onClose:J},{footer:e(()=>[h(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Y},` پاک کردن `),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:J},` بستن `)]),default:e(()=>[h(`div`,wt,[(a(!0),g(w,null,y(m(Z),e=>(a(),g(`button`,{key:e.key,type:`button`,class:l([`compact-orders__filter-option`,{"is-active":m(s)===e.key}]),role:`option`,"aria-selected":m(s)===e.key,onClick:t=>X(e.key)},[h(`span`,null,o(e.label),1),m(s)===e.key?(a(),g(`span`,Et,`✓`)):D(``,!0)],10,Tt))),128))])]),_:1},8,[`open`]),h(`div`,Dt,[(a(!0),g(w,null,y(m(p),e=>(a(),g(`button`,{key:e.id,type:`button`,class:l([`admin-card-item`,{selected:m(c)===e.id}]),onClick:t=>Q(e)},[h(`div`,kt,[h(`p`,At,o(e.orderNumber),1),v(re,{status:e.status},null,8,[`status`])]),h(`div`,jt,[h(`span`,null,[f[5]||=h(`strong`,null,`مشتری:`,-1),S(` `+o(e.customerName),1)]),h(`span`,null,[f[6]||=h(`strong`,null,`متراژ:`,-1),S(` `+o(m(H)(e.meterage)),1)]),h(`span`,null,[f[7]||=h(`strong`,null,`مبلغ:`,-1),S(` `+o(e.totalAmount?m(V)(e.totalAmount):`—`),1)]),h(`span`,null,o(m(ee)(e.createdAt)),1)])],10,Ot))),128))]),h(`div`,{class:l([`admin-detail-panel compact-orders__mobile-panel`,{open:m(n)&&m(b)&&m(_)}])},[m(_)?(a(),g(`div`,Mt,[h(`div`,Nt,[h(`button`,{type:`button`,class:`admin-detail-panel__back`,"aria-label":`بازگشت به لیست`,onClick:f[2]||=(...e)=>m(k)&&m(k)(...e)},[v(P,{name:`chevron-back`,size:20})]),f[8]||=h(`h2`,{class:`admin-detail-panel__title`},`جزئیات سفارش`,-1)]),h(`div`,Pt,[v($e,{order:m(_),"settlement-label":m(M),"status-saving":m(B),onPricing:te,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:m(R)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])])])):D(``,!0)],2),v(z,{open:m(r)&&!m(n)&&m(C)&&!!m(_),title:`جزئیات سفارش`,size:`xl`,onClose:m(j)},{default:e(()=>[m(_)?(a(),x($e,{key:0,order:m(_),"settlement-label":m(M),"status-saving":m(B),onPricing:te,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:m(R)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):D(``,!0)]),_:1},8,[`open`,`onClose`])]))}}),[[`__scopeId`,`data-v-fe86c1c8`]]),It={key:0,class:`admin-form__error`,role:`alert`},Lt={class:`admin-form__field`},Rt={key:0,class:`admin-form__hint`},zt={class:`admin-form__row`},Bt={class:`admin-form__field`},Vt={class:`admin-form__field`},Ht={key:1,class:`order-add__items`},Ut=[`onClick`],Wt={key:2,class:`admin-form__hint`},Gt=[`disabled`],Kt=E(_({__name:`OrderAddModal`,setup(t){let{showAddModal:n,formError:r,form:i,isFormValid:c,activeCustomers:l,applyCustomer:p,addFormItem:_,removeFormItem:b,closeAddModal:C,submitAddOrder:E}=se(),O=k(),j=f([]),P=d({productId:``,meterage:0}),F=T(()=>l.value.map(e=>{let t=e.phone?` — ${e.phone}`:``,n=e.isActive===!1?` (غیرفعال)`:``;return{value:e.id,label:`${e.name}${t}${n}`}})),I=T(()=>j.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),L=T(()=>j.value.find(e=>e.id===P.productId)??null);s(()=>i.customerId,e=>{if(!e){i.customerName=``,i.customerPhone=``;return}p(e)}),s(n,async e=>{if(e){P.productId=``,P.meterage=0;try{j.value=await R.list({activeOnly:!0})}catch(e){O.error(e instanceof N?e.message:`بارگذاری محصولات انجام نشد.`)}}}),s(()=>P.productId,e=>{let t=j.value.find(t=>t.id===e);t&&(P.meterage=t.rollMeters||t.minMeterage||t.orderStep||50)});function V(){let e=L.value;if(!e){r.value=`محصول را انتخاب کنید.`;return}if(!P.meterage||P.meterage<=0){r.value=`متراژ باید بزرگ‌تر از صفر باشد.`;return}_({productId:e.id,productName:e.name,catalogCode:e.catalogCode,meterage:P.meterage}),P.productId=``,P.meterage=0}return(t,s)=>(a(),x(z,{open:m(n),title:`پیش‌سفارش جدید`,size:`lg`,onClose:m(C)},{footer:e(()=>[h(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:s[4]||=(...e)=>m(C)&&m(C)(...e)},` انصراف `),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!m(c),onClick:s[5]||=(...e)=>m(E)&&m(E)(...e)},` ثبت پیش‌سفارش `,8,Gt)]),default:e(()=>[h(`form`,{class:`admin-form`,onSubmit:s[3]||=M((...e)=>m(E)&&m(E)(...e),[`prevent`])},[m(r)?(a(),g(`p`,It,o(m(r)),1)):D(``,!0),s[9]||=h(`p`,{class:`admin-form__hint`},` مثل سفارش مشتری: ابتدا اقلام ثبت می‌شود، قیمت‌گذاری و تسویه بعداً انجام می‌شود. `,-1),h(`div`,Lt,[s[6]||=h(`label`,{id:`order-customer-label`},[S(` مشتری `),h(`span`,{class:`admin-form__required`},`*`)],-1),v(q,{id:`order-customer`,modelValue:m(i).customerId,"onUpdate:modelValue":s[0]||=e=>m(i).customerId=e,block:``,searchable:``,"aria-label":`انتخاب مشتری از لیست`,placeholder:`انتخاب مشتری از لیست`,"search-placeholder":`جستجوی نام یا موبایل…`,options:F.value},null,8,[`modelValue`,`options`]),F.value.length?D(``,!0):(a(),g(`p`,Rt,` مشتری‌ای در سیستم نیست. ابتدا از بخش «مشتریان» یک مشتری ثبت کنید. `))]),h(`div`,zt,[h(`div`,Bt,[s[7]||=h(`label`,null,`محصول`,-1),v(q,{modelValue:P.productId,"onUpdate:modelValue":s[1]||=e=>P.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:I.value},null,8,[`modelValue`,`options`])]),h(`div`,Vt,[s[8]||=h(`label`,{for:`order-item-meterage`},`متراژ (متر)`,-1),u(h(`input`,{id:`order-item-meterage`,"onUpdate:modelValue":s[2]||=e=>P.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[A,P.meterage,void 0,{number:!0}]])])]),h(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:V},` افزودن به اقلام `),m(i).items.length?(a(),g(`div`,Ht,[(a(!0),g(w,null,y(m(i).items,e=>(a(),g(`div`,{key:e.productId,class:`order-add__item`},[h(`div`,null,[h(`strong`,null,o(e.productName),1),h(`span`,null,`کالیته `+o(e.catalogCode)+` — `+o(m(B)(e.meterage))+` متر`,1)]),h(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>m(b)(e.productId)},` حذف `,8,Ut)]))),128))])):(a(),g(`p`,Wt,`هنوز محصولی به پیش‌سفارش اضافه نشده است.`))],32)]),_:1},8,[`open`,`onClose`]))}}),[[`__scopeId`,`data-v-291a46f0`]]),qt=_({__name:`OrdersView`,setup(e){return oe(),(e,t)=>(a(),g(w,null,[v(mt,{class:`desktop-only`}),v(Ft,{class:`compact-only`}),v(Kt)],64))}});export{qt as default}; \ No newline at end of file diff --git a/dist/assets/ProductsView-C6janYUE.js b/dist/assets/ProductsView-C6janYUE.js new file mode 100644 index 0000000..854c444 --- /dev/null +++ b/dist/assets/ProductsView-C6janYUE.js @@ -0,0 +1 @@ +import{B as e,Dt as t,O as n,Ot 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 ee,h as f,j as p,l as m,m as h,r as g,s as _,t as v,u as y}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as te,d as b,f as x,m as ne,t as S}from"./http-Djf2pGxE.js";import{E as re,L as ie,T as C,V as ae,c as w,g as oe,i as T}from"./index-CznUUXv3.js";import{t as se}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as E}from"./BaseSwitch-TV5Yvtf7.js";import{t as ce}from"./BaseEmptyState-D6sk-aI_.js";import{n as le,r as D,t as ue}from"./AdminImagePicker-C4toq7MG.js";import{t as O}from"./AdminSelect-DK-_otkw.js";import{t as k}from"./ActiveSwitchCell-CLCpM6ho.js";import{t as de}from"./AdminCurrencyInput-BSNgTEBD.js";var fe={class:`products-page`},pe={class:`products-page__filters admin-card`},me={class:`products-page__search`},he={key:2,class:`products-page__table admin-card desktop-only`},ge={class:`admin-table-wrap`},_e={class:`admin-table`},ve={class:`numeric`},ye={class:`numeric`},be={class:`numeric`},xe={class:`numeric`},Se={class:`status`},Ce={class:`actions`},A=[`onClick`],we={key:3,class:`compact-only admin-card-list`},Te={class:`admin-card-item__header`},Ee={class:`admin-card-item__title`},De={class:`admin-card-item__header-actions`},Oe=[`onClick`],ke={class:`admin-card-item__meta`},Ae={key:0,class:`admin-form__error`,role:`alert`},je={class:`admin-form__field`},Me={class:`admin-form__row`},Ne={class:`admin-form__field`},Pe={class:`admin-form__field`},Fe={class:`admin-form__field`},Ie={class:`admin-form__row`},Le={class:`admin-form__field`},Re={class:`admin-form__field`},ze={class:`admin-form__row`},Be={class:`admin-form__field`},Ve={class:`admin-form__field`},He={class:`admin-form__row`},Ue={class:`admin-form__field`},We=[`value`],Ge={class:`admin-form__field`},Ke=[`value`],qe={class:`admin-form__row`},Je={class:`admin-form__field`},Ye={class:`admin-form__field`},Xe={class:`admin-form__row`},Ze={class:`admin-form__field`},Qe={class:`admin-form__field`},$e={class:`admin-form__field`},et={class:`color-variants`},tt={class:`color-variant__fields`},nt=[`onUpdate:modelValue`,`placeholder`],rt=[`onClick`],it={class:`admin-form__field`},at={class:`product-images`},ot=[`onClick`],st={class:`product-images__add`},ct=[`disabled`],lt={class:`admin-form__field`},ut={class:`admin-form__field`},dt=[`disabled`],j=v(ee({__name:`ProductsView`,setup(ee){let v=c([]),j=c([]),M=c([{value:`trousers`,label:`شلوار`},{value:`suit`,label:`کت‌وشلوار`},{value:`shirt`,label:`پیراهن`},{value:`other`,label:`سایر`}]),N=c([{value:`summer`,label:`تابستان`},{value:`winter`,label:`زمستان`},{value:`all_season`,label:`چهارفصل`}]),P=c(``),F=c(`all`),I=c(!0),L=c(null),R=c(null),z=c(``),B=c(!1),V=te(),ft=_(()=>[{value:`all`,label:`همه کالیته‌ها`},...j.value.map(e=>({value:e.id,label:`${e.code} — ${e.name}`}))]),pt=_(()=>j.value.map(e=>({value:e.id,label:`${e.code} — ${e.name} (${e.companyName})`}))),H=()=>({catalogId:j.value[0]?.id??``,name:``,color:``,productCode:``,minMeterage:100,orderStep:50,price:null,internalStock:0,isActive:!0,usageCategory:`other`,season:`all_season`,composition:``,weaveType:``,subtitle:``,rollMeters:50,isNew:!1,colorRows:[{name:``,imageUrl:``}],extraImageUrls:[]}),U=s(H()),mt=_(()=>L.value!==null),ht=_(()=>L.value===`edit`?`ویرایش محصول`:`افزودن محصول`),W=_(()=>U.name.trim()&&U.catalogId&&U.minMeterage>0),G=_(()=>P.value.trim().length>0||F.value!==`all`),K=_(()=>{let e=v.value;F.value!==`all`&&(e=e.filter(e=>e.catalogId===F.value));let t=P.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 gt(){I.value=!0;try{let[e,t,n]=await Promise.all([C.list(),oe.list(),re.get().catch(()=>null)]);v.value=e,j.value=t,n?.categoryDefsJson?.usage?.length&&(M.value=[...n.categoryDefsJson.usage.map(e=>({value:e.id,label:e.title})),{value:`other`,label:`سایر`}]),n?.categoryDefsJson?.seasons?.length&&(N.value=n.categoryDefsJson.seasons.map(e=>({value:e.id,label:e.title})))}catch(e){V.error(e instanceof S?e.message:`بارگذاری محصولات انجام نشد.`)}finally{I.value=!1}}i(()=>{gt()});function _t(e){return j.value.find(t=>t.id===e)}function q(){L.value=`add`,R.value=null,Object.assign(U,H()),z.value=``}function J(e){L.value=`edit`,R.value=e.id,U.catalogId=e.catalogId,U.name=e.name,U.color=e.color,U.productCode=e.productCode,U.minMeterage=e.minMeterage,U.orderStep=e.orderStep,U.price=e.price,U.internalStock=e.internalStock,U.isActive=e.isActive,U.usageCategory=e.usageCategory??`other`,U.season=e.season??`all_season`,U.composition=e.composition??``,U.weaveType=e.weaveType??``,U.subtitle=e.subtitle??``,U.rollMeters=e.rollMeters??50,U.isNew=e.isNew??!1;let t=e.colors??[],n=e.colorImages??[],r=[...e.imageUrls??[]];if(t.length){U.colorRows=t.map((e,t)=>({name:e,imageUrl:n[t]||r[t]||``}));let e=new Set(U.colorRows.map(e=>e.imageUrl).filter(Boolean));U.extraImageUrls=r.filter(t=>!e.has(t))}else U.colorRows=[{name:e.color||``,imageUrl:r[0]||``}],U.extraImageUrls=r.slice(1);z.value=``}function vt(){U.colorRows.push({name:``,imageUrl:``})}function yt(e){if(U.colorRows.length<=1){U.colorRows[0]={name:``,imageUrl:``};return}U.colorRows.splice(e,1)}let Y=c(!1);async function bt(e){let t=e.target,n=[...t.files??[]];if(t.value=``,n.length){Y.value=!0,z.value=``;try{let e=await Promise.all(n.map(e=>le(e)));U.extraImageUrls=[...U.extraImageUrls,...e]}catch(e){z.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`}finally{Y.value=!1}}}function xt(e){U.extraImageUrls.splice(e,1)}function X(){let e=[],t=[],n=new Set,r=e=>{let r=e?.trim();!r||n.has(r)||(n.add(r),t.push(r))};return U.colorRows.forEach((t,n)=>{let i=t.imageUrl.trim()||void 0,a=t.name.trim()||(n===0?U.color.trim():``)||(i?`رنگ ${n+1}`:``);!a&&!i||(a&&e.push({name:a,imageUrl:i}),r(i))}),U.extraImageUrls.forEach(e=>r(e)),{colorEntries:e,imageUrls:t}}function Z(){L.value=null,R.value=null,z.value=``}async function Q(){if(!W.value){z.value=`نام محصول، کالیته و حداقل متراژ الزامی هستند.`;return}let e=_t(U.catalogId);if(!e){z.value=`کالیته معتبر انتخاب کنید.`;return}let{colorEntries:t,imageUrls:n}=X(),r={usageCategory:U.usageCategory,season:U.season,composition:U.composition.trim()||null,weaveType:U.weaveType.trim()||null,subtitle:U.subtitle.trim()||null,rollMeters:U.rollMeters,isNew:U.isNew,colorsJson:t,imageUrlsJson:n},i=U.productCode.trim()||`${e.code}-NEW`;B.value=!0;try{if(L.value===`edit`&&R.value){let e=await C.update(R.value,{catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||t[0]?.name||`—`,code:i,productCode:i,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...r}),n=v.value.findIndex(e=>e.id===R.value);n!==-1&&(v.value[n]={...v.value[n],...e}),V.success(`اطلاعات محصول به‌روزرسانی شد.`)}else{let n=await C.create({companyId:e.companyId,catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||t[0]?.name||`—`,code:i,productCode:i,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...r});v.value.push(n),V.success(`محصول جدید ثبت شد.`)}Z()}catch(e){e instanceof S&&e.status===0&&(z.value=e.message),V.error(e instanceof S?e.message:`ذخیره محصول انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await C.setActive(e,t)}function St(){P.value=``,F.value=`all`}return(i,s)=>(n(),d(`div`,fe,[u(`div`,{class:`admin-page-header`},[s[18]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`محصولات`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` افزودن محصول `)]),u(`div`,pe,[u(`div`,me,[f(ie,{name:`search`,size:18}),o(u(`input`,{"onUpdate:modelValue":s[0]||=e=>P.value=e,type:`search`,class:`products-page__search-input`,placeholder:`جستجو در نام، رنگ، کد...`},null,512),[[x,P.value]])]),f(O,{modelValue:F.value,"onUpdate:modelValue":s[1]||=e=>F.value=e,class:`products-page__catalog-filter`,"aria-label":`فیلتر کالیته`,options:ft.value},null,8,[`modelValue`,`options`])]),I.value?(n(),m(se,{key:0,variant:`table`})):K.value.length?(n(),d(`div`,he,[u(`div`,ge,[u(`table`,_e,[s[19]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`تصویر`),u(`th`,null,`کد محصول`),u(`th`,null,`نام`),u(`th`,null,`رنگ`),u(`th`,null,`کالیته`),u(`th`,null,`شرکت`),u(`th`,{class:`numeric`},`حداقل متراژ`),u(`th`,{class:`numeric`},`ضریب`),u(`th`,{class:`numeric`},`قیمت`),u(`th`,{class:`numeric`},`موجودی`),u(`th`,{class:`status`},`وضعیت`),u(`th`,{class:`actions`},`عملیات`)])],-1),u(`tbody`,null,[(n(!0),d(g,null,p(K.value,e=>(n(),d(`tr`,{key:e.id},[u(`td`,null,[u(`span`,{class:a([`product-thumb`,{"product-thumb--empty":!e.imageUrls?.[0]}]),style:t(e.imageUrls?.[0]?{backgroundImage:l(D)(e.imageUrls[0])}:void 0)},null,6)]),u(`td`,null,r(e.productCode),1),u(`td`,null,r(e.name),1),u(`td`,null,r(e.color),1),u(`td`,null,r(e.catalogCode),1),u(`td`,null,r(e.companyName),1),u(`td`,ve,r(l(w)(e.minMeterage))+` متر`,1),u(`td`,ye,r(l(w)(e.orderStep)),1),u(`td`,be,r(e.price?l(T)(e.price):`—`),1),u(`td`,xe,r(l(w)(e.internalStock))+` متر`,1),u(`td`,Se,[f(k,{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`,Ce,[u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,A)])]))),128))])])])])):(n(),m(ce,{key:1,class:`admin-card`,icon:`products`,title:G.value?`نتیجه‌ای یافت نشد`:`محصولی ثبت نشده`,description:G.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین محصول را ثبت کنید.`},{default:e(()=>[G.value?(n(),d(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:St},` پاک کردن فیلترها `)):(n(),d(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:q},` افزودن محصول `))]),_:1},8,[`title`,`description`])),!I.value&&K.value.length?(n(),d(`div`,we,[(n(!0),d(g,null,p(K.value,e=>(n(),d(`article`,{key:e.id,class:`admin-card-item`},[u(`div`,Te,[u(`p`,Ee,r(e.name),1),u(`div`,De,[f(k,{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=>J(e)},` ویرایش `,8,Oe)])]),u(`div`,ke,[u(`span`,null,r(e.productCode),1),u(`span`,null,r(e.color),1),u(`span`,null,`کالیته `+r(e.catalogCode),1),u(`span`,null,r(e.price?l(T)(e.price):`بدون قیمت`),1)])]))),128))])):y(``,!0),f(ae,{open:mt.value,title:ht.value,size:`lg`,onClose:Z},{footer:e(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!W.value||B.value,onClick:Q},r(L.value===`edit`?`ذخیره تغییرات`:`ثبت محصول`),9,dt)]),default:e(()=>[u(`form`,{class:`admin-form`,onSubmit:ne(Q,[`prevent`])},[z.value?(n(),d(`p`,Ae,r(z.value),1)):y(``,!0),u(`div`,je,[s[20]||=u(`label`,null,[h(`کالیته `),u(`span`,{class:`admin-form__required`},`*`)],-1),f(O,{modelValue:U.catalogId,"onUpdate:modelValue":s[2]||=e=>U.catalogId=e,block:``,"aria-label":`انتخاب کالیته`,placeholder:`انتخاب کالیته`,options:pt.value},null,8,[`modelValue`,`options`])]),u(`div`,Me,[u(`div`,Ne,[s[21]||=u(`label`,{for:`product-name`},[h(`نام محصول `),u(`span`,{class:`admin-form__required`},`*`)],-1),o(u(`input`,{id:`product-name`,"onUpdate:modelValue":s[3]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[x,U.name]])]),u(`div`,Pe,[s[22]||=u(`label`,{for:`product-color`},`رنگ / نوع`,-1),o(u(`input`,{id:`product-color`,"onUpdate:modelValue":s[4]||=e=>U.color=e,type:`text`,class:`admin-input`},null,512),[[x,U.color]])])]),u(`div`,Fe,[s[23]||=u(`label`,{for:`product-code`},`کد محصول`,-1),o(u(`input`,{id:`product-code`,"onUpdate:modelValue":s[5]||=e=>U.productCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[x,U.productCode]])]),u(`div`,Ie,[u(`div`,Le,[s[24]||=u(`label`,{for:`product-min`},`حداقل متراژ`,-1),o(u(`input`,{id:`product-min`,"onUpdate:modelValue":s[6]||=e=>U.minMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[x,U.minMeterage,void 0,{number:!0}]])]),u(`div`,Re,[s[25]||=u(`label`,{for:`product-step`},`ضریب سفارش`,-1),o(u(`input`,{id:`product-step`,"onUpdate:modelValue":s[7]||=e=>U.orderStep=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[x,U.orderStep,void 0,{number:!0}]])])]),u(`div`,ze,[u(`div`,Be,[s[26]||=u(`label`,{for:`product-price`},`قیمت (تومان)`,-1),f(de,{id:`product-price`,modelValue:U.price,"onUpdate:modelValue":s[8]||=e=>U.price=e},null,8,[`modelValue`])]),u(`div`,Ve,[s[27]||=u(`label`,{for:`product-stock`},`موجودی داخلی (متر)`,-1),o(u(`input`,{id:`product-stock`,"onUpdate:modelValue":s[9]||=e=>U.internalStock=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[x,U.internalStock,void 0,{number:!0}]])])]),u(`div`,He,[u(`div`,Ue,[s[28]||=u(`label`,{for:`product-usage`},`کاربرد`,-1),o(u(`select`,{id:`product-usage`,"onUpdate:modelValue":s[10]||=e=>U.usageCategory=e,class:`admin-input`},[(n(!0),d(g,null,p(M.value,e=>(n(),d(`option`,{key:e.value,value:e.value},r(e.label),9,We))),128))],512),[[b,U.usageCategory]])]),u(`div`,Ge,[s[29]||=u(`label`,{for:`product-season`},`فصل`,-1),o(u(`select`,{id:`product-season`,"onUpdate:modelValue":s[11]||=e=>U.season=e,class:`admin-input`},[(n(!0),d(g,null,p(N.value,e=>(n(),d(`option`,{key:e.value,value:e.value},r(e.label),9,Ke))),128))],512),[[b,U.season]])])]),u(`div`,qe,[u(`div`,Je,[s[30]||=u(`label`,{for:`product-composition`},`جنس / ترکیب`,-1),o(u(`input`,{id:`product-composition`,"onUpdate:modelValue":s[12]||=e=>U.composition=e,type:`text`,class:`admin-input`},null,512),[[x,U.composition]])]),u(`div`,Ye,[s[31]||=u(`label`,{for:`product-weave`},`نوع بافت`,-1),o(u(`input`,{id:`product-weave`,"onUpdate:modelValue":s[13]||=e=>U.weaveType=e,type:`text`,class:`admin-input`},null,512),[[x,U.weaveType]])])]),u(`div`,Xe,[u(`div`,Ze,[s[32]||=u(`label`,{for:`product-subtitle`},`زیرعنوان`,-1),o(u(`input`,{id:`product-subtitle`,"onUpdate:modelValue":s[14]||=e=>U.subtitle=e,type:`text`,class:`admin-input`},null,512),[[x,U.subtitle]])]),u(`div`,Qe,[s[33]||=u(`label`,{for:`product-roll`},`متراژ طاقه`,-1),o(u(`input`,{id:`product-roll`,"onUpdate:modelValue":s[15]||=e=>U.rollMeters=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[x,U.rollMeters,void 0,{number:!0}]])])]),u(`div`,$e,[s[34]||=u(`label`,null,`رنگ‌ها و تصویر هر رنگ`,-1),s[35]||=u(`p`,{class:`color-variants__hint`},` برای هر رنگ نام و عکس بگذارید. اگر فقط عکس دارید، نام رنگ اصلی (بالا) یا «رنگ ۱» استفاده می‌شود. تصویر با زدن «ذخیره تغییرات» روی سرور ثبت می‌شود. `,-1),u(`div`,et,[(n(!0),d(g,null,p(U.colorRows,(e,t)=>(n(),d(`div`,{key:t,class:`color-variant`},[f(ue,{"model-value":e.imageUrl||null,"onUpdate:modelValue":t=>e.imageUrl=t??``},null,8,[`model-value`,`onUpdate:modelValue`]),u(`div`,tt,[o(u(`input`,{"onUpdate:modelValue":t=>e.name=t,type:`text`,class:`admin-input`,placeholder:`نام رنگ ${t+1}`},null,8,nt),[[x,e.name]]),u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>yt(t)},` حذف این رنگ `,8,rt)])]))),128)),u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:vt},` + افزودن رنگ `)])]),u(`div`,it,[s[36]||=u(`label`,null,`تصاویر عمومی محصول (اختیاری)`,-1),s[37]||=u(`p`,{class:`color-variants__hint`},`پس از انتخاب فایل، حتماً دکمه ذخیره را بزنید.`,-1),u(`div`,at,[(n(!0),d(g,null,p(U.extraImageUrls,(e,r)=>(n(),d(`div`,{key:`${r}-${e.slice(0,24)}`,class:`product-images__item`},[u(`span`,{class:`product-images__thumb`,style:t({backgroundImage:l(D)(e)})},null,4),u(`button`,{type:`button`,class:`product-images__remove`,onClick:e=>xt(r)},` حذف `,8,ot)]))),128)),u(`label`,st,[u(`input`,{type:`file`,accept:`image/*`,multiple:``,hidden:``,disabled:Y.value,onChange:bt},null,40,ct),h(` `+r(Y.value?`...`:`+ افزودن تصویر`),1)])])]),u(`div`,lt,[f(E,{modelValue:U.isNew,"onUpdate:modelValue":s[16]||=e=>U.isNew=e,label:`محصول جدید`},null,8,[`modelValue`])]),u(`div`,ut,[f(E,{modelValue:U.isActive,"onUpdate:modelValue":s[17]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-761ea8ca`]]);export{j as default}; \ No newline at end of file diff --git a/dist/assets/ProductsView-NLVncfjZ.js b/dist/assets/ProductsView-NLVncfjZ.js deleted file mode 100644 index eb879fa..0000000 --- a/dist/assets/ProductsView-NLVncfjZ.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,Dt as t,O as n,Ot 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 ee,h as f,j as p,l as m,m as h,r as g,s as _,t as v,u as y}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{C as te,K as ne,N as b,P as re,R as ie,S as x,U as S,W as C,n as w,o as T,p as ae,z as oe}from"./index-CXa4EMLW.js";import{t as se}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as E}from"./BaseSwitch-TV5Yvtf7.js";import{t as ce}from"./BaseEmptyState-BmO9aDcK.js";import{n as le,r as D,t as ue}from"./AdminImagePicker-C4toq7MG.js";import{t as O}from"./AdminSelect-9UfEJQzN.js";import{t as k}from"./ActiveSwitchCell-DJZQHZ-8.js";import{t as de}from"./AdminCurrencyInput-D6MsBhvR.js";var fe={class:`products-page`},pe={class:`products-page__filters admin-card`},me={class:`products-page__search`},he={key:2,class:`products-page__table admin-card desktop-only`},ge={class:`admin-table-wrap`},_e={class:`admin-table`},ve={class:`numeric`},ye={class:`numeric`},be={class:`numeric`},xe={class:`numeric`},Se={class:`status`},Ce={class:`actions`},A=[`onClick`],we={key:3,class:`compact-only admin-card-list`},Te={class:`admin-card-item__header`},Ee={class:`admin-card-item__title`},De={class:`admin-card-item__header-actions`},Oe=[`onClick`],ke={class:`admin-card-item__meta`},Ae={key:0,class:`admin-form__error`,role:`alert`},je={class:`admin-form__field`},Me={class:`admin-form__row`},Ne={class:`admin-form__field`},Pe={class:`admin-form__field`},Fe={class:`admin-form__field`},Ie={class:`admin-form__row`},Le={class:`admin-form__field`},Re={class:`admin-form__field`},ze={class:`admin-form__row`},Be={class:`admin-form__field`},Ve={class:`admin-form__field`},He={class:`admin-form__row`},Ue={class:`admin-form__field`},We=[`value`],Ge={class:`admin-form__field`},Ke=[`value`],qe={class:`admin-form__row`},Je={class:`admin-form__field`},Ye={class:`admin-form__field`},Xe={class:`admin-form__row`},Ze={class:`admin-form__field`},Qe={class:`admin-form__field`},$e={class:`admin-form__field`},et={class:`color-variants`},tt={class:`color-variant__fields`},nt=[`onUpdate:modelValue`,`placeholder`],rt=[`onClick`],it={class:`admin-form__field`},at={class:`product-images`},ot=[`onClick`],st={class:`product-images__add`},ct=[`disabled`],lt={class:`admin-form__field`},ut={class:`admin-form__field`},dt=[`disabled`],j=v(ee({__name:`ProductsView`,setup(ee){let v=c([]),j=c([]),M=c([{value:`trousers`,label:`شلوار`},{value:`suit`,label:`کت‌وشلوار`},{value:`shirt`,label:`پیراهن`},{value:`other`,label:`سایر`}]),N=c([{value:`summer`,label:`تابستان`},{value:`winter`,label:`زمستان`},{value:`all_season`,label:`چهارفصل`}]),P=c(``),F=c(`all`),I=c(!0),L=c(null),R=c(null),z=c(``),B=c(!1),V=oe(),ft=_(()=>[{value:`all`,label:`همه کالیته‌ها`},...j.value.map(e=>({value:e.id,label:`${e.code} — ${e.name}`}))]),pt=_(()=>j.value.map(e=>({value:e.id,label:`${e.code} — ${e.name} (${e.companyName})`}))),H=()=>({catalogId:j.value[0]?.id??``,name:``,color:``,productCode:``,minMeterage:100,orderStep:50,price:null,internalStock:0,isActive:!0,usageCategory:`other`,season:`all_season`,composition:``,weaveType:``,subtitle:``,rollMeters:50,isNew:!1,colorRows:[{name:``,imageUrl:``}],extraImageUrls:[]}),U=s(H()),mt=_(()=>L.value!==null),ht=_(()=>L.value===`edit`?`ویرایش محصول`:`افزودن محصول`),W=_(()=>U.name.trim()&&U.catalogId&&U.minMeterage>0),G=_(()=>P.value.trim().length>0||F.value!==`all`),K=_(()=>{let e=v.value;F.value!==`all`&&(e=e.filter(e=>e.catalogId===F.value));let t=P.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 gt(){I.value=!0;try{let[e,t,n]=await Promise.all([x.list(),ae.list(),te.get().catch(()=>null)]);v.value=e,j.value=t,n?.categoryDefsJson?.usage?.length&&(M.value=[...n.categoryDefsJson.usage.map(e=>({value:e.id,label:e.title})),{value:`other`,label:`سایر`}]),n?.categoryDefsJson?.seasons?.length&&(N.value=n.categoryDefsJson.seasons.map(e=>({value:e.id,label:e.title})))}catch(e){V.error(e instanceof b?e.message:`بارگذاری محصولات انجام نشد.`)}finally{I.value=!1}}i(()=>{gt()});function _t(e){return j.value.find(t=>t.id===e)}function q(){L.value=`add`,R.value=null,Object.assign(U,H()),z.value=``}function J(e){L.value=`edit`,R.value=e.id,U.catalogId=e.catalogId,U.name=e.name,U.color=e.color,U.productCode=e.productCode,U.minMeterage=e.minMeterage,U.orderStep=e.orderStep,U.price=e.price,U.internalStock=e.internalStock,U.isActive=e.isActive,U.usageCategory=e.usageCategory??`other`,U.season=e.season??`all_season`,U.composition=e.composition??``,U.weaveType=e.weaveType??``,U.subtitle=e.subtitle??``,U.rollMeters=e.rollMeters??50,U.isNew=e.isNew??!1;let t=e.colors??[],n=e.colorImages??[],r=[...e.imageUrls??[]];if(t.length){U.colorRows=t.map((e,t)=>({name:e,imageUrl:n[t]||r[t]||``}));let e=new Set(U.colorRows.map(e=>e.imageUrl).filter(Boolean));U.extraImageUrls=r.filter(t=>!e.has(t))}else U.colorRows=[{name:e.color||``,imageUrl:r[0]||``}],U.extraImageUrls=r.slice(1);z.value=``}function vt(){U.colorRows.push({name:``,imageUrl:``})}function yt(e){if(U.colorRows.length<=1){U.colorRows[0]={name:``,imageUrl:``};return}U.colorRows.splice(e,1)}let Y=c(!1);async function bt(e){let t=e.target,n=[...t.files??[]];if(t.value=``,n.length){Y.value=!0,z.value=``;try{let e=await Promise.all(n.map(e=>le(e)));U.extraImageUrls=[...U.extraImageUrls,...e]}catch(e){z.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`}finally{Y.value=!1}}}function xt(e){U.extraImageUrls.splice(e,1)}function X(){let e=[],t=[],n=new Set,r=e=>{let r=e?.trim();!r||n.has(r)||(n.add(r),t.push(r))};return U.colorRows.forEach((t,n)=>{let i=t.imageUrl.trim()||void 0,a=t.name.trim()||(n===0?U.color.trim():``)||(i?`رنگ ${n+1}`:``);!a&&!i||(a&&e.push({name:a,imageUrl:i}),r(i))}),U.extraImageUrls.forEach(e=>r(e)),{colorEntries:e,imageUrls:t}}function Z(){L.value=null,R.value=null,z.value=``}async function Q(){if(!W.value){z.value=`نام محصول، کالیته و حداقل متراژ الزامی هستند.`;return}let e=_t(U.catalogId);if(!e){z.value=`کالیته معتبر انتخاب کنید.`;return}let{colorEntries:t,imageUrls:n}=X(),r={usageCategory:U.usageCategory,season:U.season,composition:U.composition.trim()||null,weaveType:U.weaveType.trim()||null,subtitle:U.subtitle.trim()||null,rollMeters:U.rollMeters,isNew:U.isNew,colorsJson:t,imageUrlsJson:n},i=U.productCode.trim()||`${e.code}-NEW`;B.value=!0;try{if(L.value===`edit`&&R.value){let e=await x.update(R.value,{catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||t[0]?.name||`—`,code:i,productCode:i,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...r}),n=v.value.findIndex(e=>e.id===R.value);n!==-1&&(v.value[n]={...v.value[n],...e}),V.success(`اطلاعات محصول به‌روزرسانی شد.`)}else{let n=await x.create({companyId:e.companyId,catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||t[0]?.name||`—`,code:i,productCode:i,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...r});v.value.push(n),V.success(`محصول جدید ثبت شد.`)}Z()}catch(e){e instanceof b&&e.status===0&&(z.value=e.message),V.error(e instanceof b?e.message:`ذخیره محصول انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await x.setActive(e,t)}function St(){P.value=``,F.value=`all`}return(i,s)=>(n(),d(`div`,fe,[u(`div`,{class:`admin-page-header`},[s[18]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`محصولات`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` افزودن محصول `)]),u(`div`,pe,[u(`div`,me,[f(re,{name:`search`,size:18}),o(u(`input`,{"onUpdate:modelValue":s[0]||=e=>P.value=e,type:`search`,class:`products-page__search-input`,placeholder:`جستجو در نام، رنگ، کد...`},null,512),[[C,P.value]])]),f(O,{modelValue:F.value,"onUpdate:modelValue":s[1]||=e=>F.value=e,class:`products-page__catalog-filter`,"aria-label":`فیلتر کالیته`,options:ft.value},null,8,[`modelValue`,`options`])]),I.value?(n(),m(se,{key:0,variant:`table`})):K.value.length?(n(),d(`div`,he,[u(`div`,ge,[u(`table`,_e,[s[19]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`تصویر`),u(`th`,null,`کد محصول`),u(`th`,null,`نام`),u(`th`,null,`رنگ`),u(`th`,null,`کالیته`),u(`th`,null,`شرکت`),u(`th`,{class:`numeric`},`حداقل متراژ`),u(`th`,{class:`numeric`},`ضریب`),u(`th`,{class:`numeric`},`قیمت`),u(`th`,{class:`numeric`},`موجودی`),u(`th`,{class:`status`},`وضعیت`),u(`th`,{class:`actions`},`عملیات`)])],-1),u(`tbody`,null,[(n(!0),d(g,null,p(K.value,e=>(n(),d(`tr`,{key:e.id},[u(`td`,null,[u(`span`,{class:a([`product-thumb`,{"product-thumb--empty":!e.imageUrls?.[0]}]),style:t(e.imageUrls?.[0]?{backgroundImage:l(D)(e.imageUrls[0])}:void 0)},null,6)]),u(`td`,null,r(e.productCode),1),u(`td`,null,r(e.name),1),u(`td`,null,r(e.color),1),u(`td`,null,r(e.catalogCode),1),u(`td`,null,r(e.companyName),1),u(`td`,ve,r(l(T)(e.minMeterage))+` متر`,1),u(`td`,ye,r(l(T)(e.orderStep)),1),u(`td`,be,r(e.price?l(w)(e.price):`—`),1),u(`td`,xe,r(l(T)(e.internalStock))+` متر`,1),u(`td`,Se,[f(k,{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`,Ce,[u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,A)])]))),128))])])])])):(n(),m(ce,{key:1,class:`admin-card`,icon:`products`,title:G.value?`نتیجه‌ای یافت نشد`:`محصولی ثبت نشده`,description:G.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین محصول را ثبت کنید.`},{default:e(()=>[G.value?(n(),d(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:St},` پاک کردن فیلترها `)):(n(),d(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:q},` افزودن محصول `))]),_:1},8,[`title`,`description`])),!I.value&&K.value.length?(n(),d(`div`,we,[(n(!0),d(g,null,p(K.value,e=>(n(),d(`article`,{key:e.id,class:`admin-card-item`},[u(`div`,Te,[u(`p`,Ee,r(e.name),1),u(`div`,De,[f(k,{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=>J(e)},` ویرایش `,8,Oe)])]),u(`div`,ke,[u(`span`,null,r(e.productCode),1),u(`span`,null,r(e.color),1),u(`span`,null,`کالیته `+r(e.catalogCode),1),u(`span`,null,r(e.price?l(w)(e.price):`بدون قیمت`),1)])]))),128))])):y(``,!0),f(ie,{open:mt.value,title:ht.value,size:`lg`,onClose:Z},{footer:e(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!W.value||B.value,onClick:Q},r(L.value===`edit`?`ذخیره تغییرات`:`ثبت محصول`),9,dt)]),default:e(()=>[u(`form`,{class:`admin-form`,onSubmit:ne(Q,[`prevent`])},[z.value?(n(),d(`p`,Ae,r(z.value),1)):y(``,!0),u(`div`,je,[s[20]||=u(`label`,null,[h(`کالیته `),u(`span`,{class:`admin-form__required`},`*`)],-1),f(O,{modelValue:U.catalogId,"onUpdate:modelValue":s[2]||=e=>U.catalogId=e,block:``,"aria-label":`انتخاب کالیته`,placeholder:`انتخاب کالیته`,options:pt.value},null,8,[`modelValue`,`options`])]),u(`div`,Me,[u(`div`,Ne,[s[21]||=u(`label`,{for:`product-name`},[h(`نام محصول `),u(`span`,{class:`admin-form__required`},`*`)],-1),o(u(`input`,{id:`product-name`,"onUpdate:modelValue":s[3]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[C,U.name]])]),u(`div`,Pe,[s[22]||=u(`label`,{for:`product-color`},`رنگ / نوع`,-1),o(u(`input`,{id:`product-color`,"onUpdate:modelValue":s[4]||=e=>U.color=e,type:`text`,class:`admin-input`},null,512),[[C,U.color]])])]),u(`div`,Fe,[s[23]||=u(`label`,{for:`product-code`},`کد محصول`,-1),o(u(`input`,{id:`product-code`,"onUpdate:modelValue":s[5]||=e=>U.productCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[C,U.productCode]])]),u(`div`,Ie,[u(`div`,Le,[s[24]||=u(`label`,{for:`product-min`},`حداقل متراژ`,-1),o(u(`input`,{id:`product-min`,"onUpdate:modelValue":s[6]||=e=>U.minMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.minMeterage,void 0,{number:!0}]])]),u(`div`,Re,[s[25]||=u(`label`,{for:`product-step`},`ضریب سفارش`,-1),o(u(`input`,{id:`product-step`,"onUpdate:modelValue":s[7]||=e=>U.orderStep=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.orderStep,void 0,{number:!0}]])])]),u(`div`,ze,[u(`div`,Be,[s[26]||=u(`label`,{for:`product-price`},`قیمت (تومان)`,-1),f(de,{id:`product-price`,modelValue:U.price,"onUpdate:modelValue":s[8]||=e=>U.price=e},null,8,[`modelValue`])]),u(`div`,Ve,[s[27]||=u(`label`,{for:`product-stock`},`موجودی داخلی (متر)`,-1),o(u(`input`,{id:`product-stock`,"onUpdate:modelValue":s[9]||=e=>U.internalStock=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[C,U.internalStock,void 0,{number:!0}]])])]),u(`div`,He,[u(`div`,Ue,[s[28]||=u(`label`,{for:`product-usage`},`کاربرد`,-1),o(u(`select`,{id:`product-usage`,"onUpdate:modelValue":s[10]||=e=>U.usageCategory=e,class:`admin-input`},[(n(!0),d(g,null,p(M.value,e=>(n(),d(`option`,{key:e.value,value:e.value},r(e.label),9,We))),128))],512),[[S,U.usageCategory]])]),u(`div`,Ge,[s[29]||=u(`label`,{for:`product-season`},`فصل`,-1),o(u(`select`,{id:`product-season`,"onUpdate:modelValue":s[11]||=e=>U.season=e,class:`admin-input`},[(n(!0),d(g,null,p(N.value,e=>(n(),d(`option`,{key:e.value,value:e.value},r(e.label),9,Ke))),128))],512),[[S,U.season]])])]),u(`div`,qe,[u(`div`,Je,[s[30]||=u(`label`,{for:`product-composition`},`جنس / ترکیب`,-1),o(u(`input`,{id:`product-composition`,"onUpdate:modelValue":s[12]||=e=>U.composition=e,type:`text`,class:`admin-input`},null,512),[[C,U.composition]])]),u(`div`,Ye,[s[31]||=u(`label`,{for:`product-weave`},`نوع بافت`,-1),o(u(`input`,{id:`product-weave`,"onUpdate:modelValue":s[13]||=e=>U.weaveType=e,type:`text`,class:`admin-input`},null,512),[[C,U.weaveType]])])]),u(`div`,Xe,[u(`div`,Ze,[s[32]||=u(`label`,{for:`product-subtitle`},`زیرعنوان`,-1),o(u(`input`,{id:`product-subtitle`,"onUpdate:modelValue":s[14]||=e=>U.subtitle=e,type:`text`,class:`admin-input`},null,512),[[C,U.subtitle]])]),u(`div`,Qe,[s[33]||=u(`label`,{for:`product-roll`},`متراژ طاقه`,-1),o(u(`input`,{id:`product-roll`,"onUpdate:modelValue":s[15]||=e=>U.rollMeters=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.rollMeters,void 0,{number:!0}]])])]),u(`div`,$e,[s[34]||=u(`label`,null,`رنگ‌ها و تصویر هر رنگ`,-1),s[35]||=u(`p`,{class:`color-variants__hint`},` برای هر رنگ نام و عکس بگذارید. اگر فقط عکس دارید، نام رنگ اصلی (بالا) یا «رنگ ۱» استفاده می‌شود. تصویر با زدن «ذخیره تغییرات» روی سرور ثبت می‌شود. `,-1),u(`div`,et,[(n(!0),d(g,null,p(U.colorRows,(e,t)=>(n(),d(`div`,{key:t,class:`color-variant`},[f(ue,{"model-value":e.imageUrl||null,"onUpdate:modelValue":t=>e.imageUrl=t??``},null,8,[`model-value`,`onUpdate:modelValue`]),u(`div`,tt,[o(u(`input`,{"onUpdate:modelValue":t=>e.name=t,type:`text`,class:`admin-input`,placeholder:`نام رنگ ${t+1}`},null,8,nt),[[C,e.name]]),u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>yt(t)},` حذف این رنگ `,8,rt)])]))),128)),u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:vt},` + افزودن رنگ `)])]),u(`div`,it,[s[36]||=u(`label`,null,`تصاویر عمومی محصول (اختیاری)`,-1),s[37]||=u(`p`,{class:`color-variants__hint`},`پس از انتخاب فایل، حتماً دکمه ذخیره را بزنید.`,-1),u(`div`,at,[(n(!0),d(g,null,p(U.extraImageUrls,(e,r)=>(n(),d(`div`,{key:`${r}-${e.slice(0,24)}`,class:`product-images__item`},[u(`span`,{class:`product-images__thumb`,style:t({backgroundImage:l(D)(e)})},null,4),u(`button`,{type:`button`,class:`product-images__remove`,onClick:e=>xt(r)},` حذف `,8,ot)]))),128)),u(`label`,st,[u(`input`,{type:`file`,accept:`image/*`,multiple:``,hidden:``,disabled:Y.value,onChange:bt},null,40,ct),h(` `+r(Y.value?`...`:`+ افزودن تصویر`),1)])])]),u(`div`,lt,[f(E,{modelValue:U.isNew,"onUpdate:modelValue":s[16]||=e=>U.isNew=e,label:`محصول جدید`},null,8,[`modelValue`])]),u(`div`,ut,[f(E,{modelValue:U.isActive,"onUpdate:modelValue":s[17]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-761ea8ca`]]);export{j as default}; \ No newline at end of file diff --git a/dist/assets/ReportsView-Dev1cfMC.js b/dist/assets/ReportsView-Dev1cfMC.js new file mode 100644 index 0000000..ffd1bc8 --- /dev/null +++ b/dist/assets/ReportsView-Dev1cfMC.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,Z as r,at as i,c as a,d as o,g as ee,h as te,j as s,l as c,m as l,r as u,t as d,u as f}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as ne,t as re}from"./http-Djf2pGxE.js";import{L as ie,b as p,c as m,i as h,s as g}from"./index-CznUUXv3.js";import{t as ae}from"./AdminPageSkeleton-CTgUqaAu.js";var oe={class:`reports-page`},se={class:`admin-page-header`},_={class:`reports-page__stats`},v={class:`admin-stat-card admin-card`},y={class:`admin-stat-card__value`},b={class:`reports-page__growth`},x={class:`admin-stat-card admin-card`},S={class:`admin-stat-card__value`},C={class:`admin-stat-card admin-card`},w={class:`admin-stat-card__value`},T={class:`admin-stat-card admin-card`},E={class:`admin-stat-card__value`},D={key:0,class:`reports-page__stats`},O={class:`admin-stat-card admin-card`},k={class:`admin-stat-card__value`},A={class:`admin-stat-card admin-card`},j={class:`admin-stat-card__value`},M={class:`admin-stat-card admin-card`},N={class:`admin-stat-card__value`},P={class:`admin-stat-card admin-card`},F={class:`admin-stat-card__value`},I={class:`admin-stat-card admin-card`},L={class:`admin-stat-card__value`},R={class:`admin-stat-card admin-card`},z={class:`admin-stat-card__value`},B={class:`reports-page__grid`},V={class:`admin-card reports-page__section`},H={class:`admin-table-wrap desktop-only`},U={class:`admin-table`},ce={class:`compact-only admin-card-list`},W={class:`admin-card-item__title`},G={class:`admin-card-item__meta`},le={class:`admin-card reports-page__section`},ue={class:`admin-table-wrap desktop-only`},de={class:`admin-table`},fe={class:`compact-only reports-page__status-list`},pe={key:1,class:`reports-page__grid reports-page__grid--full`},me={class:`admin-card reports-page__section`},he={class:`admin-table-wrap`},ge={class:`admin-table`},_e={key:2,class:`reports-page__grid`},ve={key:0,class:`admin-card reports-page__section`},ye={class:`admin-table-wrap`},be={class:`admin-table`},xe={dir:`ltr`},Se={key:1,class:`admin-card reports-page__section`},Ce={class:`admin-table-wrap`},we={class:`admin-table`},K=d(ee({__name:`ReportsView`,setup(ee){let d=ne(),K=r(!0),q=r({newOrders:0,pendingReview:0,pendingCheck:0,finalApproval:0,todaySales:0,todaySalesGrowth:0,monthSales:0}),J=r([]),Y=r([]),X=r([]),Z=r([]),Q=r([]),$=r(null);n(async()=>{K.value=!0;try{let[e,t]=await Promise.all([p.get(),p.reports()]);q.value=e.stats,J.value=t.reportSalesByCompany,Y.value=t.reportOrdersByStatus,X.value=t.reportSalesByMonth??[],Z.value=t.reportSalesByProduct??[],Q.value=t.reportSalesByCustomer??[],$.value=t.reportCustomers??null}catch(e){d.error(e instanceof re?e.message:`بارگذاری گزارش‌ها انجام نشد.`)}finally{K.value=!1}});function Te(){window.print()}return(n,r)=>(e(),o(`div`,oe,[a(`div`,se,[r[1]||=a(`div`,null,[a(`h1`,{class:`admin-page-header__title`},`گزارش‌ها`)],-1),a(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Te},[te(ie,{name:`print`,size:16}),r[0]||=l(` چاپ گزارش `,-1)])]),K.value?(e(),c(ae,{key:0,variant:`table`})):(e(),o(u,{key:1},[a(`div`,_,[a(`div`,v,[r[2]||=a(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),a(`p`,y,t(i(h)(q.value.todaySales)),1),a(`span`,b,`+`+t(q.value.todaySalesGrowth)+`% نسبت به دیروز`,1)]),a(`div`,x,[r[3]||=a(`p`,{class:`admin-stat-card__label`},`فروش ماه جاری`,-1),a(`p`,S,t(i(h)(q.value.monthSales)),1)]),a(`div`,C,[r[4]||=a(`p`,{class:`admin-stat-card__label`},`سفارش‌های جدید`,-1),a(`p`,w,t(i(m)(q.value.newOrders)),1)]),a(`div`,T,[r[5]||=a(`p`,{class:`admin-stat-card__label`},`در انتظار بررسی`,-1),a(`p`,E,t(i(m)(q.value.pendingReview)),1)])]),$.value?(e(),o(`div`,D,[a(`div`,O,[r[6]||=a(`p`,{class:`admin-stat-card__label`},`مشتریان فعال`,-1),a(`p`,k,t(i(m)($.value.active)),1)]),a(`div`,A,[r[7]||=a(`p`,{class:`admin-stat-card__label`},`غیرفعال`,-1),a(`p`,j,t(i(m)($.value.inactive)),1)]),a(`div`,M,[r[8]||=a(`p`,{class:`admin-stat-card__label`},`جدید ۳۰ روز`,-1),a(`p`,N,t(i(m)($.value.newLast30Days)),1)]),a(`div`,P,[r[9]||=a(`p`,{class:`admin-stat-card__label`},`بدون خرید`,-1),a(`p`,F,t(i(m)($.value.noPurchase)),1)]),a(`div`,I,[r[10]||=a(`p`,{class:`admin-stat-card__label`},`بدون خرید ۹۰ روز`,-1),a(`p`,L,t(i(m)($.value.noPurchase90Days)),1)]),a(`div`,R,[r[11]||=a(`p`,{class:`admin-stat-card__label`},`دارای واسطه`,-1),a(`p`,z,t(i(m)($.value.withAgent)),1)])])):f(``,!0),a(`div`,B,[a(`section`,V,[r[13]||=a(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک شرکت`,-1),a(`div`,H,[a(`table`,U,[r[12]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`شرکت`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`مجموع متراژ`),a(`th`,null,`مجموع مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,s(J.value,n=>(e(),o(`tr`,{key:n.companyName},[a(`td`,null,t(n.companyName),1),a(`td`,null,t(i(m)(n.orderCount)),1),a(`td`,null,t(i(g)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])]),a(`div`,ce,[(e(!0),o(u,null,s(J.value,n=>(e(),o(`article`,{key:n.companyName,class:`admin-card-item`},[a(`p`,W,t(n.companyName),1),a(`div`,G,[a(`span`,null,t(n.orderCount)+` سفارش`,1),a(`span`,null,t(i(g)(n.meterage)),1),a(`span`,null,t(i(h)(n.totalAmount)),1)])]))),128))])]),a(`section`,le,[r[15]||=a(`h2`,{class:`reports-page__section-title`},`سفارش‌ها به تفکیک وضعیت`,-1),a(`div`,ue,[a(`table`,de,[r[14]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`وضعیت`),a(`th`,null,`تعداد`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,s(Y.value,n=>(e(),o(`tr`,{key:n.status},[a(`td`,null,t(n.status),1),a(`td`,null,t(i(m)(n.count)),1)]))),128))])])]),a(`ul`,fe,[(e(!0),o(u,null,s(Y.value,n=>(e(),o(`li`,{key:n.status},[a(`span`,null,t(n.status),1),a(`strong`,null,t(i(m)(n.count)),1)]))),128))])])]),X.value.length?(e(),o(`div`,pe,[a(`section`,me,[r[17]||=a(`h2`,{class:`reports-page__section-title`},`فروش ماهانه`,-1),a(`div`,he,[a(`table`,ge,[r[16]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`ماه`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`مجموع متراژ`),a(`th`,null,`مجموع مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,s(X.value,n=>(e(),o(`tr`,{key:n.month},[a(`td`,null,t(n.month),1),a(`td`,null,t(i(m)(n.orderCount)),1),a(`td`,null,t(i(g)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])])])])):f(``,!0),Z.value.length||Q.value.length?(e(),o(`div`,_e,[Z.value.length?(e(),o(`section`,ve,[r[19]||=a(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک محصول`,-1),a(`div`,ye,[a(`table`,be,[r[18]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`محصول`),a(`th`,null,`کد`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`متراژ`),a(`th`,null,`مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,s(Z.value,n=>(e(),o(`tr`,{key:n.productId},[a(`td`,null,t(n.productName),1),a(`td`,xe,t(n.productCode),1),a(`td`,null,t(i(m)(n.orderCount)),1),a(`td`,null,t(i(g)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])])])):f(``,!0),Q.value.length?(e(),o(`section`,Se,[r[21]||=a(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک مشتری`,-1),a(`div`,Ce,[a(`table`,we,[r[20]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`مشتری`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`متراژ`),a(`th`,null,`مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,s(Q.value,n=>(e(),o(`tr`,{key:n.customerName},[a(`td`,null,t(n.customerName),1),a(`td`,null,t(i(m)(n.orderCount)),1),a(`td`,null,t(i(g)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])])])):f(``,!0)])):f(``,!0)],64))]))}}),[[`__scopeId`,`data-v-6618f331`]]);export{K as default}; \ No newline at end of file diff --git a/dist/assets/ReportsView-uTGceQoW.js b/dist/assets/ReportsView-uTGceQoW.js deleted file mode 100644 index 6bd4c56..0000000 --- a/dist/assets/ReportsView-uTGceQoW.js +++ /dev/null @@ -1 +0,0 @@ -import{O as e,Ot as t,T as n,Z as r,at as i,c as a,d as o,g as ee,h as s,j as c,l as te,m as l,r as u,t as d,u as f}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{N as ne,P as re,_ as p,a as m,n as h,o as g,z as ie}from"./index-CXa4EMLW.js";import{t as ae}from"./AdminPageSkeleton-CTgUqaAu.js";var oe={class:`reports-page`},se={class:`admin-page-header`},_={class:`reports-page__stats`},v={class:`admin-stat-card admin-card`},y={class:`admin-stat-card__value`},b={class:`reports-page__growth`},x={class:`admin-stat-card admin-card`},S={class:`admin-stat-card__value`},C={class:`admin-stat-card admin-card`},w={class:`admin-stat-card__value`},T={class:`admin-stat-card admin-card`},E={class:`admin-stat-card__value`},D={key:0,class:`reports-page__stats`},O={class:`admin-stat-card admin-card`},k={class:`admin-stat-card__value`},A={class:`admin-stat-card admin-card`},j={class:`admin-stat-card__value`},M={class:`admin-stat-card admin-card`},N={class:`admin-stat-card__value`},P={class:`admin-stat-card admin-card`},F={class:`admin-stat-card__value`},I={class:`admin-stat-card admin-card`},L={class:`admin-stat-card__value`},R={class:`admin-stat-card admin-card`},z={class:`admin-stat-card__value`},B={class:`reports-page__grid`},V={class:`admin-card reports-page__section`},H={class:`admin-table-wrap desktop-only`},U={class:`admin-table`},ce={class:`compact-only admin-card-list`},W={class:`admin-card-item__title`},G={class:`admin-card-item__meta`},le={class:`admin-card reports-page__section`},ue={class:`admin-table-wrap desktop-only`},de={class:`admin-table`},fe={class:`compact-only reports-page__status-list`},pe={key:1,class:`reports-page__grid reports-page__grid--full`},me={class:`admin-card reports-page__section`},he={class:`admin-table-wrap`},ge={class:`admin-table`},_e={key:2,class:`reports-page__grid`},ve={key:0,class:`admin-card reports-page__section`},ye={class:`admin-table-wrap`},be={class:`admin-table`},xe={dir:`ltr`},Se={key:1,class:`admin-card reports-page__section`},Ce={class:`admin-table-wrap`},we={class:`admin-table`},K=d(ee({__name:`ReportsView`,setup(ee){let d=ie(),K=r(!0),q=r({newOrders:0,pendingReview:0,pendingCheck:0,finalApproval:0,todaySales:0,todaySalesGrowth:0,monthSales:0}),J=r([]),Y=r([]),X=r([]),Z=r([]),Q=r([]),$=r(null);n(async()=>{K.value=!0;try{let[e,t]=await Promise.all([p.get(),p.reports()]);q.value=e.stats,J.value=t.reportSalesByCompany,Y.value=t.reportOrdersByStatus,X.value=t.reportSalesByMonth??[],Z.value=t.reportSalesByProduct??[],Q.value=t.reportSalesByCustomer??[],$.value=t.reportCustomers??null}catch(e){d.error(e instanceof ne?e.message:`بارگذاری گزارش‌ها انجام نشد.`)}finally{K.value=!1}});function Te(){window.print()}return(n,r)=>(e(),o(`div`,oe,[a(`div`,se,[r[1]||=a(`div`,null,[a(`h1`,{class:`admin-page-header__title`},`گزارش‌ها`)],-1),a(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Te},[s(re,{name:`print`,size:16}),r[0]||=l(` چاپ گزارش `,-1)])]),K.value?(e(),te(ae,{key:0,variant:`table`})):(e(),o(u,{key:1},[a(`div`,_,[a(`div`,v,[r[2]||=a(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),a(`p`,y,t(i(h)(q.value.todaySales)),1),a(`span`,b,`+`+t(q.value.todaySalesGrowth)+`% نسبت به دیروز`,1)]),a(`div`,x,[r[3]||=a(`p`,{class:`admin-stat-card__label`},`فروش ماه جاری`,-1),a(`p`,S,t(i(h)(q.value.monthSales)),1)]),a(`div`,C,[r[4]||=a(`p`,{class:`admin-stat-card__label`},`سفارش‌های جدید`,-1),a(`p`,w,t(i(g)(q.value.newOrders)),1)]),a(`div`,T,[r[5]||=a(`p`,{class:`admin-stat-card__label`},`در انتظار بررسی`,-1),a(`p`,E,t(i(g)(q.value.pendingReview)),1)])]),$.value?(e(),o(`div`,D,[a(`div`,O,[r[6]||=a(`p`,{class:`admin-stat-card__label`},`مشتریان فعال`,-1),a(`p`,k,t(i(g)($.value.active)),1)]),a(`div`,A,[r[7]||=a(`p`,{class:`admin-stat-card__label`},`غیرفعال`,-1),a(`p`,j,t(i(g)($.value.inactive)),1)]),a(`div`,M,[r[8]||=a(`p`,{class:`admin-stat-card__label`},`جدید ۳۰ روز`,-1),a(`p`,N,t(i(g)($.value.newLast30Days)),1)]),a(`div`,P,[r[9]||=a(`p`,{class:`admin-stat-card__label`},`بدون خرید`,-1),a(`p`,F,t(i(g)($.value.noPurchase)),1)]),a(`div`,I,[r[10]||=a(`p`,{class:`admin-stat-card__label`},`بدون خرید ۹۰ روز`,-1),a(`p`,L,t(i(g)($.value.noPurchase90Days)),1)]),a(`div`,R,[r[11]||=a(`p`,{class:`admin-stat-card__label`},`دارای واسطه`,-1),a(`p`,z,t(i(g)($.value.withAgent)),1)])])):f(``,!0),a(`div`,B,[a(`section`,V,[r[13]||=a(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک شرکت`,-1),a(`div`,H,[a(`table`,U,[r[12]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`شرکت`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`مجموع متراژ`),a(`th`,null,`مجموع مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,c(J.value,n=>(e(),o(`tr`,{key:n.companyName},[a(`td`,null,t(n.companyName),1),a(`td`,null,t(i(g)(n.orderCount)),1),a(`td`,null,t(i(m)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])]),a(`div`,ce,[(e(!0),o(u,null,c(J.value,n=>(e(),o(`article`,{key:n.companyName,class:`admin-card-item`},[a(`p`,W,t(n.companyName),1),a(`div`,G,[a(`span`,null,t(n.orderCount)+` سفارش`,1),a(`span`,null,t(i(m)(n.meterage)),1),a(`span`,null,t(i(h)(n.totalAmount)),1)])]))),128))])]),a(`section`,le,[r[15]||=a(`h2`,{class:`reports-page__section-title`},`سفارش‌ها به تفکیک وضعیت`,-1),a(`div`,ue,[a(`table`,de,[r[14]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`وضعیت`),a(`th`,null,`تعداد`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,c(Y.value,n=>(e(),o(`tr`,{key:n.status},[a(`td`,null,t(n.status),1),a(`td`,null,t(i(g)(n.count)),1)]))),128))])])]),a(`ul`,fe,[(e(!0),o(u,null,c(Y.value,n=>(e(),o(`li`,{key:n.status},[a(`span`,null,t(n.status),1),a(`strong`,null,t(i(g)(n.count)),1)]))),128))])])]),X.value.length?(e(),o(`div`,pe,[a(`section`,me,[r[17]||=a(`h2`,{class:`reports-page__section-title`},`فروش ماهانه`,-1),a(`div`,he,[a(`table`,ge,[r[16]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`ماه`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`مجموع متراژ`),a(`th`,null,`مجموع مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,c(X.value,n=>(e(),o(`tr`,{key:n.month},[a(`td`,null,t(n.month),1),a(`td`,null,t(i(g)(n.orderCount)),1),a(`td`,null,t(i(m)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])])])])):f(``,!0),Z.value.length||Q.value.length?(e(),o(`div`,_e,[Z.value.length?(e(),o(`section`,ve,[r[19]||=a(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک محصول`,-1),a(`div`,ye,[a(`table`,be,[r[18]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`محصول`),a(`th`,null,`کد`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`متراژ`),a(`th`,null,`مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,c(Z.value,n=>(e(),o(`tr`,{key:n.productId},[a(`td`,null,t(n.productName),1),a(`td`,xe,t(n.productCode),1),a(`td`,null,t(i(g)(n.orderCount)),1),a(`td`,null,t(i(m)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])])])):f(``,!0),Q.value.length?(e(),o(`section`,Se,[r[21]||=a(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک مشتری`,-1),a(`div`,Ce,[a(`table`,we,[r[20]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`مشتری`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`متراژ`),a(`th`,null,`مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,c(Q.value,n=>(e(),o(`tr`,{key:n.customerName},[a(`td`,null,t(n.customerName),1),a(`td`,null,t(i(g)(n.orderCount)),1),a(`td`,null,t(i(m)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])])])):f(``,!0)])):f(``,!0)],64))]))}}),[[`__scopeId`,`data-v-6618f331`]]);export{K as default}; \ No newline at end of file diff --git a/dist/assets/SettingsView-BSpASBj1.js b/dist/assets/SettingsView-BSpASBj1.js deleted file mode 100644 index d23f8e3..0000000 --- a/dist/assets/SettingsView-BSpASBj1.js +++ /dev/null @@ -1 +0,0 @@ -import{O as e,Ot as t,T as n,V as r,Y as i,Z as a,c as o,d as s,g as c,j as l,l as ee,m as u,r as te,s as ne,t as d,u as re}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{C as f,V as p,W as m,b as ie,g as ae,z as oe}from"./index-CXa4EMLW.js";import{t as h}from"./AdminPageSkeleton-CTgUqaAu.js";var g={class:`settings-page`},_={class:`admin-page-header`},v=[`disabled`],y={key:1,class:`settings-page__grid`},b={class:`admin-card settings-page__section`},x={class:`admin-form__field`},S={class:`admin-form__field`},C={class:`admin-form__field`},w={class:`settings-page__check`},T={class:`settings-page__check`},E={class:`admin-form__field`},D=[`disabled`],O={class:`settings-page__checks`},k={class:`settings-page__check`},A={class:`settings-page__check`},j={class:`admin-card settings-page__section`},M={class:`settings-page__checks`},N={class:`settings-page__check`},se={class:`settings-page__check`},P={class:`settings-page__check`},F={class:`settings-page__check`},I={class:`settings-page__check`},L={class:`admin-card settings-page__section`},R={class:`admin-form__field`},z={class:`admin-form__field`},B={class:`admin-card settings-page__section`},V={class:`admin-form__field`},H={class:`admin-form__field`},U={key:0,class:`admin-form__field`},W={class:`settings-page__customers`},G=[`checked`,`onChange`],K={class:`settings-page__phone`,dir:`ltr`},ce=[`disabled`],q=d(c({__name:`SettingsView`,setup(c){let d=oe(),q=i({maxMeteragePerInvoice:5e3,cashInvoiceValidityHours:8,smsOrderRegistered:!0,smsPricingReady:!0,smsPaymentReminder:!0,smsCheckReview:!0,smsShippingUpdate:!0,defaultSettlementCheck:!0,defaultSettlementCash:!0,minOrderRollsPerProduct:1,showCatalogPublicPrice:!1,allowAgentPricing:!1,agentMinUnitPrice:null,supportPhone:``,supportEmail:``}),J=i({title:``,body:``}),Y=a(!1),X=a([]),Z=a([]),Q=a(!0),$=a(!1),le=ne(()=>Y.value?`در حال ارسال…`:Z.value.length?`ارسال به ${Z.value.length} مشتری انتخاب‌شده`:`ارسال به همه مشتریان فعال`);function ue(e,t){t?Z.value.includes(e)||Z.value.push(e):Z.value=Z.value.filter(t=>t!==e)}n(async()=>{Q.value=!0;try{let[e,t]=await Promise.all([f.get(),ae.list()]);Object.assign(q,{maxMeteragePerInvoice:e.maxMeteragePerInvoice,cashInvoiceValidityHours:e.cashInvoiceValidityHours,smsOrderRegistered:e.smsOrderRegistered,smsPricingReady:e.smsPricingReady,smsPaymentReminder:e.smsPaymentReminder,smsCheckReview:e.smsCheckReview,smsShippingUpdate:e.smsShippingUpdate,defaultSettlementCheck:e.defaultSettlementCheck,defaultSettlementCash:e.defaultSettlementCash,minOrderRollsPerProduct:e.minOrderRollsPerProduct??1,showCatalogPublicPrice:e.showCatalogPublicPrice??!1,allowAgentPricing:e.allowAgentPricing??!1,agentMinUnitPrice:e.agentMinUnitPrice??null,supportPhone:e.supportPhone??``,supportEmail:e.supportEmail??``}),X.value=t}catch(e){d.error(e instanceof Error?e.message:`دریافت تنظیمات ناموفق بود.`)}finally{Q.value=!1}});async function de(){if(!$.value){$.value=!0;try{await f.update({...q}),d.success(`تنظیمات با موفقیت ذخیره شد.`)}catch(e){d.error(e instanceof Error?e.message:`ذخیره تنظیمات ناموفق بود.`)}finally{$.value=!1}}}async function fe(){if(!(!J.title.trim()||!J.body.trim()||Y.value)){Y.value=!0;try{let e={title:J.title.trim(),body:J.body.trim()};Z.value.length&&(e.customerIds=[...Z.value]);let t=await ie.broadcast(e);d.success(`اعلان برای ${t.sent} مشتری ارسال شد.`),J.title=``,J.body=``,Z.value=[]}catch(e){d.error(e instanceof Error?e.message:`ارسال اعلان ناموفق بود.`)}finally{Y.value=!1}}}return(n,i)=>(e(),s(`div`,g,[o(`div`,_,[i[17]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`تنظیمات`)],-1),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:Q.value||$.value,onClick:de},t($.value?`در حال ذخیره…`:`ذخیره تنظیمات`),9,v)]),Q.value?(e(),ee(h,{key:0,variant:`form`,rows:8})):(e(),s(`div`,y,[o(`section`,b,[i[26]||=o(`h2`,{class:`settings-page__title`},`تنظیمات عمومی سفارش`,-1),o(`div`,x,[i[18]||=o(`label`,{for:`max-meterage`},`حداکثر متراژ هر فاکتور (متر)`,-1),r(o(`input`,{id:`max-meterage`,"onUpdate:modelValue":i[0]||=e=>q.maxMeteragePerInvoice=e,type:`number`,min:`1000`,class:`admin-input`},null,512),[[m,q.maxMeteragePerInvoice,void 0,{number:!0}]])]),o(`div`,S,[i[19]||=o(`label`,{for:`validity-hours`},`اعتبار فاکتور نقدی (ساعت)`,-1),r(o(`input`,{id:`validity-hours`,"onUpdate:modelValue":i[1]||=e=>q.cashInvoiceValidityHours=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[m,q.cashInvoiceValidityHours,void 0,{number:!0}]])]),o(`div`,C,[i[20]||=o(`label`,{for:`min-rolls`},`حداقل طاقه از هر محصول`,-1),r(o(`input`,{id:`min-rolls`,"onUpdate:modelValue":i[2]||=e=>q.minOrderRollsPerProduct=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[m,q.minOrderRollsPerProduct,void 0,{number:!0}]])]),o(`label`,w,[r(o(`input`,{"onUpdate:modelValue":i[3]||=e=>q.showCatalogPublicPrice=e,type:`checkbox`},null,512),[[p,q.showCatalogPublicPrice]]),i[21]||=u(` نمایش قیمت عمومی در کاتالوگ `,-1)]),o(`label`,T,[r(o(`input`,{"onUpdate:modelValue":i[4]||=e=>q.allowAgentPricing=e,type:`checkbox`},null,512),[[p,q.allowAgentPricing]]),i[22]||=u(` اجازه قیمت‌گذاری توسط واسطه `,-1)]),o(`div`,E,[i[23]||=o(`label`,{for:`agent-min-price`},`حداقل قیمت واحد واسطه (تومان)`,-1),r(o(`input`,{id:`agent-min-price`,"onUpdate:modelValue":i[5]||=e=>q.agentMinUnitPrice=e,type:`number`,min:`0`,class:`admin-input`,disabled:!q.allowAgentPricing},null,8,D),[[m,q.agentMinUnitPrice,void 0,{number:!0}]])]),o(`div`,O,[o(`label`,k,[r(o(`input`,{"onUpdate:modelValue":i[6]||=e=>q.defaultSettlementCheck=e,type:`checkbox`},null,512),[[p,q.defaultSettlementCheck]]),i[24]||=o(`span`,null,`فعال‌سازی تسویه چکی`,-1)]),o(`label`,A,[r(o(`input`,{"onUpdate:modelValue":i[7]||=e=>q.defaultSettlementCash=e,type:`checkbox`},null,512),[[p,q.defaultSettlementCash]]),i[25]||=o(`span`,null,`فعال‌سازی تسویه نقدی`,-1)])])]),o(`section`,j,[i[32]||=o(`h2`,{class:`settings-page__title`},`پیامک و اعلان`,-1),o(`div`,M,[o(`label`,N,[r(o(`input`,{"onUpdate:modelValue":i[8]||=e=>q.smsOrderRegistered=e,type:`checkbox`},null,512),[[p,q.smsOrderRegistered]]),i[27]||=o(`span`,null,`پیامک ثبت سفارش`,-1)]),o(`label`,se,[r(o(`input`,{"onUpdate:modelValue":i[9]||=e=>q.smsPricingReady=e,type:`checkbox`},null,512),[[p,q.smsPricingReady]]),i[28]||=o(`span`,null,`پیامک صدور فاکتور و آماده‌بودن قیمت`,-1)]),o(`label`,P,[r(o(`input`,{"onUpdate:modelValue":i[10]||=e=>q.smsPaymentReminder=e,type:`checkbox`},null,512),[[p,q.smsPaymentReminder]]),i[29]||=o(`span`,null,`یادآوری پایان اعتبار فاکتور`,-1)]),o(`label`,F,[r(o(`input`,{"onUpdate:modelValue":i[11]||=e=>q.smsCheckReview=e,type:`checkbox`},null,512),[[p,q.smsCheckReview]]),i[30]||=o(`span`,null,`اعلان بررسی چک`,-1)]),o(`label`,I,[r(o(`input`,{"onUpdate:modelValue":i[12]||=e=>q.smsShippingUpdate=e,type:`checkbox`},null,512),[[p,q.smsShippingUpdate]]),i[31]||=o(`span`,null,`اعلان وضعیت ارسال`,-1)])])]),o(`section`,L,[i[36]||=o(`h2`,{class:`settings-page__title`},`اطلاعات تماس پشتیبانی`,-1),o(`div`,R,[i[33]||=o(`label`,{for:`support-phone`},`تلفن پشتیبانی`,-1),r(o(`input`,{id:`support-phone`,"onUpdate:modelValue":i[13]||=e=>q.supportPhone=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[m,q.supportPhone]]),i[34]||=o(`p`,{class:`settings-page__hint`},` این شماره در صفحه ورود اپ و بخش پشتیبانی سایدبار دسکتاپ نمایش داده می‌شود. `,-1)]),o(`div`,z,[i[35]||=o(`label`,{for:`support-email`},`ایمیل پشتیبانی`,-1),r(o(`input`,{id:`support-email`,"onUpdate:modelValue":i[14]||=e=>q.supportEmail=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[m,q.supportEmail]])])]),o(`section`,B,[i[40]||=o(`h2`,{class:`settings-page__title`},`اعلان هدفمند`,-1),o(`div`,V,[i[37]||=o(`label`,{for:`broadcast-title`},`عنوان`,-1),r(o(`input`,{id:`broadcast-title`,"onUpdate:modelValue":i[15]||=e=>J.title=e,type:`text`,class:`admin-input`},null,512),[[m,J.title]])]),o(`div`,H,[i[38]||=o(`label`,{for:`broadcast-body`},`متن`,-1),r(o(`textarea`,{id:`broadcast-body`,"onUpdate:modelValue":i[16]||=e=>J.body=e,class:`admin-input`,rows:`4`},null,512),[[m,J.body]])]),X.value.length?(e(),s(`div`,U,[i[39]||=o(`label`,null,`گیرندگان (بدون انتخاب = همه)`,-1),o(`div`,W,[(e(!0),s(te,null,l(X.value,n=>(e(),s(`label`,{key:n.id,class:`settings-page__check`},[o(`input`,{type:`checkbox`,checked:Z.value.includes(n.id),onChange:e=>ue(n.id,e.target.checked)},null,40,G),o(`span`,null,[u(t(n.name)+` `,1),o(`span`,K,t(n.phone),1)])]))),128))])])):re(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:Y.value||!J.title.trim()||!J.body.trim(),onClick:fe},t(le.value),9,ce)])]))]))}}),[[`__scopeId`,`data-v-85da5885`]]);export{q as default}; \ No newline at end of file diff --git a/dist/assets/SettingsView-Bhs1XSG2.js b/dist/assets/SettingsView-Bhs1XSG2.js new file mode 100644 index 0000000..5ea3478 --- /dev/null +++ b/dist/assets/SettingsView-Bhs1XSG2.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,V as r,Y as i,Z as a,c as o,d as s,g as c,j as l,l as ee,m as u,r as te,s as ne,t as d,u as re}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as ie,f,l as p}from"./http-Djf2pGxE.js";import{C as ae,E as m,y as oe}from"./index-CznUUXv3.js";import{t as h}from"./AdminPageSkeleton-CTgUqaAu.js";var g={class:`settings-page`},_={class:`admin-page-header`},v=[`disabled`],y={key:1,class:`settings-page__grid`},b={class:`admin-card settings-page__section`},x={class:`admin-form__field`},S={class:`admin-form__field`},C={class:`admin-form__field`},w={class:`settings-page__check`},T={class:`settings-page__check`},E={class:`admin-form__field`},D=[`disabled`],O={class:`settings-page__checks`},k={class:`settings-page__check`},A={class:`settings-page__check`},j={class:`admin-card settings-page__section`},M={class:`settings-page__checks`},N={class:`settings-page__check`},se={class:`settings-page__check`},P={class:`settings-page__check`},F={class:`settings-page__check`},I={class:`settings-page__check`},L={class:`admin-card settings-page__section`},R={class:`admin-form__field`},z={class:`admin-form__field`},B={class:`admin-card settings-page__section`},V={class:`admin-form__field`},H={class:`admin-form__field`},U={key:0,class:`admin-form__field`},W={class:`settings-page__customers`},G=[`checked`,`onChange`],K={class:`settings-page__phone`,dir:`ltr`},ce=[`disabled`],q=d(c({__name:`SettingsView`,setup(c){let d=ie(),q=i({maxMeteragePerInvoice:5e3,cashInvoiceValidityHours:8,smsOrderRegistered:!0,smsPricingReady:!0,smsPaymentReminder:!0,smsCheckReview:!0,smsShippingUpdate:!0,defaultSettlementCheck:!0,defaultSettlementCash:!0,minOrderRollsPerProduct:1,showCatalogPublicPrice:!1,allowAgentPricing:!1,agentMinUnitPrice:null,supportPhone:``,supportEmail:``}),J=i({title:``,body:``}),Y=a(!1),X=a([]),Z=a([]),Q=a(!0),$=a(!1),le=ne(()=>Y.value?`در حال ارسال…`:Z.value.length?`ارسال به ${Z.value.length} مشتری انتخاب‌شده`:`ارسال به همه مشتریان فعال`);function ue(e,t){t?Z.value.includes(e)||Z.value.push(e):Z.value=Z.value.filter(t=>t!==e)}n(async()=>{Q.value=!0;try{let[e,t]=await Promise.all([m.get(),oe.list()]);Object.assign(q,{maxMeteragePerInvoice:e.maxMeteragePerInvoice,cashInvoiceValidityHours:e.cashInvoiceValidityHours,smsOrderRegistered:e.smsOrderRegistered,smsPricingReady:e.smsPricingReady,smsPaymentReminder:e.smsPaymentReminder,smsCheckReview:e.smsCheckReview,smsShippingUpdate:e.smsShippingUpdate,defaultSettlementCheck:e.defaultSettlementCheck,defaultSettlementCash:e.defaultSettlementCash,minOrderRollsPerProduct:e.minOrderRollsPerProduct??1,showCatalogPublicPrice:e.showCatalogPublicPrice??!1,allowAgentPricing:e.allowAgentPricing??!1,agentMinUnitPrice:e.agentMinUnitPrice??null,supportPhone:e.supportPhone??``,supportEmail:e.supportEmail??``}),X.value=t}catch(e){d.error(e instanceof Error?e.message:`دریافت تنظیمات ناموفق بود.`)}finally{Q.value=!1}});async function de(){if(!$.value){$.value=!0;try{await m.update({...q}),d.success(`تنظیمات با موفقیت ذخیره شد.`)}catch(e){d.error(e instanceof Error?e.message:`ذخیره تنظیمات ناموفق بود.`)}finally{$.value=!1}}}async function fe(){if(!(!J.title.trim()||!J.body.trim()||Y.value)){Y.value=!0;try{let e={title:J.title.trim(),body:J.body.trim()};Z.value.length&&(e.customerIds=[...Z.value]);let t=await ae.broadcast(e);d.success(`اعلان برای ${t.sent} مشتری ارسال شد.`),J.title=``,J.body=``,Z.value=[]}catch(e){d.error(e instanceof Error?e.message:`ارسال اعلان ناموفق بود.`)}finally{Y.value=!1}}}return(n,i)=>(e(),s(`div`,g,[o(`div`,_,[i[17]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`تنظیمات`)],-1),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:Q.value||$.value,onClick:de},t($.value?`در حال ذخیره…`:`ذخیره تنظیمات`),9,v)]),Q.value?(e(),ee(h,{key:0,variant:`form`,rows:8})):(e(),s(`div`,y,[o(`section`,b,[i[26]||=o(`h2`,{class:`settings-page__title`},`تنظیمات عمومی سفارش`,-1),o(`div`,x,[i[18]||=o(`label`,{for:`max-meterage`},`حداکثر متراژ هر فاکتور (متر)`,-1),r(o(`input`,{id:`max-meterage`,"onUpdate:modelValue":i[0]||=e=>q.maxMeteragePerInvoice=e,type:`number`,min:`1000`,class:`admin-input`},null,512),[[f,q.maxMeteragePerInvoice,void 0,{number:!0}]])]),o(`div`,S,[i[19]||=o(`label`,{for:`validity-hours`},`اعتبار فاکتور نقدی (ساعت)`,-1),r(o(`input`,{id:`validity-hours`,"onUpdate:modelValue":i[1]||=e=>q.cashInvoiceValidityHours=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[f,q.cashInvoiceValidityHours,void 0,{number:!0}]])]),o(`div`,C,[i[20]||=o(`label`,{for:`min-rolls`},`حداقل طاقه از هر محصول`,-1),r(o(`input`,{id:`min-rolls`,"onUpdate:modelValue":i[2]||=e=>q.minOrderRollsPerProduct=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[f,q.minOrderRollsPerProduct,void 0,{number:!0}]])]),o(`label`,w,[r(o(`input`,{"onUpdate:modelValue":i[3]||=e=>q.showCatalogPublicPrice=e,type:`checkbox`},null,512),[[p,q.showCatalogPublicPrice]]),i[21]||=u(` نمایش قیمت عمومی در کاتالوگ `,-1)]),o(`label`,T,[r(o(`input`,{"onUpdate:modelValue":i[4]||=e=>q.allowAgentPricing=e,type:`checkbox`},null,512),[[p,q.allowAgentPricing]]),i[22]||=u(` اجازه قیمت‌گذاری توسط واسطه `,-1)]),o(`div`,E,[i[23]||=o(`label`,{for:`agent-min-price`},`حداقل قیمت واحد واسطه (تومان)`,-1),r(o(`input`,{id:`agent-min-price`,"onUpdate:modelValue":i[5]||=e=>q.agentMinUnitPrice=e,type:`number`,min:`0`,class:`admin-input`,disabled:!q.allowAgentPricing},null,8,D),[[f,q.agentMinUnitPrice,void 0,{number:!0}]])]),o(`div`,O,[o(`label`,k,[r(o(`input`,{"onUpdate:modelValue":i[6]||=e=>q.defaultSettlementCheck=e,type:`checkbox`},null,512),[[p,q.defaultSettlementCheck]]),i[24]||=o(`span`,null,`فعال‌سازی تسویه چکی`,-1)]),o(`label`,A,[r(o(`input`,{"onUpdate:modelValue":i[7]||=e=>q.defaultSettlementCash=e,type:`checkbox`},null,512),[[p,q.defaultSettlementCash]]),i[25]||=o(`span`,null,`فعال‌سازی تسویه نقدی`,-1)])])]),o(`section`,j,[i[32]||=o(`h2`,{class:`settings-page__title`},`پیامک و اعلان`,-1),o(`div`,M,[o(`label`,N,[r(o(`input`,{"onUpdate:modelValue":i[8]||=e=>q.smsOrderRegistered=e,type:`checkbox`},null,512),[[p,q.smsOrderRegistered]]),i[27]||=o(`span`,null,`پیامک ثبت سفارش`,-1)]),o(`label`,se,[r(o(`input`,{"onUpdate:modelValue":i[9]||=e=>q.smsPricingReady=e,type:`checkbox`},null,512),[[p,q.smsPricingReady]]),i[28]||=o(`span`,null,`پیامک صدور فاکتور و آماده‌بودن قیمت`,-1)]),o(`label`,P,[r(o(`input`,{"onUpdate:modelValue":i[10]||=e=>q.smsPaymentReminder=e,type:`checkbox`},null,512),[[p,q.smsPaymentReminder]]),i[29]||=o(`span`,null,`یادآوری پایان اعتبار فاکتور`,-1)]),o(`label`,F,[r(o(`input`,{"onUpdate:modelValue":i[11]||=e=>q.smsCheckReview=e,type:`checkbox`},null,512),[[p,q.smsCheckReview]]),i[30]||=o(`span`,null,`اعلان بررسی چک`,-1)]),o(`label`,I,[r(o(`input`,{"onUpdate:modelValue":i[12]||=e=>q.smsShippingUpdate=e,type:`checkbox`},null,512),[[p,q.smsShippingUpdate]]),i[31]||=o(`span`,null,`اعلان وضعیت ارسال`,-1)])])]),o(`section`,L,[i[36]||=o(`h2`,{class:`settings-page__title`},`اطلاعات تماس پشتیبانی`,-1),o(`div`,R,[i[33]||=o(`label`,{for:`support-phone`},`تلفن پشتیبانی`,-1),r(o(`input`,{id:`support-phone`,"onUpdate:modelValue":i[13]||=e=>q.supportPhone=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[f,q.supportPhone]]),i[34]||=o(`p`,{class:`settings-page__hint`},` این شماره در صفحه ورود اپ و بخش پشتیبانی سایدبار دسکتاپ نمایش داده می‌شود. `,-1)]),o(`div`,z,[i[35]||=o(`label`,{for:`support-email`},`ایمیل پشتیبانی`,-1),r(o(`input`,{id:`support-email`,"onUpdate:modelValue":i[14]||=e=>q.supportEmail=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[f,q.supportEmail]])])]),o(`section`,B,[i[40]||=o(`h2`,{class:`settings-page__title`},`اعلان هدفمند`,-1),o(`div`,V,[i[37]||=o(`label`,{for:`broadcast-title`},`عنوان`,-1),r(o(`input`,{id:`broadcast-title`,"onUpdate:modelValue":i[15]||=e=>J.title=e,type:`text`,class:`admin-input`},null,512),[[f,J.title]])]),o(`div`,H,[i[38]||=o(`label`,{for:`broadcast-body`},`متن`,-1),r(o(`textarea`,{id:`broadcast-body`,"onUpdate:modelValue":i[16]||=e=>J.body=e,class:`admin-input`,rows:`4`},null,512),[[f,J.body]])]),X.value.length?(e(),s(`div`,U,[i[39]||=o(`label`,null,`گیرندگان (بدون انتخاب = همه)`,-1),o(`div`,W,[(e(!0),s(te,null,l(X.value,n=>(e(),s(`label`,{key:n.id,class:`settings-page__check`},[o(`input`,{type:`checkbox`,checked:Z.value.includes(n.id),onChange:e=>ue(n.id,e.target.checked)},null,40,G),o(`span`,null,[u(t(n.name)+` `,1),o(`span`,K,t(n.phone),1)])]))),128))])])):re(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:Y.value||!J.title.trim()||!J.body.trim(),onClick:fe},t(le.value),9,ce)])]))]))}}),[[`__scopeId`,`data-v-85da5885`]]);export{q as default}; \ No newline at end of file diff --git a/dist/assets/ShippingView-Ck9kASgn.js b/dist/assets/ShippingView-Ck9kASgn.js deleted file mode 100644 index 46aa316..0000000 --- a/dist/assets/ShippingView-Ck9kASgn.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,O as t,Ot as n,R as ee,T as r,Tt as i,V as a,Y as te,Z as o,at as s,c,d as l,g as ne,h as u,j as d,l as re,m as f,r as p,s as m,t as h,u as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as ie,K as ae,N as _,P as oe,R as se,W as v,a as y,i as b,w as x,x as ce,y as le,z as ue}from"./index-CXa4EMLW.js";import{t as de}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as S}from"./AdminSelect-9UfEJQzN.js";import{a as C,i as w}from"./adminLabels-Cz9ccm1Z.js";import{a as fe}from"./orderStatus-CYVblRJB.js";var pe={class:`shipping-page`},me={class:`shipping-page__filters admin-card`},he={class:`shipping-page__search`},ge={class:`shipping-page__table admin-card desktop-only`},_e={class:`admin-table-wrap`},T={class:`admin-table`},E={dir:`ltr`},D=[`onClick`],O={key:1},k={class:`compact-only admin-card-list`},A={class:`admin-card-item__header`},j={class:`admin-card-item__title`},M={class:`admin-card-item__meta`},N={dir:`ltr`},P={key:0,class:`admin-card-item__actions`},F=[`onClick`],I={key:0,class:`admin-form__error`,role:`alert`},ve={class:`admin-form__field`},ye={class:`admin-form__row`},L={class:`admin-form__field`},be={class:`admin-form__field`},xe={class:`admin-form__row`},Se={class:`admin-form__field`},Ce={class:`admin-form__field`},we=[`disabled`],R=h(ne({__name:`ShippingView`,setup(ne){let h=ie(),R=o([]),z=o([]),B=o(typeof h.query.order==`string`?h.query.order:``),V=o(`all`),H=o(!0),U=o(!1),W=o(``),G=o(!1),K=ue(),Te=[{value:`all`,label:`همه وضعیت‌ها`},{value:`preparing`,label:`در حال آماده‌سازی`},{value:`ready`,label:`آماده ارسال`},{value:`shipped`,label:`ارسال شده`},{value:`delivered`,label:`تحویل شده`}],Ee=[{value:`preparing`,label:`در حال آماده‌سازی`},{value:`ready`,label:`آماده ارسال`},{value:`shipped`,label:`ارسال شده`},{value:`delivered`,label:`تحویل شده`}],q=()=>({orderId:``,carrier:``,trackingNumber:``,meterage:1e3,status:`preparing`}),J=te(q()),Y=m(()=>{let e=R.value;V.value!==`all`&&(e=e.filter(e=>e.status===V.value));let t=B.value.trim();return t&&(e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t)||e.trackingNumber.includes(t)||e.carrier.includes(t))),e}),X=m(()=>J.orderId.trim()&&J.carrier.trim()),De=m(()=>{let e=new Set(R.value.map(e=>e.orderId));return z.value.filter(t=>!e.has(t.id)&&fe(t))}),Oe=m(()=>De.value.map(e=>({value:e.id,label:`${e.orderNumber} — ${e.customerName}`})));async function ke(){H.value=!0;try{let[e,t]=await Promise.all([x.list(),ce.list()]);R.value=e,z.value=t.map(e=>le(e))}catch(e){K.error(e instanceof _?e.message:`بارگذاری ارسال‌ها انجام نشد.`)}finally{H.value=!1}}r(()=>{ke()}),ee(()=>h.query.order,e=>{typeof e==`string`&&e.trim()&&(B.value=e.trim())});function Ae(){let e=z.value.find(e=>e.id===J.orderId);e&&(J.meterage=e.meterage)}function je(){Object.assign(J,q()),W.value=``,U.value=!0}function Z(){U.value=!1,W.value=``}async function Q(){if(!X.value){W.value=`سفارش و باربری الزامی هستند.`;return}G.value=!0;try{let e=await x.create({orderId:J.orderId,carrier:J.carrier.trim(),trackingNumber:J.trackingNumber.trim()||void 0,meterage:J.meterage,status:J.status});R.value.unshift(e),K.success(`بارنامه ثبت شد.`),Z()}catch(e){K.error(e instanceof _?e.message:`ثبت بارنامه انجام نشد.`)}finally{G.value=!1}}async function $(e){try{let t=await x.advanceStatus(e.id),n=R.value.findIndex(t=>t.id===e.id);n!==-1&&(R.value[n]=t),K.success(`وضعیت ارسال به‌روزرسانی شد.`)}catch(e){K.error(e instanceof _?e.message:`به‌روزرسانی وضعیت انجام نشد.`)}}return(ee,r)=>(t(),l(`div`,pe,[c(`div`,{class:`admin-page-header`},[r[7]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`ارسال و باربری`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:je},` ثبت بارنامه `)]),c(`div`,me,[c(`div`,he,[u(oe,{name:`search`,size:18}),a(c(`input`,{"onUpdate:modelValue":r[0]||=e=>B.value=e,type:`search`,class:`shipping-page__search-input`,placeholder:`جستجو در سفارش، مشتری، باربری...`},null,512),[[v,B.value]])]),u(S,{modelValue:V.value,"onUpdate:modelValue":r[1]||=e=>V.value=e,class:`shipping-page__status-select`,"aria-label":`فیلتر وضعیت ارسال`,options:Te},null,8,[`modelValue`])]),H.value?(t(),re(de,{key:0,variant:`table`})):(t(),l(p,{key:1},[c(`div`,ge,[c(`div`,_e,[c(`table`,T,[r[8]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`شماره سفارش`),c(`th`,null,`مشتری`),c(`th`,null,`باربری`),c(`th`,null,`شماره بارنامه`),c(`th`,null,`متراژ`),c(`th`,null,`وضعیت`),c(`th`,null,`تاریخ ارسال`),c(`th`,null,`تاریخ تحویل`),c(`th`,null,`عملیات`)])],-1),c(`tbody`,null,[(t(!0),l(p,null,d(Y.value,e=>(t(),l(`tr`,{key:e.id},[c(`td`,null,n(e.orderNumber),1),c(`td`,null,n(e.customerName),1),c(`td`,null,n(e.carrier),1),c(`td`,E,n(e.trackingNumber),1),c(`td`,null,n(s(y)(e.meterage)),1),c(`td`,null,[c(`span`,{class:i([`admin-badge`,s(w)[e.status]])},n(s(C)[e.status]),3)]),c(`td`,null,n(e.shippedAt?s(b)(e.shippedAt):`—`),1),c(`td`,null,n(e.deliveredAt?s(b)(e.deliveredAt):`—`),1),c(`td`,null,[e.status===`delivered`?(t(),l(`span`,O,`—`)):(t(),l(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,D))])]))),128))])])])]),c(`div`,k,[(t(!0),l(p,null,d(Y.value,e=>(t(),l(`article`,{key:e.id,class:`admin-card-item`},[c(`div`,A,[c(`p`,j,n(e.orderNumber),1),c(`span`,{class:i([`admin-badge`,s(w)[e.status]])},n(s(C)[e.status]),3)]),c(`div`,M,[c(`span`,null,n(e.customerName),1),c(`span`,null,n(e.carrier),1),c(`span`,null,n(s(y)(e.meterage)),1),c(`span`,N,n(e.trackingNumber),1)]),e.status===`delivered`?g(``,!0):(t(),l(`div`,P,[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,F)]))]))),128))])],64)),u(se,{open:U.value,title:`ثبت بارنامه`,size:`lg`,onClose:Z},{footer:e(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.value||G.value,onClick:Q},` ثبت بارنامه `,8,we)]),default:e(()=>[c(`form`,{class:`admin-form`,onSubmit:ae(Q,[`prevent`])},[W.value?(t(),l(`p`,I,n(W.value),1)):g(``,!0),c(`div`,ve,[r[9]||=c(`label`,{id:`ship-order-label`},[f(`سفارش `),c(`span`,{class:`admin-form__required`},`*`)],-1),u(S,{modelValue:J.orderId,"onUpdate:modelValue":[r[2]||=e=>J.orderId=e,Ae],block:``,"aria-label":`انتخاب سفارش`,placeholder:`انتخاب سفارش`,options:Oe.value},null,8,[`modelValue`,`options`])]),c(`div`,ye,[c(`div`,L,[r[10]||=c(`label`,{for:`ship-carrier`},[f(`باربری `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`ship-carrier`,"onUpdate:modelValue":r[3]||=e=>J.carrier=e,type:`text`,class:`admin-input`},null,512),[[v,J.carrier]])]),c(`div`,be,[r[11]||=c(`label`,{for:`ship-tracking`},`شماره بارنامه`,-1),a(c(`input`,{id:`ship-tracking`,"onUpdate:modelValue":r[4]||=e=>J.trackingNumber=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[v,J.trackingNumber]])])]),c(`div`,xe,[c(`div`,Se,[r[12]||=c(`label`,{for:`ship-meterage`},`متراژ`,-1),a(c(`input`,{id:`ship-meterage`,"onUpdate:modelValue":r[5]||=e=>J.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[v,J.meterage,void 0,{number:!0}]])]),c(`div`,Ce,[r[13]||=c(`label`,{id:`ship-status-label`},`وضعیت`,-1),u(S,{modelValue:J.status,"onUpdate:modelValue":r[6]||=e=>J.status=e,block:``,"aria-label":`وضعیت ارسال`,options:Ee},null,8,[`modelValue`])])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-ded219cd`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/ShippingView-D-kzjDly.js b/dist/assets/ShippingView-D-kzjDly.js new file mode 100644 index 0000000..dd84f10 --- /dev/null +++ b/dist/assets/ShippingView-D-kzjDly.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,R as ee,T as r,Tt as i,V as a,Y as te,Z as o,at as s,c,d as l,g as ne,h as u,j as d,l as re,m as f,r as p,s as m,t as h,u as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as ie,f as _,m as ae,t as v}from"./http-Djf2pGxE.js";import{D as y,L as oe,R as se,S as ce,V as le,o as b,s as x,w as ue}from"./index-CznUUXv3.js";import{t as de}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as S}from"./AdminSelect-DK-_otkw.js";import{a as C,i as w}from"./adminLabels-Cz9ccm1Z.js";import{a as fe}from"./orderStatus-CYVblRJB.js";var pe={class:`shipping-page`},me={class:`shipping-page__filters admin-card`},he={class:`shipping-page__search`},ge={class:`shipping-page__table admin-card desktop-only`},_e={class:`admin-table-wrap`},T={class:`admin-table`},E={dir:`ltr`},D=[`onClick`],O={key:1},k={class:`compact-only admin-card-list`},A={class:`admin-card-item__header`},j={class:`admin-card-item__title`},M={class:`admin-card-item__meta`},N={dir:`ltr`},P={key:0,class:`admin-card-item__actions`},F=[`onClick`],I={key:0,class:`admin-form__error`,role:`alert`},ve={class:`admin-form__field`},ye={class:`admin-form__row`},L={class:`admin-form__field`},be={class:`admin-form__field`},xe={class:`admin-form__row`},Se={class:`admin-form__field`},Ce={class:`admin-form__field`},we=[`disabled`],R=h(ne({__name:`ShippingView`,setup(ne){let h=se(),R=o([]),z=o([]),B=o(typeof h.query.order==`string`?h.query.order:``),V=o(`all`),H=o(!0),U=o(!1),W=o(``),G=o(!1),K=ie(),Te=[{value:`all`,label:`همه وضعیت‌ها`},{value:`preparing`,label:`در حال آماده‌سازی`},{value:`ready`,label:`آماده ارسال`},{value:`shipped`,label:`ارسال شده`},{value:`delivered`,label:`تحویل شده`}],Ee=[{value:`preparing`,label:`در حال آماده‌سازی`},{value:`ready`,label:`آماده ارسال`},{value:`shipped`,label:`ارسال شده`},{value:`delivered`,label:`تحویل شده`}],q=()=>({orderId:``,carrier:``,trackingNumber:``,meterage:1e3,status:`preparing`}),J=te(q()),Y=m(()=>{let e=R.value;V.value!==`all`&&(e=e.filter(e=>e.status===V.value));let t=B.value.trim();return t&&(e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t)||e.trackingNumber.includes(t)||e.carrier.includes(t))),e}),X=m(()=>J.orderId.trim()&&J.carrier.trim()),De=m(()=>{let e=new Set(R.value.map(e=>e.orderId));return z.value.filter(t=>!e.has(t.id)&&fe(t))}),Oe=m(()=>De.value.map(e=>({value:e.id,label:`${e.orderNumber} — ${e.customerName}`})));async function ke(){H.value=!0;try{let[e,t]=await Promise.all([y.list(),ue.list()]);R.value=e,z.value=t.map(e=>ce(e))}catch(e){K.error(e instanceof v?e.message:`بارگذاری ارسال‌ها انجام نشد.`)}finally{H.value=!1}}r(()=>{ke()}),ee(()=>h.query.order,e=>{typeof e==`string`&&e.trim()&&(B.value=e.trim())});function Ae(){let e=z.value.find(e=>e.id===J.orderId);e&&(J.meterage=e.meterage)}function je(){Object.assign(J,q()),W.value=``,U.value=!0}function Z(){U.value=!1,W.value=``}async function Q(){if(!X.value){W.value=`سفارش و باربری الزامی هستند.`;return}G.value=!0;try{let e=await y.create({orderId:J.orderId,carrier:J.carrier.trim(),trackingNumber:J.trackingNumber.trim()||void 0,meterage:J.meterage,status:J.status});R.value.unshift(e),K.success(`بارنامه ثبت شد.`),Z()}catch(e){K.error(e instanceof v?e.message:`ثبت بارنامه انجام نشد.`)}finally{G.value=!1}}async function $(e){try{let t=await y.advanceStatus(e.id),n=R.value.findIndex(t=>t.id===e.id);n!==-1&&(R.value[n]=t),K.success(`وضعیت ارسال به‌روزرسانی شد.`)}catch(e){K.error(e instanceof v?e.message:`به‌روزرسانی وضعیت انجام نشد.`)}}return(ee,r)=>(t(),l(`div`,pe,[c(`div`,{class:`admin-page-header`},[r[7]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`ارسال و باربری`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:je},` ثبت بارنامه `)]),c(`div`,me,[c(`div`,he,[u(oe,{name:`search`,size:18}),a(c(`input`,{"onUpdate:modelValue":r[0]||=e=>B.value=e,type:`search`,class:`shipping-page__search-input`,placeholder:`جستجو در سفارش، مشتری، باربری...`},null,512),[[_,B.value]])]),u(S,{modelValue:V.value,"onUpdate:modelValue":r[1]||=e=>V.value=e,class:`shipping-page__status-select`,"aria-label":`فیلتر وضعیت ارسال`,options:Te},null,8,[`modelValue`])]),H.value?(t(),re(de,{key:0,variant:`table`})):(t(),l(p,{key:1},[c(`div`,ge,[c(`div`,_e,[c(`table`,T,[r[8]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`شماره سفارش`),c(`th`,null,`مشتری`),c(`th`,null,`باربری`),c(`th`,null,`شماره بارنامه`),c(`th`,null,`متراژ`),c(`th`,null,`وضعیت`),c(`th`,null,`تاریخ ارسال`),c(`th`,null,`تاریخ تحویل`),c(`th`,null,`عملیات`)])],-1),c(`tbody`,null,[(t(!0),l(p,null,d(Y.value,e=>(t(),l(`tr`,{key:e.id},[c(`td`,null,n(e.orderNumber),1),c(`td`,null,n(e.customerName),1),c(`td`,null,n(e.carrier),1),c(`td`,E,n(e.trackingNumber),1),c(`td`,null,n(s(x)(e.meterage)),1),c(`td`,null,[c(`span`,{class:i([`admin-badge`,s(w)[e.status]])},n(s(C)[e.status]),3)]),c(`td`,null,n(e.shippedAt?s(b)(e.shippedAt):`—`),1),c(`td`,null,n(e.deliveredAt?s(b)(e.deliveredAt):`—`),1),c(`td`,null,[e.status===`delivered`?(t(),l(`span`,O,`—`)):(t(),l(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,D))])]))),128))])])])]),c(`div`,k,[(t(!0),l(p,null,d(Y.value,e=>(t(),l(`article`,{key:e.id,class:`admin-card-item`},[c(`div`,A,[c(`p`,j,n(e.orderNumber),1),c(`span`,{class:i([`admin-badge`,s(w)[e.status]])},n(s(C)[e.status]),3)]),c(`div`,M,[c(`span`,null,n(e.customerName),1),c(`span`,null,n(e.carrier),1),c(`span`,null,n(s(x)(e.meterage)),1),c(`span`,N,n(e.trackingNumber),1)]),e.status===`delivered`?g(``,!0):(t(),l(`div`,P,[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,F)]))]))),128))])],64)),u(le,{open:U.value,title:`ثبت بارنامه`,size:`lg`,onClose:Z},{footer:e(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.value||G.value,onClick:Q},` ثبت بارنامه `,8,we)]),default:e(()=>[c(`form`,{class:`admin-form`,onSubmit:ae(Q,[`prevent`])},[W.value?(t(),l(`p`,I,n(W.value),1)):g(``,!0),c(`div`,ve,[r[9]||=c(`label`,{id:`ship-order-label`},[f(`سفارش `),c(`span`,{class:`admin-form__required`},`*`)],-1),u(S,{modelValue:J.orderId,"onUpdate:modelValue":[r[2]||=e=>J.orderId=e,Ae],block:``,"aria-label":`انتخاب سفارش`,placeholder:`انتخاب سفارش`,options:Oe.value},null,8,[`modelValue`,`options`])]),c(`div`,ye,[c(`div`,L,[r[10]||=c(`label`,{for:`ship-carrier`},[f(`باربری `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`ship-carrier`,"onUpdate:modelValue":r[3]||=e=>J.carrier=e,type:`text`,class:`admin-input`},null,512),[[_,J.carrier]])]),c(`div`,be,[r[11]||=c(`label`,{for:`ship-tracking`},`شماره بارنامه`,-1),a(c(`input`,{id:`ship-tracking`,"onUpdate:modelValue":r[4]||=e=>J.trackingNumber=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[_,J.trackingNumber]])])]),c(`div`,xe,[c(`div`,Se,[r[12]||=c(`label`,{for:`ship-meterage`},`متراژ`,-1),a(c(`input`,{id:`ship-meterage`,"onUpdate:modelValue":r[5]||=e=>J.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[_,J.meterage,void 0,{number:!0}]])]),c(`div`,Ce,[r[13]||=c(`label`,{id:`ship-status-label`},`وضعیت`,-1),u(S,{modelValue:J.status,"onUpdate:modelValue":r[6]||=e=>J.status=e,block:``,"aria-label":`وضعیت ارسال`,options:Ee},null,8,[`modelValue`])])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-ded219cd`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/SmsTariffView-DfW33peq.css b/dist/assets/SmsTariffView-DfW33peq.css new file mode 100644 index 0000000..20a3b18 --- /dev/null +++ b/dist/assets/SmsTariffView-DfW33peq.css @@ -0,0 +1 @@ +.sms-stats[data-v-e4cab5f3]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.sms-stat[data-v-e4cab5f3]{border-radius:16px;min-height:112px;padding:16px 18px}.sms-stat h2[data-v-e4cab5f3]{margin:0 0 10px;font-size:.95rem}.sms-stat p[data-v-e4cab5f3]{color:var(--color-text-muted,#64748b);margin:0;font-size:.8125rem}.sms-stat p span[data-v-e4cab5f3],.sms-stat strong[data-v-e4cab5f3]{font-weight:800}.sms-stat--balance[data-v-e4cab5f3]{color:#6d28d9;background:#f3e8ff}.sms-stat--today[data-v-e4cab5f3]{color:#c2410c;background:#fff7ed}.sms-stat--price[data-v-e4cab5f3]{color:#1d4ed8;background:#eff6ff}.sms-stat--price strong[data-v-e4cab5f3],.sms-stat--wallet strong[data-v-e4cab5f3]{margin-top:18px;font-size:1.35rem;display:block}.sms-stat--wallet[data-v-e4cab5f3]{color:#b45309;background:#fffbeb}.sms-manage[data-v-e4cab5f3],.sms-deposit[data-v-e4cab5f3],.sms-thresholds[data-v-e4cab5f3]{margin-bottom:16px}.sms-manage h2[data-v-e4cab5f3],.sms-deposit h2[data-v-e4cab5f3],.sms-thresholds h2[data-v-e4cab5f3]{margin:0 0 14px;font-size:1rem}.sms-manage__row[data-v-e4cab5f3],.sms-thresholds__row[data-v-e4cab5f3]{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.sms-manage__tariff[data-v-e4cab5f3],.sms-manage__price[data-v-e4cab5f3],.sms-manage__charge[data-v-e4cab5f3]{align-items:center;gap:8px;display:flex}.sms-manage__price[data-v-e4cab5f3] input,.sms-manage__charge[data-v-e4cab5f3] input,.sms-manage__charge .admin-input[data-v-e4cab5f3],.sms-thresholds__row[data-v-e4cab5f3] input{width:140px}.sms-manage__tariff strong[data-v-e4cab5f3]{text-align:center;min-width:72px;font-size:1.25rem}.sms-manage__charge[data-v-e4cab5f3]{margin-right:auto}.sms-manage__hint[data-v-e4cab5f3],.sms-deposit__hint[data-v-e4cab5f3]{color:var(--color-text-muted,#64748b);margin:12px 0 0;font-size:.8125rem}.sms-block[data-v-e4cab5f3]{background:#ecfdf3;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;display:flex}.sms-block p[data-v-e4cab5f3]{color:#067647;margin:4px 0 0;font-size:.75rem}.sms-block__switch[data-v-e4cab5f3]{color:#067647;align-items:center;gap:8px;font-weight:700;display:flex}.sms-deposit__save[data-v-e4cab5f3]{width:100%;margin-top:8px}.sms-thresholds__row .admin-btn[data-v-e4cab5f3]{margin-bottom:2px}.admin-form__field>span[data-v-e4cab5f3]{font-size:.8125rem;font-weight:600}@media (width<=960px){.sms-stats[data-v-e4cab5f3]{grid-template-columns:1fr 1fr}.sms-manage__charge[data-v-e4cab5f3]{margin-right:0}} diff --git a/dist/assets/SmsTariffView-XVhpP0ug.js b/dist/assets/SmsTariffView-XVhpP0ug.js new file mode 100644 index 0000000..db9b0f9 --- /dev/null +++ b/dist/assets/SmsTariffView-XVhpP0ug.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as ee,V as n,Z as r,at as i,c as a,d as o,g as te,h as s,l as c,m as l,r as u,t as d,u as f}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as p,f as m}from"./http-Djf2pGxE.js";import{c as h,k as g,l as ne,n as re,t as ie}from"./index-CznUUXv3.js";import{t as ae}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as oe}from"./BaseSwitch-TV5Yvtf7.js";import{t as _}from"./AdminCurrencyInput-BSNgTEBD.js";var se={class:`sms-page`},ce={class:`sms-stats`},le={class:`sms-stat sms-stat--balance`},ue={class:`sms-stat sms-stat--today`},de={class:`sms-stat sms-stat--price`},fe={class:`sms-stat sms-stat--wallet`},pe={class:`admin-card sms-manage`},me={class:`sms-manage__row`},v={class:`sms-manage__tariff`},y={class:`sms-manage__price`},b=[`disabled`],x={class:`sms-manage__charge`},S=[`disabled`],C={class:`sms-block`},w={class:`sms-block__switch`},T={class:`admin-card sms-deposit`},E={class:`admin-form__field`},D={class:`admin-form__field`},O={class:`admin-form__field`},k=[`disabled`],A={class:`admin-card sms-thresholds`},j={class:`sms-thresholds__row`},M={class:`admin-form__field`},N={class:`admin-form__field`},P=[`disabled`],F=d(te({__name:`SmsTariffView`,setup(te){let d=p(),{refresh:F}=ne(),I=r(!0),L=r(!1),R=r(!1),z=r(!1),B=r(!1),V=r(!1),H=r(null),U=r(250),W=r(null),G=r(``),K=r(``),q=r(``),J=r(``),Y=r(1e4),X=r(1e3);function Z(e){H.value=e,U.value=e.pricePerPart,K.value=ie(e.cardNumber),q.value=re(e.sheba),J.value=e.accountName,Y.value=e.yellowThreshold,X.value=e.redThreshold}ee(async()=>{try{Z(await g.manage()),await F().catch(()=>{})}catch(e){d.error(e instanceof Error?e.message:`دریافت تعرفه پیامک ناموفق بود.`)}finally{I.value=!1}});async function he(){if(!(!U.value||U.value<1||L.value)){L.value=!0;try{Z(await g.update({pricePerPart:U.value})),d.success(`تعرفه پیامک ذخیره شد.`)}catch(e){d.error(e instanceof Error?e.message:`ذخیره تعرفه ناموفق بود.`)}finally{L.value=!1}}}async function ge(){if(!(!W.value||W.value<1||R.value)){R.value=!0;try{Z(await g.charge({amountToman:W.value,note:G.value.trim()||void 0})),W.value=null,G.value=``,await F(),d.success(`کیف پول پیامک شارژ شد.`)}catch(e){d.error(e instanceof Error?e.message:`شارژ کیف پول ناموفق بود.`)}finally{R.value=!1}}}async function _e(e){if(!H.value||V.value)return;let t=H.value.blocked;H.value.blocked=e,V.value=!0;try{Z(await g.update({blocked:e})),await F(),d.success(e?`ارسال پیامک مسدود شد.`:`ارسال پیامک فعال شد.`)}catch(e){H.value.blocked=t,d.error(e instanceof Error?e.message:`تغییر وضعیت مسدودسازی ناموفق بود.`)}finally{V.value=!1}}async function Q(){if(!z.value){z.value=!0;try{Z(await g.update({cardNumber:K.value,sheba:q.value,accountName:J.value})),await F(),d.success(`اطلاعات واریز ذخیره شد.`)}catch(e){d.error(e instanceof Error?e.message:`ذخیره اطلاعات واریز ناموفق بود.`)}finally{z.value=!1}}}async function ve(){if(!(Y.value==null||X.value==null||B.value)){B.value=!0;try{Z(await g.update({yellowThreshold:Y.value,redThreshold:X.value})),await F(),d.success(`آستانه‌ها ذخیره شد.`)}catch(e){d.error(e instanceof Error?e.message:`ذخیره آستانه‌ها ناموفق بود.`)}finally{B.value=!1}}}function $(e){return e??{messages:0,parts:0,costToman:0}}return(ee,r)=>(e(),o(`div`,se,[r[30]||=a(`div`,{class:`admin-page-header`},[a(`h1`,{class:`admin-page-header__title`},`تعرفه پیامک‌ها`)],-1),I.value?(e(),c(ae,{key:0,variant:`form`,rows:8})):H.value?(e(),o(u,{key:1},[a(`section`,ce,[a(`article`,le,[r[11]||=a(`h2`,null,`مانده جاری`,-1),a(`p`,null,[a(`span`,null,t(i(h)($(H.value.total).messages)),1),r[8]||=l(` پیامک`,-1)]),a(`p`,null,[a(`span`,null,t(i(h)($(H.value.total).parts)),1),r[9]||=l(` پارت`,-1)]),a(`p`,null,[a(`span`,null,t(i(h)($(H.value.total).costToman)),1),r[10]||=l(` تومان`,-1)])]),a(`article`,ue,[r[15]||=a(`h2`,null,`امروز`,-1),a(`p`,null,[a(`span`,null,t(i(h)($(H.value.today).messages)),1),r[12]||=l(` پیامک`,-1)]),a(`p`,null,[a(`span`,null,t(i(h)($(H.value.today).parts)),1),r[13]||=l(` پارت`,-1)]),a(`p`,null,[a(`span`,null,t(i(h)($(H.value.today).costToman)),1),r[14]||=l(` تومان`,-1)])]),a(`article`,de,[r[16]||=a(`h2`,null,`قیمت هر پارت`,-1),a(`strong`,null,t(i(h)(H.value.pricePerPart))+` تومان`,1)]),a(`article`,fe,[r[17]||=a(`h2`,null,`موجودی کیف پول`,-1),a(`strong`,null,t(i(h)(H.value.balanceToman))+` تومان`,1)])]),a(`section`,pe,[r[20]||=a(`h2`,null,`مدیریت کیف پول`,-1),a(`div`,me,[a(`div`,v,[r[18]||=a(`span`,null,`تعرفه پیامک`,-1),a(`strong`,null,t(i(h)(H.value.pricePerPart)),1)]),a(`div`,y,[s(_,{modelValue:U.value,"onUpdate:modelValue":r[0]||=e=>U.value=e,"allow-empty":!1},null,8,[`modelValue`]),a(`button`,{type:`button`,class:`admin-btn admin-btn--success`,disabled:L.value||!U.value,onClick:he},t(L.value?`در حال ذخیره…`:`ذخیره قیمت`),9,b)]),a(`div`,x,[s(_,{modelValue:W.value,"onUpdate:modelValue":r[1]||=e=>W.value=e,placeholder:`مبلغ (تومان)`},null,8,[`modelValue`]),n(a(`input`,{"onUpdate:modelValue":r[2]||=e=>G.value=e,class:`admin-input`,type:`text`,placeholder:`توضیح (اختیاری)`},null,512),[[m,G.value]]),a(`button`,{type:`button`,class:`admin-btn admin-btn--success`,disabled:R.value||!W.value,onClick:ge},t(R.value?`در حال شارژ…`:`شارژ کیف پول`),9,S)])]),r[21]||=a(`p`,{class:`sms-manage__hint`},`هر پیامک ۶۷ کاراکتر است. پیام ۱۴۰ کاراکتری ۳ پارت محاسبه می‌شود.`,-1),a(`div`,C,[r[19]||=a(`div`,null,[a(`strong`,null,`مسدودسازی ارسال پیامک`),a(`p`,null,`در حالت مسدود، ارسال پیامک متوقف می‌شود.`)],-1),a(`div`,w,[a(`span`,null,t(H.value.blocked?`فعال`:`خاموش`),1),s(oe,{"model-value":H.value.blocked,loading:V.value,"active-text":`فعال`,"inactive-text":`خاموش`,"onUpdate:modelValue":_e},null,8,[`model-value`,`loading`])])])]),a(`section`,T,[r[25]||=a(`h2`,null,`اطلاعات واریز شارژ`,-1),r[26]||=a(`p`,{class:`sms-deposit__hint`},` لطفا مبلغ مورد نظر خود جهت شارژ سامانه پیامکی را به شماره کارت یا حساب زیر واریز نمایید و تصویر فیش پرداختی را برای پشتیبانی ارسال فرمایید. `,-1),a(`label`,E,[r[22]||=a(`span`,null,`شماره کارت`,-1),n(a(`input`,{"onUpdate:modelValue":r[3]||=e=>K.value=e,class:`admin-input`,dir:`ltr`,inputmode:`numeric`},null,512),[[m,K.value]])]),a(`label`,D,[r[23]||=a(`span`,null,`شماره شبا`,-1),n(a(`input`,{"onUpdate:modelValue":r[4]||=e=>q.value=e,class:`admin-input`,dir:`ltr`},null,512),[[m,q.value]])]),a(`label`,O,[r[24]||=a(`span`,null,`به نام`,-1),n(a(`input`,{"onUpdate:modelValue":r[5]||=e=>J.value=e,class:`admin-input`},null,512),[[m,J.value]])]),a(`button`,{type:`button`,class:`admin-btn admin-btn--success sms-deposit__save`,disabled:z.value,onClick:Q},t(z.value?`در حال ذخیره…`:`ذخیره اطلاعات واریز`),9,k)]),a(`section`,A,[r[29]||=a(`h2`,null,`آستانه‌های رنگ موجودی`,-1),a(`div`,j,[a(`label`,M,[r[27]||=a(`span`,null,`آستانه زرد`,-1),s(_,{modelValue:Y.value,"onUpdate:modelValue":r[6]||=e=>Y.value=e,"allow-empty":!1},null,8,[`modelValue`])]),a(`label`,N,[r[28]||=a(`span`,null,`آستانه قرمز`,-1),s(_,{modelValue:X.value,"onUpdate:modelValue":r[7]||=e=>X.value=e,"allow-empty":!1},null,8,[`modelValue`])]),a(`button`,{type:`button`,class:`admin-btn admin-btn--success`,disabled:B.value,onClick:ve},t(B.value?`در حال ذخیره…`:`ذخیره آستانه‌ها`),9,P)])])],64)):f(``,!0)]))}}),[[`__scopeId`,`data-v-e4cab5f3`]]);export{F as default}; \ No newline at end of file diff --git a/dist/assets/StockAlertsView-B7WDBhjL.js b/dist/assets/StockAlertsView-B7WDBhjL.js deleted file mode 100644 index 39a8d6c..0000000 --- a/dist/assets/StockAlertsView-B7WDBhjL.js +++ /dev/null @@ -1 +0,0 @@ -import{O as e,Ot as t,T as n,Z as r,c as i,d as a,g as o,j as s,l as c,m as l,r as u,t as d}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{E as f,N as p,z as m}from"./index-CXa4EMLW.js";import{t as h}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as g}from"./BaseEmptyState-BmO9aDcK.js";var _={class:`admin-page`},v={key:2,class:`admin-table`},y={class:`muted`,dir:`ltr`},b={class:`muted`,dir:`ltr`},x=[`onClick`],S=d(o({__name:`StockAlertsView`,setup(o){let d=r([]),S=r(!0),C=m();async function w(){S.value=!0;try{d.value=await f.list()}catch(e){C.error(e instanceof p?e.message:`بارگذاری ناموفق بود`)}finally{S.value=!1}}async function T(e){try{await f.notify(e),C.success(`اعلان موجودی ارسال شد`),await w()}catch(e){C.error(e instanceof p?e.message:`ارسال ناموفق بود`)}}return n(()=>{w()}),(n,r)=>(e(),a(`div`,_,[r[1]||=i(`header`,{class:`admin-page__head`},[i(`div`,null,[i(`h1`,null,`درخواست خبر موجودی`),i(`p`,null,`مشتریانی که برای محصول ناموجود درخواست اطلاع داده‌اند`)])],-1),S.value?(e(),c(h,{key:0,variant:`table`})):d.value.length?(e(),a(`table`,v,[r[0]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`مشتری`),i(`th`,null,`محصول`),i(`th`,null,`موجودی فعلی`),i(`th`)])],-1),i(`tbody`,null,[(e(!0),a(u,null,s(d.value,n=>(e(),a(`tr`,{key:n.id},[i(`td`,null,[l(t(n.customerName)+` `,1),i(`span`,y,t(n.customerPhone),1)]),i(`td`,null,[l(t(n.productName)+` `,1),i(`span`,b,`(`+t(n.productCode)+`)`,1)]),i(`td`,null,t(n.stock??`—`),1),i(`td`,null,[i(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:e=>T(n.id)},`ارسال اعلان`,8,x)])]))),128))])])):(e(),c(g,{key:1,title:`درخواستی فعال نیست`}))]))}}),[[`__scopeId`,`data-v-61131544`]]);export{S as default}; \ No newline at end of file diff --git a/dist/assets/StockAlertsView-DhDos3Ot.js b/dist/assets/StockAlertsView-DhDos3Ot.js new file mode 100644 index 0000000..72476fc --- /dev/null +++ b/dist/assets/StockAlertsView-DhDos3Ot.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,Z as r,c as i,d as a,g as o,j as s,l as c,m as l,r as u,t as d}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as f,t as p}from"./http-Djf2pGxE.js";import{A as m}from"./index-CznUUXv3.js";import{t as h}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as g}from"./BaseEmptyState-D6sk-aI_.js";var _={class:`admin-page`},v={key:2,class:`admin-table`},y={class:`muted`,dir:`ltr`},b={class:`muted`,dir:`ltr`},x=[`onClick`],S=d(o({__name:`StockAlertsView`,setup(o){let d=r([]),S=r(!0),C=f();async function w(){S.value=!0;try{d.value=await m.list()}catch(e){C.error(e instanceof p?e.message:`بارگذاری ناموفق بود`)}finally{S.value=!1}}async function T(e){try{await m.notify(e),C.success(`اعلان موجودی ارسال شد`),await w()}catch(e){C.error(e instanceof p?e.message:`ارسال ناموفق بود`)}}return n(()=>{w()}),(n,r)=>(e(),a(`div`,_,[r[1]||=i(`header`,{class:`admin-page__head`},[i(`div`,null,[i(`h1`,null,`درخواست خبر موجودی`),i(`p`,null,`مشتریانی که برای محصول ناموجود درخواست اطلاع داده‌اند`)])],-1),S.value?(e(),c(h,{key:0,variant:`table`})):d.value.length?(e(),a(`table`,v,[r[0]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`مشتری`),i(`th`,null,`محصول`),i(`th`,null,`موجودی فعلی`),i(`th`)])],-1),i(`tbody`,null,[(e(!0),a(u,null,s(d.value,n=>(e(),a(`tr`,{key:n.id},[i(`td`,null,[l(t(n.customerName)+` `,1),i(`span`,y,t(n.customerPhone),1)]),i(`td`,null,[l(t(n.productName)+` `,1),i(`span`,b,`(`+t(n.productCode)+`)`,1)]),i(`td`,null,t(n.stock??`—`),1),i(`td`,null,[i(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:e=>T(n.id)},`ارسال اعلان`,8,x)])]))),128))])])):(e(),c(g,{key:1,title:`درخواستی فعال نیست`}))]))}}),[[`__scopeId`,`data-v-61131544`]]);export{S as default}; \ No newline at end of file diff --git a/dist/assets/SuggestionsView-CXxCS34d.js b/dist/assets/SuggestionsView-CXxCS34d.js new file mode 100644 index 0000000..c8a299c --- /dev/null +++ b/dist/assets/SuggestionsView-CXxCS34d.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,m as p,r as m,s as h,t as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as _,f as v,t as y}from"./http-Djf2pGxE.js";import{T as b,V as x,j as S,y as C}from"./index-CznUUXv3.js";import{t as w}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as T}from"./BaseEmptyState-D6sk-aI_.js";import{t as E}from"./AdminSelect-DK-_otkw.js";var D={class:`admin-page`},O={class:`admin-page__head`},k={key:2,class:`admin-table`},A={class:`muted`,dir:`ltr`},j=[`onClick`],M={class:`field`},N={class:`field`},P={class:`field`},F=[`disabled`],I=g(l({__name:`SuggestionsView`,setup(l){let g=o([]),I=o(!0),L=o([]),R=o([]),z=o(!1),B=_(),V=a({customerId:``,productId:``,note:``}),H=h(()=>L.value.map(e=>({value:e.id,label:e.name?.trim()||e.phone}))),U=h(()=>R.value.map(e=>({value:e.id,label:`${e.name} (${e.productCode})`})));async function W(){I.value=!0;try{let[e,t,n]=await Promise.all([S.list(),C.list(),b.list()]);g.value=e,L.value=t,R.value=n}catch(e){B.error(e instanceof y?e.message:`بارگذاری ناموفق بود`)}finally{I.value=!1}}async function G(){try{await S.create({customerId:V.customerId,productId:V.productId,note:V.note.trim()||void 0}),z.value=!1,V.note=``,B.success(`پیشنهاد ثبت شد`),await W()}catch(e){B.error(e instanceof y?e.message:`ثبت ناموفق بود`)}}async function K(e){try{await S.setActive(e.id,!e.isActive),await W()}catch(e){B.error(e instanceof y?e.message:`به‌روزرسانی ناموفق بود`)}}return r(()=>{W()}),(r,a)=>(t(),c(`div`,D,[s(`header`,O,[a[5]||=s(`div`,null,[s(`h1`,null,`پیشنهاد محصول`),s(`p`,null,`پیشنهاد دستی محصول به مشتری`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:a[0]||=e=>z.value=!0},`پیشنهاد جدید`)]),I.value?(t(),f(w,{key:0,variant:`table`})):g.value.length?(t(),c(`table`,k,[a[6]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`مشتری`),s(`th`,null,`محصول`),s(`th`,null,`یادداشت`),s(`th`,null,`وضعیت`),s(`th`)])],-1),s(`tbody`,null,[(t(!0),c(m,null,d(g.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,null,n(e.customerName),1),s(`td`,null,[p(n(e.productName)+` `,1),s(`span`,A,`(`+n(e.productCode)+`)`,1)]),s(`td`,null,n(e.note||`—`),1),s(`td`,null,n(e.isActive?`فعال`:`غیرفعال`),1),s(`td`,null,[s(`button`,{type:`button`,class:`link`,onClick:t=>K(e)},n(e.isActive?`غیرفعال`:`فعال`),9,j)])]))),128))])])):(t(),f(T,{key:1,title:`پیشنهادی ثبت نشده`})),u(x,{open:z.value,title:`پیشنهاد محصول`,onClose:a[4]||=e=>z.value=!1},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!V.customerId||!V.productId,onClick:G},` ثبت `,8,F)]),default:e(()=>[s(`label`,M,[a[7]||=p(`مشتری `,-1),u(E,{modelValue:V.customerId,"onUpdate:modelValue":a[1]||=e=>V.customerId=e,options:H.value},null,8,[`modelValue`,`options`])]),s(`label`,N,[a[8]||=p(`محصول `,-1),u(E,{modelValue:V.productId,"onUpdate:modelValue":a[2]||=e=>V.productId=e,options:U.value},null,8,[`modelValue`,`options`])]),s(`label`,P,[a[9]||=p(`یادداشت`,-1),i(s(`textarea`,{"onUpdate:modelValue":a[3]||=e=>V.note=e,class:`admin-input`,rows:`3`},null,512),[[v,V.note]])])]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-56e3e728`]]);export{I as default}; \ No newline at end of file diff --git a/dist/assets/SuggestionsView-SvmEopB3.js b/dist/assets/SuggestionsView-SvmEopB3.js deleted file mode 100644 index 8b44b7a..0000000 --- a/dist/assets/SuggestionsView-SvmEopB3.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,m as p,r as m,s as h,t as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{D as _,N as v,R as y,S as b,W as x,g as S,z as C}from"./index-CXa4EMLW.js";import{t as w}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as T}from"./BaseEmptyState-BmO9aDcK.js";import{t as E}from"./AdminSelect-9UfEJQzN.js";var D={class:`admin-page`},O={class:`admin-page__head`},k={key:2,class:`admin-table`},A={class:`muted`,dir:`ltr`},j=[`onClick`],M={class:`field`},N={class:`field`},P={class:`field`},F=[`disabled`],I=g(l({__name:`SuggestionsView`,setup(l){let g=o([]),I=o(!0),L=o([]),R=o([]),z=o(!1),B=C(),V=a({customerId:``,productId:``,note:``}),H=h(()=>L.value.map(e=>({value:e.id,label:e.name?.trim()||e.phone}))),U=h(()=>R.value.map(e=>({value:e.id,label:`${e.name} (${e.productCode})`})));async function W(){I.value=!0;try{let[e,t,n]=await Promise.all([_.list(),S.list(),b.list()]);g.value=e,L.value=t,R.value=n}catch(e){B.error(e instanceof v?e.message:`بارگذاری ناموفق بود`)}finally{I.value=!1}}async function G(){try{await _.create({customerId:V.customerId,productId:V.productId,note:V.note.trim()||void 0}),z.value=!1,V.note=``,B.success(`پیشنهاد ثبت شد`),await W()}catch(e){B.error(e instanceof v?e.message:`ثبت ناموفق بود`)}}async function K(e){try{await _.setActive(e.id,!e.isActive),await W()}catch(e){B.error(e instanceof v?e.message:`به‌روزرسانی ناموفق بود`)}}return r(()=>{W()}),(r,a)=>(t(),c(`div`,D,[s(`header`,O,[a[5]||=s(`div`,null,[s(`h1`,null,`پیشنهاد محصول`),s(`p`,null,`پیشنهاد دستی محصول به مشتری`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:a[0]||=e=>z.value=!0},`پیشنهاد جدید`)]),I.value?(t(),f(w,{key:0,variant:`table`})):g.value.length?(t(),c(`table`,k,[a[6]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`مشتری`),s(`th`,null,`محصول`),s(`th`,null,`یادداشت`),s(`th`,null,`وضعیت`),s(`th`)])],-1),s(`tbody`,null,[(t(!0),c(m,null,d(g.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,null,n(e.customerName),1),s(`td`,null,[p(n(e.productName)+` `,1),s(`span`,A,`(`+n(e.productCode)+`)`,1)]),s(`td`,null,n(e.note||`—`),1),s(`td`,null,n(e.isActive?`فعال`:`غیرفعال`),1),s(`td`,null,[s(`button`,{type:`button`,class:`link`,onClick:t=>K(e)},n(e.isActive?`غیرفعال`:`فعال`),9,j)])]))),128))])])):(t(),f(T,{key:1,title:`پیشنهادی ثبت نشده`})),u(y,{open:z.value,title:`پیشنهاد محصول`,onClose:a[4]||=e=>z.value=!1},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!V.customerId||!V.productId,onClick:G},` ثبت `,8,F)]),default:e(()=>[s(`label`,M,[a[7]||=p(`مشتری `,-1),u(E,{modelValue:V.customerId,"onUpdate:modelValue":a[1]||=e=>V.customerId=e,options:H.value},null,8,[`modelValue`,`options`])]),s(`label`,N,[a[8]||=p(`محصول `,-1),u(E,{modelValue:V.productId,"onUpdate:modelValue":a[2]||=e=>V.productId=e,options:U.value},null,8,[`modelValue`,`options`])]),s(`label`,P,[a[9]||=p(`یادداشت`,-1),i(s(`textarea`,{"onUpdate:modelValue":a[3]||=e=>V.note=e,class:`admin-input`,rows:`3`},null,512),[[x,V.note]])])]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-56e3e728`]]);export{I as default}; \ No newline at end of file diff --git a/dist/assets/UsersView-DVbizERy.js b/dist/assets/UsersView-DVbizERy.js new file mode 100644 index 0000000..95edf9b --- /dev/null +++ b/dist/assets/UsersView-DVbizERy.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as ee,V as r,Y as i,Z as a,at as o,c as s,d as c,g as te,h as l,j as u,l as d,m as f,r as p,s as m,t as h,u as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as ne,f as _,m as re,t as v}from"./http-Djf2pGxE.js";import{L as ie,V as ae,o as oe,u as y}from"./index-CznUUXv3.js";import{t as se}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as b}from"./BaseSwitch-TV5Yvtf7.js";import{t as ce}from"./BaseEmptyState-D6sk-aI_.js";import{t as le}from"./AdminSelect-DK-_otkw.js";import{o as x}from"./adminLabels-Cz9ccm1Z.js";import{t as S}from"./ActiveSwitchCell-CLCpM6ho.js";var ue={class:`users-page`},de={class:`users-page__search admin-card`},fe={key:2,class:`users-page__table admin-card desktop-only`},pe={class:`admin-table-wrap`},me={class:`admin-table`},he={dir:`ltr`},ge={class:`status`},C={class:`actions`},w=[`onClick`],T={key:3,class:`compact-only admin-card-list`},E={class:`admin-card-item__header`},D={class:`admin-card-item__title`},O={class:`admin-card-item__meta`},k={dir:`ltr`},A={class:`admin-card-item__actions`},j=[`onClick`],M={key:0,class:`admin-form__error`,role:`alert`},N={class:`admin-form__field`},P={class:`admin-form__row`},F={class:`admin-form__field`},I={class:`admin-form__field`},L={class:`admin-form__field`},_e={class:`admin-form__field`},ve=[`disabled`],ye={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},R=h(te({__name:`UsersView`,setup(te){let h=a([]),R=a(``),z=a(!0),B=a(null),V=a(null),H=a(``),U=a(!1),W=ne(),be=[{value:`admin`,label:`مدیر سیستم`},{value:`sales`,label:`واحد فروش`},{value:`finance`,label:`واحد مالی`},{value:`warehouse`,label:`انبار`}],G=()=>({fullName:``,phone:``,email:``,role:`sales`,isActive:!0}),K=i(G()),xe=m(()=>B.value!==null),Se=m(()=>B.value===`edit`?`ویرایش کاربر`:`افزودن کاربر`),q=m(()=>K.fullName.trim()&&K.phone.trim()),J=m(()=>{let e=R.value.trim();return e?h.value.filter(t=>t.fullName.includes(e)||t.phone.includes(e)||t.email.includes(e)||x[t.role].includes(e)):h.value});async function Ce(){z.value=!0;try{h.value=await y.list()}catch(e){W.error(e instanceof v?e.message:`بارگذاری کاربران انجام نشد.`)}finally{z.value=!1}}ee(()=>{Ce()});function Y(){B.value=`add`,V.value=null,Object.assign(K,G()),H.value=``}function X(e){B.value=`edit`,V.value=e.id,K.fullName=e.fullName,K.phone=e.phone,K.email=e.email,K.role=e.role,K.isActive=e.isActive,H.value=``}function Z(){B.value=null,V.value=null,H.value=``}async function Q(){if(!q.value){H.value=`نام و تلفن الزامی هستند.`;return}U.value=!0;let e={fullName:K.fullName.trim(),phone:K.phone.trim(),email:K.email.trim()||void 0,role:K.role,isActive:K.isActive};try{if(B.value===`edit`&&V.value){let t=await y.update(V.value,e),n=h.value.findIndex(e=>e.id===V.value);n!==-1&&(h.value[n]={...h.value[n],...t})}else{let t=await y.create(e);h.value.push(t)}W.success(B.value===`edit`?`اطلاعات کاربر به‌روزرسانی شد.`:`کاربر جدید ثبت شد.`),Z()}catch(e){W.error(e instanceof v?e.message:`ذخیره کاربر انجام نشد.`)}finally{U.value=!1}}async function $(e,t){await y.setActive(e,t)}function we(){R.value=``}return(ee,i)=>(t(),c(`div`,ue,[s(`div`,{class:`admin-page-header`},[i[6]||=s(`div`,null,[s(`h1`,{class:`admin-page-header__title`},`کاربران و دسترسی‌ها`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کاربر `)]),s(`div`,de,[l(ie,{name:`search`,size:18}),r(s(`input`,{"onUpdate:modelValue":i[0]||=e=>R.value=e,type:`search`,class:`users-page__search-input`,placeholder:`جستجو در نام، تلفن، ایمیل...`},null,512),[[_,R.value]])]),z.value?(t(),d(se,{key:0,variant:`table`})):J.value.length?(t(),c(`div`,fe,[s(`div`,pe,[s(`table`,me,[i[7]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`نام`),s(`th`,null,`تلفن`),s(`th`,null,`ایمیل`),s(`th`,null,`نقش`),s(`th`,{class:`status`},`وضعیت`),s(`th`,null,`آخرین ورود`),s(`th`,{class:`actions`},`عملیات`)])],-1),s(`tbody`,null,[(t(!0),c(p,null,u(J.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,null,n(e.fullName),1),s(`td`,null,n(e.phone),1),s(`td`,he,n(e.email),1),s(`td`,null,n(o(x)[e.role]),1),s(`td`,ge,[l(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.fullName,"entity-type":`کاربر`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),s(`td`,null,n(e.lastLoginAt?o(oe)(e.lastLoginAt):`—`),1),s(`td`,C,[s(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,w)])]))),128))])])])])):(t(),d(ce,{key:1,class:`admin-card`,icon:`users`,title:R.value.trim()?`نتیجه‌ای یافت نشد`:`کاربری ثبت نشده`,description:R.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کاربر را ثبت کنید.`},{default:e(()=>[R.value.trim()?(t(),c(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:we},` پاک کردن جستجو `)):(t(),c(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` افزودن کاربر `))]),_:1},8,[`title`,`description`])),!z.value&&J.value.length?(t(),c(`div`,T,[(t(!0),c(p,null,u(J.value,e=>(t(),c(`article`,{key:e.id,class:`admin-card-item`},[s(`div`,E,[s(`p`,D,n(e.fullName),1),l(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.fullName,"entity-type":`کاربر`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),s(`div`,O,[s(`span`,null,n(o(x)[e.role]),1),s(`span`,null,n(e.phone),1),s(`span`,k,n(e.email),1)]),s(`div`,A,[s(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,j)])]))),128))])):g(``,!0),l(ae,{open:xe.value,title:Se.value,size:`lg`,onClose:Z},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!q.value||U.value,onClick:Q},[U.value?(t(),c(`span`,ye)):g(``,!0),f(` `+n(B.value===`edit`?`ذخیره تغییرات`:`ثبت کاربر`),1)],8,ve)]),default:e(()=>[s(`form`,{class:`admin-form`,onSubmit:re(Q,[`prevent`])},[H.value?(t(),c(`p`,M,n(H.value),1)):g(``,!0),s(`div`,N,[i[8]||=s(`label`,{for:`user-name`},[f(`نام کامل `),s(`span`,{class:`admin-form__required`},`*`)],-1),r(s(`input`,{id:`user-name`,"onUpdate:modelValue":i[1]||=e=>K.fullName=e,type:`text`,class:`admin-input`},null,512),[[_,K.fullName]])]),s(`div`,P,[s(`div`,F,[i[9]||=s(`label`,{for:`user-phone`},[f(`تلفن `),s(`span`,{class:`admin-form__required`},`*`)],-1),r(s(`input`,{id:`user-phone`,"onUpdate:modelValue":i[2]||=e=>K.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[_,K.phone]])]),s(`div`,I,[i[10]||=s(`label`,{for:`user-email`},`ایمیل`,-1),r(s(`input`,{id:`user-email`,"onUpdate:modelValue":i[3]||=e=>K.email=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[_,K.email]])])]),s(`div`,L,[i[11]||=s(`label`,null,`نقش`,-1),l(le,{modelValue:K.role,"onUpdate:modelValue":i[4]||=e=>K.role=e,block:``,"aria-label":`نقش کاربر`,options:be},null,8,[`modelValue`])]),s(`div`,_e,[l(b,{modelValue:K.isActive,"onUpdate:modelValue":i[5]||=e=>K.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-345a9659`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/UsersView-OSVbK-od.js b/dist/assets/UsersView-OSVbK-od.js deleted file mode 100644 index 6e7376d..0000000 --- a/dist/assets/UsersView-OSVbK-od.js +++ /dev/null @@ -1 +0,0 @@ -import{B as e,O as t,Ot as n,T as ee,V as r,Y as i,Z as a,at as o,c as s,d as c,g as te,h as l,j as u,l as d,m as f,r as p,s as m,t as h,u as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{K as ne,N as _,P as re,R as ie,W as v,i as y,s as b,z as ae}from"./index-CXa4EMLW.js";import{t as oe}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as se}from"./BaseSwitch-TV5Yvtf7.js";import{t as ce}from"./BaseEmptyState-BmO9aDcK.js";import{t as le}from"./AdminSelect-9UfEJQzN.js";import{o as x}from"./adminLabels-Cz9ccm1Z.js";import{t as S}from"./ActiveSwitchCell-DJZQHZ-8.js";var ue={class:`users-page`},de={class:`users-page__search admin-card`},fe={key:2,class:`users-page__table admin-card desktop-only`},pe={class:`admin-table-wrap`},me={class:`admin-table`},he={dir:`ltr`},ge={class:`status`},C={class:`actions`},w=[`onClick`],T={key:3,class:`compact-only admin-card-list`},E={class:`admin-card-item__header`},D={class:`admin-card-item__title`},O={class:`admin-card-item__meta`},k={dir:`ltr`},A={class:`admin-card-item__actions`},j=[`onClick`],M={key:0,class:`admin-form__error`,role:`alert`},N={class:`admin-form__field`},P={class:`admin-form__row`},F={class:`admin-form__field`},I={class:`admin-form__field`},L={class:`admin-form__field`},_e={class:`admin-form__field`},ve=[`disabled`],ye={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},R=h(te({__name:`UsersView`,setup(te){let h=a([]),R=a(``),z=a(!0),B=a(null),V=a(null),H=a(``),U=a(!1),W=ae(),be=[{value:`admin`,label:`مدیر سیستم`},{value:`sales`,label:`واحد فروش`},{value:`finance`,label:`واحد مالی`},{value:`warehouse`,label:`انبار`}],G=()=>({fullName:``,phone:``,email:``,role:`sales`,isActive:!0}),K=i(G()),xe=m(()=>B.value!==null),Se=m(()=>B.value===`edit`?`ویرایش کاربر`:`افزودن کاربر`),q=m(()=>K.fullName.trim()&&K.phone.trim()),J=m(()=>{let e=R.value.trim();return e?h.value.filter(t=>t.fullName.includes(e)||t.phone.includes(e)||t.email.includes(e)||x[t.role].includes(e)):h.value});async function Ce(){z.value=!0;try{h.value=await b.list()}catch(e){W.error(e instanceof _?e.message:`بارگذاری کاربران انجام نشد.`)}finally{z.value=!1}}ee(()=>{Ce()});function Y(){B.value=`add`,V.value=null,Object.assign(K,G()),H.value=``}function X(e){B.value=`edit`,V.value=e.id,K.fullName=e.fullName,K.phone=e.phone,K.email=e.email,K.role=e.role,K.isActive=e.isActive,H.value=``}function Z(){B.value=null,V.value=null,H.value=``}async function Q(){if(!q.value){H.value=`نام و تلفن الزامی هستند.`;return}U.value=!0;let e={fullName:K.fullName.trim(),phone:K.phone.trim(),email:K.email.trim()||void 0,role:K.role,isActive:K.isActive};try{if(B.value===`edit`&&V.value){let t=await b.update(V.value,e),n=h.value.findIndex(e=>e.id===V.value);n!==-1&&(h.value[n]={...h.value[n],...t})}else{let t=await b.create(e);h.value.push(t)}W.success(B.value===`edit`?`اطلاعات کاربر به‌روزرسانی شد.`:`کاربر جدید ثبت شد.`),Z()}catch(e){W.error(e instanceof _?e.message:`ذخیره کاربر انجام نشد.`)}finally{U.value=!1}}async function $(e,t){await b.setActive(e,t)}function we(){R.value=``}return(ee,i)=>(t(),c(`div`,ue,[s(`div`,{class:`admin-page-header`},[i[6]||=s(`div`,null,[s(`h1`,{class:`admin-page-header__title`},`کاربران و دسترسی‌ها`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کاربر `)]),s(`div`,de,[l(re,{name:`search`,size:18}),r(s(`input`,{"onUpdate:modelValue":i[0]||=e=>R.value=e,type:`search`,class:`users-page__search-input`,placeholder:`جستجو در نام، تلفن، ایمیل...`},null,512),[[v,R.value]])]),z.value?(t(),d(oe,{key:0,variant:`table`})):J.value.length?(t(),c(`div`,fe,[s(`div`,pe,[s(`table`,me,[i[7]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`نام`),s(`th`,null,`تلفن`),s(`th`,null,`ایمیل`),s(`th`,null,`نقش`),s(`th`,{class:`status`},`وضعیت`),s(`th`,null,`آخرین ورود`),s(`th`,{class:`actions`},`عملیات`)])],-1),s(`tbody`,null,[(t(!0),c(p,null,u(J.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,null,n(e.fullName),1),s(`td`,null,n(e.phone),1),s(`td`,he,n(e.email),1),s(`td`,null,n(o(x)[e.role]),1),s(`td`,ge,[l(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.fullName,"entity-type":`کاربر`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),s(`td`,null,n(e.lastLoginAt?o(y)(e.lastLoginAt):`—`),1),s(`td`,C,[s(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,w)])]))),128))])])])])):(t(),d(ce,{key:1,class:`admin-card`,icon:`users`,title:R.value.trim()?`نتیجه‌ای یافت نشد`:`کاربری ثبت نشده`,description:R.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کاربر را ثبت کنید.`},{default:e(()=>[R.value.trim()?(t(),c(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:we},` پاک کردن جستجو `)):(t(),c(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` افزودن کاربر `))]),_:1},8,[`title`,`description`])),!z.value&&J.value.length?(t(),c(`div`,T,[(t(!0),c(p,null,u(J.value,e=>(t(),c(`article`,{key:e.id,class:`admin-card-item`},[s(`div`,E,[s(`p`,D,n(e.fullName),1),l(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.fullName,"entity-type":`کاربر`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),s(`div`,O,[s(`span`,null,n(o(x)[e.role]),1),s(`span`,null,n(e.phone),1),s(`span`,k,n(e.email),1)]),s(`div`,A,[s(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,j)])]))),128))])):g(``,!0),l(ie,{open:xe.value,title:Se.value,size:`lg`,onClose:Z},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!q.value||U.value,onClick:Q},[U.value?(t(),c(`span`,ye)):g(``,!0),f(` `+n(B.value===`edit`?`ذخیره تغییرات`:`ثبت کاربر`),1)],8,ve)]),default:e(()=>[s(`form`,{class:`admin-form`,onSubmit:ne(Q,[`prevent`])},[H.value?(t(),c(`p`,M,n(H.value),1)):g(``,!0),s(`div`,N,[i[8]||=s(`label`,{for:`user-name`},[f(`نام کامل `),s(`span`,{class:`admin-form__required`},`*`)],-1),r(s(`input`,{id:`user-name`,"onUpdate:modelValue":i[1]||=e=>K.fullName=e,type:`text`,class:`admin-input`},null,512),[[v,K.fullName]])]),s(`div`,P,[s(`div`,F,[i[9]||=s(`label`,{for:`user-phone`},[f(`تلفن `),s(`span`,{class:`admin-form__required`},`*`)],-1),r(s(`input`,{id:`user-phone`,"onUpdate:modelValue":i[2]||=e=>K.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[v,K.phone]])]),s(`div`,I,[i[10]||=s(`label`,{for:`user-email`},`ایمیل`,-1),r(s(`input`,{id:`user-email`,"onUpdate:modelValue":i[3]||=e=>K.email=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[v,K.email]])])]),s(`div`,L,[i[11]||=s(`label`,null,`نقش`,-1),l(le,{modelValue:K.role,"onUpdate:modelValue":i[4]||=e=>K.role=e,block:``,"aria-label":`نقش کاربر`,options:be},null,8,[`modelValue`])]),s(`div`,_e,[l(se,{modelValue:K.isActive,"onUpdate:modelValue":i[5]||=e=>K.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-345a9659`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/http-Djf2pGxE.js b/dist/assets/http-Djf2pGxE.js new file mode 100644 index 0000000..0d2e515 --- /dev/null +++ b/dist/assets/http-Djf2pGxE.js @@ -0,0 +1 @@ +import{A as e,C as t,Ct as n,D as r,E as i,Et as a,F as o,L as s,P as c,R as l,St as u,T as d,Y as f,_ as p,_t as m,bt as h,ct as ee,dt as g,f as _,ft as v,gt as y,h as te,ht as ne,i as re,kt as ie,lt as b,mt as x,n as S,nt as C,o as ae,ot as oe,pt as w,r as se,st as T,tt as ce,ut as E,v as le,vt as D,w as ue,wt as O,xt as de,yt as fe}from"./_plugin-vue_export-helper-OaxA6A2f.js";var k=void 0,pe=typeof window<`u`&&window.trustedTypes;if(pe)try{k=pe.createPolicy(`vue`,{createHTML:e=>e})}catch{}var me=k?e=>k.createHTML(e):e=>e,he=`http://www.w3.org/2000/svg`,ge=`http://www.w3.org/1998/Math/MathML`,A=typeof document<`u`?document:null,_e=A&&A.createElement(`template`),ve={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?A.createElementNS(he,e):t===`mathml`?A.createElementNS(ge,e):n?A.createElement(e,{is:n}):A.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>A.createTextNode(e),createComment:e=>A.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>A.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{_e.innerHTML=me(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=_e.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},j=`transition`,M=`animation`,N=Symbol(`_vtc`),ye={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},be=b({},S,ye),P=(e,t=[])=>{w(e)?e.forEach(e=>e(...t)):e&&e(...t)},xe=e=>e?w(e)?e.some(e=>e.length>1):e.length>1:!1;function Se(e){let t={};for(let n in e)n in ye||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:l=o,appearToClass:u=s,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,m=Ce(i),h=m&&m[0],ee=m&&m[1],{onBeforeEnter:g,onEnter:_,onEnterCancelled:v,onLeave:y,onLeaveCancelled:te,onBeforeAppear:ne=g,onAppear:re=_,onAppearCancelled:ie=v}=t,x=(e,t,n,r)=>{e._enterCancelled=r,L(e,t?u:s),L(e,t?l:o),n&&n()},S=(e,t)=>{e._isLeaving=!1,L(e,d),L(e,p),L(e,f),t&&t()},C=e=>(t,n)=>{let i=e?re:_,o=()=>x(t,e,n);P(i,[t,o]),we(()=>{L(t,e?c:a),I(t,e?u:s),xe(i)||Ee(t,r,h,o)})};return b(t,{onBeforeEnter(e){P(g,[e]),I(e,a),I(e,o)},onBeforeAppear(e){P(ne,[e]),I(e,c),I(e,l)},onEnter:C(!1),onAppear:C(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>S(e,t);I(e,d),e._enterCancelled?(I(e,f),R(e)):(R(e),I(e,f)),we(()=>{e._isLeaving&&(L(e,d),I(e,p),xe(y)||Ee(e,r,ee,n))}),P(y,[e,n])},onEnterCancelled(e){x(e,!1,void 0,!0),P(v,[e])},onAppearCancelled(e){x(e,!0,void 0,!0),P(ie,[e])},onLeaveCancelled(e){S(e),P(te,[e])}})}function Ce(e){if(e==null)return null;if(y(e))return[F(e.enter),F(e.leave)];{let t=F(e);return[t,t]}}function F(e){return ie(e)}function I(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[N]||(e[N]=new Set)).add(t)}function L(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[N];n&&(n.delete(t),n.size||(e[N]=void 0))}function we(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var Te=0;function Ee(e,t,n,r){let i=e._endId=++Te,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=De(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u(n[e]||``).split(`, `),i=r(`${j}Delay`),a=r(`${j}Duration`),o=Oe(i,a),s=r(`${M}Delay`),c=r(`${M}Duration`),l=Oe(s,c),u=null,d=0,f=0;t===j?o>0&&(u=j,d=o,f=a.length):t===M?l>0&&(u=M,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?j:M:null,f=u?u===j?a.length:c.length:0);let p=u===j&&/\b(?:transform|all)(?:,|$)/.test(r(`${j}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function Oe(e,t){for(;e.lengthke(t)+ke(e[n])))}function ke(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function R(e){return(e?e.ownerDocument:document).body.offsetHeight}function Ae(e,t,n){let r=e[N];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var je=Symbol(`_vod`),Me=Symbol(`_vsh`),Ne=Symbol(``);function Pe(t){let n=p();if(!n)return;let r=n.ut=(e=t(n.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${n.uid}"]`)).forEach(t=>B(t,e))},a=()=>{let e=t(n.proxy);n.ce?B(n.ce,e):z(n.subTree,e),r(e)};ue(()=>{e(a)}),d(()=>{l(a,oe,{flush:`post`});let e=new MutationObserver(a);e.observe(n.subTree.el.parentNode,{childList:!0}),i(()=>e.disconnect())})}function z(e,t){if(e.shapeFlag&128){let n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{z(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)B(e.el,t);else if(e.type===se)e.children.forEach(e=>z(e,t));else if(e.type===re){let{el:n,anchor:r}=e;for(;n&&(B(n,t),n!==r);)n=n.nextSibling}}function B(e,t){if(e.nodeType===1){let n=e.style,r=``;for(let e in t){let i=a(t[e]);n.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}n[Ne]=r}}var Fe=/(?:^|;)\s*display\s*:/;function Ie(e,t,n){let r=e.style,i=h(n),a=!1;if(n&&!i){if(t)if(h(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??V(r,t,``)}else for(let e in t)n[e]??V(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?V(r,i,``):Be(e,i,!h(t)&&t?t[i]:void 0,o)||V(r,i,o)}}else if(i){if(t!==n){let e=r[Ne];e&&(n+=`;`+e),r.cssText=n,a=Fe.test(n)}}else t&&e.removeAttribute(`style`);je in e&&(e[je]=a?r.display:``,e[Me]&&(r.display=`none`))}var Le=/\s*!important$/;function V(e,t,n){if(w(n))n.forEach(n=>V(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=ze(e,t);Le.test(n)?e.setProperty(E(r),n.replace(Le,``),`important`):e[r]=n}}var Re=[`Webkit`,`Moz`,`ms`],H={};function ze(e,t){let n=H[t];if(n)return n;let r=T(t);if(r!==`filter`&&r in e)return H[t]=r;r=ee(r);for(let n=0;nXe||=(Ze.then(()=>Xe=0),Date.now());function $e(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(w(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;ne.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,tt=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?Ae(e,r,o):t===`style`?Ie(e,n,r):m(t)?ne(t)||Ke(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):nt(e,t,r,o))?(Ue(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&He(e,t,r,o,a,t!==`value`)):e._isVueCE&&(rt(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!h(r)))?Ue(e,T(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),He(e,t,r,o))};function nt(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&et(t)&&x(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return et(t)&&h(n)?!1:t in e}function rt(e,t){let n=e._def.props;if(!n)return!1;let r=T(t);return Array.isArray(n)?n.some(e=>T(e)===r):Object.keys(n).some(e=>T(e)===r)}var it=new WeakMap,at=new WeakMap,W=Symbol(`_moveCb`),ot=Symbol(`_enterCb`),st=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:b({},be,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=p(),i=s(),a,l;return r(()=>{if(!a.length)return;let t=e.moveClass||`${e.name||`v`}-move`;if(!ft(a[0].el,n.vnode.el,t)){a=[];return}a.forEach(ct),a.forEach(lt);let r=a.filter(ut);R(n.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;I(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[W]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[W]=null,L(n,t))};n.addEventListener(`transitionend`,i)}),a=[]}),()=>{let r=ce(e),s=Se(r),u=r.tag||se;if(a=[],l)for(let e=0;e{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display=`none`;let a=t.nodeType===1?t:t.parentNode;a.appendChild(r);let{hasTransform:o}=De(r);return a.removeChild(r),o}var G=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return w(t)?e=>v(t,e):t};function pt(e){e.target.composing=!0}function mt(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var K=Symbol(`_assign`);function ht(e,t,n){return t&&(e=e.trim()),n&&(e=O(e)),e}var q={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[K]=G(i);let a=r||i.props&&i.props.type===`number`;U(e,t?`change`:`input`,t=>{t.target.composing||e[K](ht(e.value,n,a))}),(n||a)&&U(e,`change`,()=>{e.value=ht(e.value,n,a)}),t||(U(e,`compositionstart`,pt),U(e,`compositionend`,mt),U(e,`change`,mt))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[K]=G(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?O(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},gt={deep:!0,created(e,t,r){e[K]=G(r),U(e,`change`,()=>{let t=e._modelValue,r=J(e),i=e.checked,a=e[K];if(w(t)){let e=n(t,r),o=e!==-1;if(i&&!o)a(t.concat(r));else if(!i&&o){let n=[...t];n.splice(e,1),a(n)}}else if(D(t)){let e=new Set(t);i?e.add(r):e.delete(r),a(e)}else a(xt(e,i))})},mounted:_t,beforeUpdate(e,t,n){e[K]=G(n),_t(e,t,n)}};function _t(e,{value:t,oldValue:r},i){e._modelValue=t;let a;if(w(t))a=n(t,i.props.value)>-1;else if(D(t))a=t.has(i.props.value);else{if(t===r)return;a=u(t,xt(e,!0))}e.checked!==a&&(e.checked=a)}var vt={created(e,{value:t},n){e.checked=u(t,n.props.value),e[K]=G(n),U(e,`change`,()=>{e[K](J(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[K]=G(r),t!==n&&(e.checked=u(t,r.props.value))}},yt={deep:!0,created(e,{value:n,modifiers:{number:r}},i){e._modelValue=n,U(e,`change`,()=>{let n=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>r?O(J(e)):J(e));e[K](e.multiple?D(e._modelValue)?new Set(n):n:n[0]),e._assigning=!0,t(()=>{e._assigning=!1})}),e[K]=G(i)},mounted(e,{value:t}){bt(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[K]=G(n)},updated(e,{value:t}){e._assigning||bt(e,t)}};function bt(e,t){let r=e.multiple,i=w(t);if(!(r&&!i&&!D(t))){for(let a=0,o=e.options.length;aString(e)===String(s)):n(t,s)>-1}else o.selected=t.has(s);else if(u(J(o),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!r&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function J(e){return`_value`in e?e._value:e.value}function xt(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var St={created(e,t,n){Y(e,t,n,null,`created`)},mounted(e,t,n){Y(e,t,n,null,`mounted`)},beforeUpdate(e,t,n,r){Y(e,t,n,r,`beforeUpdate`)},updated(e,t,n,r){Y(e,t,n,r,`updated`)}};function Ct(e,t){switch(e){case`SELECT`:return yt;case`TEXTAREA`:return q;default:switch(t){case`checkbox`:return gt;case`radio`:return vt;default:return q}}}function Y(e,t,n,r,i){let a=Ct(e.tagName,n.props&&n.props.type)[i];a&&a(e,t,n,r)}var wt=[`ctrl`,`shift`,`alt`,`meta`],Tt={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>wt.some(n=>e[`${n}Key`]&&!t.includes(n))},Et=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=E(n.key);if(t.some(e=>e===r||Dt[e]===r))return e(n)}))},kt=b({patchProp:tt},ve),At;function jt(){return At||=_(kt)}var Mt=((...e)=>{let t=jt().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Pt(e);if(!r)return;let i=t._component;!x(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Nt(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function Nt(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Pt(e){return h(e)?document.querySelector(e):e}var X=f({items:[]});function Z(e,t){let n=crypto.randomUUID();X.items.push({id:n,message:e,tone:t}),window.setTimeout(()=>Ft(n),3200)}function Ft(e){let t=X.items.findIndex(t=>t.id===e);t!==-1&&X.items.splice(t,1)}function It(){return{toasts:C(X,`items`),dismiss:Ft,success:e=>Z(e,`success`),error:e=>Z(e,`error`),info:e=>Z(e,`info`),warning:e=>Z(e,`warning`)}}var Q=`fabric-admin-token`;function Lt(){return`https://nademitex.montest.ir/server/api`.replace(/\/$/,``)||`https://nademitex.montest.ir/server/api`}function Rt(){return localStorage.getItem(Q)??sessionStorage.getItem(Q)}function zt(e,t=!0){localStorage.removeItem(Q),sessionStorage.removeItem(Q),e&&(t?localStorage.setItem(Q,e):sessionStorage.setItem(Q,e))}var $=class extends Error{status;constructor(e,t){super(t),this.status=e}};function Bt(e,t){let n=Lt(),r=e.startsWith(`http`)?e:`${n.replace(/\/$/,``)}/${e.replace(/^\//,``)}`,i=r.startsWith(`http`)?new URL(r):new URL(r,typeof window<`u`?window.location.origin:`http://127.0.0.1`);if(t)for(let[e,n]of Object.entries(t))n!=null&&n!==``&&i.searchParams.set(e,String(n));return i.toString()}function Vt(e,t){if(typeof e==`object`&&e&&`message`in e){let t=e.message;return Array.isArray(t)?t.join(`، `):String(t)}if(typeof e==`string`){if(/upstream error/i.test(e))return`سرور API در دسترس نیست. کمی بعد دوباره تلاش کنید.`;if(e.trim()&&!e.trimStart().startsWith(`<`))return e.trim().slice(0,200)}return`خطای سرور (${t})`}async function Ht(e,t={}){let n={Accept:`application/json`};if(t.body!==void 0&&(n[`Content-Type`]=`application/json`),t.auth!==!1){let e=Rt();e&&(n.Authorization=`Bearer ${e}`)}let r;try{r=await fetch(Bt(e,t.query),{method:t.method??(t.body===void 0?`GET`:`POST`),headers:n,body:t.body===void 0?void 0:JSON.stringify(t.body),signal:AbortSignal.timeout(t.timeoutMs??2e4)})}catch(e){throw new $(0,e instanceof DOMException&&e.name===`TimeoutError`||e instanceof Error&&e.name===`TimeoutError`?`پاسخ سرور طول کشید. دوباره تلاش کنید.`:`اتصال به سرور برقرار نشد. اینترنت یا آدرس API را بررسی کنید.`)}let i=await r.text(),a=null;if(i)try{a=JSON.parse(i)}catch{a=i}if(!r.ok){if(r.status===401&&t.auth!==!1){zt(null),localStorage.removeItem(`fabric-admin-session`),sessionStorage.removeItem(`fabric-admin-session`);let e=`/admin/login`;if(typeof window<`u`&&window.location.pathname!==e){let t=`/admin/`.replace(/\/$/,``),n=window.location.pathname.startsWith(t)?window.location.pathname.slice(t.length)||`/`:window.location.pathname,r=encodeURIComponent(`${n}${window.location.search}`);window.location.assign(`${e}?redirect=${r}`)}}throw new $(r.status,Vt(a,r.status))}return a}export{It as a,Pe as c,yt as d,q as f,zt as i,gt as l,Et as m,Ht as n,st as o,Ot as p,Rt as r,Mt as s,$ as t,St as u}; \ No newline at end of file diff --git a/dist/assets/index-BZ7aOp8K.css b/dist/assets/index-BZ7aOp8K.css new file mode 100644 index 0000000..11b10be --- /dev/null +++ b/dist/assets/index-BZ7aOp8K.css @@ -0,0 +1 @@ +.basic-icon[data-v-159253ae] svg{width:100%;height:100%;display:block}.basic-icon[data-v-159253ae] svg path{stroke:currentColor;stroke-width:var(--v196ba43b)}.toast-container[data-v-223aafac]{top:calc(var(--header-height) + 12px);z-index:1200;pointer-events:none;width:min(360px,100vw - 32px);position:fixed;left:16px}.toast-container__list[data-v-223aafac]{pointer-events:none;flex-direction:column;gap:8px;display:flex}.toast[data-v-223aafac]{pointer-events:auto;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-card);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.toast--success[data-v-223aafac]{border-color:var(--color-success);background:var(--color-success-light);color:var(--color-success-dark)}.toast--error[data-v-223aafac]{border-color:var(--color-danger);background:var(--color-danger-light);color:var(--color-danger)}.toast--warning[data-v-223aafac]{border-color:var(--color-warning);background:var(--color-warning-light);color:var(--color-warning-dark)}.toast--info[data-v-223aafac]{border-color:var(--color-info);background:var(--color-info-light);color:var(--color-info)}.toast__icon[data-v-223aafac]{color:inherit;flex-shrink:0;margin-top:1px}.toast__message[data-v-223aafac]{color:inherit;flex:1;margin:0;font-size:.8125rem;font-weight:600;line-height:1.5}.toast--success .toast__message[data-v-223aafac],.toast--error .toast__message[data-v-223aafac],.toast--warning .toast__message[data-v-223aafac],.toast--info .toast__message[data-v-223aafac]{color:var(--color-text)}.toast__close[data-v-223aafac]{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;pointer-events:auto;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin:-4px;padding:0;font-size:1.25rem;line-height:1;display:inline-flex}.toast__close[data-v-223aafac]:hover{background:var(--color-border-light);color:var(--color-text)}.toast-enter-active[data-v-223aafac],.toast-leave-active[data-v-223aafac]{transition:opacity .18s,transform .18s}.toast-enter-from[data-v-223aafac],.toast-leave-to[data-v-223aafac]{opacity:0;transform:translateY(-8px)}@media (prefers-reduced-motion:reduce){.toast-enter-active[data-v-223aafac],.toast-leave-active[data-v-223aafac]{transition:none}}.admin-modal-backdrop[data-v-a52d3eeb]{z-index:1000;-webkit-backdrop-filter:blur(8px);background:#0f172a85;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.admin-modal[data-v-a52d3eeb]{background:var(--color-surface);border-radius:var(--radius-lg);flex-direction:column;width:min(100%,480px);max-height:calc(100dvh - 32px);display:flex;overflow:hidden;box-shadow:0 20px 48px #0f172a2e}.admin-modal--lg[data-v-a52d3eeb]{width:min(100%,640px)}.admin-modal--xl[data-v-a52d3eeb]{width:min(100%,960px)}.admin-modal__header[data-v-a52d3eeb]{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.admin-modal__title[data-v-a52d3eeb]{color:var(--color-text);margin:0;font-size:1rem;font-weight:700}.admin-modal__close[data-v-a52d3eeb]{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);background:0 0;border:none;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;display:flex}.admin-modal__close[data-v-a52d3eeb]:hover{background:var(--color-border-light);color:var(--color-text)}.admin-modal__body[data-v-a52d3eeb]{flex:auto;min-height:0;padding:16px 20px 20px;overflow-y:auto}.admin-modal__footer[data-v-a52d3eeb]{border-top:1px solid var(--color-border);background:var(--color-bg);flex-direction:row-reverse;flex-shrink:0;justify-content:flex-start;align-items:center;gap:10px;padding:14px 20px;display:flex}.admin-modal__footer[data-v-a52d3eeb] .admin-btn{min-width:0}@media (width<=767px){.admin-modal-backdrop[data-v-a52d3eeb]{align-items:flex-end;padding:0}.admin-modal[data-v-a52d3eeb],.admin-modal--lg[data-v-a52d3eeb],.admin-modal--xl[data-v-a52d3eeb]{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:92dvh}.admin-modal__header[data-v-a52d3eeb]{padding:14px 16px}.admin-modal__body[data-v-a52d3eeb]{padding:14px 16px 18px}.admin-modal__footer[data-v-a52d3eeb]{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));flex-direction:row-reverse;gap:12px}.admin-modal__footer[data-v-a52d3eeb] .admin-btn{flex:1;min-height:44px}}.confirm-dialog__message[data-v-47354e67]{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.7}.admin-sidebar[data-v-a8a62cb5]{width:var(--sidebar-width);background:var(--color-sidebar-bg);color:#fff;flex-direction:column;flex-shrink:0;height:100%;display:flex;overflow:hidden}.admin-sidebar__brand[data-v-a8a62cb5]{text-align:center;border-bottom:1px solid #ffffff14;padding:24px 20px 20px}.admin-sidebar__logo[data-v-a8a62cb5]{object-fit:contain;width:92px;height:64px;margin:0 auto 8px;display:block}.admin-sidebar__title[data-v-a8a62cb5]{letter-spacing:-.02em;font-size:1.125rem;font-weight:700;display:block}.admin-sidebar__subtitle[data-v-a8a62cb5]{color:#fff9;margin-top:4px;font-size:.75rem;display:block}.admin-sidebar__nav[data-v-a8a62cb5]{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.admin-sidebar__item[data-v-a8a62cb5]{border-radius:var(--radius-sm);color:#ffffffd9;text-align:right;width:100%;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;font-size:.8125rem;font-weight:500;display:flex}.admin-sidebar__item[data-v-a8a62cb5]:focus-visible{outline-offset:2px;outline:2px solid #ffffff73}.admin-sidebar__item[data-v-a8a62cb5]:hover{background:var(--color-sidebar-hover)}.admin-sidebar__item.active[data-v-a8a62cb5]{background:var(--color-sidebar-active);color:#fff;font-weight:600}.admin-sidebar__logout[data-v-a8a62cb5]{border-radius:var(--radius-sm);color:#f87171;background:0 0;border:none;align-items:center;gap:10px;margin:8px 10px 16px;padding:10px 14px;font-size:.8125rem;transition:background .15s,color .15s;display:flex}.admin-sidebar__logout[data-v-a8a62cb5]:hover{color:#fca5a5;background:#f871711f}.admin-header[data-v-e61788c1]{height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:0 28px;display:flex}.admin-header__right[data-v-e61788c1]{flex-shrink:0;align-items:center;gap:10px;min-width:0;display:flex}.admin-header__menu-btn[data-v-e61788c1]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:40px;height:40px;color:var(--color-text);flex-shrink:0;justify-content:center;align-items:center;display:flex}.admin-header__menu-btn[data-v-e61788c1]:hover{background:var(--color-border-light)}.admin-header__left[data-v-e61788c1]{align-items:center;gap:8px;display:flex}.admin-header__dropdown[data-v-e61788c1]{position:relative}.admin-header__icon-btn[data-v-e61788c1]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-width:52px;height:52px;color:var(--color-text);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 8px;transition:background .15s,border-color .15s;display:flex;position:relative}.admin-header__icon-btn[data-v-e61788c1]:hover,.admin-header__icon-btn--active[data-v-e61788c1]{background:var(--color-border-light);border-color:#cbd5e1}.admin-header__icon-label[data-v-e61788c1]{color:var(--color-text-muted);font-size:.625rem;font-weight:600;line-height:1}.admin-header__badge[data-v-e61788c1]{background:var(--color-danger);color:#fff;border:2px solid var(--color-surface);border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.625rem;font-weight:700;line-height:1;display:flex;position:absolute;top:2px;left:2px}.admin-header__panel[data-v-e61788c1]{z-index:950;width:min(360px,100vw - 32px);max-height:min(420px, calc(100dvh - var(--header-height) - 24px));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;display:flex;position:absolute;top:calc(100% + 8px);left:0;overflow:hidden}.admin-header__panel-header[data-v-e61788c1]{border-bottom:1px solid var(--color-border);background:var(--color-surface);justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.admin-header__panel-title[data-v-e61788c1]{color:var(--color-text);margin:0;font-size:.9375rem;font-weight:700}.admin-header__panel-action[data-v-e61788c1]{color:var(--color-primary);white-space:nowrap;background:0 0;border:none;padding:0;font-size:.75rem;font-weight:600}.admin-header__panel-action[data-v-e61788c1]:hover{text-decoration:underline}.admin-header__panel-list[data-v-e61788c1]{margin:0;padding:0;list-style:none;overflow-y:auto}.admin-header__panel-item[data-v-e61788c1]{border-bottom:1px solid var(--color-border-light)}.admin-header__panel-item[data-v-e61788c1]:last-child{border-bottom:none}.admin-header__panel-item.unread[data-v-e61788c1]{background:var(--color-info-light)}.admin-header__panel-item-btn[data-v-e61788c1]{text-align:right;width:100%;color:var(--color-text);background:0 0;border:none;flex-direction:column;gap:4px;padding:12px 16px;display:flex}.admin-header__panel-item-btn[data-v-e61788c1]:hover{background:var(--color-border-light)}.admin-header__panel-item-top[data-v-e61788c1]{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.admin-header__panel-item-top strong[data-v-e61788c1]{font-size:.8125rem;font-weight:700;line-height:1.4}.admin-header__panel-item-top time[data-v-e61788c1]{color:var(--color-text-muted);flex-shrink:0;font-size:.6875rem}.admin-header__panel-item-sender[data-v-e61788c1]{color:var(--color-text-muted);font-size:.75rem}.admin-header__panel-item-body[data-v-e61788c1]{color:var(--color-text-muted);font-size:.8125rem;line-height:1.5}.admin-header__panel-item--warning.unread[data-v-e61788c1]{background:var(--color-warning-light)}.admin-header__panel-item--danger.unread[data-v-e61788c1]{background:var(--color-danger-light)}.admin-header__panel-item--success.unread[data-v-e61788c1]{background:var(--color-success-light)}.admin-header__panel-empty[data-v-e61788c1]{text-align:center;color:var(--color-text-muted);margin:0;padding:24px 16px;font-size:.875rem}.admin-header__user[data-v-e61788c1]{border-right:1px solid var(--color-border);align-items:center;gap:10px;margin-right:4px;padding-right:12px;display:flex}.admin-header__avatar[data-v-e61788c1]{background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:.875rem;font-weight:700;display:flex}.admin-header__user-info[data-v-e61788c1]{flex-direction:column;gap:1px;display:flex}.admin-header__user-info strong[data-v-e61788c1]{font-size:.8125rem;font-weight:600}.admin-header__user-info span[data-v-e61788c1]{color:var(--color-text-muted);font-size:.6875rem}.admin-header__theme-glyph[data-v-e61788c1]{color:inherit;justify-content:center;align-items:center;line-height:0;display:inline-flex}.admin-header__panel--theme[data-v-e61788c1]{min-width:200px}.admin-header__theme-list[data-v-e61788c1]{flex-direction:column;gap:6px;margin:0;padding:8px;list-style:none;display:flex}.admin-header__theme-option[data-v-e61788c1]{text-align:right;width:100%;color:var(--color-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:.875rem;display:flex}.admin-header__theme-option-icon[data-v-e61788c1]{background:var(--color-bg);border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-text);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.admin-header__theme-option-label[data-v-e61788c1]{flex:1;min-width:0;font-weight:600}.admin-header__theme-option-check[data-v-e61788c1]{color:var(--color-primary);flex-shrink:0}.admin-header__theme-option[data-v-e61788c1]:hover{background:var(--color-border-light)}.admin-header__theme-option--active[data-v-e61788c1]{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.admin-header__theme-option--active .admin-header__theme-option-icon[data-v-e61788c1]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}@media (width<=767px){.admin-header[data-v-e61788c1]{gap:12px;padding:0 16px}.admin-header__icon-label[data-v-e61788c1]{display:none}.admin-header__icon-btn[data-v-e61788c1]{min-width:40px;height:40px;padding:0}.admin-header__panel[data-v-e61788c1]{top:var(--header-height);width:auto;max-height:calc(100dvh - var(--header-height) - 16px);position:fixed;left:16px;right:16px}.admin-header__panel-header[data-v-e61788c1]{flex-direction:column;align-items:stretch}.admin-header__panel-action[data-v-e61788c1]{align-self:flex-start}.admin-header__user-info[data-v-e61788c1]{display:none}.admin-header__user[data-v-e61788c1]{border-right:none;margin-right:0;padding-right:0}.sms-credit[data-v-e61788c1]{max-width:46vw}.sms-credit span[data-v-e61788c1]:nth-child(2){text-overflow:ellipsis;overflow:hidden}}.sms-credit[data-v-e61788c1]{color:#067647;white-space:nowrap;background:#e8f8ef;border-radius:999px;align-items:center;gap:8px;max-width:100%;padding:4px 12px 4px 4px;font-size:.75rem;font-weight:700;display:inline-flex}.sms-credit--warn[data-v-e61788c1]{color:#c2410c;background:#fff7ed}.sms-credit--danger[data-v-e61788c1]{color:#b91c1c;background:#fef2f2}.sms-credit__charge[data-v-e61788c1]{color:#fff;font:inherit;cursor:pointer;background:#12b76a;border:0;border-radius:999px;padding:4px 12px;font-weight:800}.sms-credit--warn .sms-credit__charge[data-v-e61788c1]{background:#f79009}.sms-credit--danger .sms-credit__charge[data-v-e61788c1]{background:#f04438}.sms-charge__note[data-v-e61788c1]{color:#334155;background:#eef6ff;border-radius:14px;margin:0 0 14px;padding:12px 14px;font-size:.8125rem;line-height:1.7}.sms-charge__row[data-v-e61788c1]{border:1px solid var(--color-border);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:12px;display:flex}.sms-charge__row span[data-v-e61788c1]{color:var(--color-text-muted,#64748b);margin-bottom:4px;font-size:.75rem;display:block}.sms-charge__row strong[data-v-e61788c1]{letter-spacing:.04em;font-size:1.05rem}.sms-charge__copy[data-v-e61788c1]{color:#6d28d9;font:inherit;cursor:pointer;background:#f5f3ff;border:1px solid #c4b5fd;border-radius:999px;padding:4px 10px}.sms-charge__copy--sheba[data-v-e61788c1]{color:#067647;background:#ecfdf3;border-color:#a7f3d0}.sms-charge__name[data-v-e61788c1]{text-align:left;margin:4px 0 0;font-size:.875rem}.sms-charge__name strong[data-v-e61788c1]{margin-top:4px;font-size:1.05rem;display:block}.admin-drawer__brand[data-v-72a66f9e]{text-align:center;border-bottom:1px solid #ffffff14;padding:20px 16px;position:relative}.admin-drawer__logo[data-v-72a66f9e]{object-fit:contain;width:92px;height:64px;margin:0 auto 8px;display:block}.admin-drawer__brand strong[data-v-72a66f9e]{font-size:1.0625rem;font-weight:700;display:block}.admin-drawer__brand span[data-v-72a66f9e]{color:#fff9;margin-top:4px;font-size:.75rem;display:block}.admin-drawer__close[data-v-72a66f9e]{border-radius:var(--radius-sm);color:#fff;background:#ffffff14;border:none;width:32px;height:32px;font-size:1.25rem;line-height:1;position:absolute;top:16px;left:12px}.admin-drawer__nav[data-v-72a66f9e]{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.admin-drawer__item[data-v-72a66f9e]{border-radius:var(--radius-sm);color:#ffffffd9;text-align:right;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:12px 14px;font-size:.875rem;font-weight:500;display:flex}.admin-drawer__item.active[data-v-72a66f9e]{background:var(--color-sidebar-active);font-weight:600}.admin-drawer__logout[data-v-72a66f9e]{border-radius:var(--radius-sm);color:#f87171;background:0 0;border:none;align-items:center;gap:10px;margin:8px 10px 16px;padding:12px 14px;font-size:.875rem;display:flex}.admin-drawer__logout[data-v-72a66f9e]:hover{color:#fca5a5;background:#f871711f}.admin-shell[data-v-435fffac]{height:100dvh;display:flex;overflow:hidden}.admin-shell__main[data-v-435fffac]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.admin-shell__content[data-v-435fffac]{flex:1;padding:24px 28px;overflow-y:auto}*,:before,:after,::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.page-shell{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.admin-panel{border-width:1px;border-color:var(--color-border);background-color:var(--color-surface);border-radius:.75rem}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.grid{display:grid}.col-span-full{grid-column:1/-1}.m-0{margin:0}.mb-3{margin-bottom:.75rem}.mr-auto{margin-right:auto}.mt-3{margin-top:.75rem}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.h1{height:.25rem}.h2{height:.5rem}.h3{height:.75rem}.h4{height:1rem}.flex{display:flex}.inline-flex{display:inline-flex}.flex-shrink{flex-shrink:1}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.resize{resize:both}.list-none{list-style-type:none}.items-center{align-items:center}.justify-end{justify-content:flex-end}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.b,.border{border-width:1px}.p-0{padding:0}.px{padding-left:1rem;padding-right:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-success{color:var(--color-success)}.text-inherit{color:inherit}.font-semibold{font-weight:600}.underline{text-decoration-line:underline}.no-underline{text-decoration:none}.tab{tab-size:4}.outline{outline-style:solid}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease{transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:IRANSans;src:url(/admin/assets/IRANSansWeb\(FaNum\)-BLA2CtIC.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/admin/assets/IRANSansWeb\(FaNum\)_Light-B637MNLG.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/admin/assets/IRANSansWeb\(FaNum\)_Medium-C2CKjrKB.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/admin/assets/IRANSansWeb\(FaNum\)_Bold-C8urhp07.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/admin/assets/IRANSansWeb\(FaNum\)_Black-BFAfOkt4.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--color-primary:#091d36;--color-primary-hover:#061426;--color-primary-soft:#e9edf2;--color-primary-dark:#04101f;--color-primary-light:#e9edf2;--color-primary-rgb:9, 29, 54;--color-accent-navy:#091d36;--color-sidebar-bg:#091d36;--color-sidebar-active:#162b46;--color-sidebar-hover:#162b46;--color-success:#1b8a5a;--color-success-light:#eaf8f1;--color-success-dark:#0d7a4d;--color-success-soft:#eaf8f1;--color-warning:#e8a317;--color-warning-light:#fff6e5;--color-warning-dark:#d97706;--color-danger:#dc3545;--color-danger-light:#fee2e2;--color-purple:#7c3aed;--color-purple-light:#ede9fe;--color-info:#3b6fa0;--color-info-light:#eef3f7;--color-bg:#f3f5f7;--color-surface:#fff;--color-elevated:#fff;--color-border:#dfe4ea;--color-border-light:#e9edf2;--color-text:#121821;--color-text-muted:#6b7280;--color-text-secondary:#6b7280;--admin-primary:var(--color-primary);--admin-muted:var(--color-text-muted);--admin-surface:var(--color-surface);--admin-border:var(--color-border);--admin-soft:var(--color-primary-soft);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #1018280a;--shadow-card:0 1px 3px #1018280f, 0 4px 16px #1018280a;--sidebar-width:240px;--header-height:72px;--font-family:"IRANSans", "Tahoma", sans-serif;--btn-primary-bg:var(--color-primary);--btn-primary-hover:var(--color-primary-hover);--admin-desktop-min:1280px;--control-height:40px;--control-height-sm:32px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--transition-fast:.15s ease;--transition-base:.18s ease;--focus-ring:0 0 0 3px #091d3633}html.dark{--color-primary:#7d8695;--color-primary-hover:#aeb6c2;--color-primary-soft:#27303d;--color-primary-dark:#aeb6c2;--color-primary-light:#27303d;--color-primary-rgb:125, 134, 149;--color-accent-navy:#7d8695;--color-sidebar-bg:#0b0f14;--color-sidebar-active:#27303d;--color-sidebar-hover:#1a2230;--color-success:#3dd68c;--color-success-light:#123528;--color-success-dark:#6ee7b7;--color-success-soft:#123528;--color-warning:#f5c14a;--color-warning-light:#3a2f14;--color-warning-dark:#fcd34d;--color-danger:#f47979;--color-danger-light:#3f1d22;--color-purple:#b39afa;--color-purple-light:#2a2144;--color-info:#7b9cff;--color-info-light:#1b2740;--color-bg:#0b0f14;--color-surface:#121821;--color-elevated:#1a2230;--color-border:#2a3444;--color-border-light:#1a2230;--color-text:#fff;--color-text-muted:#9aa8bc;--color-text-secondary:#9aa8bc;--shadow-sm:0 1px 2px #00000059;--shadow-card:0 1px 3px #0006, 0 4px 16px #00000059;--btn-primary-bg:var(--color-primary);--btn-primary-hover:var(--color-primary-hover);--focus-ring:0 0 0 3px #7d869552}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%;font-size:16px}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);direction:rtl;height:100%;margin:0;line-height:1.5}#app{height:100dvh}html,body,#app,#app *,.admin-modal-backdrop,.admin-modal-backdrop *{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}body::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}#app::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}#app ::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}.admin-modal-backdrop::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}.admin-modal-backdrop ::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}input,textarea,select{font-family:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.admin-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.admin-page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.admin-page-header__title{color:var(--color-text);margin:0;font-size:1.25rem;font-weight:700}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.875rem}.admin-table th{text-align:center;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:11px 16px;font-size:.8125rem;font-weight:600}.admin-table td{text-align:center;border-bottom:1px solid var(--color-border-light);vertical-align:middle;color:var(--color-text);padding:13px 16px}.admin-table tbody tr{transition:background var(--transition-fast)}.admin-table tbody tr:hover{background:var(--color-border-light)}.admin-table tbody tr.is-selected{background:var(--color-primary-soft)}.admin-table .col-numeric,.admin-table td.numeric,.admin-table th.numeric{text-align:center;font-variant-numeric:tabular-nums}.admin-table .col-status,.admin-table td.status,.admin-table th.status{text-align:center}.admin-table .col-actions,.admin-table td.actions,.admin-table th.actions{text-align:center;white-space:nowrap}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table--compact td,.admin-table--compact th{padding:10px 12px}.admin-btn{min-height:var(--control-height);border-radius:var(--radius-sm);transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 20px;font-size:.875rem;font-weight:600;display:inline-flex}.admin-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.admin-btn:active:not(:disabled){transform:translateY(1px)}.admin-btn--primary{background:var(--btn-primary-bg);color:var(--color-surface);border-color:var(--btn-primary-bg)}.admin-btn--primary:hover:not(:disabled){background:var(--btn-primary-hover)}.admin-btn--danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.admin-btn--danger:hover:not(:disabled){background:#c82333}.admin-btn--success{background:var(--color-success);color:#fff}.admin-btn--success:hover{background:var(--color-success-dark)}.admin-btn--outline{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.admin-btn--outline:hover{background:var(--color-border-light)}.admin-btn--outline-success{background:var(--color-surface);color:var(--color-success);border-color:var(--color-success)}.admin-btn--outline-danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-danger)}.admin-btn--outline-warning{background:var(--color-surface);color:var(--color-warning-dark);border-color:var(--color-warning)}.admin-btn--ghost{color:var(--color-primary);background:0 0;border-color:#0000;padding:6px 12px}.admin-btn--ghost:hover{background:var(--color-info-light)}.admin-btn--sm{min-height:var(--control-height-sm);padding:0 14px;font-size:.8125rem}.admin-btn--xs{min-height:28px;padding:0 10px;font-size:.75rem}.admin-btn__spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite admin-spin}.admin-btn--outline .admin-btn__spinner{border-color:rgba(var(--color-primary-rgb), .2);border-top-color:var(--color-primary)}@keyframes admin-spin{to{transform:rotate(360deg)}}.admin-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.admin-badge{white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;min-height:24px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.admin-badge--warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.admin-badge--purple{background:var(--color-purple-light);color:var(--color-purple)}.admin-badge--success{background:var(--color-success-light);color:var(--color-success-dark)}.admin-badge--danger{background:var(--color-danger-light);color:var(--color-danger)}.admin-badge--info{background:var(--color-info-light);color:var(--color-info)}.admin-badge--neutral{background:var(--color-border-light);color:var(--color-text-muted)}.admin-badge--delivered{background:var(--color-success-light);color:var(--color-success-dark)}.admin-tabs{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:0;display:flex;overflow:visible}.admin-tab{color:var(--color-text-muted);white-space:nowrap;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;margin-bottom:-1px;padding:12px 16px;font-size:.875rem;font-weight:500}.admin-tab:focus-visible{box-shadow:inset 0 -2px 0 var(--color-primary);outline:none}.admin-tab:hover{color:var(--color-text)}.admin-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.admin-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);padding:10px 14px;font-size:.875rem}.admin-input[type=number],.admin-input[type=tel],.admin-input[inputmode=numeric],.admin-input[inputmode=decimal],.admin-input[inputmode=tel],.admin-input[dir=ltr]{text-align:right}select.admin-input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.75' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-position:12px;background-repeat:no-repeat;padding-inline:14px 36px}html.dark select.admin-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%94a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.75' d='m7 10 5 5 5-5'/%3E%3C/svg%3E")}.admin-input:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:none}.admin-input--sm{max-width:120px;padding:6px 10px;font-size:.8125rem}.admin-stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:8px;padding:20px;display:flex}.admin-stat-card__label{color:var(--color-text-muted);margin:0;font-size:.8125rem}.admin-stat-card__value{margin:0;font-size:1.75rem;font-weight:700;line-height:1.2}.admin-stat-card__icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:4px;display:flex}.admin-stat-card__link{color:var(--color-primary);margin-top:auto;font-size:.75rem}.admin-link{color:var(--color-primary);font-size:.8125rem;font-weight:500}.admin-link:hover{text-decoration:underline}.admin-pagination{border-top:1px solid var(--color-border-light);color:var(--color-text-muted);justify-content:space-between;align-items:center;padding:16px;font-size:.8125rem;display:flex}.admin-pagination__pages{gap:4px;display:flex}.admin-pagination__page{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);justify-content:center;align-items:center;min-width:32px;height:32px;font-size:.8125rem;display:flex}.admin-pagination__page.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.admin-summary-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.admin-summary-item{background:var(--color-border-light);border-radius:var(--radius-sm);padding:12px 16px}.admin-summary-item__label{color:var(--color-text-muted);margin:0 0 4px;font-size:.75rem}.admin-summary-item__value{margin:0;font-size:.9375rem;font-weight:600}.admin-info-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.admin-info-row{align-items:center;gap:8px;font-size:.8125rem;display:flex}.admin-info-row__label{color:var(--color-text-muted)}.admin-info-row__value{font-weight:500}.admin-logo-par{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.125rem;font-weight:900;display:flex}.admin-logo-fam{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--color-primary);background:#f5f0e8;flex-direction:column;justify-content:center;align-items:center;font-size:.5rem;font-weight:700;line-height:1.2;display:flex}.admin-logo-fam span:first-child{font-size:.625rem}.admin-action-group{gap:8px;display:flex}.admin-section-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:16px;padding:20px}.admin-section-card__title{margin:0 0 16px;font-size:.9375rem;font-weight:700}.admin-form-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px;display:grid}.admin-form-field label{color:var(--color-text-muted);margin-bottom:6px;font-size:.8125rem;display:block}.admin-form-field textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;width:100%;min-height:80px;padding:10px 14px;font-size:.875rem}.admin-footer-actions{border-top:1px solid var(--color-border-light);gap:12px;margin-top:24px;padding-top:20px;display:flex}.admin-empty-placeholder{text-align:center;color:var(--color-text-muted);padding:48px 24px;font-size:.9375rem}.admin-form{flex-direction:column;gap:16px;display:flex}.admin-form__error{border-radius:var(--radius-sm);background:var(--color-danger-light);color:var(--color-danger);margin:0;padding:10px 12px;font-size:.8125rem}.admin-form__field{flex-direction:column;gap:6px;display:flex}.admin-form__field label{color:var(--color-text);font-size:.8125rem;font-weight:600}.admin-form__required{color:var(--color-danger)}.admin-form__textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;width:100%;min-height:80px;padding:10px 14px;font-family:inherit;font-size:.875rem}.admin-form__textarea:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:none}.admin-skeleton{background:linear-gradient(90deg, var(--color-border-light) 25%, var(--color-border) 50%, var(--color-border-light) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.2s ease-in-out infinite admin-skeleton}@keyframes admin-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.admin-skeleton,.admin-btn__spinner{animation:none}}.admin-form__row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media print{@page{margin:12mm}html.printing-order-detail body>:not(.admin-modal-backdrop){display:none!important}html.printing-order-detail .admin-modal-backdrop{z-index:auto!important;background:0 0!important;padding:0!important;display:block!important;position:static!important;inset:auto!important}html.printing-order-detail .admin-modal{width:100%!important;max-height:none!important;box-shadow:none!important;color:#111!important;background:#fff!important;border-radius:0!important;overflow:visible!important}html.printing-order-detail .admin-modal__header{border-bottom-color:#ddd!important;padding:0 0 12px!important}html.printing-order-detail .admin-modal__close,html.printing-order-detail .admin-modal__footer,html.printing-order-detail .no-print{display:none!important}html.printing-order-detail .admin-modal__body{max-height:none!important;padding:0!important;overflow:visible!important}html.printing-order-detail .admin-modal__title{color:#111!important}}:root{--page-padding-mobile:16px;--page-padding-tablet:20px;--page-padding-desktop:28px;--page-padding:var(--page-padding-mobile);--mobile-nav-height:0px;--drawer-width:min(300px, 88vw);--admin-desktop-min:1280px}@media (width>=768px){:root{--page-padding:var(--page-padding-tablet)}}@media (width>=1280px){:root{--page-padding:var(--page-padding-desktop)}}.desktop-only{display:none!important}.compact-only{display:block}@media (width>=1280px){.desktop-only{display:revert!important}.desktop-only.admin-shell__sidebar,.desktop-only.admin-sidebar{display:flex!important}.desktop-only.orders-page,.desktop-only.dashboard{display:block!important}.compact-only{display:none!important}}.admin-drawer-backdrop{z-index:900;opacity:0;visibility:hidden;background:#0f172a73;transition:opacity .2s,visibility .2s;position:fixed;inset:0}.admin-drawer-backdrop.open{opacity:1;visibility:visible}.admin-drawer{z-index:901;width:var(--drawer-width);background:var(--color-sidebar-bg);color:#fff;flex-direction:column;height:100dvh;transition:transform .25s;display:flex;position:fixed;top:0;right:0;overflow:hidden;transform:translate(100%)}.admin-drawer.open{transform:translate(0)}.admin-card-list{flex-direction:column;gap:10px;display:flex}.admin-card-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:right;width:100%;padding:14px 16px;transition:border-color .15s,background .15s}.admin-card-item:hover{border-color:#cbd5e1}.admin-card-item.selected{border-color:var(--color-primary);background:var(--color-info-light)}.admin-card-item__header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.admin-card-item__header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.admin-card-item__title{margin:0;font-size:.875rem;font-weight:700}.admin-card-item__meta{color:var(--color-text-muted);flex-wrap:wrap;gap:8px 16px;font-size:.8125rem;display:flex}.admin-card-item__meta span strong{color:var(--color-text);font-weight:600}.admin-card-item__actions{border-top:1px solid var(--color-border-light);flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;display:flex}.admin-detail-panel{z-index:850;background:var(--color-bg);flex-direction:column;transition:transform .25s;display:flex;position:fixed;inset:0;transform:translate(100%)}.admin-detail-panel.open{transform:translate(0)}.admin-detail-panel__header{padding:12px var(--page-padding);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;grid-template-columns:40px 1fr 40px;align-items:center;gap:12px;display:grid}.admin-detail-panel__back{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:40px;height:40px;color:var(--color-text);transition:background var(--transition-fast), border-color var(--transition-fast);flex-shrink:0;grid-column:1;justify-content:center;align-items:center;display:flex}.admin-detail-panel__back:hover{background:var(--color-border-light);border-color:var(--color-border)}.admin-detail-panel__title{text-align:center;grid-column:2;margin:0;font-size:1rem;font-weight:700}.admin-detail-panel__body{padding:var(--page-padding);flex:1;overflow-y:auto}.compact-page-header{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.compact-page-header__row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.compact-page-header__title{margin:0;font-size:1.125rem;font-weight:700}.compact-page-header__actions{flex-wrap:wrap;gap:8px;display:flex}@media (width>=768px){.compact-page-header__row{align-items:center}.compact-page-header__actions{flex-shrink:0}}.compact-stats-grid{grid-template-columns:1fr;gap:12px;margin-bottom:16px;display:grid}@media (width>=480px){.compact-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.compact-stats-grid{grid-template-columns:repeat(4,1fr)}}.compact-section-grid{flex-direction:column;gap:16px;display:flex}.compact-section-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:16px}.compact-section-card__title{margin:0 0 12px;font-size:.9375rem;font-weight:700}@media (width<=1279px){.admin-shell__content{padding:var(--page-padding)}.admin-summary-grid,.admin-form-grid,.admin-info-grid{grid-template-columns:repeat(2,1fr)}.admin-pagination{flex-direction:column;align-items:stretch;gap:12px}.admin-pagination__pages{flex-wrap:wrap;justify-content:center}.admin-tab{padding:10px 12px;font-size:.8125rem}.admin-page-header .admin-action-group{flex-wrap:wrap;gap:8px}}@media (width<=767px){:root{--header-height:60px}.admin-page-header{flex-direction:column;align-items:stretch}.admin-page-header .admin-btn,.admin-page-header .admin-action-group{width:100%}.admin-page-header .admin-action-group .admin-btn{flex:1;min-width:fit-content}.admin-summary-grid,.admin-form-grid,.admin-info-grid{grid-template-columns:1fr}.admin-footer-actions{flex-direction:column}.admin-footer-actions .admin-btn{width:100%}.admin-form__row{grid-template-columns:1fr}.admin-tab{padding:8px 10px;font-size:.75rem}.admin-modal-backdrop{align-items:flex-end;padding:0}.admin-modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:100%;max-height:92dvh}.checks-page__footer{flex-direction:column;align-items:stretch}.checks-page__footer .admin-action-group{flex-direction:column;width:100%}.checks-page__footer .admin-action-group .admin-btn{width:100%}} diff --git a/dist/assets/index-C3X1YgAk.css b/dist/assets/index-C3X1YgAk.css deleted file mode 100644 index f04831b..0000000 --- a/dist/assets/index-C3X1YgAk.css +++ /dev/null @@ -1 +0,0 @@ -.basic-icon[data-v-159253ae] svg{width:100%;height:100%;display:block}.basic-icon[data-v-159253ae] svg path{stroke:currentColor;stroke-width:var(--v196ba43b)}.toast-container[data-v-223aafac]{top:calc(var(--header-height) + 12px);z-index:1200;pointer-events:none;width:min(360px,100vw - 32px);position:fixed;left:16px}.toast-container__list[data-v-223aafac]{pointer-events:none;flex-direction:column;gap:8px;display:flex}.toast[data-v-223aafac]{pointer-events:auto;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-card);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.toast--success[data-v-223aafac]{border-color:var(--color-success);background:var(--color-success-light);color:var(--color-success-dark)}.toast--error[data-v-223aafac]{border-color:var(--color-danger);background:var(--color-danger-light);color:var(--color-danger)}.toast--warning[data-v-223aafac]{border-color:var(--color-warning);background:var(--color-warning-light);color:var(--color-warning-dark)}.toast--info[data-v-223aafac]{border-color:var(--color-info);background:var(--color-info-light);color:var(--color-info)}.toast__icon[data-v-223aafac]{color:inherit;flex-shrink:0;margin-top:1px}.toast__message[data-v-223aafac]{color:inherit;flex:1;margin:0;font-size:.8125rem;font-weight:600;line-height:1.5}.toast--success .toast__message[data-v-223aafac],.toast--error .toast__message[data-v-223aafac],.toast--warning .toast__message[data-v-223aafac],.toast--info .toast__message[data-v-223aafac]{color:var(--color-text)}.toast__close[data-v-223aafac]{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;pointer-events:auto;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin:-4px;padding:0;font-size:1.25rem;line-height:1;display:inline-flex}.toast__close[data-v-223aafac]:hover{background:var(--color-border-light);color:var(--color-text)}.toast-enter-active[data-v-223aafac],.toast-leave-active[data-v-223aafac]{transition:opacity .18s,transform .18s}.toast-enter-from[data-v-223aafac],.toast-leave-to[data-v-223aafac]{opacity:0;transform:translateY(-8px)}@media (prefers-reduced-motion:reduce){.toast-enter-active[data-v-223aafac],.toast-leave-active[data-v-223aafac]{transition:none}}.admin-modal-backdrop[data-v-a52d3eeb]{z-index:1000;-webkit-backdrop-filter:blur(8px);background:#0f172a85;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.admin-modal[data-v-a52d3eeb]{background:var(--color-surface);border-radius:var(--radius-lg);flex-direction:column;width:min(100%,480px);max-height:calc(100dvh - 32px);display:flex;overflow:hidden;box-shadow:0 20px 48px #0f172a2e}.admin-modal--lg[data-v-a52d3eeb]{width:min(100%,640px)}.admin-modal--xl[data-v-a52d3eeb]{width:min(100%,960px)}.admin-modal__header[data-v-a52d3eeb]{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.admin-modal__title[data-v-a52d3eeb]{color:var(--color-text);margin:0;font-size:1rem;font-weight:700}.admin-modal__close[data-v-a52d3eeb]{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);background:0 0;border:none;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;display:flex}.admin-modal__close[data-v-a52d3eeb]:hover{background:var(--color-border-light);color:var(--color-text)}.admin-modal__body[data-v-a52d3eeb]{flex:auto;min-height:0;padding:16px 20px 20px;overflow-y:auto}.admin-modal__footer[data-v-a52d3eeb]{border-top:1px solid var(--color-border);background:var(--color-bg);flex-direction:row-reverse;flex-shrink:0;justify-content:flex-start;align-items:center;gap:10px;padding:14px 20px;display:flex}.admin-modal__footer[data-v-a52d3eeb] .admin-btn{min-width:0}@media (width<=767px){.admin-modal-backdrop[data-v-a52d3eeb]{align-items:flex-end;padding:0}.admin-modal[data-v-a52d3eeb],.admin-modal--lg[data-v-a52d3eeb],.admin-modal--xl[data-v-a52d3eeb]{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:92dvh}.admin-modal__header[data-v-a52d3eeb]{padding:14px 16px}.admin-modal__body[data-v-a52d3eeb]{padding:14px 16px 18px}.admin-modal__footer[data-v-a52d3eeb]{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));flex-direction:row-reverse;gap:12px}.admin-modal__footer[data-v-a52d3eeb] .admin-btn{flex:1;min-height:44px}}.confirm-dialog__message[data-v-47354e67]{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.7}.admin-sidebar[data-v-bcc6586c]{width:var(--sidebar-width);background:var(--color-sidebar-bg);color:#fff;flex-direction:column;flex-shrink:0;height:100%;display:flex;overflow:hidden}.admin-sidebar__brand[data-v-bcc6586c]{text-align:center;border-bottom:1px solid #ffffff14;padding:24px 20px 20px}.admin-sidebar__title[data-v-bcc6586c]{letter-spacing:-.02em;font-size:1.125rem;font-weight:700;display:block}.admin-sidebar__subtitle[data-v-bcc6586c]{color:#fff9;margin-top:4px;font-size:.75rem;display:block}.admin-sidebar__nav[data-v-bcc6586c]{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.admin-sidebar__item[data-v-bcc6586c]{border-radius:var(--radius-sm);color:#ffffffd9;text-align:right;width:100%;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;font-size:.8125rem;font-weight:500;display:flex}.admin-sidebar__item[data-v-bcc6586c]:focus-visible{outline-offset:2px;outline:2px solid #ffffff73}.admin-sidebar__item[data-v-bcc6586c]:hover{background:var(--color-sidebar-hover)}.admin-sidebar__item.active[data-v-bcc6586c]{background:var(--color-sidebar-active);color:#fff;font-weight:600}.admin-sidebar__logout[data-v-bcc6586c]{border-radius:var(--radius-sm);color:#f87171;background:0 0;border:none;align-items:center;gap:10px;margin:8px 10px 16px;padding:10px 14px;font-size:.8125rem;transition:background .15s,color .15s;display:flex}.admin-sidebar__logout[data-v-bcc6586c]:hover{color:#fca5a5;background:#f871711f}.admin-header[data-v-7fec14ae]{height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:0 28px;display:flex}.admin-header__right[data-v-7fec14ae]{flex-shrink:0;align-items:center;gap:10px;min-width:0;display:flex}.admin-header__menu-btn[data-v-7fec14ae]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:40px;height:40px;color:var(--color-text);flex-shrink:0;justify-content:center;align-items:center;display:flex}.admin-header__menu-btn[data-v-7fec14ae]:hover{background:var(--color-border-light)}.admin-header__left[data-v-7fec14ae]{align-items:center;gap:8px;display:flex}.admin-header__dropdown[data-v-7fec14ae]{position:relative}.admin-header__icon-btn[data-v-7fec14ae]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-width:52px;height:52px;color:var(--color-text);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 8px;transition:background .15s,border-color .15s;display:flex;position:relative}.admin-header__icon-btn[data-v-7fec14ae]:hover,.admin-header__icon-btn--active[data-v-7fec14ae]{background:var(--color-border-light);border-color:#cbd5e1}.admin-header__icon-label[data-v-7fec14ae]{color:var(--color-text-muted);font-size:.625rem;font-weight:600;line-height:1}.admin-header__badge[data-v-7fec14ae]{background:var(--color-danger);color:#fff;border:2px solid var(--color-surface);border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.625rem;font-weight:700;line-height:1;display:flex;position:absolute;top:2px;left:2px}.admin-header__panel[data-v-7fec14ae]{z-index:950;width:min(360px,100vw - 32px);max-height:min(420px, calc(100dvh - var(--header-height) - 24px));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;display:flex;position:absolute;top:calc(100% + 8px);left:0;overflow:hidden}.admin-header__panel-header[data-v-7fec14ae]{border-bottom:1px solid var(--color-border);background:var(--color-surface);justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.admin-header__panel-title[data-v-7fec14ae]{color:var(--color-text);margin:0;font-size:.9375rem;font-weight:700}.admin-header__panel-action[data-v-7fec14ae]{color:var(--color-primary);white-space:nowrap;background:0 0;border:none;padding:0;font-size:.75rem;font-weight:600}.admin-header__panel-action[data-v-7fec14ae]:hover{text-decoration:underline}.admin-header__panel-list[data-v-7fec14ae]{margin:0;padding:0;list-style:none;overflow-y:auto}.admin-header__panel-item[data-v-7fec14ae]{border-bottom:1px solid var(--color-border-light)}.admin-header__panel-item[data-v-7fec14ae]:last-child{border-bottom:none}.admin-header__panel-item.unread[data-v-7fec14ae]{background:var(--color-info-light)}.admin-header__panel-item-btn[data-v-7fec14ae]{text-align:right;width:100%;color:var(--color-text);background:0 0;border:none;flex-direction:column;gap:4px;padding:12px 16px;display:flex}.admin-header__panel-item-btn[data-v-7fec14ae]:hover{background:var(--color-border-light)}.admin-header__panel-item-top[data-v-7fec14ae]{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.admin-header__panel-item-top strong[data-v-7fec14ae]{font-size:.8125rem;font-weight:700;line-height:1.4}.admin-header__panel-item-top time[data-v-7fec14ae]{color:var(--color-text-muted);flex-shrink:0;font-size:.6875rem}.admin-header__panel-item-sender[data-v-7fec14ae]{color:var(--color-text-muted);font-size:.75rem}.admin-header__panel-item-body[data-v-7fec14ae]{color:var(--color-text-muted);font-size:.8125rem;line-height:1.5}.admin-header__panel-item--warning.unread[data-v-7fec14ae]{background:var(--color-warning-light)}.admin-header__panel-item--danger.unread[data-v-7fec14ae]{background:var(--color-danger-light)}.admin-header__panel-item--success.unread[data-v-7fec14ae]{background:var(--color-success-light)}.admin-header__panel-empty[data-v-7fec14ae]{text-align:center;color:var(--color-text-muted);margin:0;padding:24px 16px;font-size:.875rem}.admin-header__user[data-v-7fec14ae]{border-right:1px solid var(--color-border);align-items:center;gap:10px;margin-right:4px;padding-right:12px;display:flex}.admin-header__avatar[data-v-7fec14ae]{background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:.875rem;font-weight:700;display:flex}.admin-header__user-info[data-v-7fec14ae]{flex-direction:column;gap:1px;display:flex}.admin-header__user-info strong[data-v-7fec14ae]{font-size:.8125rem;font-weight:600}.admin-header__user-info span[data-v-7fec14ae]{color:var(--color-text-muted);font-size:.6875rem}.admin-header__theme-glyph[data-v-7fec14ae]{color:inherit;justify-content:center;align-items:center;line-height:0;display:inline-flex}.admin-header__panel--theme[data-v-7fec14ae]{min-width:200px}.admin-header__theme-list[data-v-7fec14ae]{flex-direction:column;gap:6px;margin:0;padding:8px;list-style:none;display:flex}.admin-header__theme-option[data-v-7fec14ae]{text-align:right;width:100%;color:var(--color-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:.875rem;display:flex}.admin-header__theme-option-icon[data-v-7fec14ae]{background:var(--color-bg);border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-text);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.admin-header__theme-option-label[data-v-7fec14ae]{flex:1;min-width:0;font-weight:600}.admin-header__theme-option-check[data-v-7fec14ae]{color:var(--color-primary);flex-shrink:0}.admin-header__theme-option[data-v-7fec14ae]:hover{background:var(--color-border-light)}.admin-header__theme-option--active[data-v-7fec14ae]{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.admin-header__theme-option--active .admin-header__theme-option-icon[data-v-7fec14ae]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}@media (width<=767px){.admin-header[data-v-7fec14ae]{gap:12px;padding:0 16px}.admin-header__icon-label[data-v-7fec14ae]{display:none}.admin-header__icon-btn[data-v-7fec14ae]{min-width:40px;height:40px;padding:0}.admin-header__panel[data-v-7fec14ae]{top:var(--header-height);width:auto;max-height:calc(100dvh - var(--header-height) - 16px);position:fixed;left:16px;right:16px}.admin-header__panel-header[data-v-7fec14ae]{flex-direction:column;align-items:stretch}.admin-header__panel-action[data-v-7fec14ae]{align-self:flex-start}.admin-header__user-info[data-v-7fec14ae]{display:none}.admin-header__user[data-v-7fec14ae]{border-right:none;margin-right:0;padding-right:0}}.admin-drawer__brand[data-v-7a746e66]{text-align:center;border-bottom:1px solid #ffffff14;padding:20px 16px;position:relative}.admin-drawer__brand strong[data-v-7a746e66]{font-size:1.0625rem;font-weight:700;display:block}.admin-drawer__brand span[data-v-7a746e66]{color:#fff9;margin-top:4px;font-size:.75rem;display:block}.admin-drawer__close[data-v-7a746e66]{border-radius:var(--radius-sm);color:#fff;background:#ffffff14;border:none;width:32px;height:32px;font-size:1.25rem;line-height:1;position:absolute;top:16px;left:12px}.admin-drawer__nav[data-v-7a746e66]{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.admin-drawer__item[data-v-7a746e66]{border-radius:var(--radius-sm);color:#ffffffd9;text-align:right;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:12px 14px;font-size:.875rem;font-weight:500;display:flex}.admin-drawer__item.active[data-v-7a746e66]{background:var(--color-sidebar-active);font-weight:600}.admin-drawer__logout[data-v-7a746e66]{border-radius:var(--radius-sm);color:#f87171;background:0 0;border:none;align-items:center;gap:10px;margin:8px 10px 16px;padding:12px 14px;font-size:.875rem;display:flex}.admin-drawer__logout[data-v-7a746e66]:hover{color:#fca5a5;background:#f871711f}.admin-shell[data-v-435fffac]{height:100dvh;display:flex;overflow:hidden}.admin-shell__main[data-v-435fffac]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.admin-shell__content[data-v-435fffac]{flex:1;padding:24px 28px;overflow-y:auto}*,:before,:after,::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.page-shell{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.admin-panel{border-width:1px;border-color:var(--color-border);background-color:var(--color-surface);border-radius:.75rem}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.grid{display:grid}.col-span-full{grid-column:1/-1}.m-0{margin:0}.mb-3{margin-bottom:.75rem}.mr-auto{margin-right:auto}.mt-3{margin-top:.75rem}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.h1{height:.25rem}.h2{height:.5rem}.h3{height:.75rem}.h4{height:1rem}.flex{display:flex}.inline-flex{display:inline-flex}.flex-shrink{flex-shrink:1}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.resize{resize:both}.list-none{list-style-type:none}.items-center{align-items:center}.justify-end{justify-content:flex-end}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.b,.border{border-width:1px}.p-0{padding:0}.px{padding-left:1rem;padding-right:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-success{color:var(--color-success)}.text-inherit{color:inherit}.font-semibold{font-weight:600}.underline{text-decoration-line:underline}.no-underline{text-decoration:none}.tab{tab-size:4}.outline{outline-style:solid}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease{transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:IRANSans;src:url(/admin/assets/IRANSansWeb\(FaNum\)-BLA2CtIC.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/admin/assets/IRANSansWeb\(FaNum\)_Light-B637MNLG.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/admin/assets/IRANSansWeb\(FaNum\)_Medium-C2CKjrKB.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/admin/assets/IRANSansWeb\(FaNum\)_Bold-C8urhp07.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/admin/assets/IRANSansWeb\(FaNum\)_Black-BFAfOkt4.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--color-primary:#0a353c;--color-primary-hover:#072a2f;--color-primary-soft:#e8f4f1;--color-primary-dark:#062428;--color-primary-light:#e8f4f1;--color-primary-rgb:10, 53, 60;--color-accent-navy:#1b223c;--color-sidebar-bg:#0a353c;--color-sidebar-active:#0e454e;--color-sidebar-hover:#0e454e;--color-success:#1b8a5a;--color-success-light:#eaf8f1;--color-success-dark:#0d7a4d;--color-success-soft:#eaf8f1;--color-warning:#e8a317;--color-warning-light:#fff6e5;--color-warning-dark:#d97706;--color-danger:#dc3545;--color-danger-light:#fee2e2;--color-purple:#7c3aed;--color-purple-light:#ede9fe;--color-info:#3b6fa0;--color-info-light:#eef3f7;--color-bg:#f6f8f7;--color-surface:#fff;--color-elevated:#fff;--color-border:#e5e9e8;--color-border-light:#eef1f0;--color-text:#121212;--color-text-muted:#6b7280;--color-text-secondary:#6b7280;--admin-primary:var(--color-primary);--admin-muted:var(--color-text-muted);--admin-surface:var(--color-surface);--admin-border:var(--color-border);--admin-soft:var(--color-primary-soft);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #1018280a;--shadow-card:0 1px 3px #1018280f, 0 4px 16px #1018280a;--sidebar-width:240px;--header-height:72px;--font-family:"IRANSans", "Tahoma", sans-serif;--btn-primary-bg:#0a353c;--btn-primary-hover:#072a2f;--admin-desktop-min:1280px;--control-height:40px;--control-height-sm:32px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--transition-fast:.15s ease;--transition-base:.18s ease;--focus-ring:0 0 0 3px #0a353c2e}html.dark{--color-primary:#5eb8ad;--color-primary-hover:#7ad0c5;--color-primary-soft:#14353a;--color-primary-dark:#7ad0c5;--color-primary-light:#14353a;--color-primary-rgb:94, 184, 173;--color-accent-navy:#9bb0d0;--color-sidebar-bg:#0b0f14;--color-sidebar-active:#14353a;--color-sidebar-hover:#121821;--color-success:#3dd68c;--color-success-light:#123528;--color-success-dark:#6ee7b7;--color-success-soft:#123528;--color-warning:#f5c14a;--color-warning-light:#3a2f14;--color-warning-dark:#fcd34d;--color-danger:#f47979;--color-danger-light:#3f1d22;--color-purple:#b39afa;--color-purple-light:#2a2144;--color-info:#7b9cff;--color-info-light:#1b2740;--color-bg:#0b0f14;--color-surface:#121821;--color-elevated:#1a2230;--color-border:#2a3444;--color-border-light:#1a2230;--color-text:#eef2f8;--color-text-muted:#9aa8bc;--color-text-secondary:#9aa8bc;--shadow-sm:0 1px 2px #00000059;--shadow-card:0 1px 3px #0006, 0 4px 16px #00000059;--btn-primary-bg:#5eb8ad;--btn-primary-hover:#7ad0c5;--focus-ring:0 0 0 3px #5eb8ad47}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%;font-size:16px}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);direction:rtl;height:100%;margin:0;line-height:1.5}#app{height:100dvh}html,body,#app,#app *,.admin-modal-backdrop,.admin-modal-backdrop *{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}body::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}#app::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}#app ::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}.admin-modal-backdrop::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}.admin-modal-backdrop ::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}input,textarea,select{font-family:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.admin-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.admin-page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.admin-page-header__title{color:var(--color-text);margin:0;font-size:1.25rem;font-weight:700}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.875rem}.admin-table th{text-align:center;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:11px 16px;font-size:.8125rem;font-weight:600}.admin-table td{text-align:center;border-bottom:1px solid var(--color-border-light);vertical-align:middle;color:var(--color-text);padding:13px 16px}.admin-table tbody tr{transition:background var(--transition-fast)}.admin-table tbody tr:hover{background:var(--color-border-light)}.admin-table tbody tr.is-selected{background:var(--color-primary-soft)}.admin-table .col-numeric,.admin-table td.numeric,.admin-table th.numeric{text-align:center;font-variant-numeric:tabular-nums}.admin-table .col-status,.admin-table td.status,.admin-table th.status{text-align:center}.admin-table .col-actions,.admin-table td.actions,.admin-table th.actions{text-align:center;white-space:nowrap}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table--compact td,.admin-table--compact th{padding:10px 12px}.admin-btn{min-height:var(--control-height);border-radius:var(--radius-sm);transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 20px;font-size:.875rem;font-weight:600;display:inline-flex}.admin-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.admin-btn:active:not(:disabled){transform:translateY(1px)}.admin-btn--primary{background:var(--btn-primary-bg);color:#fff;border-color:var(--btn-primary-bg)}.admin-btn--primary:hover:not(:disabled){background:var(--btn-primary-hover)}.admin-btn--danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.admin-btn--danger:hover:not(:disabled){background:#c82333}.admin-btn--success{background:var(--color-success);color:#fff}.admin-btn--success:hover{background:var(--color-success-dark)}.admin-btn--outline{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.admin-btn--outline:hover{background:var(--color-border-light)}.admin-btn--outline-success{background:var(--color-surface);color:var(--color-success);border-color:var(--color-success)}.admin-btn--outline-danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-danger)}.admin-btn--outline-warning{background:var(--color-surface);color:var(--color-warning-dark);border-color:var(--color-warning)}.admin-btn--ghost{color:var(--color-primary);background:0 0;border-color:#0000;padding:6px 12px}.admin-btn--ghost:hover{background:var(--color-info-light)}.admin-btn--sm{min-height:var(--control-height-sm);padding:0 14px;font-size:.8125rem}.admin-btn--xs{min-height:28px;padding:0 10px;font-size:.75rem}.admin-btn__spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite admin-spin}.admin-btn--outline .admin-btn__spinner{border-color:rgba(var(--color-primary-rgb), .2);border-top-color:var(--color-primary)}@keyframes admin-spin{to{transform:rotate(360deg)}}.admin-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.admin-badge{white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;min-height:24px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.admin-badge--warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.admin-badge--purple{background:var(--color-purple-light);color:var(--color-purple)}.admin-badge--success{background:var(--color-success-light);color:var(--color-success-dark)}.admin-badge--danger{background:var(--color-danger-light);color:var(--color-danger)}.admin-badge--info{background:var(--color-info-light);color:var(--color-info)}.admin-badge--neutral{background:var(--color-border-light);color:var(--color-text-muted)}.admin-badge--delivered{background:var(--color-success-light);color:var(--color-success-dark)}.admin-tabs{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:0;display:flex;overflow:visible}.admin-tab{color:var(--color-text-muted);white-space:nowrap;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;margin-bottom:-1px;padding:12px 16px;font-size:.875rem;font-weight:500}.admin-tab:focus-visible{box-shadow:inset 0 -2px 0 var(--color-primary);outline:none}.admin-tab:hover{color:var(--color-text)}.admin-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.admin-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);padding:10px 14px;font-size:.875rem}.admin-input[type=number],.admin-input[type=tel],.admin-input[inputmode=numeric],.admin-input[inputmode=decimal],.admin-input[inputmode=tel],.admin-input[dir=ltr]{text-align:right}select.admin-input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.75' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-position:12px;background-repeat:no-repeat;padding-inline:14px 36px}html.dark select.admin-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%94a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.75' d='m7 10 5 5 5-5'/%3E%3C/svg%3E")}.admin-input:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:none}.admin-input--sm{max-width:120px;padding:6px 10px;font-size:.8125rem}.admin-stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:8px;padding:20px;display:flex}.admin-stat-card__label{color:var(--color-text-muted);margin:0;font-size:.8125rem}.admin-stat-card__value{margin:0;font-size:1.75rem;font-weight:700;line-height:1.2}.admin-stat-card__icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:4px;display:flex}.admin-stat-card__link{color:var(--color-primary);margin-top:auto;font-size:.75rem}.admin-link{color:var(--color-primary);font-size:.8125rem;font-weight:500}.admin-link:hover{text-decoration:underline}.admin-pagination{border-top:1px solid var(--color-border-light);color:var(--color-text-muted);justify-content:space-between;align-items:center;padding:16px;font-size:.8125rem;display:flex}.admin-pagination__pages{gap:4px;display:flex}.admin-pagination__page{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);justify-content:center;align-items:center;min-width:32px;height:32px;font-size:.8125rem;display:flex}.admin-pagination__page.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.admin-summary-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.admin-summary-item{background:var(--color-border-light);border-radius:var(--radius-sm);padding:12px 16px}.admin-summary-item__label{color:var(--color-text-muted);margin:0 0 4px;font-size:.75rem}.admin-summary-item__value{margin:0;font-size:.9375rem;font-weight:600}.admin-info-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.admin-info-row{align-items:center;gap:8px;font-size:.8125rem;display:flex}.admin-info-row__label{color:var(--color-text-muted)}.admin-info-row__value{font-weight:500}.admin-logo-par{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.125rem;font-weight:900;display:flex}.admin-logo-fam{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--color-primary);background:#f5f0e8;flex-direction:column;justify-content:center;align-items:center;font-size:.5rem;font-weight:700;line-height:1.2;display:flex}.admin-logo-fam span:first-child{font-size:.625rem}.admin-action-group{gap:8px;display:flex}.admin-section-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:16px;padding:20px}.admin-section-card__title{margin:0 0 16px;font-size:.9375rem;font-weight:700}.admin-form-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px;display:grid}.admin-form-field label{color:var(--color-text-muted);margin-bottom:6px;font-size:.8125rem;display:block}.admin-form-field textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;width:100%;min-height:80px;padding:10px 14px;font-size:.875rem}.admin-footer-actions{border-top:1px solid var(--color-border-light);gap:12px;margin-top:24px;padding-top:20px;display:flex}.admin-empty-placeholder{text-align:center;color:var(--color-text-muted);padding:48px 24px;font-size:.9375rem}.admin-form{flex-direction:column;gap:16px;display:flex}.admin-form__error{border-radius:var(--radius-sm);background:var(--color-danger-light);color:var(--color-danger);margin:0;padding:10px 12px;font-size:.8125rem}.admin-form__field{flex-direction:column;gap:6px;display:flex}.admin-form__field label{color:var(--color-text);font-size:.8125rem;font-weight:600}.admin-form__required{color:var(--color-danger)}.admin-form__textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;width:100%;min-height:80px;padding:10px 14px;font-family:inherit;font-size:.875rem}.admin-form__textarea:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:none}.admin-skeleton{background:linear-gradient(90deg, var(--color-border-light) 25%, var(--color-border) 50%, var(--color-border-light) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.2s ease-in-out infinite admin-skeleton}@keyframes admin-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.admin-skeleton,.admin-btn__spinner{animation:none}}.admin-form__row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media print{@page{margin:12mm}html.printing-order-detail body>:not(.admin-modal-backdrop){display:none!important}html.printing-order-detail .admin-modal-backdrop{z-index:auto!important;background:0 0!important;padding:0!important;display:block!important;position:static!important;inset:auto!important}html.printing-order-detail .admin-modal{width:100%!important;max-height:none!important;box-shadow:none!important;color:#111!important;background:#fff!important;border-radius:0!important;overflow:visible!important}html.printing-order-detail .admin-modal__header{border-bottom-color:#ddd!important;padding:0 0 12px!important}html.printing-order-detail .admin-modal__close,html.printing-order-detail .admin-modal__footer,html.printing-order-detail .no-print{display:none!important}html.printing-order-detail .admin-modal__body{max-height:none!important;padding:0!important;overflow:visible!important}html.printing-order-detail .admin-modal__title{color:#111!important}}:root{--page-padding-mobile:16px;--page-padding-tablet:20px;--page-padding-desktop:28px;--page-padding:var(--page-padding-mobile);--mobile-nav-height:0px;--drawer-width:min(300px, 88vw);--admin-desktop-min:1280px}@media (width>=768px){:root{--page-padding:var(--page-padding-tablet)}}@media (width>=1280px){:root{--page-padding:var(--page-padding-desktop)}}.desktop-only{display:none!important}.compact-only{display:block}@media (width>=1280px){.desktop-only{display:revert!important}.desktop-only.admin-shell__sidebar,.desktop-only.admin-sidebar{display:flex!important}.desktop-only.orders-page,.desktop-only.dashboard{display:block!important}.compact-only{display:none!important}}.admin-drawer-backdrop{z-index:900;opacity:0;visibility:hidden;background:#0f172a73;transition:opacity .2s,visibility .2s;position:fixed;inset:0}.admin-drawer-backdrop.open{opacity:1;visibility:visible}.admin-drawer{z-index:901;width:var(--drawer-width);background:var(--color-sidebar-bg);color:#fff;flex-direction:column;height:100dvh;transition:transform .25s;display:flex;position:fixed;top:0;right:0;overflow:hidden;transform:translate(100%)}.admin-drawer.open{transform:translate(0)}.admin-card-list{flex-direction:column;gap:10px;display:flex}.admin-card-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:right;width:100%;padding:14px 16px;transition:border-color .15s,background .15s}.admin-card-item:hover{border-color:#cbd5e1}.admin-card-item.selected{border-color:var(--color-primary);background:var(--color-info-light)}.admin-card-item__header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.admin-card-item__header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.admin-card-item__title{margin:0;font-size:.875rem;font-weight:700}.admin-card-item__meta{color:var(--color-text-muted);flex-wrap:wrap;gap:8px 16px;font-size:.8125rem;display:flex}.admin-card-item__meta span strong{color:var(--color-text);font-weight:600}.admin-card-item__actions{border-top:1px solid var(--color-border-light);flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;display:flex}.admin-detail-panel{z-index:850;background:var(--color-bg);flex-direction:column;transition:transform .25s;display:flex;position:fixed;inset:0;transform:translate(100%)}.admin-detail-panel.open{transform:translate(0)}.admin-detail-panel__header{padding:12px var(--page-padding);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;grid-template-columns:40px 1fr 40px;align-items:center;gap:12px;display:grid}.admin-detail-panel__back{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:40px;height:40px;color:var(--color-text);transition:background var(--transition-fast), border-color var(--transition-fast);flex-shrink:0;grid-column:1;justify-content:center;align-items:center;display:flex}.admin-detail-panel__back:hover{background:var(--color-border-light);border-color:var(--color-border)}.admin-detail-panel__title{text-align:center;grid-column:2;margin:0;font-size:1rem;font-weight:700}.admin-detail-panel__body{padding:var(--page-padding);flex:1;overflow-y:auto}.compact-page-header{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.compact-page-header__row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.compact-page-header__title{margin:0;font-size:1.125rem;font-weight:700}.compact-page-header__actions{flex-wrap:wrap;gap:8px;display:flex}@media (width>=768px){.compact-page-header__row{align-items:center}.compact-page-header__actions{flex-shrink:0}}.compact-stats-grid{grid-template-columns:1fr;gap:12px;margin-bottom:16px;display:grid}@media (width>=480px){.compact-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.compact-stats-grid{grid-template-columns:repeat(4,1fr)}}.compact-section-grid{flex-direction:column;gap:16px;display:flex}.compact-section-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:16px}.compact-section-card__title{margin:0 0 12px;font-size:.9375rem;font-weight:700}@media (width<=1279px){.admin-shell__content{padding:var(--page-padding)}.admin-summary-grid,.admin-form-grid,.admin-info-grid{grid-template-columns:repeat(2,1fr)}.admin-pagination{flex-direction:column;align-items:stretch;gap:12px}.admin-pagination__pages{flex-wrap:wrap;justify-content:center}.admin-tab{padding:10px 12px;font-size:.8125rem}.admin-page-header .admin-action-group{flex-wrap:wrap;gap:8px}}@media (width<=767px){:root{--header-height:60px}.admin-page-header{flex-direction:column;align-items:stretch}.admin-page-header .admin-btn,.admin-page-header .admin-action-group{width:100%}.admin-page-header .admin-action-group .admin-btn{flex:1;min-width:fit-content}.admin-summary-grid,.admin-form-grid,.admin-info-grid{grid-template-columns:1fr}.admin-footer-actions{flex-direction:column}.admin-footer-actions .admin-btn{width:100%}.admin-form__row{grid-template-columns:1fr}.admin-tab{padding:8px 10px;font-size:.75rem}.admin-modal-backdrop{align-items:flex-end;padding:0}.admin-modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:100%;max-height:92dvh}.checks-page__footer{flex-direction:column;align-items:stretch}.checks-page__footer .admin-action-group{flex-direction:column;width:100%}.checks-page__footer .admin-action-group .admin-btn{width:100%}} diff --git a/dist/assets/index-CXa4EMLW.js b/dist/assets/index-CXa4EMLW.js deleted file mode 100644 index 2ad0640..0000000 --- a/dist/assets/index-CXa4EMLW.js +++ /dev/null @@ -1,382 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-w-SE2utd.js","assets/_plugin-vue_export-helper-OaxA6A2f.js","assets/LoginView-IFH_z0sG.css","assets/DashboardView-cyaZFrOQ.js","assets/StatusBadge-Cg2zTE2k.js","assets/orderStatus-CYVblRJB.js","assets/StatusBadge-D4wGJ-Ud.css","assets/DashboardView-Tmb__ujh.css","assets/OrdersView-DGNYhZg3.js","assets/AdminSelect-9UfEJQzN.js","assets/AdminSelect-DRq_EKw9.css","assets/adminLabels-Cz9ccm1Z.js","assets/OrdersView-BdQzhX-C.css","assets/OrderPricingView-vS7IKrtc.js","assets/AdminPageSkeleton-CTgUqaAu.js","assets/AdminPageSkeleton-Gm3IJwUK.css","assets/AdminCurrencyInput-D6MsBhvR.js","assets/AdminCurrencyInput-QPh70it7.css","assets/OrderPricingView-D4tU9mWx.css","assets/ChecksListView-DgtZLWw5.js","assets/ChecksListView-DeOu1gFo.css","assets/CheckManagementView-D9Dy0r7I.js","assets/CheckManagementView-C1ozixF5.css","assets/CompaniesView-C28l_bkY.js","assets/BaseSwitch-TV5Yvtf7.js","assets/BaseSwitch-CCZjYqBV.css","assets/BaseEmptyState-BmO9aDcK.js","assets/BaseEmptyState-Df57vCUi.css","assets/ActiveSwitchCell-DJZQHZ-8.js","assets/CompaniesView-BubE_GYW.css","assets/BankAccountsView-CjjgU3ea.js","assets/BankAccountsView-jIdT6saw.css","assets/CustomersView-D2DfLX0j.js","assets/CustomersView-Bx7jWwze.css","assets/ProductsView-NLVncfjZ.js","assets/AdminImagePicker-C4toq7MG.js","assets/AdminImagePicker-BeE_kWbB.css","assets/ProductsView-DdADDBgQ.css","assets/CategoriesView-DAT9P8-Q.js","assets/CategoriesView-D7xsOZr4.css","assets/BannersView-KHMLub3-.js","assets/BannersView-TRKkvRxh.css","assets/CatalogsView-DJJrDHxo.js","assets/CatalogsView-yskXIlwQ.css","assets/CatalogRequestsView-DQu3_M_v.js","assets/CatalogRequestsView-DmO_C6eq.css","assets/BrandsView-Il4Q4zqB.js","assets/BrandsView-B85xOFCI.css","assets/SuggestionsView-SvmEopB3.js","assets/SuggestionsView-ztSfUAsG.css","assets/StockAlertsView-B7WDBhjL.js","assets/StockAlertsView-CBkZ5P6m.css","assets/LevelsView-Cos5Q_ra.js","assets/LevelsView-Bwpvfee6.css","assets/CashPaymentsView-BmPMXCl-.js","assets/CashPaymentsView-DDBlTRfX.css","assets/ShippingView-Ck9kASgn.js","assets/ShippingView-G0QuXsX0.css","assets/ReportsView-uTGceQoW.js","assets/ReportsView-dONYkP5k.css","assets/SettingsView-BSpASBj1.js","assets/SettingsView-CfZQdUlT.css","assets/UsersView-OSVbK-od.js","assets/UsersView-DSH2HjHE.css","assets/NotFoundView-BAomeX7E.js","assets/NotFoundView-CY2m4474.css"])))=>i.map(i=>d[i]); -import{$ as e,A as t,B as n,C as r,Ct as i,D as a,E as o,Et as s,F as c,G as l,H as u,I as d,J as f,K as p,L as m,M as h,N as g,O as _,Ot as v,P as y,Q as ee,R as b,S as x,St as S,T as C,Tt as w,U as te,W as T,X as ne,Y as re,Z as E,_ as D,_t as ie,a as ae,at as O,b as oe,bt as k,c as A,ct as se,d as j,dt as ce,et as le,f as ue,ft as de,g as M,gt as fe,h as N,ht as pe,i as me,it as P,j as he,k as ge,kt as _e,l as ve,lt as ye,m as be,mt as xe,n as Se,nt as Ce,o as we,ot as Te,pt as F,q as Ee,r as I,rt as De,s as L,st as Oe,t as ke,tt as Ae,u as R,ut as je,v as Me,vt as Ne,w as Pe,wt as Fe,x as z,xt as Ie,y as Le,yt as Re,z as ze}from"./_plugin-vue_export-helper-OaxA6A2f.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Be=void 0,Ve=typeof window<`u`&&window.trustedTypes;if(Ve)try{Be=Ve.createPolicy(`vue`,{createHTML:e=>e})}catch{}var He=Be?e=>Be.createHTML(e):e=>e,Ue=`http://www.w3.org/2000/svg`,We=`http://www.w3.org/1998/Math/MathML`,B=typeof document<`u`?document:null,Ge=B&&B.createElement(`template`),Ke={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?B.createElementNS(Ue,e):t===`mathml`?B.createElementNS(We,e):n?B.createElement(e,{is:n}):B.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>B.createTextNode(e),createComment:e=>B.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>B.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{Ge.innerHTML=He(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=Ge.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},V=`transition`,qe=`animation`,Je=Symbol(`_vtc`),Ye={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Xe=ye({},Se,Ye),Ze=(e,t=[])=>{F(e)?e.forEach(e=>e(...t)):e&&e(...t)},Qe=e=>e?F(e)?e.some(e=>e.length>1):e.length>1:!1;function $e(e){let t={};for(let n in e)n in Ye||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:l=o,appearToClass:u=s,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,m=et(i),h=m&&m[0],g=m&&m[1],{onBeforeEnter:_,onEnter:v,onEnterCancelled:y,onLeave:ee,onLeaveCancelled:b,onBeforeAppear:x=_,onAppear:S=v,onAppearCancelled:C=y}=t,w=(e,t,n,r)=>{e._enterCancelled=r,U(e,t?u:s),U(e,t?l:o),n&&n()},te=(e,t)=>{e._isLeaving=!1,U(e,d),U(e,p),U(e,f),t&&t()},T=e=>(t,n)=>{let i=e?S:v,o=()=>w(t,e,n);Ze(i,[t,o]),nt(()=>{U(t,e?c:a),H(t,e?u:s),Qe(i)||it(t,r,h,o)})};return ye(t,{onBeforeEnter(e){Ze(_,[e]),H(e,a),H(e,o)},onBeforeAppear(e){Ze(x,[e]),H(e,c),H(e,l)},onEnter:T(!1),onAppear:T(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>te(e,t);H(e,d),e._enterCancelled?(H(e,f),ct(e)):(ct(e),H(e,f)),nt(()=>{e._isLeaving&&(U(e,d),H(e,p),Qe(ee)||it(e,r,g,n))}),Ze(ee,[e,n])},onEnterCancelled(e){w(e,!1,void 0,!0),Ze(y,[e])},onAppearCancelled(e){w(e,!0,void 0,!0),Ze(C,[e])},onLeaveCancelled(e){te(e),Ze(b,[e])}})}function et(e){if(e==null)return null;if(fe(e))return[tt(e.enter),tt(e.leave)];{let t=tt(e);return[t,t]}}function tt(e){return _e(e)}function H(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[Je]||(e[Je]=new Set)).add(t)}function U(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[Je];n&&(n.delete(t),n.size||(e[Je]=void 0))}function nt(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var rt=0;function it(e,t,n,r){let i=e._endId=++rt,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=at(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u(n[e]||``).split(`, `),i=r(`${V}Delay`),a=r(`${V}Duration`),o=ot(i,a),s=r(`${qe}Delay`),c=r(`${qe}Duration`),l=ot(s,c),u=null,d=0,f=0;t===V?o>0&&(u=V,d=o,f=a.length):t===qe?l>0&&(u=qe,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?V:qe:null,f=u?u===V?a.length:c.length:0);let p=u===V&&/\b(?:transform|all)(?:,|$)/.test(r(`${V}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function ot(e,t){for(;e.lengthst(t)+st(e[n])))}function st(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function ct(e){return(e?e.ownerDocument:document).body.offsetHeight}function lt(e,t,n){let r=e[Je];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var ut=Symbol(`_vod`),dt=Symbol(`_vsh`),ft=Symbol(``);function pt(e){let n=D();if(!n)return;let r=n.ut=(t=e(n.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${n.uid}"]`)).forEach(e=>ht(e,t))},i=()=>{let t=e(n.proxy);n.ce?ht(n.ce,t):mt(n.subTree,t),r(t)};Pe(()=>{t(i)}),C(()=>{b(i,Te,{flush:`post`});let e=new MutationObserver(i);e.observe(n.subTree.el.parentNode,{childList:!0}),o(()=>e.disconnect())})}function mt(e,t){if(e.shapeFlag&128){let n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{mt(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)ht(e.el,t);else if(e.type===I)e.children.forEach(e=>mt(e,t));else if(e.type===me){let{el:n,anchor:r}=e;for(;n&&(ht(n,t),n!==r);)n=n.nextSibling}}function ht(e,t){if(e.nodeType===1){let n=e.style,r=``;for(let e in t){let i=s(t[e]);n.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}n[ft]=r}}var gt=/(?:^|;)\s*display\s*:/;function _t(e,t,n){let r=e.style,i=k(n),a=!1;if(n&&!i){if(t)if(k(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??yt(r,t,``)}else for(let e in t)n[e]??yt(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?yt(r,i,``):Ct(e,i,!k(t)&&t?t[i]:void 0,o)||yt(r,i,o)}}else if(i){if(t!==n){let e=r[ft];e&&(n+=`;`+e),r.cssText=n,a=gt.test(n)}}else t&&e.removeAttribute(`style`);ut in e&&(e[ut]=a?r.display:``,e[dt]&&(r.display=`none`))}var vt=/\s*!important$/;function yt(e,t,n){if(F(n))n.forEach(n=>yt(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=St(e,t);vt.test(n)?e.setProperty(je(r),n.replace(vt,``),`important`):e[r]=n}}var bt=[`Webkit`,`Moz`,`ms`],xt={};function St(e,t){let n=xt[t];if(n)return n;let r=Oe(t);if(r!==`filter`&&r in e)return xt[t]=r;r=se(r);for(let n=0;nNt||=(Pt.then(()=>Nt=0),Date.now());function It(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(F(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;ne.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Rt=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?lt(e,r,o):t===`style`?_t(e,n,r):ie(t)?pe(t)||kt(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):zt(e,t,r,o))?(Et(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&Tt(e,t,r,o,a,t!==`value`)):e._isVueCE&&(Bt(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!k(r)))?Et(e,Oe(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Tt(e,t,r,o))};function zt(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&Lt(t)&&xe(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return Lt(t)&&k(n)?!1:t in e}function Bt(e,t){let n=e._def.props;if(!n)return!1;let r=Oe(t);return Array.isArray(n)?n.some(e=>Oe(e)===r):Object.keys(n).some(e=>Oe(e)===r)}var Vt=new WeakMap,Ht=new WeakMap,Ut=Symbol(`_moveCb`),Wt=Symbol(`_enterCb`),Gt=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:ye({},Xe,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=D(),r=m(),i,o;return a(()=>{if(!i.length)return;let t=e.moveClass||`${e.name||`v`}-move`;if(!Xt(i[0].el,n.vnode.el,t)){i=[];return}i.forEach(Kt),i.forEach(qt);let r=i.filter(Jt);ct(n.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;H(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[Ut]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[Ut]=null,U(n,t))};n.addEventListener(`transitionend`,i)}),i=[]}),()=>{let a=Ae(e),s=$e(a),l=a.tag||I;if(i=[],o)for(let e=0;e{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display=`none`;let a=t.nodeType===1?t:t.parentNode;a.appendChild(r);let{hasTransform:o}=at(r);return a.removeChild(r),o}var G=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return F(t)?e=>de(t,e):t};function Zt(e){e.target.composing=!0}function Qt(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var K=Symbol(`_assign`);function $t(e,t,n){return t&&(e=e.trim()),n&&(e=Fe(e)),e}var en={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[K]=G(i);let a=r||i.props&&i.props.type===`number`;W(e,t?`change`:`input`,t=>{t.target.composing||e[K]($t(e.value,n,a))}),(n||a)&&W(e,`change`,()=>{e.value=$t(e.value,n,a)}),t||(W(e,`compositionstart`,Zt),W(e,`compositionend`,Qt),W(e,`change`,Qt))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[K]=G(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?Fe(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},tn={deep:!0,created(e,t,n){e[K]=G(n),W(e,`change`,()=>{let t=e._modelValue,n=sn(e),r=e.checked,a=e[K];if(F(t)){let e=i(t,n),o=e!==-1;if(r&&!o)a(t.concat(n));else if(!r&&o){let n=[...t];n.splice(e,1),a(n)}}else if(Ne(t)){let e=new Set(t);r?e.add(n):e.delete(n),a(e)}else a(cn(e,r))})},mounted:nn,beforeUpdate(e,t,n){e[K]=G(n),nn(e,t,n)}};function nn(e,{value:t,oldValue:n},r){e._modelValue=t;let a;if(F(t))a=i(t,r.props.value)>-1;else if(Ne(t))a=t.has(r.props.value);else{if(t===n)return;a=S(t,cn(e,!0))}e.checked!==a&&(e.checked=a)}var rn={created(e,{value:t},n){e.checked=S(t,n.props.value),e[K]=G(n),W(e,`change`,()=>{e[K](sn(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[K]=G(r),t!==n&&(e.checked=S(t,r.props.value))}},an={deep:!0,created(e,{value:t,modifiers:{number:n}},i){e._modelValue=t,W(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?Fe(sn(e)):sn(e));e[K](e.multiple?Ne(e._modelValue)?new Set(t):t:t[0]),e._assigning=!0,r(()=>{e._assigning=!1})}),e[K]=G(i)},mounted(e,{value:t}){on(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[K]=G(n)},updated(e,{value:t}){e._assigning||on(e,t)}};function on(e,t){let n=e.multiple,r=F(t);if(!(n&&!r&&!Ne(t))){for(let a=0,o=e.options.length;aString(e)===String(s)):i(t,s)>-1}else o.selected=t.has(s);else if(S(sn(o),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function sn(e){return`_value`in e?e._value:e.value}function cn(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var ln={created(e,t,n){dn(e,t,n,null,`created`)},mounted(e,t,n){dn(e,t,n,null,`mounted`)},beforeUpdate(e,t,n,r){dn(e,t,n,r,`beforeUpdate`)},updated(e,t,n,r){dn(e,t,n,r,`updated`)}};function un(e,t){switch(e){case`SELECT`:return an;case`TEXTAREA`:return en;default:switch(t){case`checkbox`:return tn;case`radio`:return rn;default:return en}}}function dn(e,t,n,r,i){let a=un(e.tagName,n.props&&n.props.type)[i];a&&a(e,t,n,r)}var fn=[`ctrl`,`shift`,`alt`,`meta`],pn={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>fn.some(n=>e[`${n}Key`]&&!t.includes(n))},q=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=je(n.key);if(t.some(e=>e===r||mn[e]===r))return e(n)}))},gn=ye({patchProp:Rt},Ke),_n;function vn(){return _n||=ue(gn)}var yn=((...e)=>{let t=vn().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=xn(e);if(!r)return;let i=t._component;!xe(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,bn(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function bn(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function xn(e){return k(e)?document.querySelector(e):e}var Sn=typeof window<`u`,Cn,wn=e=>Cn=e,Tn=Symbol();function En(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Dn=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function On(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function kn(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Pn(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function An(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function jn(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var Mn=typeof navigator==`object`?navigator:{userAgent:``},Nn=/Macintosh/.test(Mn.userAgent)&&/AppleWebKit/.test(Mn.userAgent)&&!/Safari/.test(Mn.userAgent),Pn=Sn?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Nn?Fn:`msSaveOrOpenBlob`in Mn?In:Ln:()=>{};function Fn(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?jn(r):An(r.href)?kn(e,t,n):(r.target=`_blank`,jn(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){jn(r)},0))}function In(e,t=`download`,n){if(typeof e==`string`)if(An(e))kn(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){jn(t)})}else navigator.msSaveOrOpenBlob(On(e,n),t)}function Ln(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return kn(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Dn.HTMLElement))||`safari`in Dn,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||Nn)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:Rn}=Object;function zn(){let e=te(!0),t=e.run(()=>E({})),n=[],r=[],i=Ee({install(e){wn(i),i._a=e,e.provide(Tn,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var Bn=()=>{};function Vn(e,t,n,r=Bn){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&T()&&f(i),i}function Hn(e,...t){e.forEach(e=>{e(...t)})}var Un=e=>e(),Wn=Symbol(),Gn=Symbol();function Kn(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=En(i)&&En(r)&&Object.hasOwn(e,n)&&!p(r)&&!l(r)?Kn(i,r):r}return e}var qn=Symbol();function Jn(e){return!e||typeof e!=`object`||!Object.hasOwn(e,qn)}var{assign:Yn}=Object;function Xn(e){return!!(p(e)&&e.effect)}function Zn(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),Yn(De(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Ee(L(()=>{wn(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Qn(e,l,t,n,r,!0),c}function Qn(e,t,n={},i,a,o){let s,c=Yn({actions:{}},n),u={deep:!0},d,f,m=new Set,h=new Set,g,_=i.state.value[e];!o&&!_&&(i.state.value[e]={});let v;function y(t){let n;d=f=!1,typeof t==`function`?(t(i.state.value[e]),n={type:`patch function`,storeId:e,events:g}):(Kn(i.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:g});let a=v=Symbol();r().then(()=>{v===a&&(d=!0)}),f=!0,Hn(m,n,i.state.value[e])}let ee=o?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{Yn(e,t)})}:Bn;function x(){s.stop(),m.clear(),h.clear(),i._s.delete(e)}let S=(t,n=``)=>{if(Wn in t)return t[Gn]=n,t;let r=function(){wn(i);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}Hn(h,{args:n,name:r[Gn],store:w,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:w,n)}catch(e){throw Hn(o,e),e}return l instanceof Promise?l.then(e=>(Hn(a,e),e)).catch(e=>(Hn(o,e),Promise.reject(e))):(Hn(a,l),l)};return r[Wn]=!0,r[Gn]=n,r},C={_p:i,$id:e,$onAction:Vn.bind(null,h),$patch:y,$reset:ee,$subscribe(t,n={}){if(m.has(t))return Bn;let r=Vn(m,t,n.detached,()=>a()),a=s.run(()=>b(()=>i.state.value[e],r=>{(n.flush===`sync`?f:d)&&t({storeId:e,type:`direct`,events:g},r)},Yn({},u,n)));return r},$dispose:x},w=re(C);i._s.set(e,w);let T=(i._a&&i._a.runWithContext||Un)(()=>i._e.run(()=>(s=te()).run(()=>t({action:S}))));for(let t in T){let n=T[t];p(n)&&!Xn(n)||l(n)?o||(_&&Jn(n)&&(p(n)?n.value=_[t]:Kn(n,_[t])),i.state.value[e][t]=n):typeof n==`function`&&(T[t]=S(n,t),c.actions[t]=n)}return Yn(w,T),Yn(Ae(w),T),Object.defineProperty(w,"$state",{get:()=>i.state.value[e],set:e=>{y(t=>{Yn(t,e)})}}),i._p.forEach(e=>{let t=s.run(()=>e({store:w,app:i._a,pinia:i,options:c}));Yn(w,t)}),_&&o&&n.hydrate&&n.hydrate(w.$state,_),d=!0,f=!0,w}function $n(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=oe();return n||=o?z(Tn,null):null,n&&wn(n),n=Cn,n._s.has(e)||(i?Qn(e,t,r,n):Zn(e,r,n)),n._s.get(e)}return a.$id=e,a}var er={"vuesax-linear:add":` - - - -`,"vuesax-linear:arrow-down":` - - -`,"vuesax-linear:arrow-left-1":` - - -`,"vuesax-linear:arrow-right-1":` - - -`,"vuesax-linear:bag-2":` - - - - - -`,"vuesax-linear:bag-cross":` - - - - - - - -`,"vuesax-linear:box-1":` - - - - -`,"vuesax-linear:box-remove":` - - - - - - - -`,"vuesax-linear:box-search":` - - - - - - -`,"vuesax-linear:building":` - - - - - - - -`,"vuesax-linear:buildings":` - - - - - - - - -`,"vuesax-linear:calendar":` - - - - - - - - - - - -`,"vuesax-linear:call":` - - -`,"vuesax-linear:card":` - - - - - -`,"vuesax-linear:card-receive":` - - - - - - - -`,"vuesax-linear:category":` - - - - - -`,"vuesax-linear:chart-2":` - - - - -`,"vuesax-linear:clipboard-close":` - - - - - -`,"vuesax-linear:clock":` - - - - - -`,"vuesax-linear:close-circle":` - - - - -`,"vuesax-linear:cpu":` - - - - - - - - - - - - - - - -`,"vuesax-linear:diamonds":` - - - -`,"vuesax-linear:document-text":` - - - - - -`,"vuesax-linear:edit-2":` - - - - -`,"vuesax-linear:element-3":` - - - - - -`,"vuesax-linear:eye":` - - - -`,"vuesax-linear:eye-slash":` - - - - - - - -`,"vuesax-linear:filter":` - - - -`,"vuesax-linear:flash":` - - - - - -`,"vuesax-linear:headphone":` - - -`,"vuesax-linear:home":` - - - -`,"vuesax-linear:info-circle":` - - - - -`,"vuesax-linear:lamp-on":` - - - -`,"vuesax-linear:location":` - - - -`,"vuesax-linear:lock":` - - - - - - -`,"vuesax-linear:logout":` - - - - -`,"vuesax-linear:menu":` - - - - -`,"vuesax-linear:message":` - - - - - -`,"vuesax-linear:mobile":` - - - - -`,"vuesax-linear:money-4":` - - - - - - - -`,"vuesax-linear:monitor":` - - - - - -`,"vuesax-linear:moon":` - - -`,"vuesax-linear:more":` - - - - -`,"vuesax-linear:note-remove":` - - - - - - - - -`,"vuesax-linear:notification":` - - - - -`,"vuesax-linear:pen-add":` - - - - - - - - -`,"vuesax-linear:people":` - - - - - - - -`,"vuesax-linear:personalcard":` - - - - - - - -`,"vuesax-linear:printer":` - - - - - - -`,"vuesax-linear:profile-2user":` - - - - - -`,"vuesax-linear:profile-circle":` - - - - -`,"vuesax-linear:receipt-search":` - - - - - - -`,"vuesax-linear:search-normal":` - - - -`,"vuesax-linear:search-status":` - - - - - -`,"vuesax-linear:setting-2":` - - - -`,"vuesax-linear:shopping-bag":` - - - - -`,"vuesax-linear:sms":` - - - -`,"vuesax-linear:sun-1":` - - - -`,"vuesax-linear:tick-circle":` - - - -`,"vuesax-linear:timer-1":` - - - - -`,"vuesax-linear:trash":` - - - - - - -`,"vuesax-linear:truck-time":` - - - - - - - - -`,"vuesax-linear:verify":` - - - -`,"vuesax-linear:wallet":` - - - - -`,"vuesax-linear:warning-2":` - - - - -`},tr=[`aria-hidden`,`innerHTML`],nr=ke(M({inheritAttrs:!1,__name:`BasicIcon`,props:{icon:{},color:{default:null},size:{default:24},strokeWidth:{default:1.5}},setup(e){pt(e=>({v196ba43b:String(t.strokeWidth)}));let t=e,n=d(),r=L(()=>{let e=er[t.icon];if(!e)return``;let n=String(t.size);return e.replace(/\swidth="[^"]*"/,` width="${n}"`).replace(/\sheight="[^"]*"/,` height="${n}"`).replace(/stroke="#[^"]*"/g,`stroke="currentColor"`)}),i=L(()=>({color:t.color||void 0,width:`${t.size}px`,height:`${t.size}px`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,lineHeight:0,flexShrink:0})),a=L(()=>n[`aria-hidden`]??!0);return(e,t)=>(_(),j(`span`,x({class:`basic-icon`},O(n),{style:i.value,"aria-hidden":a.value,innerHTML:r.value}),null,16,tr))}}),[[`__scopeId`,`data-v-159253ae`]]),rr=re({items:[]});function ir(e,t){let n=crypto.randomUUID();rr.items.push({id:n,message:e,tone:t}),window.setTimeout(()=>ar(n),3200)}function ar(e){let t=rr.items.findIndex(t=>t.id===e);t!==-1&&rr.items.splice(t,1)}function or(){return{toasts:Ce(rr,`items`),dismiss:ar,success:e=>ir(e,`success`),error:e=>ir(e,`error`),info:e=>ir(e,`info`),warning:e=>ir(e,`warning`)}}var sr={class:`toast-container`,"aria-live":`polite`,"aria-relevant":`additions`},cr={class:`toast__icon`,"aria-hidden":`true`},lr={class:`toast__message`},ur=[`onClick`],dr=ke(M({__name:`ToastContainer`,setup(e){let{toasts:t,dismiss:r}=or(),i={success:`vuesax-linear:tick-circle`,error:`vuesax-linear:close-circle`,warning:`vuesax-linear:warning-2`,info:`vuesax-linear:info-circle`};function a(e,t){t.preventDefault(),t.stopPropagation(),r(e)}return(e,r)=>(_(),j(`div`,sr,[N(Gt,{name:`toast`,tag:`div`,class:`toast-container__list`},{default:n(()=>[(_(!0),j(I,null,he(O(t),e=>(_(),j(`div`,{key:e.id,class:w([`toast`,`toast--${e.tone}`]),role:`status`},[A(`span`,cr,[N(nr,{icon:i[e.tone]||`vuesax-linear:info-circle`,size:20,"stroke-width":1.5},null,8,[`icon`])]),A(`p`,lr,v(e.message),1),A(`button`,{type:`button`,class:`toast__close`,"aria-label":`بستن`,onClick:t=>a(e.id,t)},` × `,8,ur)],2))),128))]),_:1})]))}}),[[`__scopeId`,`data-v-223aafac`]]),fr=[`aria-label`],pr={class:`admin-modal__header`},mr={class:`admin-modal__title`},hr={class:`admin-modal__body`},gr={key:0,class:`admin-modal__footer`},_r=ke(M({__name:`BaseModal`,props:{open:{type:Boolean},title:{},size:{}},emits:[`close`],setup(e,{emit:t}){let n=t;function r(e){e.target===e.currentTarget&&n(`close`)}return(t,i)=>(_(),ve(ae,{to:`body`},[e.open?(_(),j(`div`,{key:0,class:`admin-modal-backdrop`,role:`presentation`,onClick:r},[A(`div`,{class:w([`admin-modal`,{"admin-modal--lg":e.size===`lg`,"admin-modal--xl":e.size===`xl`}]),role:`dialog`,"aria-modal":`true`,"aria-label":e.title,onClick:i[1]||=q(()=>{},[`stop`])},[A(`header`,pr,[A(`h2`,mr,v(e.title),1),A(`button`,{type:`button`,class:`admin-modal__close`,"aria-label":`بستن`,onClick:i[0]||=e=>n(`close`)},` × `)]),A(`div`,hr,[h(t.$slots,`default`,{},void 0,!0)]),t.$slots.footer?(_(),j(`footer`,gr,[h(t.$slots,`footer`,{},void 0,!0)])):R(``,!0)],10,fr)])):R(``,!0)]))}}),[[`__scopeId`,`data-v-a52d3eeb`]]),vr=re({open:!1,loading:!1,title:``,message:``,confirmLabel:`تأیید`,cancelLabel:`انصراف`,tone:`primary`,resolve:null});function yr(){return vr}function br(e){return new Promise(t=>{Object.assign(vr,{open:!0,loading:!1,title:e.title,message:e.message,confirmLabel:e.confirmLabel??`تأیید`,cancelLabel:e.cancelLabel??`انصراف`,tone:e.tone??`primary`,resolve:t})})}function xr(e){vr.resolve?.(e),vr.open=!1,vr.loading=!1,vr.resolve=null}function Sr(e){vr.loading=e}var Cr={class:`confirm-dialog__message`},wr=[`disabled`],Tr=[`disabled`],Er={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},Dr=ke(M({__name:`ConfirmDialog`,setup(e){let t=yr();function r(){xr(!1)}function i(){Sr(!0),xr(!0)}return(e,a)=>(_(),ve(_r,{open:O(t).open,title:O(t).title,size:`md`,onClose:r},{footer:n(()=>[A(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:O(t).loading,onClick:r},v(O(t).cancelLabel),9,wr),A(`button`,{type:`button`,class:w([`admin-btn`,O(t).tone===`danger`?`admin-btn--danger`:`admin-btn--primary`]),disabled:O(t).loading,onClick:i},[O(t).loading?(_(),j(`span`,Er)):R(``,!0),be(` `+v(O(t).confirmLabel),1)],10,Tr)]),default:n(()=>[A(`p`,Cr,v(O(t).message),1)]),_:1},8,[`open`,`title`]))}}),[[`__scopeId`,`data-v-47354e67`]]),Or=M({__name:`App`,setup(e){return(e,t)=>{let n=g(`RouterView`);return _(),j(I,null,[N(n),N(dr),N(Dr)],64)}}});function kr(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function Ar(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&kr(e.default)}var J=Object.assign;function jr(e,t){let n={};for(let r in t){let i=t[r];n[r]=Y(i)?i.map(e):e(i)}return n}var Mr=()=>{},Y=Array.isArray;function Nr(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var Pr=Symbol(``);function Fr(e,t){return J(Error(),{type:e,[Pr]:!0},t)}function X(e,t){return e instanceof Error&&Pr in e&&(t==null||!!(e.type&t))}var Ir=Symbol(``),Lr=Symbol(``),Rr=Symbol(``),zr=Symbol(``),Br=Symbol(``);function Vr(){return z(Rr)}function Hr(e){return z(zr)}var Ur=typeof document<`u`,Wr=/#/g,Gr=/&/g,Kr=/\//g,qr=/=/g,Jr=/\?/g,Yr=/\+/g,Xr=/%5B/g,Zr=/%5D/g,Qr=/%5E/g,$r=/%60/g,ei=/%7B/g,ti=/%7C/g,ni=/%7D/g,ri=/%20/g;function ii(e){return e==null?``:encodeURI(``+e).replace(ti,`|`).replace(Xr,`[`).replace(Zr,`]`)}function ai(e){return ii(e).replace(ei,`{`).replace(ni,`}`).replace(Qr,`^`)}function oi(e){return ii(e).replace(Yr,`%2B`).replace(ri,`+`).replace(Wr,`%23`).replace(Gr,`%26`).replace($r,"`").replace(ei,`{`).replace(ni,`}`).replace(Qr,`^`)}function si(e){return oi(e).replace(qr,`%3D`)}function ci(e){return ii(e).replace(Wr,`%23`).replace(Jr,`%3F`)}function li(e){return ci(e).replace(Kr,`%2F`)}function ui(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var di=/\/$/,fi=e=>e.replace(di,``);function pi(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=xi(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:ui(o)}}function mi(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function hi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function gi(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&_i(t.matched[r],n.matched[i])&&vi(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function _i(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function vi(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!yi(e[n],t[n]))return!1;return!0}function yi(e,t){return Y(e)?bi(e,t):Y(t)?bi(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function bi(e,t){return Y(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function xi(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var Si={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function Ci(e){if(!e)if(Ur){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),fi(e)}var wi=/^[^#]+#/;function Ti(e,t){return e.replace(wi,`#`)+t}function Ei(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Di=()=>({left:window.scrollX,top:window.scrollY});function Oi(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=Ei(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function ki(e,t){return(history.state?history.state.position-t:-1)+e}var Ai=new Map;function ji(e,t){Ai.set(e,t)}function Mi(e){let t=Ai.get(e);return Ai.delete(e),t}function Ni(e){return typeof e==`string`||e&&typeof e==`object`}function Pi(e){return typeof e==`string`||typeof e==`symbol`}function Fi(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&oi(e)):[r&&oi(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Li(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=Y(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function Ri(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function zi(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(Fr(4,{from:n,to:t})):e instanceof Error?c(e):Ni(e)?c(Fr(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Bi(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(kr(s)){let c=(s.__vccOpts||s)[t];c&&a.push(zi(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=Ar(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&zi(c,n,r,o,e,i)()}))}}return a}function Vi(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o_i(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>_i(e,s))||i.push(s))}return[n,r,i]}var Hi=()=>location.protocol+`//`+location.host;function Ui(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),hi(n,``)}return hi(n,e)+r+i}function Wi(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Ui(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(J({},e.state,{scroll:Di()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Gi(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Di():null}}function Ki(e){let{history:t,location:n}=window,r={value:Ui(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Hi()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,J({},t.state,Gi(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=J({},i.value,t.state,{forward:e,scroll:Di()});a(o.current,o,!0),a(e,J({},Gi(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function qi(e){e=Ci(e);let t=Ki(e),n=Wi(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=J({location:``,base:e,go:r,createHref:Ti.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Ji={type:0,value:``},Yi=/[a-zA-Z0-9_]/;function Xi(e){if(!e)return[[]];if(e===`/`)return[[Ji]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function na(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var ia={strict:!1,end:!0,sensitive:!1};function aa(e,t,n){let r=J(ea(Xi(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function oa(e,t){let n=[],r=new Map;t=Nr(ia,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=ca(e);s.aliasOf=r&&r.record;let l=Nr(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(ca(J({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=aa(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!ua(d)&&o(e.name)),ma(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:Mr}function o(e){if(Pi(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=fa(e,n);n.splice(t,0,e),e.record.name&&!ua(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Fr(1,{location:e});s=i.record.name,a=J(sa(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&sa(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Fr(1,{location:e,currentLocation:t});s=i.record.name,a=J({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:da(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function sa(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function ca(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:la(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function la(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function ua(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function da(e){return e.reduce((e,t)=>J(e,t.meta),{})}function fa(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;na(e,t[i])<0?r=i:n=i+1}let i=pa(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function pa(e){let t=e;for(;t=t.parent;)if(ma(t)&&na(e,t)===0)return t}function ma({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ha(e){let t=z(Rr),n=z(zr),r=L(()=>{let n=O(e.to);return t.resolve(n)}),i=L(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(_i.bind(null,i));if(o>-1)return o;let s=ba(e[t-2]);return t>1&&ba(i)===s&&a[a.length-1].path!==s?a.findIndex(_i.bind(null,e[t-2])):o}),a=L(()=>i.value>-1&&ya(n.params,r.value.params)),o=L(()=>i.value>-1&&i.value===n.matched.length-1&&vi(n.params,r.value.params));function s(n={}){if(va(n)){let n=t[O(e.replace)?`replace`:`push`](O(e.to)).catch(Mr);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:L(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function ga(e){return e.length===1?e[0]:e}var _a=M({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:ha,setup(e,{slots:t}){let n=re(ha(e)),{options:r}=z(Rr),i=L(()=>({[xa(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[xa(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&ga(t.default(n));return e.custom?r:Le(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function va(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function ya(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Y(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function ba(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var xa=(e,t,n)=>e??t??n,Sa=M({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=z(Br),i=L(()=>e.route||r.value),a=z(Lr,0),o=L(()=>{let e=O(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=L(()=>i.value.matched[o.value]);ge(Lr,L(()=>o.value+1)),ge(Ir,s),ge(Br,i);let c=E();return b(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!_i(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return Ca(n.default,{Component:l,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=Le(l,J({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return Ca(n.default,{Component:f,route:r})||f}}});function Ca(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var wa=Sa;function Ta(e){let t=oa(e.routes,e),n=e.parseQuery||Fi,i=e.stringifyQuery||Ii,a=e.history,o=Ri(),s=Ri(),c=Ri(),l=le(Si),u=Si;Ur&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let d=jr.bind(null,e=>``+e),f=jr.bind(null,li),p=jr.bind(null,ui);function m(e,n){let r,i;return Pi(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function h(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function g(){return t.getRoutes().map(e=>e.record)}function _(e){return!!t.getRecordMatcher(e)}function v(e,r){if(r=J({},r||l.value),typeof e==`string`){let i=pi(n,e,r.path),o=t.resolve({path:i.path},r),s=a.createHref(i.fullPath);return J(i,o,{params:p(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=J({},e,{path:pi(n,e.path,r.path).path});else{let t=J({},e.params);for(let e in t)t[e]??delete t[e];o=J({},e,{params:f(t)}),r.params=f(r.params)}let s=t.resolve(o,r),c=e.hash||``;s.params=d(p(s.params));let u=mi(i,J({},e,{hash:ai(c),path:s.path})),m=a.createHref(u);return J({fullPath:u,hash:c,query:i===Ii?Li(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function y(e){return typeof e==`string`?pi(n,e,l.value.path):J({},e)}function b(e,t){if(u!==e)return Fr(8,{from:t,to:e})}function x(e){return w(e)}function S(e){return x(J(y(e),{replace:!0}))}function C(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=y(i):{path:i},i.params={}),J({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function w(e,t){let n=u=v(e),r=l.value,a=e.state,o=e.force,s=e.replace===!0,c=C(n,r);if(c)return w(J(y(c),{state:typeof c==`object`?J({},a,c.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&gi(i,r,n)&&(f=Fr(16,{to:d,from:r}),ce(r,r,!0,!1)),(f?Promise.resolve(f):ne(d,r)).catch(e=>X(e)?X(e,2)?e:j(e):A(e,d,r)).then(e=>{if(e){if(X(e,2))return w(J({replace:s},y(e.to),{state:typeof e.to==`object`?J({},a,e.to.state):a,force:o}),t||d)}else e=E(d,r,!0,s,a);return re(d,r,e),e})}function te(e,t){let n=b(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=M.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function ne(e,t){let n,[r,i,a]=Vi(e,t);n=Bi(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(zi(r,e,t))});let c=te.bind(null,e,t);return n.push(c),N(n).then(()=>{n=[];for(let r of o.list())n.push(zi(r,e,t));return n.push(c),N(n)}).then(()=>{n=Bi(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(zi(r,e,t))});return n.push(c),N(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(Y(r.beforeEnter))for(let i of r.beforeEnter)n.push(zi(i,e,t));else n.push(zi(r.beforeEnter,e,t));return n.push(c),N(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Bi(a,`beforeRouteEnter`,e,t,T),n.push(c),N(n))).then(()=>{n=[];for(let r of s.list())n.push(zi(r,e,t));return n.push(c),N(n)}).catch(e=>X(e,8)?e:Promise.reject(e))}function re(e,t,n){c.list().forEach(r=>T(()=>r(e,t,n)))}function E(e,t,n,r,i){let o=b(e,t);if(o)return o;let s=t===Si,c=Ur?history.state:{};n&&(r||s?a.replace(e.fullPath,J({scroll:s&&c&&c.scroll},i)):a.push(e.fullPath,i)),l.value=e,ce(e,t,n,s),j()}let D;function ie(){D||=a.listen((e,t,n)=>{if(!fe.listening)return;let r=v(e),i=C(r,fe.currentRoute.value);if(i){w(J(i,{replace:!0,force:!0}),r).catch(Mr);return}u=r;let o=l.value;Ur&&ji(ki(o.fullPath,n.delta),Di()),ne(r,o).catch(e=>X(e,12)?e:X(e,2)?(w(J(y(e.to),{force:!0}),r).then(e=>{X(e,20)&&!n.delta&&n.type===`pop`&&a.go(-1,!1)}).catch(Mr),Promise.reject()):(n.delta&&a.go(-n.delta,!1),A(e,r,o))).then(e=>{e||=E(r,o,!1),e&&(n.delta&&!X(e,8)?a.go(-n.delta,!1):n.type===`pop`&&X(e,20)&&a.go(-1,!1)),re(r,o,e)}).catch(Mr)})}let ae=Ri(),oe=Ri(),k;function A(e,t,n){j(e);let r=oe.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return k&&l.value!==Si?Promise.resolve():new Promise((e,t)=>{ae.add([e,t])})}function j(e){return k||(k=!e,ie(),ae.list().forEach(([t,n])=>e?n(e):t()),ae.reset()),e}function ce(t,n,i,a){let{scrollBehavior:o}=e;if(!Ur||!o)return Promise.resolve();let s=!i&&Mi(ki(t.fullPath,0))||(a||!i)&&history.state&&history.state.scroll||null;return r().then(()=>o(t,n,s)).then(e=>t===l.value&&e&&Oi(e)).catch(e=>t===l.value&&A(e,t,n))}let ue=e=>a.go(e),de,M=new Set,fe={currentRoute:l,listening:!0,addRoute:m,removeRoute:h,clearRoutes:t.clearRoutes,hasRoute:_,getRoutes:g,resolve:v,options:e,push:x,replace:S,go:ue,back:()=>ue(-1),forward:()=>ue(1),beforeEach:o.add,beforeResolve:s.add,afterEach:c.add,onError:oe.add,isReady:se,install(e){e.component(`RouterLink`,_a),e.component(`RouterView`,wa),e.config.globalProperties.$router=fe,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>O(l)}),Ur&&!de&&l.value===Si&&(de=!0,x(a.location).catch(e=>{}));let t={};for(let e in Si)Object.defineProperty(t,e,{get:()=>l.value[e],enumerable:!0});e.provide(Rr,fe),e.provide(zr,ee(t)),e.provide(Br,l);let n=e.unmount;M.add(e),e.unmount=function(){M.delete(e),M.size<1&&(u=Si,D&&D(),D=null,l.value=Si,de=!1,k=!1),n()}}};function N(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return fe}var Ea=[{name:`dashboard`,label:`داشبورد`,path:`/`,icon:`home`},{name:`orders`,label:`سفارش‌ها`,path:`/orders`,icon:`orders`},{name:`customers`,label:`مشتریان و واسطه‌ها`,path:`/customers`,icon:`customers`},{name:`products`,label:`محصولات`,path:`/products`,icon:`products`},{name:`categories`,label:`دسته‌بندی‌ها`,path:`/categories`,icon:`catalogs`},{name:`banners`,label:`بنرها`,path:`/banners`,icon:`image`},{name:`catalogs`,label:`کالیته‌ها`,path:`/catalogs`,icon:`catalogs`},{name:`catalog-requests`,label:`درخواست کالیته فیزیکی`,path:`/catalog-requests`,icon:`file`},{name:`brands`,label:`برندها`,path:`/brands`,icon:`building`},{name:`suggestions`,label:`پیشنهاد محصول`,path:`/suggestions`,icon:`cart`},{name:`stock-alerts`,label:`خبر موجودی`,path:`/stock-alerts`,icon:`bell`},{name:`levels`,label:`سطوح مشتری`,path:`/levels`,icon:`users`},{name:`companies`,label:`شرکت‌ها`,path:`/companies`,icon:`companies`},{name:`checks`,label:`چک‌ها`,path:`/checks`,icon:`checks`},{name:`cash-payments`,label:`پرداخت‌های نقدی`,path:`/cash-payments`,icon:`cash`},{name:`shipping`,label:`ارسال و باربری`,path:`/shipping`,icon:`shipping`},{name:`reports`,label:`گزارش‌ها`,path:`/reports`,icon:`reports`},{name:`settings`,label:`تنظیمات`,path:`/settings`,icon:`settings`},{name:`users`,label:`کاربران و دسترسی‌ها`,path:`/users`,icon:`users`}];function Da(e,t){if(e===`/`)return t===`/`;if(/^\/orders\/[^/]+\/checks/.test(t)){if(e===`/checks`)return!0;if(e===`/orders`)return!1}return t===e||t.startsWith(`${e}/`)}var Oa=M({__name:`AdminIcon`,props:{name:{},size:{default:20},strokeWidth:{default:1.5},color:{default:null}},setup(e){let t=e,n={home:`vuesax-linear:home`,orders:`vuesax-linear:document-text`,customers:`vuesax-linear:profile-2user`,products:`vuesax-linear:box-1`,catalogs:`vuesax-linear:category`,image:`vuesax-linear:category`,companies:`vuesax-linear:buildings`,checks:`vuesax-linear:card-receive`,cash:`vuesax-linear:money-4`,shipping:`vuesax-linear:truck-time`,reports:`vuesax-linear:chart-2`,settings:`vuesax-linear:setting-2`,users:`vuesax-linear:people`,logout:`vuesax-linear:logout`,search:`vuesax-linear:search-normal`,bell:`vuesax-linear:notification`,message:`vuesax-linear:message`,calendar:`vuesax-linear:calendar`,menu:`vuesax-linear:menu`,filter:`vuesax-linear:filter`,more:`vuesax-linear:more`,"chevron-left":`vuesax-linear:arrow-left-1`,"chevron-right":`vuesax-linear:arrow-right-1`,"chevron-back":`vuesax-linear:arrow-right-1`,"chevron-down":`vuesax-linear:arrow-down`,print:`vuesax-linear:printer`,sms:`vuesax-linear:sms`,check:`vuesax-linear:tick-circle`,cart:`vuesax-linear:bag-2`,file:`vuesax-linear:document-text`,wallet:`vuesax-linear:wallet`,"check-circle":`vuesax-linear:tick-circle`,phone:`vuesax-linear:call`,"id-card":`vuesax-linear:personalcard`,lock:`vuesax-linear:lock`,eye:`vuesax-linear:eye`,"eye-off":`vuesax-linear:eye-slash`,user:`vuesax-linear:profile-circle`,building:`vuesax-linear:building`,trash:`vuesax-linear:trash`},r=L(()=>t.name.startsWith(`vuesax-linear:`)?t.name:n[t.name]??`vuesax-linear:info-circle`);return(t,n)=>(_(),ve(nr,{icon:r.value,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`icon`,`size`,`stroke-width`,`color`]))}}),ka=`fabric-admin-token`;function Aa(){return`https://nademitex.montest.ir/server/api`.replace(/\/$/,``)||`https://nademitex.montest.ir/server/api`}function ja(){return localStorage.getItem(ka)??sessionStorage.getItem(ka)}function Ma(e,t=!0){localStorage.removeItem(ka),sessionStorage.removeItem(ka),e&&(t?localStorage.setItem(ka,e):sessionStorage.setItem(ka,e))}var Na=class extends Error{status;constructor(e,t){super(t),this.status=e}};function Pa(e,t){let n=Aa(),r=e.startsWith(`http`)?e:`${n.replace(/\/$/,``)}/${e.replace(/^\//,``)}`,i=r.startsWith(`http`)?new URL(r):new URL(r,typeof window<`u`?window.location.origin:`http://127.0.0.1`);if(t)for(let[e,n]of Object.entries(t))n!=null&&n!==``&&i.searchParams.set(e,String(n));return i.toString()}function Fa(e,t){if(typeof e==`object`&&e&&`message`in e){let t=e.message;return Array.isArray(t)?t.join(`، `):String(t)}if(typeof e==`string`){if(/upstream error/i.test(e))return`سرور API در دسترس نیست. کمی بعد دوباره تلاش کنید.`;if(e.trim()&&!e.trimStart().startsWith(`<`))return e.trim().slice(0,200)}return`خطای سرور (${t})`}async function Z(e,t={}){let n={Accept:`application/json`};if(t.body!==void 0&&(n[`Content-Type`]=`application/json`),t.auth!==!1){let e=ja();e&&(n.Authorization=`Bearer ${e}`)}let r;try{r=await fetch(Pa(e,t.query),{method:t.method??(t.body===void 0?`GET`:`POST`),headers:n,body:t.body===void 0?void 0:JSON.stringify(t.body),signal:AbortSignal.timeout(t.timeoutMs??2e4)})}catch(e){throw new Na(0,e instanceof DOMException&&e.name===`TimeoutError`||e instanceof Error&&e.name===`TimeoutError`?`پاسخ سرور طول کشید. دوباره تلاش کنید.`:`اتصال به سرور برقرار نشد. اینترنت یا آدرس API را بررسی کنید.`)}let i=await r.text(),a=null;if(i)try{a=JSON.parse(i)}catch{a=i}if(!r.ok){if(r.status===401&&t.auth!==!1){Ma(null),localStorage.removeItem(`fabric-admin-session`),sessionStorage.removeItem(`fabric-admin-session`);let e=`/admin/login`;if(typeof window<`u`&&window.location.pathname!==e){let t=`/admin/`.replace(/\/$/,``),n=window.location.pathname.startsWith(t)?window.location.pathname.slice(t.length)||`/`:window.location.pathname,r=encodeURIComponent(`${n}${window.location.search}`);window.location.assign(`${e}?redirect=${r}`)}}throw new Na(r.status,Fa(a,r.status))}return a}var Ia=`fabric-admin-session`,La=`fabric-admin-token`,Ra=!1,za={phone:`09128081392`,password:`123456`,session:{id:`mock-admin-1`,fullName:`مدیر سیستم (موک)`,phone:`09128081392`,email:`admin@parche.ir`,role:`admin`}};function Ba(){try{let e=localStorage.getItem(Ia)??sessionStorage.getItem(Ia);return e?JSON.parse(e):null}catch{return null}}function Va(e,t){let n=JSON.stringify(e);localStorage.removeItem(Ia),sessionStorage.removeItem(Ia),t?localStorage.setItem(Ia,n):sessionStorage.setItem(Ia,n)}function Ha(){localStorage.removeItem(Ia),sessionStorage.removeItem(Ia)}function Ua(){return!!localStorage.getItem(La)}function Wa(e){return{id:e.id,fullName:e.fullName,phone:e.phone,email:e.email,role:e.role}}function Ga(){return Ba()}function Ka(){return Ra}async function qa(e){let t=e.phone.trim(),n=e.password;if(!t||!n)return{success:!1,message:`شماره موبایل و رمز عبور الزامی است.`};try{let r=await Z(`/admin/auth/login`,{method:`POST`,body:{phone:t,password:n},auth:!1});return Ma(r.accessToken,e.remember),Va(Wa(r.user),e.remember),{success:!0}}catch(e){return e instanceof Na?{success:!1,message:e.message}:{success:!1,message:`ورود انجام نشد.`}}}async function Ja(){let e=ja();if(!e)return Ha(),null;if(e===`mock-admin-token`){let e=Ba()??za.session;return Va(e,Ua()),e}try{let e=Wa(await Z(`/auth/me`));return Va(e,Ua()),e}catch{return Ma(null),Ha(),null}}function Ya(){Ma(null),Ha()}var Xa=$n(`auth`,()=>{let e=E(Ga()),t=E(!1),n=E(null),r=L(()=>!!e.value),i=L(()=>e.value?.fullName??``),a=L(()=>e.value?{admin:`مدیر سیستم`,sales:`واحد فروش`,finance:`واحد مالی`,warehouse:`انبار`}[e.value.role]:``);function o(){n.value=null}async function s(){e.value=Ga(),e.value=await Ja()}async function c(r,i,a){t.value=!0,n.value=null;let o=await qa({phone:r,password:i,remember:a});return t.value=!1,o.success?(e.value=Ga(),!0):(n.value=o.message??`ورود انجام نشد.`,!1)}function l(){Ya(),e.value=null,n.value=null}return{session:e,loading:t,error:n,isAuthenticated:r,fullName:i,roleLabel:a,clearError:o,hydrate:s,login:c,logout:l}}),Za={class:`admin-sidebar`,"aria-label":`ناوبری پنل مدیریت`},Qa={class:`admin-sidebar__nav`},$a=[`onClick`],eo=ke(M({__name:`AdminSidebar`,setup(e){let t=Hr(),n=Vr(),r=Xa();function i(e){n.push(e)}function a(){r.logout(),n.push(`/login`)}return(e,n)=>(_(),j(`aside`,Za,[n[1]||=A(`div`,{class:`admin-sidebar__brand`},[A(`strong`,{class:`admin-sidebar__title`},`پارچه`),A(`span`,{class:`admin-sidebar__subtitle`},`پنل مدیریت`)],-1),A(`nav`,Qa,[(_(!0),j(I,null,he(O(Ea),e=>(_(),j(`button`,{key:e.name,type:`button`,class:w([`admin-sidebar__item`,{active:O(Da)(e.path,O(t).path)}]),onClick:t=>i(e.path)},[N(Oa,{name:e.icon,size:20},null,8,[`name`]),A(`span`,null,v(e.label),1)],10,$a))),128))]),A(`button`,{type:`button`,class:`admin-sidebar__logout`,onClick:a},[N(Oa,{name:`logout`,size:20}),n[0]||=A(`span`,null,`خروج`,-1)])]))}}),[[`__scopeId`,`data-v-bcc6586c`]]),to=new WeakMap,no=(...e)=>{let t=e[0],n=D()?.proxy??T();if(n==null&&!oe())throw Error(`injectLocal must be called in setup`);return n&&to.has(n)&&t in to.get(n)?to.get(n)[t]:z(...e)},ro=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var io=Object.prototype.toString,ao=e=>io.call(e)===`[object Object]`,oo=()=>{},so=co();function co(){var e,t;return ro&&!!((e=window)!=null&&(e=e.navigator)!=null&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function lo(...e){if(e.length!==1)return Ce(...e);let t=e[0];return typeof t==`function`?ne(u(()=>({get:t,set:oo}))):E(t)}function uo(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return`cancel`in e&&Object.assign(n,{cancel:e.cancel,flush:e.flush,isPending:e.isPending}),n}var fo=e=>e();function po(t=fo,n={}){let{initialState:r=`active`}=n,i=lo(r===`active`);function a(){i.value=!1}function o(){i.value=!0}return{isActive:e(i),pause:a,resume:o,eventFilter:(...e)=>{i.value&&t(...e)}}}function mo(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function ho(e){return Array.isArray(e)?e:[e]}function go(e){return e||D()}function _o(e,t,n={}){let{eventFilter:r=fo,...i}=n;return b(e,uo(r,t),i)}function vo(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=po(r,{initialState:i});return{stop:_o(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function yo(e,t=!0,n){go(n)?C(e,n):t?e():r(e)}function bo(e,t,n){return b(e,t,{...n,immediate:!0})}var xo=ro?window:void 0;ro&&window.document,ro&&window.navigator,ro&&window.location;function So(e){let t=P(e);return t?.$el??t}function Co(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=L(()=>{let t=ho(P(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return bo(()=>[n.value?.map(e=>So(e))??[xo].filter(e=>e!=null),ho(P(n.value?e[1]:e[0])),ho(O(n.value?e[2]:e[1])),P(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=ao(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}var wo=!1;function To(e,t,n={}){let{window:r=xo,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:oo,cancel:oo,trigger:oo}:oo;if(so&&!wo){wo=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,oo,e)),r.document.documentElement.addEventListener(`click`,oo,e)}let c=!0,l=e=>P(i).some(t=>{if(typeof t==`string`)return Array.from(r.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{let n=So(t);return n&&(e.target===n||e.composedPath().includes(n))}});function u(e){let t=P(e);return t&&t.$.subTree.shapeFlag===16}function d(e,t){let n=P(e),r=n.$.subTree&&n.$.subTree.children;return r==null||!Array.isArray(r)?!1:r.some(e=>e.el===t.target||t.composedPath().includes(e.el))}let f=n=>{let r=So(e);if(n.target!=null&&!(!(r instanceof Element)&&u(e)&&d(e,n))&&!(!r||r===n.target||n.composedPath().includes(r))){if(`detail`in n&&n.detail===0&&(c=!l(n)),!c){c=!0;return}t(n)}},p=!1,m=[Co(r,`click`,e=>{p||(p=!0,setTimeout(()=>{p=!1},0),f(e))},{passive:!0,capture:a}),Co(r,`pointerdown`,t=>{let n=So(e);c=!l(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),o&&Co(r,`blur`,n=>{setTimeout(()=>{let i=So(e),a=r.document.activeElement;for(;a?.shadowRoot;)a=a.shadowRoot.activeElement;a?.tagName===`IFRAME`&&!i?.contains(r.document.activeElement)&&t(n)},0)},{passive:!0})].filter(Boolean),h=()=>m.forEach(e=>e());return s?{stop:h,cancel:()=>{c=!1},trigger:e=>{c=!0,f(e),c=!1}}:h}function Eo(){let e=le(!1),t=D();return t&&C(()=>{e.value=!0},t),e}function Do(e){let t=Eo();return L(()=>(t.value,!!e()))}var Oo=Symbol(`vueuse-ssr-width`);function ko(){let e=oe()?no(Oo,null):null;return typeof e==`number`?e:void 0}function Ao(e,t={}){let{window:n=xo,ssrWidth:r=ko()}=t,i=Do(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),a=le(typeof r==`number`),o=le(),s=le(!1);return ze(()=>{if(a.value){a.value=!i.value;let t=P(e).split(`,`);s.value=t.some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),i=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=!!(n||i);return n&&a&&(a=r>=mo(n[1])),i&&a&&(a=r<=mo(i[1])),t?!a:a});return}i.value&&(o.value=n.matchMedia(P(e)),s.value=o.value.matches)}),Co(o,`change`,e=>{s.value=e.matches},{passive:!0}),L(()=>s.value)}var jo=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},Mo=`__vueuse_ssr_handlers__`,No=Po();function Po(){return Mo in jo||(jo[Mo]=jo[Mo]||{}),jo[Mo]}function Fo(e,t){return No[e]||t}function Io(e){return Ao(`(prefers-color-scheme: dark)`,e)}function Lo(e){return e==null?`any`:e instanceof Set?`set`:e instanceof Map?`map`:e instanceof Date?`date`:typeof e==`boolean`?`boolean`:typeof e==`string`?`string`:typeof e==`object`?`object`:Number.isNaN(e)?`any`:`number`}var Ro={boolean:{read:e=>e===`true`,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},zo=`vueuse-storage`;function Bo(e,t,n,i={}){let{flush:a=`pre`,deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:c=!0,mergeDefaults:l=!1,shallow:u,window:d=xo,eventFilter:f,onError:p=e=>{console.error(e)},initOnMounted:m}=i,h=(u?le:E)(typeof t==`function`?t():t),g=L(()=>P(e));if(!n)try{n=Fo(`getDefaultStorage`,()=>xo?.localStorage)()}catch(e){p(e)}if(!n)return h;let _=P(t),v=Lo(_),y=i.serializer??Ro[v],{pause:ee,resume:x}=vo(h,e=>w(e),{flush:a,deep:o,eventFilter:f});b(g,()=>T(),{flush:a});let S=!1;d&&s&&(n instanceof Storage?Co(d,`storage`,e=>{m&&!S||T(e)},{passive:!0}):Co(d,zo,e=>{m&&!S||ne(e)})),m?yo(()=>{S=!0,T()}):T();function C(e,t){if(d){let r={key:g.value,oldValue:e,newValue:t,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent(`storage`,r):new CustomEvent(zo,{detail:r}))}}function w(e){try{let t=n.getItem(g.value);if(e==null)C(t,null),n.removeItem(g.value);else{let r=y.write(e);t!==r&&(n.setItem(g.value,r),C(t,r))}}catch(e){p(e)}}function te(e){let t=e?e.newValue:n.getItem(g.value);if(t==null)return c&&_!=null&&n.setItem(g.value,y.write(_)),_;if(!e&&l){let e=y.read(t);return typeof l==`function`?l(e,_):v===`object`&&!Array.isArray(e)?{..._,...e}:e}return typeof t==`string`?y.read(t):t}function T(e){if(!(e&&e.storageArea!==n)){if(e&&e.key==null){h.value=_;return}if(!(e&&e.key!==g.value)){ee();try{let t=y.write(h.value);(e===void 0||e?.newValue!==t)&&(h.value=te(e))}catch(e){p(e)}finally{e?r(x):x()}}}}function ne(e){T(e.detail)}return h}function Vo(e){return{...e,status:e.adminStatus??e.status,rawStatus:e.status,allowedTransitions:e.allowedTransitions??[],settlementMethod:e.settlementMethod??e.settlementType??null,meterage:e.meterage??e.totalMeterage??0}}function Ho(e){return e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``)||`c-${Date.now()}`}var Uo={list:e=>Z(`/companies`,{query:{activeOnly:e?`true`:void 0}}),get:e=>Z(`/companies/${e}`),create:e=>Z(`/companies`,{body:e}),update:(e,t)=>Z(`/companies/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Z(`/companies/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Wo={listByCompany:e=>Z(`/companies/${e}/bank-accounts`),create:(e,t)=>Z(`/companies/${e}/bank-accounts`,{body:t}),update:(e,t)=>Z(`/bank-accounts/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Z(`/bank-accounts/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Go={list:e=>Z(`/catalogs`,{query:{companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>Z(`/catalogs`,{body:e}),update:(e,t)=>Z(`/catalogs/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Z(`/catalogs/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Ko={list:e=>Z(`/products`,{query:{catalogId:e?.catalogId,companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>Z(`/products`,{body:e,timeoutMs:9e4}),update:(e,t)=>Z(`/products/${e}`,{method:`PATCH`,body:t,timeoutMs:9e4}),setActive:(e,t)=>Z(`/products/${e}/active`,{method:`PATCH`,body:{isActive:t}})},qo={list:(e,t)=>Z(`/admin/customers`,{query:{q:e,appRole:t}}),create:e=>Z(`/admin/customers`,{body:e}),update:(e,t)=>Z(`/admin/customers/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Z(`/admin/customers/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Jo={list:e=>Z(`/admin/orders`,{query:{status:e?.status,q:e?.q}}),get:e=>Z(`/admin/orders/${e}`),create:e=>Z(`/admin/orders`,{body:e}),updatePricing:(e,t)=>Z(`/admin/orders/${e}/pricing`,{method:`PATCH`,body:t}),updateStatus:(e,t)=>Z(`/admin/orders/${e}/status`,{method:`PATCH`,body:t})},Yo={list:e=>Z(`/admin/checks`,{query:{status:e}}),listByOrder:e=>Z(`/admin/orders/${e}/checks`),updateStatus:(e,t)=>Z(`/admin/checks/${e}/status`,{method:`PATCH`,body:t})},Xo={list:e=>Z(`/admin/cash-payments`,{query:{status:e}}),updateStatus:(e,t)=>Z(`/admin/cash-payments/${e}/status`,{method:`PATCH`,body:t})},Zo={list:e=>Z(`/admin/shipments`,{query:{status:e}}),create:e=>Z(`/admin/shipments`,{body:e}),update:(e,t)=>Z(`/admin/shipments/${e}`,{method:`PATCH`,body:t}),advanceStatus:(e,t)=>Z(`/admin/shipments/${e}/status`,{method:`PATCH`,body:t??{}})},Qo={list:()=>Z(`/admin/users`),create:e=>Z(`/admin/users`,{body:e}),update:(e,t)=>Z(`/admin/users/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Z(`/admin/users/${e}/active`,{method:`PATCH`,body:{isActive:t}})},$o={get:()=>Z(`/admin/dashboard`),reports:()=>Z(`/admin/reports`)},es={get:()=>Z(`/admin/settings`),update:e=>Z(`/admin/settings`,{method:`PATCH`,body:e})},ts={markRead:e=>Z(`/admin/notifications/${e}/read`,{method:`PATCH`}),markAllRead:()=>Z(`/admin/notifications/read-all`,{method:`PATCH`}),broadcast:e=>Z(`/admin/notifications/broadcast`,{method:`POST`,body:e})},ns={list:e=>Z(`/admin/catalog-requests`,{query:{status:e}}),updateStatus:(e,t)=>Z(`/admin/catalog-requests/${e}/status`,{method:`PATCH`,body:{status:t}}),updateHolder:(e,t)=>Z(`/admin/catalog-request-items/${e}/holder`,{method:`PATCH`,body:t})},rs={list:e=>Z(`/admin/banners`,{query:{slot:e}}),create:e=>Z(`/admin/banners`,{body:e}),update:(e,t)=>Z(`/admin/banners/${e}`,{method:`PATCH`,body:t}),remove:e=>Z(`/admin/banners/${e}`,{method:`DELETE`})},is={list:()=>Z(`/admin/brands`),create:e=>Z(`/admin/brands`,{body:e}),update:(e,t)=>Z(`/admin/brands/${e}`,{method:`PATCH`,body:t})},as={list:()=>Z(`/admin/levels`),create:e=>Z(`/admin/levels`,{body:e}),update:(e,t)=>Z(`/admin/levels/${e}`,{method:`PATCH`,body:t})},os={list:e=>Z(`/admin/suggestions`,{query:{customerId:e}}),create:e=>Z(`/admin/suggestions`,{body:e}),setActive:(e,t)=>Z(`/admin/suggestions/${e}/active`,{method:`PATCH`,body:{isActive:t}})},ss={list:()=>Z(`/admin/stock-alerts`),notify:e=>Z(`/admin/stock-alerts/${e}/notify`,{method:`PATCH`})},cs=`۰۱۲۳۴۵۶۷۸۹`,ls=new Intl.NumberFormat(`fa-IR`,{useGrouping:!0});function us(e){return e.replace(/[۰-۹]/g,e=>String(cs.indexOf(e)))}function ds(e){return us(e).replace(/[^\d]/g,``)}function fs(e){return Number.isFinite(e)?ls.format(e):`—`}function ps(e){return`${fs(e)} تومان`}function ms(e){return`${fs(e)} متر`}function hs(e){return String(e).replace(/\d/g,e=>cs[Number(e)])}var gs=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`}),_s=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`});function vs(e){let t=us(e.trim()).replace(/-/g,`/`).match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!t)return!1;let n=Number(t[1]);return n>=1300&&n<=1500}function ys(e){if(typeof e!=`string`)return e;let t=e.trim(),n=t.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(n&&Number(n[1])>=1700)return new Date(Number(n[1]),Number(n[2])-1,Number(n[3]));let r=new Date(t);return Number.isNaN(r.getTime())?new Date(NaN):r}function bs(e){if(!e)return`—`;if(typeof e==`string`&&vs(e)){let t=us(e.trim()).replace(/-/g,`/`),n=t.match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!n)return hs(t);let[,r,i,a]=n;return hs(`${r}/${i.padStart(2,`0`)}/${a.padStart(2,`0`)}`)}let t=ys(e);return Number.isNaN(t.getTime())?`—`:gs.format(t)}function xs(e){if(!e)return`—`;if(typeof e==`string`&&vs(e)&&!/[T\s]\d/.test(e))return bs(e);let t=ys(e);return Number.isNaN(t.getTime())?`—`:_s.format(t)}var Ss=/ORD-?\d{2,4}-?\d{2,6}/i,Cs=/^\/?(?:admin\/)?orders\/([^/?#]+)\/?$/i,ws=/^\/?(?:admin\/)?orders\/([^/?#]+)\/(pricing|checks)\/?$/i;function Ts(e){let t=e.match(Ss);if(!t?.[0])return null;let n=t[0].toUpperCase().replace(/^ORD-?/,``).replace(/-/g,``);return n.length<6?t[0].toUpperCase():`ORD-${n.slice(0,4)}-${n.slice(4)}`}function Q(e,t){return t.some(t=>t.test(e))}function Es(e){let t=e.trim();if(!t)return t;try{if(/^https?:\/\//i.test(t)){let e=new URL(t);t=`${e.pathname}${e.search}`}}catch{}t=t.replace(/^\/admin(?=\/)/,``),t.startsWith(`/`)||(t=`/${t}`);let n=t.match(ws);if(n?.[1]&&n[2])return`/orders/${n[1]}/${n[2]}`;let r=t.match(Cs);return r?.[1]?`/orders?order=${encodeURIComponent(r[1])}`:t}function Ds(e){let t=e.link?.trim();if(t)return Es(t);let n=`${e.title?.trim()??``} ${e.body?.trim()??``}`,r=e.orderId?.trim()||null,i=Ts(n),a=Q(n,[/پیامک/]),o=Q(n,[/چک/]),s=Q(n,[/قیمت/,/تخفیف/,/پیش[‌\s]?فاکتور/,/قیمت‌گذاری/,/اصلاح قیمت/]),c=!a&&Q(n,[/ارسال/,/باربری/,/حمل/,/بارنامه/]),l=Q(n,[/نقدی/,/پرداخت نقد/,/رسید پرداخت/]),u=Q(n,[/گزارش/]),d=Q(n,[/مشتری جدید/,/ثبت مشتری/]),f=Q(n,[/کالیته/]),p=Q(n,[/محصول/]),m=Q(n,[/شرکت/,/حساب بانکی/]),h=Q(n,[/سفارش/]),g=a||Q(n,[/پشتیبان/,/تنظیمات/]);return r?o?`/orders/${r}/checks`:s?`/orders/${r}/pricing`:c?`/shipping?order=${encodeURIComponent(r)}`:l?`/cash-payments?order=${encodeURIComponent(r)}`:`/orders?order=${encodeURIComponent(r)}`:i?o?`/orders?order=${encodeURIComponent(i)}&focus=checks`:s?`/orders?order=${encodeURIComponent(i)}&focus=pricing`:c?`/shipping?order=${encodeURIComponent(i)}`:l?`/cash-payments?order=${encodeURIComponent(i)}`:`/orders?order=${encodeURIComponent(i)}`:o?`/checks`:c?`/shipping`:l?`/cash-payments`:u?`/reports`:d?`/customers`:f?`/catalogs`:p?`/products`:m?`/companies`:g?`/settings`:s||h?`/orders`:null}var Os=$n(`theme`,()=>{let e=Bo(`ft_admin_theme`,`system`),t=Io(),n=L(()=>e.value===`system`?t.value?`dark`:`light`:e.value),r=L(()=>n.value===`dark`);ze(()=>{let e=document.documentElement;e.classList.toggle(`dark`,r.value),e.style.colorScheme=n.value});function i(t){e.value=t}return{preference:e,resolved:n,isDark:r,setPreference:i}}),ks={class:`admin-header`},As={class:`admin-header__right`},js={class:`admin-header__dropdown`},Ms=[`aria-label`,`aria-expanded`],Ns={key:0,class:`admin-header__badge`,"aria-hidden":`true`},Ps={class:`admin-header__panel-header`},Fs={key:0,class:`admin-header__panel-list`},Is=[`onClick`],Ls={class:`admin-header__panel-item-top`},Rs=[`datetime`],zs={class:`admin-header__panel-item-sender`},Bs={class:`admin-header__panel-item-body`},Vs={key:1,class:`admin-header__panel-empty`},Hs={class:`admin-header__dropdown`},Us=[`aria-label`,`aria-expanded`],Ws={key:0,class:`admin-header__badge`,"aria-hidden":`true`},Gs={class:`admin-header__panel-header`},Ks={key:0,class:`admin-header__panel-list`},qs=[`onClick`],Js={class:`admin-header__panel-item-top`},Ys=[`datetime`],Xs={class:`admin-header__panel-item-body`},Zs={key:1,class:`admin-header__panel-empty`},Qs={class:`admin-header__dropdown`},$s=[`aria-label`,`aria-expanded`],ec={class:`admin-header__theme-glyph`,"aria-hidden":`true`},tc={class:`admin-header__theme-list`},nc=[`onClick`],rc={class:`admin-header__theme-option-icon`,"aria-hidden":`true`},ic={class:`admin-header__theme-option-label`},ac={class:`admin-header__user`},oc={class:`admin-header__avatar`},sc={class:`admin-header__user-info`},cc=ke(M({__name:`AdminHeader`,emits:[`menuClick`],setup(e){let t=Vr(),n=Xa(),r=Os(),i=E(null),a=E(null),o=E([]),s=E([]),c=L(()=>o.value.filter(e=>!e.isRead).length),l=L(()=>s.value.filter(e=>!e.isRead).length),u=[{value:`light`,label:`روشن`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,icon:`vuesax-linear:mobile`}],d=L(()=>u.find(e=>e.value===r.preference)?.label??`سیستم`),f=L(()=>u.find(e=>e.value===r.preference)?.icon??`vuesax-linear:sun-1`);$o.get().then(e=>{o.value=e.messages??[],s.value=e.notifications??[]}).catch(()=>{o.value=[],s.value=[]}),To(a,()=>{i.value=null}),Co(document,`keydown`,e=>{e.key===`Escape`&&(i.value=null)});function p(e){i.value=i.value===e?null:e}function m(){i.value=null}function h(e){e.isRead=!0}function g(e){e.isRead||(e.isRead=!0,ts.markRead(e.id).catch(()=>{e.isRead=!1}))}function y(){o.value.forEach(e=>{e.isRead=!0})}function ee(){let e=s.value.filter(e=>!e.isRead);e.length&&(e.forEach(e=>{e.isRead=!0}),ts.markAllRead().catch(()=>{e.forEach(e=>{e.isRead=!1})}))}function b(e){m(),e&&t.push(e)}function x(e){h(e),b(Ds({link:e.link,orderId:e.orderId,title:e.subject,body:e.preview}))}function S(e){g(e),b(Ds({link:e.link,orderId:e.orderId,title:e.title,body:e.body}))}function C(e){r.setPreference(e),m()}return(e,t)=>(_(),j(`header`,ks,[A(`div`,As,[A(`button`,{type:`button`,class:`admin-header__menu-btn compact-only`,"aria-label":`باز کردن منو`,onClick:t[0]||=t=>e.$emit(`menuClick`)},[N(Oa,{name:`menu`,size:22})])]),A(`div`,{ref_key:`actionsRef`,ref:a,class:`admin-header__left`},[A(`div`,js,[A(`button`,{type:`button`,class:w([`admin-header__icon-btn`,{"admin-header__icon-btn--active":i.value===`messages`}]),title:`پیام‌های داخلی`,"aria-label":`پیام‌های داخلی — ${c.value} پیام خوانده‌نشده`,"aria-expanded":i.value===`messages`,"aria-haspopup":`true`,onClick:t[1]||=q(e=>p(`messages`),[`stop`])},[N(Oa,{name:`message`,size:22}),c.value?(_(),j(`span`,Ns,v(c.value),1)):R(``,!0),t[7]||=A(`span`,{class:`admin-header__icon-label`},`پیام`,-1)],10,Ms),i.value===`messages`?(_(),j(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`پیام‌های داخلی`,onClick:t[2]||=q(()=>{},[`stop`])},[A(`div`,Ps,[t[8]||=A(`h2`,{class:`admin-header__panel-title`},`پیام‌های داخلی`,-1),c.value?(_(),j(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:y},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):R(``,!0)]),o.value.length?(_(),j(`ul`,Fs,[(_(!0),j(I,null,he(o.value,e=>(_(),j(`li`,{key:e.id,class:w([`admin-header__panel-item`,{unread:!e.isRead}])},[A(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>x(e)},[A(`span`,Ls,[A(`strong`,null,v(e.subject),1),A(`time`,{datetime:e.sentAt},v(O(xs)(e.sentAt)),9,Rs)]),A(`span`,zs,`از `+v(e.senderName),1),A(`span`,Bs,v(e.preview),1)],8,Is)],2))),128))])):(_(),j(`p`,Vs,`پیامی وجود ندارد.`))])):R(``,!0)]),A(`div`,Hs,[A(`button`,{type:`button`,class:w([`admin-header__icon-btn`,{"admin-header__icon-btn--active":i.value===`notifications`}]),title:`اعلان‌ها`,"aria-label":`اعلان‌ها — ${l.value} اعلان جدید`,"aria-expanded":i.value===`notifications`,"aria-haspopup":`true`,onClick:t[3]||=q(e=>p(`notifications`),[`stop`])},[N(Oa,{name:`bell`,size:22}),l.value?(_(),j(`span`,Ws,v(l.value),1)):R(``,!0),t[9]||=A(`span`,{class:`admin-header__icon-label`},`اعلان`,-1)],10,Us),i.value===`notifications`?(_(),j(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`اعلان‌ها`,onClick:t[4]||=q(()=>{},[`stop`])},[A(`div`,Gs,[t[10]||=A(`h2`,{class:`admin-header__panel-title`},`اعلان‌ها`,-1),l.value?(_(),j(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:ee},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):R(``,!0)]),s.value.length?(_(),j(`ul`,Ks,[(_(!0),j(I,null,he(s.value,e=>(_(),j(`li`,{key:e.id,class:w([`admin-header__panel-item`,[{unread:!e.isRead},e.tone?`admin-header__panel-item--${e.tone}`:``]])},[A(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>S(e)},[A(`span`,Js,[A(`strong`,null,v(e.title),1),A(`time`,{datetime:e.sentAt},v(O(xs)(e.sentAt)),9,Ys)]),A(`span`,Xs,v(e.body),1)],8,qs)],2))),128))])):(_(),j(`p`,Zs,`اعلانی وجود ندارد.`))])):R(``,!0)]),A(`div`,Qs,[A(`button`,{type:`button`,class:w([`admin-header__icon-btn`,{"admin-header__icon-btn--active":i.value===`theme`}]),title:`حالت نمایش`,"aria-label":`حالت نمایش — ${d.value}`,"aria-expanded":i.value===`theme`,"aria-haspopup":`true`,onClick:t[5]||=q(e=>p(`theme`),[`stop`])},[A(`span`,ec,[N(nr,{icon:f.value,size:20,"stroke-width":1.5},null,8,[`icon`])]),t[11]||=A(`span`,{class:`admin-header__icon-label`},`تم`,-1)],10,$s),i.value===`theme`?(_(),j(`div`,{key:0,class:`admin-header__panel admin-header__panel--theme`,role:`dialog`,"aria-label":`انتخاب حالت نمایش`,onClick:t[6]||=q(()=>{},[`stop`])},[t[12]||=A(`div`,{class:`admin-header__panel-header`},[A(`h2`,{class:`admin-header__panel-title`},`حالت نمایش`)],-1),A(`ul`,tc,[(_(),j(I,null,he(u,e=>A(`li`,{key:e.value},[A(`button`,{type:`button`,class:w([`admin-header__theme-option`,{"admin-header__theme-option--active":O(r).preference===e.value}]),onClick:t=>C(e.value)},[A(`span`,rc,[N(nr,{icon:e.icon,size:18,"stroke-width":1.5},null,8,[`icon`])]),A(`span`,ic,v(e.label),1),O(r).preference===e.value?(_(),ve(nr,{key:0,class:`admin-header__theme-option-check`,icon:`vuesax-linear:tick-circle`,size:16,"stroke-width":1.75})):R(``,!0)],10,nc)])),64))])])):R(``,!0)]),A(`div`,ac,[A(`div`,oc,v(O(n).fullName.charAt(0)||`؟`),1),A(`div`,sc,[A(`strong`,null,v(O(n).fullName||`مدیر`),1),A(`span`,null,v(O(n).roleLabel||`پنل مدیریت`),1)])])],512)]))}}),[[`__scopeId`,`data-v-7fec14ae`]]),lc=[`aria-hidden`],uc={class:`admin-drawer__brand`},dc={class:`admin-drawer__nav`},fc=[`onClick`],pc=ke(M({__name:`AdminMobileDrawer`,props:{open:{type:Boolean}},emits:[`close`],setup(e,{emit:t}){let n=t,r=Hr(),i=Vr(),a=Xa();function o(e){i.push(e),n(`close`)}function s(){a.logout(),i.push(`/login`),n(`close`)}return(t,i)=>(_(),j(I,null,[A(`div`,{class:w([`admin-drawer-backdrop`,{open:e.open}]),role:`presentation`,onClick:i[0]||=e=>n(`close`)},null,2),A(`aside`,{class:w([`admin-drawer`,{open:e.open}]),"aria-label":`منوی ناوبری`,"aria-hidden":!e.open},[A(`div`,uc,[i[2]||=A(`strong`,null,`پارچه`,-1),i[3]||=A(`span`,null,`پنل مدیریت`,-1),A(`button`,{type:`button`,class:`admin-drawer__close`,"aria-label":`بستن منو`,onClick:i[1]||=e=>n(`close`)},` × `)]),A(`nav`,dc,[(_(!0),j(I,null,he(O(Ea),e=>(_(),j(`button`,{key:e.name,type:`button`,class:w([`admin-drawer__item`,{active:O(Da)(e.path,O(r).path)}]),onClick:t=>o(e.path)},[N(Oa,{name:e.icon,size:20},null,8,[`name`]),A(`span`,null,v(e.label),1)],10,fc))),128))]),A(`button`,{type:`button`,class:`admin-drawer__logout`,onClick:s},[N(Oa,{name:`logout`,size:20}),i[4]||=A(`span`,null,`خروج`,-1)])],10,lc)],64))}}),[[`__scopeId`,`data-v-7a746e66`]]),mc={class:`admin-shell`},hc={class:`admin-shell__main`},gc={class:`admin-shell__content`},_c=ke(M({__name:`AdminShell`,setup(e){let t=Hr(),n=E(!1);function r(){n.value=!0}function i(){n.value=!1}return b(()=>t.path,()=>{n.value=!1}),(e,t)=>{let a=g(`RouterView`);return _(),j(`div`,mc,[N(eo,{class:`desktop-only admin-shell__sidebar`}),N(pc,{open:n.value,onClose:i},null,8,[`open`]),A(`div`,hc,[N(cc,{onMenuClick:r}),A(`main`,gc,[N(a)])])])}}}),[[`__scopeId`,`data-v-435fffac`]]),vc=`modulepreload`,yc=function(e){return`/admin/`+e},bc={},$=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=yc(t,n),t=s(t),t in bc)return;bc[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:vc,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},xc=Ta({history:qi(`/admin/`),routes:[{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-w-SE2utd.js`),__vite__mapDeps([0,1,2])),meta:{public:!0,title:`ورود به پنل مدیریت`}},{path:`/`,component:_c,meta:{requiresAuth:!0},children:[{path:``,name:`dashboard`,component:()=>$(()=>import(`./DashboardView-cyaZFrOQ.js`),__vite__mapDeps([3,1,4,5,6,7])),meta:{title:`داشبورد مدیریتی`}},{path:`orders`,name:`orders`,component:()=>$(()=>import(`./OrdersView-DGNYhZg3.js`),__vite__mapDeps([8,1,9,10,11,5,4,6,12])),meta:{title:`سفارش‌ها`}},{path:`orders/:id/pricing`,name:`order-pricing`,component:()=>$(()=>import(`./OrderPricingView-vS7IKrtc.js`),__vite__mapDeps([13,1,14,15,9,10,5,4,6,16,17,18])),meta:{title:`قیمت‌گذاری سفارش`}},{path:`checks`,name:`checks`,component:()=>$(()=>import(`./ChecksListView-DgtZLWw5.js`),__vite__mapDeps([19,1,14,15,9,10,4,5,6,20])),meta:{title:`چک‌ها`}},{path:`orders/:id/checks`,name:`order-checks`,component:()=>$(()=>import(`./CheckManagementView-D9Dy0r7I.js`),__vite__mapDeps([21,1,5,4,6,22])),meta:{title:`مدیریت چک‌های سفارش`}},{path:`orders/:id`,name:`order-detail`,redirect:e=>({name:`orders`,query:{order:String(e.params.id)}})},{path:`companies`,name:`companies`,component:()=>$(()=>import(`./CompaniesView-C28l_bkY.js`),__vite__mapDeps([23,1,14,15,24,25,26,27,28,29])),meta:{title:`مدیریت شرکت‌ها`}},{path:`companies/:companyId/accounts`,name:`bank-accounts`,component:()=>$(()=>import(`./BankAccountsView-CjjgU3ea.js`),__vite__mapDeps([30,1,24,25,26,27,28,31])),meta:{title:`حساب‌های بانکی`}},{path:`customers`,name:`customers`,component:()=>$(()=>import(`./CustomersView-D2DfLX0j.js`),__vite__mapDeps([32,1,14,15,24,25,26,27,9,10,11,28,33])),meta:{title:`مشتریان و واسطه‌ها`}},{path:`products`,name:`products`,component:()=>$(()=>import(`./ProductsView-NLVncfjZ.js`),__vite__mapDeps([34,1,14,15,24,25,26,27,35,36,9,10,28,16,17,37])),meta:{title:`محصولات`}},{path:`categories`,name:`categories`,component:()=>$(()=>import(`./CategoriesView-DAT9P8-Q.js`),__vite__mapDeps([38,1,14,15,24,25,35,36,9,10,39])),meta:{title:`دسته‌بندی‌ها`}},{path:`banners`,name:`banners`,component:()=>$(()=>import(`./BannersView-KHMLub3-.js`),__vite__mapDeps([40,1,14,15,24,25,26,27,35,36,9,10,41])),meta:{title:`بنرها`}},{path:`catalogs`,name:`catalogs`,component:()=>$(()=>import(`./CatalogsView-DJJrDHxo.js`),__vite__mapDeps([42,1,14,15,24,25,26,27,35,36,9,10,28,43])),meta:{title:`کالیته‌ها`}},{path:`catalog-requests`,name:`catalog-requests`,component:()=>$(()=>import(`./CatalogRequestsView-DQu3_M_v.js`),__vite__mapDeps([44,1,14,15,26,27,9,10,45])),meta:{title:`درخواست کالیته فیزیکی`}},{path:`brands`,name:`brands`,component:()=>$(()=>import(`./BrandsView-Il4Q4zqB.js`),__vite__mapDeps([46,1,14,15,24,25,26,27,47])),meta:{title:`برندها`}},{path:`suggestions`,name:`suggestions`,component:()=>$(()=>import(`./SuggestionsView-SvmEopB3.js`),__vite__mapDeps([48,1,14,15,26,27,9,10,49])),meta:{title:`پیشنهاد محصول`}},{path:`stock-alerts`,name:`stock-alerts`,component:()=>$(()=>import(`./StockAlertsView-B7WDBhjL.js`),__vite__mapDeps([50,1,14,15,26,27,51])),meta:{title:`خبر موجودی`}},{path:`levels`,name:`levels`,component:()=>$(()=>import(`./LevelsView-Cos5Q_ra.js`),__vite__mapDeps([52,1,14,15,26,27,53])),meta:{title:`سطوح مشتری`}},{path:`cash-payments`,name:`cash-payments`,component:()=>$(()=>import(`./CashPaymentsView-BmPMXCl-.js`),__vite__mapDeps([54,1,14,15,9,10,11,55])),meta:{title:`پرداخت‌های نقدی`}},{path:`shipping`,name:`shipping`,component:()=>$(()=>import(`./ShippingView-Ck9kASgn.js`),__vite__mapDeps([56,1,14,15,9,10,11,5,57])),meta:{title:`ارسال و باربری`}},{path:`reports`,name:`reports`,component:()=>$(()=>import(`./ReportsView-uTGceQoW.js`),__vite__mapDeps([58,1,14,15,59])),meta:{title:`گزارش‌ها`}},{path:`settings`,name:`settings`,component:()=>$(()=>import(`./SettingsView-BSpASBj1.js`),__vite__mapDeps([60,1,14,15,61])),meta:{title:`تنظیمات`}},{path:`users`,name:`users`,component:()=>$(()=>import(`./UsersView-OSVbK-od.js`),__vite__mapDeps([62,1,14,15,24,25,26,27,9,10,11,28,63])),meta:{title:`کاربران و دسترسی‌ها`}}]},{path:`/:pathMatch(.*)*`,name:`not-found`,component:()=>$(()=>import(`./NotFoundView-BAomeX7E.js`),__vite__mapDeps([64,1,65]))}]});xc.beforeEach(async e=>{let t=Xa();return await t.hydrate(),e.meta.public?t.isAuthenticated&&e.name===`login`?{name:`dashboard`}:!0:e.matched.some(e=>e.meta.requiresAuth)&&!t.isAuthenticated?{name:`login`,query:{redirect:e.fullPath}}:!0});var Sc=yn(Or),Cc=zn();Sc.use(Cc),Sc.use(xc),Os(Cc),Xa(Cc).hydrate(),Sc.mount(`#app`);export{Xa as A,nr as B,es as C,os as D,ss as E,Hr as F,hn as G,ln as H,Vr as I,q as K,br as L,Ka as M,Na as N,To as O,Oa as P,_r as R,Ko as S,Ho as T,an as U,tn as V,en as W,$o as _,ms as a,ts as b,Wo as c,Xo as d,ns as f,qo as g,Uo as h,xs as i,za as j,Ao as k,rs as l,Yo as m,ps as n,fs as o,Go as p,bs as r,Qo as s,ds as t,is as u,as as v,Zo as w,Jo as x,Vo as y,or as z}; \ No newline at end of file diff --git a/dist/assets/index-CznUUXv3.js b/dist/assets/index-CznUUXv3.js new file mode 100644 index 0000000..b6d8188 --- /dev/null +++ b/dist/assets/index-CznUUXv3.js @@ -0,0 +1,382 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-DGmyTEGH.js","assets/_plugin-vue_export-helper-OaxA6A2f.js","assets/http-Djf2pGxE.js","assets/LoginView-D9TVA-2V.css","assets/DashboardView-BEyyH9tP.js","assets/StatusBadge-Cg2zTE2k.js","assets/orderStatus-CYVblRJB.js","assets/StatusBadge-D4wGJ-Ud.css","assets/DashboardView-CFmOMgpM.css","assets/OrdersView-gEeEvVCz.js","assets/AdminSelect-DK-_otkw.js","assets/AdminSelect-DRq_EKw9.css","assets/adminLabels-Cz9ccm1Z.js","assets/OrdersView-BdQzhX-C.css","assets/OrderPricingView-BjVBgK4W.js","assets/AdminPageSkeleton-CTgUqaAu.js","assets/AdminPageSkeleton-Gm3IJwUK.css","assets/AdminCurrencyInput-BSNgTEBD.js","assets/AdminCurrencyInput-QPh70it7.css","assets/OrderPricingView-D4tU9mWx.css","assets/ChecksListView-Bmazx0UH.js","assets/ChecksListView-DeOu1gFo.css","assets/CheckManagementView-BVfVFn5F.js","assets/CheckManagementView-C1ozixF5.css","assets/CompaniesView-CS8K7UTP.js","assets/BaseSwitch-TV5Yvtf7.js","assets/BaseSwitch-CCZjYqBV.css","assets/BaseEmptyState-D6sk-aI_.js","assets/BaseEmptyState-Df57vCUi.css","assets/ActiveSwitchCell-CLCpM6ho.js","assets/CompaniesView-BubE_GYW.css","assets/BankAccountsView-CARvNvzB.js","assets/BankAccountsView-jIdT6saw.css","assets/CustomersView-D5oj1Urm.js","assets/CustomersView-Bx7jWwze.css","assets/ProductsView-C6janYUE.js","assets/AdminImagePicker-C4toq7MG.js","assets/AdminImagePicker-BeE_kWbB.css","assets/ProductsView-DdADDBgQ.css","assets/CategoriesView-cHE39jAd.js","assets/CategoriesView-D7xsOZr4.css","assets/BannersView-bUbLqnD2.js","assets/BannersView-TRKkvRxh.css","assets/CatalogsView-CkUrL58L.js","assets/CatalogsView-yskXIlwQ.css","assets/CatalogRequestsView-C4CHdApz.js","assets/CatalogRequestsView-DmO_C6eq.css","assets/BrandsView-BxPkwxAy.js","assets/BrandsView-B85xOFCI.css","assets/SuggestionsView-CXxCS34d.js","assets/SuggestionsView-ztSfUAsG.css","assets/StockAlertsView-DhDos3Ot.js","assets/StockAlertsView-CBkZ5P6m.css","assets/LevelsView-D3ss2h-3.js","assets/LevelsView-Bwpvfee6.css","assets/CashPaymentsView-CQhRcl_A.js","assets/CashPaymentsView-DDBlTRfX.css","assets/ShippingView-D-kzjDly.js","assets/ShippingView-G0QuXsX0.css","assets/ReportsView-Dev1cfMC.js","assets/ReportsView-dONYkP5k.css","assets/SettingsView-Bhs1XSG2.js","assets/SettingsView-CfZQdUlT.css","assets/SmsTariffView-XVhpP0ug.js","assets/SmsTariffView-DfW33peq.css","assets/UsersView-DVbizERy.js","assets/UsersView-DSH2HjHE.css","assets/NotFoundView-BAomeX7E.js","assets/NotFoundView-CY2m4474.css"])))=>i.map(i=>d[i]); +import{$ as e,B as t,C as n,G as r,H as i,I as a,J as o,K as s,M as c,N as l,O as u,Ot as d,Q as f,R as p,S as m,T as h,Tt as g,U as _,W as v,X as y,Y as b,Z as x,_ as S,a as C,at as w,b as T,c as E,d as D,et as O,g as k,h as A,it as j,j as M,k as N,l as ee,m as te,nt as ne,q as re,r as P,rt as ie,s as F,t as I,tt as ae,u as L,x as R,y as z,z as B}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{a as oe,c as se,i as ce,m as V,n as H,o as le,r as ue,s as de,t as fe}from"./http-Djf2pGxE.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var pe=typeof window<`u`,me,he=e=>me=e,ge=Symbol();function _e(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var ve=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function ye(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function be(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Te(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function xe(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Se(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var Ce=typeof navigator==`object`?navigator:{userAgent:``},we=/Macintosh/.test(Ce.userAgent)&&/AppleWebKit/.test(Ce.userAgent)&&!/Safari/.test(Ce.userAgent),Te=pe?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!we?Ee:`msSaveOrOpenBlob`in Ce?De:Oe:()=>{};function Ee(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?Se(r):xe(r.href)?be(e,t,n):(r.target=`_blank`,Se(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Se(r)},0))}function De(e,t=`download`,n){if(typeof e==`string`)if(xe(e))be(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){Se(t)})}else navigator.msSaveOrOpenBlob(ye(e,n),t)}function Oe(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return be(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(ve.HTMLElement))||`safari`in ve,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||we)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:ke}=Object;function Ae(){let e=_(!0),t=e.run(()=>x({})),n=[],r=[],i=re({install(e){he(i),i._a=e,e.provide(ge,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var je=()=>{};function Me(e,t,n,r=je){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&v()&&o(i),i}function Ne(e,...t){e.forEach(e=>{e(...t)})}var Pe=e=>e(),Fe=Symbol(),Ie=Symbol();function Le(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let i=t[n],a=e[n];e[n]=_e(a)&&_e(i)&&Object.hasOwn(e,n)&&!s(i)&&!r(i)?Le(a,i):i}return e}var Re=Symbol();function ze(e){return!e||typeof e!=`object`||!Object.hasOwn(e,Re)}var{assign:U}=Object;function Be(e){return!!(s(e)&&e.effect)}function Ve(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),U(ie(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=re(F(()=>{he(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=He(e,l,t,n,r,!0),c}function He(e,t,i={},a,o,c){let l,u=U({actions:{}},i),d={deep:!0},f,m,h=new Set,g=new Set,v,y=a.state.value[e];!c&&!y&&(a.state.value[e]={});let x;function S(t){let r;f=m=!1,typeof t==`function`?(t(a.state.value[e]),r={type:`patch function`,storeId:e,events:v}):(Le(a.state.value[e],t),r={type:`patch object`,payload:t,storeId:e,events:v});let i=x=Symbol();n().then(()=>{x===i&&(f=!0)}),m=!0,Ne(h,r,a.state.value[e])}let C=c?function(){let{state:e}=i,t=e?e():{};this.$patch(e=>{U(e,t)})}:je;function w(){l.stop(),h.clear(),g.clear(),a._s.delete(e)}let T=(t,n=``)=>{if(Fe in t)return t[Ie]=n,t;let r=function(){he(a);let n=Array.from(arguments),i=new Set,o=new Set;function s(e){i.add(e)}function c(e){o.add(e)}Ne(g,{args:n,name:r[Ie],store:D,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:D,n)}catch(e){throw Ne(o,e),e}return l instanceof Promise?l.then(e=>(Ne(i,e),e)).catch(e=>(Ne(o,e),Promise.reject(e))):(Ne(i,l),l)};return r[Fe]=!0,r[Ie]=n,r},E={_p:a,$id:e,$onAction:Me.bind(null,g),$patch:S,$reset:C,$subscribe(t,n={}){if(h.has(t))return je;let r=Me(h,t,n.detached,()=>i()),i=l.run(()=>p(()=>a.state.value[e],r=>{(n.flush===`sync`?m:f)&&t({storeId:e,type:`direct`,events:v},r)},U({},d,n)));return r},$dispose:w},D=b(E);a._s.set(e,D);let O=(a._a&&a._a.runWithContext||Pe)(()=>a._e.run(()=>(l=_()).run(()=>t({action:T}))));for(let t in O){let n=O[t];s(n)&&!Be(n)||r(n)?c||(y&&ze(n)&&(s(n)?n.value=y[t]:Le(n,y[t])),a.state.value[e][t]=n):typeof n==`function`&&(O[t]=T(n,t),u.actions[t]=n)}return U(D,O),U(ae(D),O),Object.defineProperty(D,"$state",{get:()=>a.state.value[e],set:e=>{S(t=>{U(t,e)})}}),a._p.forEach(e=>{let t=l.run(()=>e({store:D,app:a._a,pinia:a,options:u}));U(D,t)}),y&&c&&i.hydrate&&i.hydrate(D.$state,y),f=!0,m=!0,D}function Ue(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=T();return n||=o?R(ge,null):null,n&&he(n),n=me,n._s.has(e)||(i?He(e,t,r,n):Ve(e,r,n)),n._s.get(e)}return a.$id=e,a}var We={"vuesax-linear:add":` + + + +`,"vuesax-linear:arrow-down":` + + +`,"vuesax-linear:arrow-left-1":` + + +`,"vuesax-linear:arrow-right-1":` + + +`,"vuesax-linear:bag-2":` + + + + + +`,"vuesax-linear:bag-cross":` + + + + + + + +`,"vuesax-linear:box-1":` + + + + +`,"vuesax-linear:box-remove":` + + + + + + + +`,"vuesax-linear:box-search":` + + + + + + +`,"vuesax-linear:building":` + + + + + + + +`,"vuesax-linear:buildings":` + + + + + + + + +`,"vuesax-linear:calendar":` + + + + + + + + + + + +`,"vuesax-linear:call":` + + +`,"vuesax-linear:card":` + + + + + +`,"vuesax-linear:card-receive":` + + + + + + + +`,"vuesax-linear:category":` + + + + + +`,"vuesax-linear:chart-2":` + + + + +`,"vuesax-linear:clipboard-close":` + + + + + +`,"vuesax-linear:clock":` + + + + + +`,"vuesax-linear:close-circle":` + + + + +`,"vuesax-linear:cpu":` + + + + + + + + + + + + + + + +`,"vuesax-linear:diamonds":` + + + +`,"vuesax-linear:document-text":` + + + + + +`,"vuesax-linear:edit-2":` + + + + +`,"vuesax-linear:element-3":` + + + + + +`,"vuesax-linear:eye":` + + + +`,"vuesax-linear:eye-slash":` + + + + + + + +`,"vuesax-linear:filter":` + + + +`,"vuesax-linear:flash":` + + + + + +`,"vuesax-linear:headphone":` + + +`,"vuesax-linear:home":` + + + +`,"vuesax-linear:info-circle":` + + + + +`,"vuesax-linear:lamp-on":` + + + +`,"vuesax-linear:location":` + + + +`,"vuesax-linear:lock":` + + + + + + +`,"vuesax-linear:logout":` + + + + +`,"vuesax-linear:menu":` + + + + +`,"vuesax-linear:message":` + + + + + +`,"vuesax-linear:mobile":` + + + + +`,"vuesax-linear:money-4":` + + + + + + + +`,"vuesax-linear:monitor":` + + + + + +`,"vuesax-linear:moon":` + + +`,"vuesax-linear:more":` + + + + +`,"vuesax-linear:note-remove":` + + + + + + + + +`,"vuesax-linear:notification":` + + + + +`,"vuesax-linear:pen-add":` + + + + + + + + +`,"vuesax-linear:people":` + + + + + + + +`,"vuesax-linear:personalcard":` + + + + + + + +`,"vuesax-linear:printer":` + + + + + + +`,"vuesax-linear:profile-2user":` + + + + + +`,"vuesax-linear:profile-circle":` + + + + +`,"vuesax-linear:receipt-search":` + + + + + + +`,"vuesax-linear:search-normal":` + + + +`,"vuesax-linear:search-status":` + + + + + +`,"vuesax-linear:setting-2":` + + + +`,"vuesax-linear:shopping-bag":` + + + + +`,"vuesax-linear:sms":` + + + +`,"vuesax-linear:sun-1":` + + + +`,"vuesax-linear:tick-circle":` + + + +`,"vuesax-linear:timer-1":` + + + + +`,"vuesax-linear:trash":` + + + + + + +`,"vuesax-linear:truck-time":` + + + + + + + + +`,"vuesax-linear:verify":` + + + +`,"vuesax-linear:wallet":` + + + + +`,"vuesax-linear:warning-2":` + + + + +`},Ge=[`aria-hidden`,`innerHTML`],Ke=I(k({inheritAttrs:!1,__name:`BasicIcon`,props:{icon:{},color:{default:null},size:{default:24},strokeWidth:{default:1.5}},setup(e){se(e=>({v196ba43b:String(t.strokeWidth)}));let t=e,n=a(),r=F(()=>{let e=We[t.icon];if(!e)return``;let n=String(t.size);return e.replace(/\swidth="[^"]*"/,` width="${n}"`).replace(/\sheight="[^"]*"/,` height="${n}"`).replace(/stroke="#[^"]*"/g,`stroke="currentColor"`)}),i=F(()=>({color:t.color||void 0,width:`${t.size}px`,height:`${t.size}px`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,lineHeight:0,flexShrink:0})),o=F(()=>n[`aria-hidden`]??!0);return(e,t)=>(u(),D(`span`,m({class:`basic-icon`},w(n),{style:i.value,"aria-hidden":o.value,innerHTML:r.value}),null,16,Ge))}}),[[`__scopeId`,`data-v-159253ae`]]),qe={class:`toast-container`,"aria-live":`polite`,"aria-relevant":`additions`},Je={class:`toast__icon`,"aria-hidden":`true`},Ye={class:`toast__message`},Xe=[`onClick`],Ze=I(k({__name:`ToastContainer`,setup(e){let{toasts:n,dismiss:r}=oe(),i={success:`vuesax-linear:tick-circle`,error:`vuesax-linear:close-circle`,warning:`vuesax-linear:warning-2`,info:`vuesax-linear:info-circle`};function a(e,t){t.preventDefault(),t.stopPropagation(),r(e)}return(e,r)=>(u(),D(`div`,qe,[A(le,{name:`toast`,tag:`div`,class:`toast-container__list`},{default:t(()=>[(u(!0),D(P,null,M(w(n),e=>(u(),D(`div`,{key:e.id,class:g([`toast`,`toast--${e.tone}`]),role:`status`},[E(`span`,Je,[A(Ke,{icon:i[e.tone]||`vuesax-linear:info-circle`,size:20,"stroke-width":1.5},null,8,[`icon`])]),E(`p`,Ye,d(e.message),1),E(`button`,{type:`button`,class:`toast__close`,"aria-label":`بستن`,onClick:t=>a(e.id,t)},` × `,8,Xe)],2))),128))]),_:1})]))}}),[[`__scopeId`,`data-v-223aafac`]]),Qe=[`aria-label`],$e={class:`admin-modal__header`},et={class:`admin-modal__title`},tt={class:`admin-modal__body`},nt={key:0,class:`admin-modal__footer`},rt=I(k({__name:`BaseModal`,props:{open:{type:Boolean},title:{},size:{}},emits:[`close`],setup(e,{emit:t}){let n=t;function r(e){e.target===e.currentTarget&&n(`close`)}return(t,i)=>(u(),ee(C,{to:`body`},[e.open?(u(),D(`div`,{key:0,class:`admin-modal-backdrop`,role:`presentation`,onClick:r},[E(`div`,{class:g([`admin-modal`,{"admin-modal--lg":e.size===`lg`,"admin-modal--xl":e.size===`xl`}]),role:`dialog`,"aria-modal":`true`,"aria-label":e.title,onClick:i[1]||=V(()=>{},[`stop`])},[E(`header`,$e,[E(`h2`,et,d(e.title),1),E(`button`,{type:`button`,class:`admin-modal__close`,"aria-label":`بستن`,onClick:i[0]||=e=>n(`close`)},` × `)]),E(`div`,tt,[c(t.$slots,`default`,{},void 0,!0)]),t.$slots.footer?(u(),D(`footer`,nt,[c(t.$slots,`footer`,{},void 0,!0)])):L(``,!0)],10,Qe)])):L(``,!0)]))}}),[[`__scopeId`,`data-v-a52d3eeb`]]),it=b({open:!1,loading:!1,title:``,message:``,confirmLabel:`تأیید`,cancelLabel:`انصراف`,tone:`primary`,resolve:null});function at(){return it}function ot(e){return new Promise(t=>{Object.assign(it,{open:!0,loading:!1,title:e.title,message:e.message,confirmLabel:e.confirmLabel??`تأیید`,cancelLabel:e.cancelLabel??`انصراف`,tone:e.tone??`primary`,resolve:t})})}function st(e){it.resolve?.(e),it.open=!1,it.loading=!1,it.resolve=null}function ct(e){it.loading=e}var lt={class:`confirm-dialog__message`},ut=[`disabled`],dt=[`disabled`],ft={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},pt=I(k({__name:`ConfirmDialog`,setup(e){let n=at();function r(){st(!1)}function i(){ct(!0),st(!0)}return(e,a)=>(u(),ee(rt,{open:w(n).open,title:w(n).title,size:`md`,onClose:r},{footer:t(()=>[E(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:w(n).loading,onClick:r},d(w(n).cancelLabel),9,ut),E(`button`,{type:`button`,class:g([`admin-btn`,w(n).tone===`danger`?`admin-btn--danger`:`admin-btn--primary`]),disabled:w(n).loading,onClick:i},[w(n).loading?(u(),D(`span`,ft)):L(``,!0),te(` `+d(w(n).confirmLabel),1)],10,dt)]),default:t(()=>[E(`p`,lt,d(w(n).message),1)]),_:1},8,[`open`,`title`]))}}),[[`__scopeId`,`data-v-47354e67`]]),mt=k({__name:`App`,setup(e){return(e,t)=>{let n=l(`RouterView`);return u(),D(P,null,[A(n),A(Ze),A(pt)],64)}}});function ht(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function gt(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&ht(e.default)}var W=Object.assign;function _t(e,t){let n={};for(let r in t){let i=t[r];n[r]=G(i)?i.map(e):e(i)}return n}var vt=()=>{},G=Array.isArray;function yt(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var bt=Symbol(``);function xt(e,t){return W(Error(),{type:e,[bt]:!0},t)}function K(e,t){return e instanceof Error&&bt in e&&(t==null||!!(e.type&t))}var St=Symbol(``),Ct=Symbol(``),wt=Symbol(``),Tt=Symbol(``),Et=Symbol(``);function Dt(){return R(wt)}function Ot(e){return R(Tt)}var kt=typeof document<`u`,At=/#/g,jt=/&/g,Mt=/\//g,Nt=/=/g,Pt=/\?/g,Ft=/\+/g,It=/%5B/g,Lt=/%5D/g,Rt=/%5E/g,zt=/%60/g,Bt=/%7B/g,Vt=/%7C/g,Ht=/%7D/g,Ut=/%20/g;function Wt(e){return e==null?``:encodeURI(``+e).replace(Vt,`|`).replace(It,`[`).replace(Lt,`]`)}function Gt(e){return Wt(e).replace(Bt,`{`).replace(Ht,`}`).replace(Rt,`^`)}function Kt(e){return Wt(e).replace(Ft,`%2B`).replace(Ut,`+`).replace(At,`%23`).replace(jt,`%26`).replace(zt,"`").replace(Bt,`{`).replace(Ht,`}`).replace(Rt,`^`)}function qt(e){return Kt(e).replace(Nt,`%3D`)}function Jt(e){return Wt(e).replace(At,`%23`).replace(Pt,`%3F`)}function Yt(e){return Jt(e).replace(Mt,`%2F`)}function Xt(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Zt=/\/$/,Qt=e=>e.replace(Zt,``);function $t(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=cn(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Xt(o)}}function en(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function tn(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function nn(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&rn(t.matched[r],n.matched[i])&&an(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function rn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function an(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!on(e[n],t[n]))return!1;return!0}function on(e,t){return G(e)?sn(e,t):G(t)?sn(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function sn(e,t){return G(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function cn(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var q={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function ln(e){if(!e)if(kt){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),Qt(e)}var un=/^[^#]+#/;function dn(e,t){return e.replace(un,`#`)+t}function fn(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var pn=()=>({left:window.scrollX,top:window.scrollY});function mn(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=fn(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function hn(e,t){return(history.state?history.state.position-t:-1)+e}var gn=new Map;function _n(e,t){gn.set(e,t)}function vn(e){let t=gn.get(e);return gn.delete(e),t}function yn(e){return typeof e==`string`||e&&typeof e==`object`}function bn(e){return typeof e==`string`||typeof e==`symbol`}function xn(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Kt(e)):[r&&Kt(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Cn(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=G(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function wn(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function J(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(xt(4,{from:n,to:t})):e instanceof Error?c(e):yn(e)?c(xt(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Tn(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(ht(s)){let c=(s.__vccOpts||s)[t];c&&a.push(J(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=gt(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&J(c,n,r,o,e,i)()}))}}return a}function En(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;orn(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>rn(e,s))||i.push(s))}return[n,r,i]}var Dn=()=>location.protocol+`//`+location.host;function On(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),tn(n,``)}return tn(n,e)+r+i}function kn(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=On(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(W({},e.state,{scroll:pn()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function An(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?pn():null}}function jn(e){let{history:t,location:n}=window,r={value:On(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Dn()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,W({},t.state,An(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=W({},i.value,t.state,{forward:e,scroll:pn()});a(o.current,o,!0),a(e,W({},An(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Mn(e){e=ln(e);let t=jn(e),n=kn(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=W({location:``,base:e,go:r,createHref:dn.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Nn={type:0,value:``},Pn=/[a-zA-Z0-9_]/;function Fn(e){if(!e)return[[]];if(e===`/`)return[[Nn]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function Vn(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Un={strict:!1,end:!0,sensitive:!1};function Wn(e,t,n){let r=W(zn(Fn(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Gn(e,t){let n=[],r=new Map;t=yt(Un,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=qn(e);s.aliasOf=r&&r.record;let l=yt(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(qn(W({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=Wn(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Yn(d)&&o(e.name)),$n(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:vt}function o(e){if(bn(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Zn(e,n);n.splice(t,0,e),e.record.name&&!Yn(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw xt(1,{location:e});s=i.record.name,a=W(Kn(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&Kn(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw xt(1,{location:e,currentLocation:t});s=i.record.name,a=W({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Xn(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function Kn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function qn(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Jn(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Jn(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Yn(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Xn(e){return e.reduce((e,t)=>W(e,t.meta),{})}function Zn(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Vn(e,t[i])<0?r=i:n=i+1}let i=Qn(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Qn(e){let t=e;for(;t=t.parent;)if($n(t)&&Vn(e,t)===0)return t}function $n({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function er(e){let t=R(wt),n=R(Tt),r=F(()=>{let n=w(e.to);return t.resolve(n)}),i=F(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(rn.bind(null,i));if(o>-1)return o;let s=ar(e[t-2]);return t>1&&ar(i)===s&&a[a.length-1].path!==s?a.findIndex(rn.bind(null,e[t-2])):o}),a=F(()=>i.value>-1&&ir(n.params,r.value.params)),o=F(()=>i.value>-1&&i.value===n.matched.length-1&&an(n.params,r.value.params));function s(n={}){if(rr(n)){let n=t[w(e.replace)?`replace`:`push`](w(e.to)).catch(vt);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:F(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function tr(e){return e.length===1?e[0]:e}var nr=k({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:er,setup(e,{slots:t}){let n=b(er(e)),{options:r}=R(wt),i=F(()=>({[or(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[or(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&tr(t.default(n));return e.custom?r:z(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function rr(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function ir(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!G(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function ar(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var or=(e,t,n)=>e??t??n,sr=k({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=R(Et),i=F(()=>e.route||r.value),a=R(Ct,0),o=F(()=>{let e=w(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=F(()=>i.value.matched[o.value]);N(Ct,F(()=>o.value+1)),N(St,s),N(Et,i);let c=x();return p(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!rn(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return cr(n.default,{Component:l,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=z(l,W({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return cr(n.default,{Component:f,route:r})||f}}});function cr(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var lr=sr;function ur(e){let t=Gn(e.routes,e),r=e.parseQuery||xn,i=e.stringifyQuery||Sn,a=e.history,o=wn(),s=wn(),c=wn(),l=O(q),u=q;kt&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let d=_t.bind(null,e=>``+e),p=_t.bind(null,Yt),m=_t.bind(null,Xt);function h(e,n){let r,i;return bn(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function g(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function _(){return t.getRoutes().map(e=>e.record)}function v(e){return!!t.getRecordMatcher(e)}function y(e,n){if(n=W({},n||l.value),typeof e==`string`){let i=$t(r,e,n.path),o=t.resolve({path:i.path},n),s=a.createHref(i.fullPath);return W(i,o,{params:m(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=W({},e,{path:$t(r,e.path,n.path).path});else{let t=W({},e.params);for(let e in t)t[e]??delete t[e];o=W({},e,{params:p(t)}),n.params=p(n.params)}let s=t.resolve(o,n),c=e.hash||``;s.params=d(m(s.params));let u=en(i,W({},e,{hash:Gt(c),path:s.path})),f=a.createHref(u);return W({fullPath:u,hash:c,query:i===Sn?Cn(e.query):e.query||{}},s,{redirectedFrom:void 0,href:f})}function b(e){return typeof e==`string`?$t(r,e,l.value.path):W({},e)}function x(e,t){if(u!==e)return xt(8,{from:t,to:e})}function S(e){return E(e)}function C(e){return S(W(b(e),{replace:!0}))}function T(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=b(i):{path:i},i.params={}),W({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function E(e,t){let n=u=y(e),r=l.value,a=e.state,o=e.force,s=e.replace===!0,c=T(n,r);if(c)return E(W(b(c),{state:typeof c==`object`?W({},a,c.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&nn(i,r,n)&&(f=xt(16,{to:d,from:r}),I(r,r,!0,!1)),(f?Promise.resolve(f):A(d,r)).catch(e=>K(e)?K(e,2)?e:F(e):P(e,d,r)).then(e=>{if(e){if(K(e,2))return E(W({replace:s},b(e.to),{state:typeof e.to==`object`?W({},a,e.to.state):a,force:o}),t||d)}else e=M(d,r,!0,s,a);return j(d,r,e),e})}function D(e,t){let n=x(e,t);return n?Promise.reject(n):Promise.resolve()}function k(e){let t=R.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function A(e,t){let n,[r,i,a]=En(e,t);n=Tn(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(J(r,e,t))});let c=D.bind(null,e,t);return n.push(c),B(n).then(()=>{n=[];for(let r of o.list())n.push(J(r,e,t));return n.push(c),B(n)}).then(()=>{n=Tn(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(J(r,e,t))});return n.push(c),B(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(G(r.beforeEnter))for(let i of r.beforeEnter)n.push(J(i,e,t));else n.push(J(r.beforeEnter,e,t));return n.push(c),B(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Tn(a,`beforeRouteEnter`,e,t,k),n.push(c),B(n))).then(()=>{n=[];for(let r of s.list())n.push(J(r,e,t));return n.push(c),B(n)}).catch(e=>K(e,8)?e:Promise.reject(e))}function j(e,t,n){c.list().forEach(r=>k(()=>r(e,t,n)))}function M(e,t,n,r,i){let o=x(e,t);if(o)return o;let s=t===q,c=kt?history.state:{};n&&(r||s?a.replace(e.fullPath,W({scroll:s&&c&&c.scroll},i)):a.push(e.fullPath,i)),l.value=e,I(e,t,n,s),F()}let N;function ee(){N||=a.listen((e,t,n)=>{if(!z.listening)return;let r=y(e),i=T(r,z.currentRoute.value);if(i){E(W(i,{replace:!0,force:!0}),r).catch(vt);return}u=r;let o=l.value;kt&&_n(hn(o.fullPath,n.delta),pn()),A(r,o).catch(e=>K(e,12)?e:K(e,2)?(E(W(b(e.to),{force:!0}),r).then(e=>{K(e,20)&&!n.delta&&n.type===`pop`&&a.go(-1,!1)}).catch(vt),Promise.reject()):(n.delta&&a.go(-n.delta,!1),P(e,r,o))).then(e=>{e||=M(r,o,!1),e&&(n.delta&&!K(e,8)?a.go(-n.delta,!1):n.type===`pop`&&K(e,20)&&a.go(-1,!1)),j(r,o,e)}).catch(vt)})}let te=wn(),ne=wn(),re;function P(e,t,n){F(e);let r=ne.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function ie(){return re&&l.value!==q?Promise.resolve():new Promise((e,t)=>{te.add([e,t])})}function F(e){return re||(re=!e,ee(),te.list().forEach(([t,n])=>e?n(e):t()),te.reset()),e}function I(t,r,i,a){let{scrollBehavior:o}=e;if(!kt||!o)return Promise.resolve();let s=!i&&vn(hn(t.fullPath,0))||(a||!i)&&history.state&&history.state.scroll||null;return n().then(()=>o(t,r,s)).then(e=>t===l.value&&e&&mn(e)).catch(e=>t===l.value&&P(e,t,r))}let ae=e=>a.go(e),L,R=new Set,z={currentRoute:l,listening:!0,addRoute:h,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:v,getRoutes:_,resolve:y,options:e,push:S,replace:C,go:ae,back:()=>ae(-1),forward:()=>ae(1),beforeEach:o.add,beforeResolve:s.add,afterEach:c.add,onError:ne.add,isReady:ie,install(e){e.component(`RouterLink`,nr),e.component(`RouterView`,lr),e.config.globalProperties.$router=z,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>w(l)}),kt&&!L&&l.value===q&&(L=!0,S(a.location).catch(e=>{}));let t={};for(let e in q)Object.defineProperty(t,e,{get:()=>l.value[e],enumerable:!0});e.provide(wt,z),e.provide(Tt,f(t)),e.provide(Et,l);let n=e.unmount;R.add(e),e.unmount=function(){R.delete(e),R.size<1&&(u=q,N&&N(),N=null,l.value=q,L=!1,re=!1),n()}}};function B(e){return e.reduce((e,t)=>e.then(()=>k(t)),Promise.resolve())}return z}var dr=[{name:`dashboard`,label:`داشبورد`,path:`/`,icon:`home`},{name:`orders`,label:`سفارش‌ها`,path:`/orders`,icon:`orders`},{name:`customers`,label:`مشتریان و واسطه‌ها`,path:`/customers`,icon:`customers`},{name:`products`,label:`محصولات`,path:`/products`,icon:`products`},{name:`categories`,label:`دسته‌بندی‌ها`,path:`/categories`,icon:`catalogs`},{name:`banners`,label:`بنرها`,path:`/banners`,icon:`image`},{name:`catalogs`,label:`کالیته‌ها`,path:`/catalogs`,icon:`catalogs`},{name:`catalog-requests`,label:`درخواست کالیته فیزیکی`,path:`/catalog-requests`,icon:`file`},{name:`brands`,label:`برندها`,path:`/brands`,icon:`building`},{name:`suggestions`,label:`پیشنهاد محصول`,path:`/suggestions`,icon:`cart`},{name:`stock-alerts`,label:`خبر موجودی`,path:`/stock-alerts`,icon:`bell`},{name:`levels`,label:`سطوح مشتری`,path:`/levels`,icon:`users`},{name:`companies`,label:`شرکت‌ها`,path:`/companies`,icon:`companies`},{name:`checks`,label:`چک‌ها`,path:`/checks`,icon:`checks`},{name:`cash-payments`,label:`پرداخت‌های نقدی`,path:`/cash-payments`,icon:`cash`},{name:`shipping`,label:`ارسال و باربری`,path:`/shipping`,icon:`shipping`},{name:`reports`,label:`گزارش‌ها`,path:`/reports`,icon:`reports`},{name:`settings`,label:`تنظیمات`,path:`/settings`,icon:`settings`},{name:`sms-tariff`,label:`تعرفه پیامک‌ها`,path:`/sms-tariff`,icon:`sms`},{name:`users`,label:`کاربران و دسترسی‌ها`,path:`/users`,icon:`users`}],fr=`09128081392`;function pr(e){if(!e)return!1;let t=e.replace(/\D/g,``);return t.startsWith(`98`)&&t.length===12&&(t=`0${t.slice(2)}`),t.length===10&&t.startsWith(`9`)&&(t=`0${t}`),t===fr}function mr(e){return pr(e)?dr:dr.filter(e=>e.name!==`sms-tariff`)}function hr(e,t){if(e===`/`)return t===`/`;if(/^\/orders\/[^/]+\/checks/.test(t)){if(e===`/checks`)return!0;if(e===`/orders`)return!1}return t===e||t.startsWith(`${e}/`)}var Y=k({__name:`AdminIcon`,props:{name:{},size:{default:20},strokeWidth:{default:1.5},color:{default:null}},setup(e){let t=e,n={home:`vuesax-linear:home`,orders:`vuesax-linear:document-text`,customers:`vuesax-linear:profile-2user`,products:`vuesax-linear:box-1`,catalogs:`vuesax-linear:category`,image:`vuesax-linear:category`,companies:`vuesax-linear:buildings`,checks:`vuesax-linear:card-receive`,cash:`vuesax-linear:money-4`,shipping:`vuesax-linear:truck-time`,reports:`vuesax-linear:chart-2`,settings:`vuesax-linear:setting-2`,users:`vuesax-linear:people`,logout:`vuesax-linear:logout`,search:`vuesax-linear:search-normal`,bell:`vuesax-linear:notification`,message:`vuesax-linear:message`,calendar:`vuesax-linear:calendar`,menu:`vuesax-linear:menu`,filter:`vuesax-linear:filter`,more:`vuesax-linear:more`,"chevron-left":`vuesax-linear:arrow-left-1`,"chevron-right":`vuesax-linear:arrow-right-1`,"chevron-back":`vuesax-linear:arrow-right-1`,"chevron-down":`vuesax-linear:arrow-down`,print:`vuesax-linear:printer`,sms:`vuesax-linear:sms`,check:`vuesax-linear:tick-circle`,cart:`vuesax-linear:bag-2`,file:`vuesax-linear:document-text`,wallet:`vuesax-linear:wallet`,"check-circle":`vuesax-linear:tick-circle`,phone:`vuesax-linear:call`,"id-card":`vuesax-linear:personalcard`,lock:`vuesax-linear:lock`,eye:`vuesax-linear:eye`,"eye-off":`vuesax-linear:eye-slash`,user:`vuesax-linear:profile-circle`,building:`vuesax-linear:building`,trash:`vuesax-linear:trash`},r=F(()=>t.name.startsWith(`vuesax-linear:`)?t.name:n[t.name]??`vuesax-linear:info-circle`);return(t,n)=>(u(),ee(Ke,{icon:r.value,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`icon`,`size`,`stroke-width`,`color`]))}}),X=`fabric-admin-session`,gr=`fabric-admin-token`,_r=!1,vr={phone:`09128081392`,password:`123456`,session:{id:`mock-admin-1`,fullName:`مدیر سیستم (موک)`,phone:`09128081392`,email:`admin@parche.ir`,role:`admin`}};function yr(){try{let e=localStorage.getItem(X)??sessionStorage.getItem(X);return e?JSON.parse(e):null}catch{return null}}function br(e,t){let n=JSON.stringify(e);localStorage.removeItem(X),sessionStorage.removeItem(X),t?localStorage.setItem(X,n):sessionStorage.setItem(X,n)}function xr(){localStorage.removeItem(X),sessionStorage.removeItem(X)}function Sr(){return!!localStorage.getItem(gr)}function Cr(e){return{id:e.id,fullName:e.fullName,phone:e.phone,email:e.email,role:e.role}}function wr(){return yr()}function Tr(){return _r}async function Er(e){let t=e.phone.trim(),n=e.password;if(!t||!n)return{success:!1,message:`شماره موبایل و رمز عبور الزامی است.`};try{let r=await H(`/admin/auth/login`,{method:`POST`,body:{phone:t,password:n},auth:!1});return ce(r.accessToken,e.remember),br(Cr(r.user),e.remember),{success:!0}}catch(e){return e instanceof fe?{success:!1,message:e.message}:{success:!1,message:`ورود انجام نشد.`}}}async function Dr(){let e=ue();if(!e)return xr(),null;if(e===`mock-admin-token`){let e=yr()??vr.session;return br(e,Sr()),e}try{let e=Cr(await H(`/auth/me`));return br(e,Sr()),e}catch{return ce(null),xr(),null}}function Or(){ce(null),xr()}var kr=Ue(`auth`,()=>{let e=x(wr()),t=x(!1),n=x(null),r=F(()=>!!e.value),i=F(()=>e.value?.fullName??``),a=F(()=>e.value?{admin:`مدیر سیستم`,sales:`واحد فروش`,finance:`واحد مالی`,warehouse:`انبار`}[e.value.role]:``);function o(){n.value=null}async function s(){e.value=wr(),e.value=await Dr()}async function c(r,i,a){t.value=!0,n.value=null;let o=await Er({phone:r,password:i,remember:a});return t.value=!1,o.success?(e.value=wr(),!0):(n.value=o.message??`ورود انجام نشد.`,!1)}function l(){Or(),e.value=null,n.value=null}return{session:e,loading:t,error:n,isAuthenticated:r,fullName:i,roleLabel:a,clearError:o,hydrate:s,login:c,logout:l}}),Ar={class:`admin-sidebar`,"aria-label":`ناوبری پنل مدیریت`},jr={class:`admin-sidebar__nav`},Mr=[`onClick`],Nr=I(k({__name:`AdminSidebar`,setup(e){let t=Ot(),n=Dt(),r=kr(),i=F(()=>mr(r.session?.phone));function a(e){n.push(e)}function o(){r.logout(),n.push(`/login`)}return(e,n)=>(u(),D(`aside`,Ar,[E(`div`,{class:`admin-sidebar__brand`},[E(`img`,{src:`/admin/brand-logo.png`,alt:`نادمی تکس`,class:`admin-sidebar__logo`}),n[0]||=E(`strong`,{class:`admin-sidebar__title`},`پارچه`,-1),n[1]||=E(`span`,{class:`admin-sidebar__subtitle`},`پنل مدیریت`,-1)]),E(`nav`,jr,[(u(!0),D(P,null,M(i.value,e=>(u(),D(`button`,{key:e.name,type:`button`,class:g([`admin-sidebar__item`,{active:w(hr)(e.path,w(t).path)}]),onClick:t=>a(e.path)},[A(Y,{name:e.icon,size:20},null,8,[`name`]),E(`span`,null,d(e.label),1)],10,Mr))),128))]),E(`button`,{type:`button`,class:`admin-sidebar__logout`,onClick:o},[A(Y,{name:`logout`,size:20}),n[2]||=E(`span`,null,`خروج`,-1)])]))}}),[[`__scopeId`,`data-v-a8a62cb5`]]),Pr=new WeakMap,Fr=(...e)=>{let t=e[0],n=S()?.proxy??v();if(n==null&&!T())throw Error(`injectLocal must be called in setup`);return n&&Pr.has(n)&&t in Pr.get(n)?Pr.get(n)[t]:R(...e)},Ir=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var Lr=Object.prototype.toString,Rr=e=>Lr.call(e)===`[object Object]`,zr=()=>{},Br=Vr();function Vr(){var e,t;return Ir&&!!((e=window)!=null&&(e=e.navigator)!=null&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function Hr(...e){if(e.length!==1)return ne(...e);let t=e[0];return typeof t==`function`?y(i(()=>({get:t,set:zr}))):x(t)}function Ur(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return`cancel`in e&&Object.assign(n,{cancel:e.cancel,flush:e.flush,isPending:e.isPending}),n}var Wr=e=>e();function Gr(t=Wr,n={}){let{initialState:r=`active`}=n,i=Hr(r===`active`);function a(){i.value=!1}function o(){i.value=!0}return{isActive:e(i),pause:a,resume:o,eventFilter:(...e)=>{i.value&&t(...e)}}}function Kr(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function qr(e){return Array.isArray(e)?e:[e]}function Jr(e){return e||S()}function Yr(e,t,n={}){let{eventFilter:r=Wr,...i}=n;return p(e,Ur(r,t),i)}function Xr(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=Gr(r,{initialState:i});return{stop:Yr(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function Zr(e,t=!0,r){Jr(r)?h(e,r):t?e():n(e)}function Qr(e,t,n){return p(e,t,{...n,immediate:!0})}var $r=Ir?window:void 0;Ir&&window.document,Ir&&window.navigator,Ir&&window.location;function ei(e){let t=j(e);return t?.$el??t}function Z(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=F(()=>{let t=qr(j(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return Qr(()=>[n.value?.map(e=>ei(e))??[$r].filter(e=>e!=null),qr(j(n.value?e[1]:e[0])),qr(w(n.value?e[2]:e[1])),j(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=Rr(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}var ti=!1;function ni(e,t,n={}){let{window:r=$r,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:zr,cancel:zr,trigger:zr}:zr;if(Br&&!ti){ti=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,zr,e)),r.document.documentElement.addEventListener(`click`,zr,e)}let c=!0,l=e=>j(i).some(t=>{if(typeof t==`string`)return Array.from(r.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{let n=ei(t);return n&&(e.target===n||e.composedPath().includes(n))}});function u(e){let t=j(e);return t&&t.$.subTree.shapeFlag===16}function d(e,t){let n=j(e),r=n.$.subTree&&n.$.subTree.children;return r==null||!Array.isArray(r)?!1:r.some(e=>e.el===t.target||t.composedPath().includes(e.el))}let f=n=>{let r=ei(e);if(n.target!=null&&!(!(r instanceof Element)&&u(e)&&d(e,n))&&!(!r||r===n.target||n.composedPath().includes(r))){if(`detail`in n&&n.detail===0&&(c=!l(n)),!c){c=!0;return}t(n)}},p=!1,m=[Z(r,`click`,e=>{p||(p=!0,setTimeout(()=>{p=!1},0),f(e))},{passive:!0,capture:a}),Z(r,`pointerdown`,t=>{let n=ei(e);c=!l(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),o&&Z(r,`blur`,n=>{setTimeout(()=>{let i=ei(e),a=r.document.activeElement;for(;a?.shadowRoot;)a=a.shadowRoot.activeElement;a?.tagName===`IFRAME`&&!i?.contains(r.document.activeElement)&&t(n)},0)},{passive:!0})].filter(Boolean),h=()=>m.forEach(e=>e());return s?{stop:h,cancel:()=>{c=!1},trigger:e=>{c=!0,f(e),c=!1}}:h}function ri(){let e=O(!1),t=S();return t&&h(()=>{e.value=!0},t),e}function ii(e){let t=ri();return F(()=>(t.value,!!e()))}var ai=Symbol(`vueuse-ssr-width`);function oi(){let e=T()?Fr(ai,null):null;return typeof e==`number`?e:void 0}function si(e,t={}){let{window:n=$r,ssrWidth:r=oi()}=t,i=ii(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),a=O(typeof r==`number`),o=O(),s=O(!1);return B(()=>{if(a.value){a.value=!i.value;let t=j(e).split(`,`);s.value=t.some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),i=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=!!(n||i);return n&&a&&(a=r>=Kr(n[1])),i&&a&&(a=r<=Kr(i[1])),t?!a:a});return}i.value&&(o.value=n.matchMedia(j(e)),s.value=o.value.matches)}),Z(o,`change`,e=>{s.value=e.matches},{passive:!0}),F(()=>s.value)}var ci=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},li=`__vueuse_ssr_handlers__`,ui=di();function di(){return li in ci||(ci[li]=ci[li]||{}),ci[li]}function fi(e,t){return ui[e]||t}function pi(e){return si(`(prefers-color-scheme: dark)`,e)}function mi(e){return e==null?`any`:e instanceof Set?`set`:e instanceof Map?`map`:e instanceof Date?`date`:typeof e==`boolean`?`boolean`:typeof e==`string`?`string`:typeof e==`object`?`object`:Number.isNaN(e)?`any`:`number`}var hi={boolean:{read:e=>e===`true`,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},gi=`vueuse-storage`;function _i(e,t,r,i={}){let{flush:a=`pre`,deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:c=!0,mergeDefaults:l=!1,shallow:u,window:d=$r,eventFilter:f,onError:m=e=>{console.error(e)},initOnMounted:h}=i,g=(u?O:x)(typeof t==`function`?t():t),_=F(()=>j(e));if(!r)try{r=fi(`getDefaultStorage`,()=>$r?.localStorage)()}catch(e){m(e)}if(!r)return g;let v=j(t),y=mi(v),b=i.serializer??hi[y],{pause:S,resume:C}=Xr(g,e=>E(e),{flush:a,deep:o,eventFilter:f});p(_,()=>k(),{flush:a});let w=!1;d&&s&&(r instanceof Storage?Z(d,`storage`,e=>{h&&!w||k(e)},{passive:!0}):Z(d,gi,e=>{h&&!w||A(e)})),h?Zr(()=>{w=!0,k()}):k();function T(e,t){if(d){let n={key:_.value,oldValue:e,newValue:t,storageArea:r};d.dispatchEvent(r instanceof Storage?new StorageEvent(`storage`,n):new CustomEvent(gi,{detail:n}))}}function E(e){try{let t=r.getItem(_.value);if(e==null)T(t,null),r.removeItem(_.value);else{let n=b.write(e);t!==n&&(r.setItem(_.value,n),T(t,n))}}catch(e){m(e)}}function D(e){let t=e?e.newValue:r.getItem(_.value);if(t==null)return c&&v!=null&&r.setItem(_.value,b.write(v)),v;if(!e&&l){let e=b.read(t);return typeof l==`function`?l(e,v):y===`object`&&!Array.isArray(e)?{...v,...e}:e}return typeof t==`string`?b.read(t):t}function k(e){if(!(e&&e.storageArea!==r)){if(e&&e.key==null){g.value=v;return}if(!(e&&e.key!==_.value)){S();try{let t=b.write(g.value);(e===void 0||e?.newValue!==t)&&(g.value=D(e))}catch(e){m(e)}finally{e?n(C):C()}}}}function A(e){k(e.detail)}return g}function vi(e){return{...e,status:e.adminStatus??e.status,rawStatus:e.status,allowedTransitions:e.allowedTransitions??[],settlementMethod:e.settlementMethod??e.settlementType??null,meterage:e.meterage??e.totalMeterage??0}}function yi(e){return e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``)||`c-${Date.now()}`}var bi={list:e=>H(`/companies`,{query:{activeOnly:e?`true`:void 0}}),get:e=>H(`/companies/${e}`),create:e=>H(`/companies`,{body:e}),update:(e,t)=>H(`/companies/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>H(`/companies/${e}/active`,{method:`PATCH`,body:{isActive:t}})},xi={listByCompany:e=>H(`/companies/${e}/bank-accounts`),create:(e,t)=>H(`/companies/${e}/bank-accounts`,{body:t}),update:(e,t)=>H(`/bank-accounts/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>H(`/bank-accounts/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Si={list:e=>H(`/catalogs`,{query:{companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>H(`/catalogs`,{body:e}),update:(e,t)=>H(`/catalogs/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>H(`/catalogs/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Ci={list:e=>H(`/products`,{query:{catalogId:e?.catalogId,companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>H(`/products`,{body:e,timeoutMs:9e4}),update:(e,t)=>H(`/products/${e}`,{method:`PATCH`,body:t,timeoutMs:9e4}),setActive:(e,t)=>H(`/products/${e}/active`,{method:`PATCH`,body:{isActive:t}})},wi={list:(e,t)=>H(`/admin/customers`,{query:{q:e,appRole:t}}),create:e=>H(`/admin/customers`,{body:e}),update:(e,t)=>H(`/admin/customers/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>H(`/admin/customers/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Ti={list:e=>H(`/admin/orders`,{query:{status:e?.status,q:e?.q}}),get:e=>H(`/admin/orders/${e}`),create:e=>H(`/admin/orders`,{body:e}),updatePricing:(e,t)=>H(`/admin/orders/${e}/pricing`,{method:`PATCH`,body:t}),updateStatus:(e,t)=>H(`/admin/orders/${e}/status`,{method:`PATCH`,body:t})},Ei={list:e=>H(`/admin/checks`,{query:{status:e}}),listByOrder:e=>H(`/admin/orders/${e}/checks`),updateStatus:(e,t)=>H(`/admin/checks/${e}/status`,{method:`PATCH`,body:t})},Di={list:e=>H(`/admin/cash-payments`,{query:{status:e}}),updateStatus:(e,t)=>H(`/admin/cash-payments/${e}/status`,{method:`PATCH`,body:t})},Oi={list:e=>H(`/admin/shipments`,{query:{status:e}}),create:e=>H(`/admin/shipments`,{body:e}),update:(e,t)=>H(`/admin/shipments/${e}`,{method:`PATCH`,body:t}),advanceStatus:(e,t)=>H(`/admin/shipments/${e}/status`,{method:`PATCH`,body:t??{}})},ki={list:()=>H(`/admin/users`),create:e=>H(`/admin/users`,{body:e}),update:(e,t)=>H(`/admin/users/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>H(`/admin/users/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Ai={get:()=>H(`/admin/dashboard`),reports:()=>H(`/admin/reports`)},ji={get:()=>H(`/admin/settings`),update:e=>H(`/admin/settings`,{method:`PATCH`,body:e})},Mi={markRead:e=>H(`/admin/notifications/${e}/read`,{method:`PATCH`}),markAllRead:()=>H(`/admin/notifications/read-all`,{method:`PATCH`}),broadcast:e=>H(`/admin/notifications/broadcast`,{method:`POST`,body:e})},Ni={list:e=>H(`/admin/catalog-requests`,{query:{status:e}}),updateStatus:(e,t)=>H(`/admin/catalog-requests/${e}/status`,{method:`PATCH`,body:{status:t}}),updateHolder:(e,t)=>H(`/admin/catalog-request-items/${e}/holder`,{method:`PATCH`,body:t})},Pi={list:e=>H(`/admin/banners`,{query:{slot:e}}),create:e=>H(`/admin/banners`,{body:e}),update:(e,t)=>H(`/admin/banners/${e}`,{method:`PATCH`,body:t}),remove:e=>H(`/admin/banners/${e}`,{method:`DELETE`})},Fi={list:()=>H(`/admin/brands`),create:e=>H(`/admin/brands`,{body:e}),update:(e,t)=>H(`/admin/brands/${e}`,{method:`PATCH`,body:t})},Ii={list:()=>H(`/admin/levels`),create:e=>H(`/admin/levels`,{body:e}),update:(e,t)=>H(`/admin/levels/${e}`,{method:`PATCH`,body:t})},Li={list:e=>H(`/admin/suggestions`,{query:{customerId:e}}),create:e=>H(`/admin/suggestions`,{body:e}),setActive:(e,t)=>H(`/admin/suggestions/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Ri={list:()=>H(`/admin/stock-alerts`),notify:e=>H(`/admin/stock-alerts/${e}/notify`,{method:`PATCH`})},zi={summary:()=>H(`/admin/sms-wallet`),manage:()=>H(`/admin/sms-wallet/manage`),update:e=>H(`/admin/sms-wallet`,{method:`PATCH`,body:e}),charge:e=>H(`/admin/sms-wallet/charge`,{body:e})},Bi=x(null);function Vi(){async function e(){Bi.value=await zi.summary()}return{summary:Bi,refresh:e}}var Hi=`۰۱۲۳۴۵۶۷۸۹`,Ui=new Intl.NumberFormat(`fa-IR`,{useGrouping:!0});function Wi(e){return e.replace(/[۰-۹]/g,e=>String(Hi.indexOf(e)))}function Gi(e){return Wi(e).replace(/[^\d]/g,``)}function Ki(e){return Number.isFinite(e)?Ui.format(e):`—`}function qi(e){return`${Ki(e)} تومان`}function Ji(e){return`${Ki(e)} متر`}function Yi(e){return String(e).replace(/\d/g,e=>Hi[Number(e)])}var Xi=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`}),Zi=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`});function Qi(e){let t=Wi(e.trim()).replace(/-/g,`/`).match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!t)return!1;let n=Number(t[1]);return n>=1300&&n<=1500}function $i(e){if(typeof e!=`string`)return e;let t=e.trim(),n=t.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(n&&Number(n[1])>=1700)return new Date(Number(n[1]),Number(n[2])-1,Number(n[3]));let r=new Date(t);return Number.isNaN(r.getTime())?new Date(NaN):r}function ea(e){if(!e)return`—`;if(typeof e==`string`&&Qi(e)){let t=Wi(e.trim()).replace(/-/g,`/`),n=t.match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!n)return Yi(t);let[,r,i,a]=n;return Yi(`${r}/${i.padStart(2,`0`)}/${a.padStart(2,`0`)}`)}let t=$i(e);return Number.isNaN(t.getTime())?`—`:Xi.format(t)}function ta(e){if(!e)return`—`;if(typeof e==`string`&&Qi(e)&&!/[T\s]\d/.test(e))return ea(e);let t=$i(e);return Number.isNaN(t.getTime())?`—`:Zi.format(t)}var na=/ORD-?\d{2,4}-?\d{2,6}/i,ra=/^\/?(?:admin\/)?orders\/([^/?#]+)\/?$/i,ia=/^\/?(?:admin\/)?orders\/([^/?#]+)\/(pricing|checks)\/?$/i;function aa(e){let t=e.match(na);if(!t?.[0])return null;let n=t[0].toUpperCase().replace(/^ORD-?/,``).replace(/-/g,``);return n.length<6?t[0].toUpperCase():`ORD-${n.slice(0,4)}-${n.slice(4)}`}function Q(e,t){return t.some(t=>t.test(e))}function oa(e){let t=e.trim();if(!t)return t;try{if(/^https?:\/\//i.test(t)){let e=new URL(t);t=`${e.pathname}${e.search}`}}catch{}t=t.replace(/^\/admin(?=\/)/,``),t.startsWith(`/`)||(t=`/${t}`);let n=t.match(ia);if(n?.[1]&&n[2])return`/orders/${n[1]}/${n[2]}`;let r=t.match(ra);return r?.[1]?`/orders?order=${encodeURIComponent(r[1])}`:t}function sa(e){let t=e.link?.trim();if(t)return oa(t);let n=`${e.title?.trim()??``} ${e.body?.trim()??``}`,r=e.orderId?.trim()||null,i=aa(n),a=Q(n,[/پیامک/]),o=Q(n,[/چک/]),s=Q(n,[/قیمت/,/تخفیف/,/پیش[‌\s]?فاکتور/,/قیمت‌گذاری/,/اصلاح قیمت/]),c=!a&&Q(n,[/ارسال/,/باربری/,/حمل/,/بارنامه/]),l=Q(n,[/نقدی/,/پرداخت نقد/,/رسید پرداخت/]),u=Q(n,[/گزارش/]),d=Q(n,[/مشتری جدید/,/ثبت مشتری/]),f=Q(n,[/کالیته/]),p=Q(n,[/محصول/]),m=Q(n,[/شرکت/,/حساب بانکی/]),h=Q(n,[/سفارش/]),g=a||Q(n,[/پشتیبان/,/تنظیمات/]);return r?o?`/orders/${r}/checks`:s?`/orders/${r}/pricing`:c?`/shipping?order=${encodeURIComponent(r)}`:l?`/cash-payments?order=${encodeURIComponent(r)}`:`/orders?order=${encodeURIComponent(r)}`:i?o?`/orders?order=${encodeURIComponent(i)}&focus=checks`:s?`/orders?order=${encodeURIComponent(i)}&focus=pricing`:c?`/shipping?order=${encodeURIComponent(i)}`:l?`/cash-payments?order=${encodeURIComponent(i)}`:`/orders?order=${encodeURIComponent(i)}`:o?`/checks`:c?`/shipping`:l?`/cash-payments`:u?`/reports`:d?`/customers`:f?`/catalogs`:p?`/products`:m?`/companies`:g?`/settings`:s||h?`/orders`:null}function ca(e){return e.replace(/\D/g,``).replace(/(\d{4})(?=\d)/g,`$1 `).trim()}function la(e){let t=e.replace(/[\s-]/g,``).toUpperCase(),n=t.startsWith(`IR`)?t.slice(2):t;if(n.length<2)return t;let r=n.slice(2).replace(/(.{4})/g,`$1 `).trim();return`IR${n.slice(0,2)} ${r}`.trim()}var ua=Ue(`theme`,()=>{let e=_i(`ft_admin_theme`,`system`),t=pi(),n=F(()=>e.value===`system`?t.value?`dark`:`light`:e.value),r=F(()=>n.value===`dark`);B(()=>{let e=document.documentElement;e.classList.toggle(`dark`,r.value),e.style.colorScheme=n.value});function i(t){e.value=t}return{preference:e,resolved:n,isDark:r,setPreference:i}}),da={class:`admin-header`},fa={class:`admin-header__right`},pa=[`disabled`],ma={key:0},ha={class:`admin-header__dropdown`},ga=[`aria-label`,`aria-expanded`],_a={key:0,class:`admin-header__badge`,"aria-hidden":`true`},va={class:`admin-header__panel-header`},ya={key:0,class:`admin-header__panel-list`},ba=[`onClick`],xa={class:`admin-header__panel-item-top`},Sa=[`datetime`],Ca={class:`admin-header__panel-item-sender`},wa={class:`admin-header__panel-item-body`},Ta={key:1,class:`admin-header__panel-empty`},Ea={class:`admin-header__dropdown`},Da=[`aria-label`,`aria-expanded`],Oa={key:0,class:`admin-header__badge`,"aria-hidden":`true`},ka={class:`admin-header__panel-header`},Aa={key:0,class:`admin-header__panel-list`},ja=[`onClick`],Ma={class:`admin-header__panel-item-top`},Na=[`datetime`],Pa={class:`admin-header__panel-item-body`},Fa={key:1,class:`admin-header__panel-empty`},Ia={class:`admin-header__dropdown`},La=[`aria-label`,`aria-expanded`],Ra={class:`admin-header__theme-glyph`,"aria-hidden":`true`},za={class:`admin-header__theme-list`},Ba=[`onClick`],Va={class:`admin-header__theme-option-icon`,"aria-hidden":`true`},Ha={class:`admin-header__theme-option-label`},Ua={class:`admin-header__user`},Wa={class:`admin-header__avatar`},Ga={class:`admin-header__user-info`},Ka={key:0,class:`sms-charge`},qa={class:`sms-charge__row`},Ja={dir:`ltr`},Ya={class:`sms-charge__row`},Xa={dir:`ltr`},Za={class:`sms-charge__name`},Qa=I(k({__name:`AdminHeader`,emits:[`menuClick`],setup(e){let n=Dt(),r=kr(),i=ua(),a=oe(),{summary:o,refresh:s}=Vi(),c=x(!1),l=x(null),f=x(null),p=x([]),m=x([]),_=F(()=>p.value.filter(e=>!e.isRead).length),v=F(()=>m.value.filter(e=>!e.isRead).length),y=[{value:`light`,label:`روشن`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,icon:`vuesax-linear:mobile`}],b=F(()=>y.find(e=>e.value===i.preference)?.label??`سیستم`),S=F(()=>y.find(e=>e.value===i.preference)?.icon??`vuesax-linear:sun-1`);Ai.get().then(e=>{p.value=e.messages??[],m.value=e.notifications??[]}).catch(()=>{p.value=[],m.value=[]}),ni(f,()=>{l.value=null}),Z(document,`keydown`,e=>{e.key===`Escape`&&(l.value=null)});function C(e){l.value=l.value===e?null:e}function T(){l.value=null}function O(e){e.isRead=!0}function k(e){e.isRead||(e.isRead=!0,Mi.markRead(e.id).catch(()=>{e.isRead=!1}))}function j(){p.value.forEach(e=>{e.isRead=!0})}function N(){let e=m.value.filter(e=>!e.isRead);e.length&&(e.forEach(e=>{e.isRead=!0}),Mi.markAllRead().catch(()=>{e.forEach(e=>{e.isRead=!1})}))}function ne(e){T(),e&&n.push(e)}function re(e){O(e),ne(sa({link:e.link,orderId:e.orderId,title:e.subject,body:e.preview}))}function ie(e){k(e),ne(sa({link:e.link,orderId:e.orderId,title:e.title,body:e.body}))}function I(e){i.setPreference(e),T()}let ae=F(()=>{let e=o.value;return e?e.blocked||e.balanceToman<=e.redThreshold?`danger`:e.balanceToman<=e.yellowThreshold?`warn`:`ok`:`ok`});function R(){s().catch(()=>{})}h(R),Z(window,`focus`,R);async function z(e){try{await navigator.clipboard.writeText(e.replace(/\s/g,``)),a.success(`کپی شد.`)}catch{a.error(`کپی انجام نشد.`)}}return(e,n)=>(u(),D(P,null,[E(`header`,da,[E(`div`,fa,[E(`button`,{type:`button`,class:`admin-header__menu-btn compact-only`,"aria-label":`باز کردن منو`,onClick:n[0]||=t=>e.$emit(`menuClick`)},[A(Y,{name:`menu`,size:22})])]),E(`div`,{ref_key:`actionsRef`,ref:f,class:`admin-header__left`},[E(`div`,{class:g([`sms-credit`,w(o)?`sms-credit--${ae.value}`:``])},[E(`button`,{type:`button`,class:`sms-credit__charge`,disabled:!w(o),onClick:n[1]||=e=>c.value=!0},` شارژ `,8,pa),E(`span`,null,`اعتبار پیامک: `+d(w(o)?w(Ki)(w(o).balanceRial):`—`)+` ریال`,1),w(o)?.blocked?(u(),D(`span`,ma,`مسدود`)):L(``,!0)],2),E(`div`,ha,[E(`button`,{type:`button`,class:g([`admin-header__icon-btn`,{"admin-header__icon-btn--active":l.value===`messages`}]),title:`پیام‌های داخلی`,"aria-label":`پیام‌های داخلی — ${_.value} پیام خوانده‌نشده`,"aria-expanded":l.value===`messages`,"aria-haspopup":`true`,onClick:n[2]||=V(e=>C(`messages`),[`stop`])},[A(Y,{name:`message`,size:22}),_.value?(u(),D(`span`,_a,d(_.value),1)):L(``,!0),n[11]||=E(`span`,{class:`admin-header__icon-label`},`پیام`,-1)],10,ga),l.value===`messages`?(u(),D(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`پیام‌های داخلی`,onClick:n[3]||=V(()=>{},[`stop`])},[E(`div`,va,[n[12]||=E(`h2`,{class:`admin-header__panel-title`},`پیام‌های داخلی`,-1),_.value?(u(),D(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:j},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):L(``,!0)]),p.value.length?(u(),D(`ul`,ya,[(u(!0),D(P,null,M(p.value,e=>(u(),D(`li`,{key:e.id,class:g([`admin-header__panel-item`,{unread:!e.isRead}])},[E(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>re(e)},[E(`span`,xa,[E(`strong`,null,d(e.subject),1),E(`time`,{datetime:e.sentAt},d(w(ta)(e.sentAt)),9,Sa)]),E(`span`,Ca,`از `+d(e.senderName),1),E(`span`,wa,d(e.preview),1)],8,ba)],2))),128))])):(u(),D(`p`,Ta,`پیامی وجود ندارد.`))])):L(``,!0)]),E(`div`,Ea,[E(`button`,{type:`button`,class:g([`admin-header__icon-btn`,{"admin-header__icon-btn--active":l.value===`notifications`}]),title:`اعلان‌ها`,"aria-label":`اعلان‌ها — ${v.value} اعلان جدید`,"aria-expanded":l.value===`notifications`,"aria-haspopup":`true`,onClick:n[4]||=V(e=>C(`notifications`),[`stop`])},[A(Y,{name:`bell`,size:22}),v.value?(u(),D(`span`,Oa,d(v.value),1)):L(``,!0),n[13]||=E(`span`,{class:`admin-header__icon-label`},`اعلان`,-1)],10,Da),l.value===`notifications`?(u(),D(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`اعلان‌ها`,onClick:n[5]||=V(()=>{},[`stop`])},[E(`div`,ka,[n[14]||=E(`h2`,{class:`admin-header__panel-title`},`اعلان‌ها`,-1),v.value?(u(),D(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:N},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):L(``,!0)]),m.value.length?(u(),D(`ul`,Aa,[(u(!0),D(P,null,M(m.value,e=>(u(),D(`li`,{key:e.id,class:g([`admin-header__panel-item`,[{unread:!e.isRead},e.tone?`admin-header__panel-item--${e.tone}`:``]])},[E(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>ie(e)},[E(`span`,Ma,[E(`strong`,null,d(e.title),1),E(`time`,{datetime:e.sentAt},d(w(ta)(e.sentAt)),9,Na)]),E(`span`,Pa,d(e.body),1)],8,ja)],2))),128))])):(u(),D(`p`,Fa,`اعلانی وجود ندارد.`))])):L(``,!0)]),E(`div`,Ia,[E(`button`,{type:`button`,class:g([`admin-header__icon-btn`,{"admin-header__icon-btn--active":l.value===`theme`}]),title:`حالت نمایش`,"aria-label":`حالت نمایش — ${b.value}`,"aria-expanded":l.value===`theme`,"aria-haspopup":`true`,onClick:n[6]||=V(e=>C(`theme`),[`stop`])},[E(`span`,Ra,[A(Ke,{icon:S.value,size:20,"stroke-width":1.5},null,8,[`icon`])]),n[15]||=E(`span`,{class:`admin-header__icon-label`},`تم`,-1)],10,La),l.value===`theme`?(u(),D(`div`,{key:0,class:`admin-header__panel admin-header__panel--theme`,role:`dialog`,"aria-label":`انتخاب حالت نمایش`,onClick:n[7]||=V(()=>{},[`stop`])},[n[16]||=E(`div`,{class:`admin-header__panel-header`},[E(`h2`,{class:`admin-header__panel-title`},`حالت نمایش`)],-1),E(`ul`,za,[(u(),D(P,null,M(y,e=>E(`li`,{key:e.value},[E(`button`,{type:`button`,class:g([`admin-header__theme-option`,{"admin-header__theme-option--active":w(i).preference===e.value}]),onClick:t=>I(e.value)},[E(`span`,Va,[A(Ke,{icon:e.icon,size:18,"stroke-width":1.5},null,8,[`icon`])]),E(`span`,Ha,d(e.label),1),w(i).preference===e.value?(u(),ee(Ke,{key:0,class:`admin-header__theme-option-check`,icon:`vuesax-linear:tick-circle`,size:16,"stroke-width":1.75})):L(``,!0)],10,Ba)])),64))])])):L(``,!0)]),E(`div`,Ua,[E(`div`,Wa,d(w(r).fullName.charAt(0)||`؟`),1),E(`div`,Ga,[E(`strong`,null,d(w(r).fullName||`مدیر`),1),E(`span`,null,d(w(r).roleLabel||`پنل مدیریت`),1)])])],512)]),A(rt,{open:c.value,title:`شارژ اعتبار پیامک`,onClose:n[10]||=e=>c.value=!1},{default:t(()=>[w(o)?(u(),D(`div`,Ka,[n[20]||=E(`p`,{class:`sms-charge__note`},` لطفا مبلغ مورد نظر خود جهت شارژ سامانه پیامکی را به شماره کارت یا حساب زیر واریز نمایید و تصویر فیش پرداختی را برای پشتیبانی بفرستید. `,-1),E(`div`,qa,[E(`button`,{type:`button`,class:`sms-charge__copy`,onClick:n[8]||=e=>z(w(o).deposit.cardNumber)},` کپی `),E(`div`,null,[n[17]||=E(`span`,null,`شماره کارت`,-1),E(`strong`,Ja,d(w(Yi)(w(ca)(w(o).deposit.cardNumber))),1)])]),E(`div`,Ya,[E(`button`,{type:`button`,class:`sms-charge__copy sms-charge__copy--sheba`,onClick:n[9]||=e=>z(w(o).deposit.sheba)},` کپی `),E(`div`,null,[n[18]||=E(`span`,null,`شماره شبا`,-1),E(`strong`,Xa,d(w(Yi)(w(la)(w(o).deposit.sheba))),1)])]),E(`p`,Za,[n[19]||=te(` به نام `,-1),E(`strong`,null,d(w(o).deposit.accountName),1)])])):L(``,!0)]),_:1},8,[`open`])],64))}}),[[`__scopeId`,`data-v-e61788c1`]]),$a=[`aria-hidden`],eo={class:`admin-drawer__brand`},to={class:`admin-drawer__nav`},no=[`onClick`],ro=I(k({__name:`AdminMobileDrawer`,props:{open:{type:Boolean}},emits:[`close`],setup(e,{emit:t}){let n=t,r=Ot(),i=Dt(),a=kr(),o=F(()=>mr(a.session?.phone));function s(e){i.push(e),n(`close`)}function c(){a.logout(),i.push(`/login`),n(`close`)}return(t,i)=>(u(),D(P,null,[E(`div`,{class:g([`admin-drawer-backdrop`,{open:e.open}]),role:`presentation`,onClick:i[0]||=e=>n(`close`)},null,2),E(`aside`,{class:g([`admin-drawer`,{open:e.open}]),"aria-label":`منوی ناوبری`,"aria-hidden":!e.open},[E(`div`,eo,[E(`img`,{src:`/admin/brand-logo.png`,alt:`نادمی تکس`,class:`admin-drawer__logo`}),i[2]||=E(`strong`,null,`پارچه`,-1),i[3]||=E(`span`,null,`پنل مدیریت`,-1),E(`button`,{type:`button`,class:`admin-drawer__close`,"aria-label":`بستن منو`,onClick:i[1]||=e=>n(`close`)},` × `)]),E(`nav`,to,[(u(!0),D(P,null,M(o.value,e=>(u(),D(`button`,{key:e.name,type:`button`,class:g([`admin-drawer__item`,{active:w(hr)(e.path,w(r).path)}]),onClick:t=>s(e.path)},[A(Y,{name:e.icon,size:20},null,8,[`name`]),E(`span`,null,d(e.label),1)],10,no))),128))]),E(`button`,{type:`button`,class:`admin-drawer__logout`,onClick:c},[A(Y,{name:`logout`,size:20}),i[4]||=E(`span`,null,`خروج`,-1)])],10,$a)],64))}}),[[`__scopeId`,`data-v-72a66f9e`]]),io={class:`admin-shell`},ao={class:`admin-shell__main`},oo={class:`admin-shell__content`},so=I(k({__name:`AdminShell`,setup(e){let t=Ot(),n=x(!1);function r(){n.value=!0}function i(){n.value=!1}return p(()=>t.path,()=>{n.value=!1}),(e,t)=>{let a=l(`RouterView`);return u(),D(`div`,io,[A(Nr,{class:`desktop-only admin-shell__sidebar`}),A(ro,{open:n.value,onClose:i},null,8,[`open`]),E(`div`,ao,[A(Qa,{onMenuClick:r}),E(`main`,oo,[A(a)])])])}}}),[[`__scopeId`,`data-v-435fffac`]]),co=`modulepreload`,lo=function(e){return`/admin/`+e},uo={},$=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=lo(t,n),t=s(t),t in uo)return;uo[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:co,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},fo=ur({history:Mn(`/admin/`),routes:[{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-DGmyTEGH.js`),__vite__mapDeps([0,1,2,3])),meta:{public:!0,title:`ورود به پنل مدیریت`}},{path:`/`,component:so,meta:{requiresAuth:!0},children:[{path:``,name:`dashboard`,component:()=>$(()=>import(`./DashboardView-BEyyH9tP.js`),__vite__mapDeps([4,1,2,5,6,7,8])),meta:{title:`داشبورد مدیریتی`}},{path:`orders`,name:`orders`,component:()=>$(()=>import(`./OrdersView-gEeEvVCz.js`),__vite__mapDeps([9,1,2,10,11,12,6,5,7,13])),meta:{title:`سفارش‌ها`}},{path:`orders/:id/pricing`,name:`order-pricing`,component:()=>$(()=>import(`./OrderPricingView-BjVBgK4W.js`),__vite__mapDeps([14,1,2,15,16,10,11,6,5,7,17,18,19])),meta:{title:`قیمت‌گذاری سفارش`}},{path:`checks`,name:`checks`,component:()=>$(()=>import(`./ChecksListView-Bmazx0UH.js`),__vite__mapDeps([20,1,2,15,16,10,11,5,6,7,21])),meta:{title:`چک‌ها`}},{path:`orders/:id/checks`,name:`order-checks`,component:()=>$(()=>import(`./CheckManagementView-BVfVFn5F.js`),__vite__mapDeps([22,1,2,6,5,7,23])),meta:{title:`مدیریت چک‌های سفارش`}},{path:`orders/:id`,name:`order-detail`,redirect:e=>({name:`orders`,query:{order:String(e.params.id)}})},{path:`companies`,name:`companies`,component:()=>$(()=>import(`./CompaniesView-CS8K7UTP.js`),__vite__mapDeps([24,1,2,15,16,25,26,27,28,29,30])),meta:{title:`مدیریت شرکت‌ها`}},{path:`companies/:companyId/accounts`,name:`bank-accounts`,component:()=>$(()=>import(`./BankAccountsView-CARvNvzB.js`),__vite__mapDeps([31,1,2,25,26,27,28,29,32])),meta:{title:`حساب‌های بانکی`}},{path:`customers`,name:`customers`,component:()=>$(()=>import(`./CustomersView-D5oj1Urm.js`),__vite__mapDeps([33,1,2,15,16,25,26,27,28,10,11,12,29,34])),meta:{title:`مشتریان و واسطه‌ها`}},{path:`products`,name:`products`,component:()=>$(()=>import(`./ProductsView-C6janYUE.js`),__vite__mapDeps([35,1,2,15,16,25,26,27,28,36,37,10,11,29,17,18,38])),meta:{title:`محصولات`}},{path:`categories`,name:`categories`,component:()=>$(()=>import(`./CategoriesView-cHE39jAd.js`),__vite__mapDeps([39,1,2,15,16,25,26,36,37,10,11,40])),meta:{title:`دسته‌بندی‌ها`}},{path:`banners`,name:`banners`,component:()=>$(()=>import(`./BannersView-bUbLqnD2.js`),__vite__mapDeps([41,1,2,15,16,25,26,27,28,36,37,10,11,42])),meta:{title:`بنرها`}},{path:`catalogs`,name:`catalogs`,component:()=>$(()=>import(`./CatalogsView-CkUrL58L.js`),__vite__mapDeps([43,1,2,15,16,25,26,27,28,36,37,10,11,29,44])),meta:{title:`کالیته‌ها`}},{path:`catalog-requests`,name:`catalog-requests`,component:()=>$(()=>import(`./CatalogRequestsView-C4CHdApz.js`),__vite__mapDeps([45,1,2,15,16,27,28,10,11,46])),meta:{title:`درخواست کالیته فیزیکی`}},{path:`brands`,name:`brands`,component:()=>$(()=>import(`./BrandsView-BxPkwxAy.js`),__vite__mapDeps([47,1,2,15,16,25,26,27,28,48])),meta:{title:`برندها`}},{path:`suggestions`,name:`suggestions`,component:()=>$(()=>import(`./SuggestionsView-CXxCS34d.js`),__vite__mapDeps([49,1,2,15,16,27,28,10,11,50])),meta:{title:`پیشنهاد محصول`}},{path:`stock-alerts`,name:`stock-alerts`,component:()=>$(()=>import(`./StockAlertsView-DhDos3Ot.js`),__vite__mapDeps([51,1,2,15,16,27,28,52])),meta:{title:`خبر موجودی`}},{path:`levels`,name:`levels`,component:()=>$(()=>import(`./LevelsView-D3ss2h-3.js`),__vite__mapDeps([53,1,2,15,16,27,28,54])),meta:{title:`سطوح مشتری`}},{path:`cash-payments`,name:`cash-payments`,component:()=>$(()=>import(`./CashPaymentsView-CQhRcl_A.js`),__vite__mapDeps([55,1,2,15,16,10,11,12,56])),meta:{title:`پرداخت‌های نقدی`}},{path:`shipping`,name:`shipping`,component:()=>$(()=>import(`./ShippingView-D-kzjDly.js`),__vite__mapDeps([57,1,2,15,16,10,11,12,6,58])),meta:{title:`ارسال و باربری`}},{path:`reports`,name:`reports`,component:()=>$(()=>import(`./ReportsView-Dev1cfMC.js`),__vite__mapDeps([59,1,2,15,16,60])),meta:{title:`گزارش‌ها`}},{path:`settings`,name:`settings`,component:()=>$(()=>import(`./SettingsView-Bhs1XSG2.js`),__vite__mapDeps([61,1,2,15,16,62])),meta:{title:`تنظیمات`}},{path:`sms-tariff`,name:`sms-tariff`,component:()=>$(()=>import(`./SmsTariffView-XVhpP0ug.js`),__vite__mapDeps([63,1,2,15,16,25,26,17,18,64])),meta:{title:`تعرفه پیامک‌ها`,smsWalletOwner:!0}},{path:`users`,name:`users`,component:()=>$(()=>import(`./UsersView-DVbizERy.js`),__vite__mapDeps([65,1,2,15,16,25,26,27,28,10,11,12,29,66])),meta:{title:`کاربران و دسترسی‌ها`}}]},{path:`/:pathMatch(.*)*`,name:`not-found`,component:()=>$(()=>import(`./NotFoundView-BAomeX7E.js`),__vite__mapDeps([67,1,68]))}]});fo.beforeEach(async e=>{let t=kr();return await t.hydrate(),e.meta.public?t.isAuthenticated&&e.name===`login`?{name:`dashboard`}:!0:e.matched.some(e=>e.meta.requiresAuth)&&!t.isAuthenticated?{name:`login`,query:{redirect:e.fullPath}}:e.meta.smsWalletOwner&&!pr(t.session?.phone)?{name:`dashboard`}:!0});var po=de(mt),mo=Ae();po.use(mo),po.use(fo),ua(mo),kr(mo).hydrate(),po.mount(`#app`),`serviceWorker`in navigator&&window.addEventListener(`load`,()=>{navigator.serviceWorker.register(`/admin/sw.js`,{scope:`/admin/`})});export{Ri as A,ot as B,Mi as C,Oi as D,ji as E,vr as F,Ke as H,Tr as I,Y as L,ni as M,si as N,yi as O,kr as P,Ot as R,vi as S,Ci as T,rt as V,Ei as _,ea as a,Ai as b,Ki as c,xi as d,Pi as f,Si as g,Ni as h,qi as i,Li as j,zi as k,Vi as l,Di as m,la as n,ta as o,Fi as p,Gi as r,Ji as s,ca as t,ki as u,bi as v,Ti as w,Ii as x,wi as y,Dt as z}; \ No newline at end of file diff --git a/dist/brand-logo.png b/dist/brand-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..97bfb62b86a5e31a4e62d2527aa11cbe37dedd87 GIT binary patch literal 47625 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 diff --git a/dist/icon-192.png b/dist/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..54e13b806e9a0dc7f49894d12a43ccfbf40ff5cc GIT binary patch literal 11165 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 - + + + + + + + پنل مدیریت | پارچه - + - + +

diff --git a/dist/manifest.webmanifest b/dist/manifest.webmanifest new file mode 100644 index 0000000..2ff6d09 --- /dev/null +++ b/dist/manifest.webmanifest @@ -0,0 +1,25 @@ +{ + "name": "نادمی تکس | پنل مدیریت", + "short_name": "پنل نادمی تکس", + "description": "پنل مدیریت سفارش‌های عمده", + "lang": "fa", + "dir": "rtl", + "start_url": "./", + "display": "standalone", + "background_color": "#081d39", + "theme_color": "#081d39", + "icons": [ + { + "src": "icon-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "icon-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" + } + ] +} diff --git a/dist/sw.js b/dist/sw.js new file mode 100644 index 0000000..cb98ffa --- /dev/null +++ b/dist/sw.js @@ -0,0 +1,26 @@ +const CACHE_NAME = 'nademitex-admin-v1' + +self.addEventListener('install', () => { + self.skipWaiting() +}) + +self.addEventListener('activate', (event) => { + event.waitUntil(self.clients.claim()) +}) + +self.addEventListener('fetch', (event) => { + if (event.request.method !== 'GET') return + + const url = new URL(event.request.url) + if (url.origin !== self.location.origin || url.pathname.includes('/server/api')) return + + event.respondWith( + fetch(event.request) + .then((response) => { + const copy = response.clone() + caches.open(CACHE_NAME).then((cache) => cache.put(event.request, copy)) + return response + }) + .catch(() => caches.match(event.request)), + ) +}) diff --git a/index.html b/index.html index d810e40..d034c1d 100644 --- a/index.html +++ b/index.html @@ -2,8 +2,14 @@ - + + + + + + + پنل مدیریت | پارچه diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..68d5a355c939b29fccadfb32547ba08cec49f002 GIT binary patch literal 10421 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 literal 0 HcmV?d00001 diff --git a/public/brand-logo.png b/public/brand-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..97bfb62b86a5e31a4e62d2527aa11cbe37dedd87 GIT binary patch literal 47625 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 diff --git a/public/icon-192.png b/public/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..54e13b806e9a0dc7f49894d12a43ccfbf40ff5cc GIT binary patch literal 11165 zcmZ{qWmr_v_wNsal*FhALk}QG3Iixe!_eI&J#=@Mij=gJq<|oxf^;_wNH|DH4InKb zLxc1^{{HdY`{KTsIrE%3YscApuf4vXy<#-g6-bF`hyef~RZ^7I2Ctp}K7_Zx@A>u% zP4EIkDr&0%Kp-0cghv3tIe07lHvstX0l=080ElD)0F`@Avz8e62fmexf-G;XIX ze#a<)cL=MP!}#F zA}A;#AjrkXC&I_~>WkyI|Hr_^&Dy~>;Qw!Mus7xd8nFLw4c-neHeTMAF7E$-o8q;@ za?nQjpN#_&DS~u!5Abxbv-buN|MLsRj^u#BpFIFMC^?cnALcxfxhz?9?=PvOs=KIP$m3^({P`|r)L{m;WL zmaaawmPl_OPa97Fd=O^u?d>kY%j@Uo_t?P(`50+W7Y3+;7DE4P;bv{){GUhvw@{d@ zjjg4Rvp4KtZAdp~Hy=-!m%Am>2F3&X*8*7`#WDck$WW4%*7cv=$=&qR(`&|Vh#GYK zR9{SjC@RooJ*@2_W0#YbZe~xXjQ?3zPSJtsSjq{)Qm-tKZ|LT(>%TBIR{j{xb`oVmIut!15-2A!J0u>{2KU6?$Izhw*HT7HH?`4F5=SI9CDIHRc-8-0K$=Y)BSi#LE-T?^=@4u6*^toFxtN7mfThql zMv?IF*3myIYL11o#oUq^sHe}@bBTSTd5e$P*RfAFA-60l^ak-~|9bVE(%%$i$YX>E<~MexZbqlAPY ziy6h&OD_H5zUKsa8zmCLC$G=Oqx4g^B5x;s*Za{)43jA>EPL+zXTI%5@%`=&6lF2z zs)Ia!zZ~4pN-aRhM7DA#qvClz()edmbqZBp-cuW^niYr)yZShS>@y%k=s{<8lOt5|FdX%S^7Y_*w#u23hc=16+QJ|s?GDX|fub;ptA zNPgloUvEl4&PZMwi+-21BV42~LHS@+xcuJDn4s^0WXStmXJ-o{|bN<9Q6<75;8?X zfNr4Kl8iz3sQYr$NADFW%OqUz7dSSu9BG0!J1BaE#9aLc@5X`%?gE~4e!~NnXH7U$ zBhiz!4J6IpJCQq$epKR6+EpO{U+-CW=cO8oADiGMyX&Xn8p7i%Md`qdoKi zOtdCv`Cxg1%SVlT1M4#0&$l3+MD$a-8RMr*KAe4!Wnse2_4w@hFh3?-AVM28+SgQY=h*s0z=DvZae^X-0G`pC#IgdLBw=_mFAI7{CVq;wi z!1w-FI|4>nS!o=0f#ONt2*GCpCPV@oI}aTgBlyBsQod);hhMoO`S8c9KSiaE_*)mM zC{{DDwYenwYAHXFlQ`J%V|1S3Am|>gm_!hee&TEpc(HF$dT2{UO!Wv z)W){PG5KL(Wbe&ZuZIu{Lcz5PM5U=mZTG5ko6EZzAE)Ut=^x9@A3uzFPg^{{}A7A$w z1=2awcl-Ae%N8fkkoqs#6EEPHn2#^xa&yOb`LC&w=AgAw=IB_bePAUDoOJqrdyKq- z=ajfo<7|mjf~+s@&!BN8xMWIcG$pT{Z@#xhT_y#Q)UPCbuH@w9@x;`U$^g-D-$P$= zBzHG85#T(>!^@L{nY9*mEj+kkA%B15X8M*Vt_%L9cxbMN=~P!|ZJ*~j;sfbDD-z4_ zIn%DvuVK5^_RE<|dJl^AUsf+L6T%`PFlCMc?iNHeq#SQTZBBAAXzw}WDg&Qk{rH5T zj&^E>{3-(yGkHJu>3%dn8*z6Jd0ZE?NH!-rk{s3<&TXfQPz!L-lFun%)uHRB7B8^j z0vjzgFtkrARKDP&lr{Uxl0wj~Z}<2+AZPY?@JySXWg}Y9BBU}lk3TyvvXxsVU4YAK$p@jM+QN?lUb#-2ZOJ`M=sFGldob1=Im;xe z<`b{1g{N5=;;tCB+O?mkp7%bgIv8RVXQdRpk{h2pCBoW8)udoAqf*5Ffu`xS^{e-M zFT_A0j`~U5MiW#9A}4+eM|03$%donXR8Fe!$VqEZS5Cy^U^t6(j&)?JzsHx83w(jN z;oB+iU9ISj)vqhbcN-@W_@o?MRmf)A1b$EIZs<1CRg3~QKX@@yvp$~)9x3(9{CQpb zwm#MF8w@fWbQ$oQ1mxR>=uM)neavT_!G~JT3}$M`=IyxV3mgcOu6`Qpn|0RJr;p#R zF`b$-KAWlX$+(B#WbmTMo1DIDL(7>iUse328Lv~htbsf zPo_PJ)+4MogMig$S9P=RDsR@AQYyB8Q+yN1TnO6B23NPig*+A>?jm~p?>>q_I)tv?3oq3)|q2Lp#56Kl-VYlONh2UNWH{SYs$i4mnitgg$S+#$X(Ljwd4> zO6KdC%etYZE8M0F>L$0Y2imyR?H%58NMqY-WXHW#=U!xfzqd;a&W_0`UBcFe?{8{_ zkmNAlIs4IHW9BypN>;{6lPV76O^YX+R4pg;#P-DdPcj*1H1+h2Gig>AL{$WrPihY< zP@IFY#0OqQo=+1#O+AaFpEtQYT0wAfsSbU&8YN+hfY*~cZ61)_@Q^bJzUN%Y(vH9c zedKJm>|6YsIu>58PxjcOsOm`qS2)mF`+2ZDwogNHiN>fs|6?jAj?YSe&`F4o?jbxA zj2zVu_p(yDCt#;i_HIC5lmF?7cO7B~CtPlL05!K3Ugb1-pPkuo#l z;Ff(`&*-cxY6ESWTFf_a^>_U|Jj-O20Z<)MADC%qAQ>F`L44@N+`CZ3aHYy?V>-niw($V%e){P586k>Gw~Q56sY?SugE`%)+frC>EMKYv5-J-=A zD--GpOSuzINI%%g_l3~tiA;21885FRB1V{Y#9B)kxBOsoX@#CKw8XyrM!B@Uy0xTw zSXpNN{_as_Mx>%_Fn@$_+@TjPkqPb#*G%?R%B=AU$ngT z($vpaE;3s+o3FVUNY^+iU$UQy%!)1VVugRKKIMo6URWB%RrR*Phejru;pjKk#7IKq zJRc(Ro1C+gOJtm#ts4C^D?>+O-V&{FNTK)Ufp339EiLFkUlZ}fE6v2>@T-byDLe{? z6m!2H6hjxdQzPygV=U+Sf?hJw8Hor0!U;OM+DFS?HDxyBc&nlPd9UUqMSt1xky^}s z-)kO>m6nTN5xrKf`AE+Sw8Z1WC&DV0#>S@?vJLprZ-n$s@ zd{ypI1>E0#>xM?}{Bx-xLmQAm3OTyPF-SIRY9f$iBN`L*{C(WF6!w@~cZAC2_@DAc zfWyi)!I{id?$6htZy=pS6xP7rlDodnJ%p@==lH3k|YAwnDR8kbiz<}K7?}WF4Q1ylF zD{W?{t#g-_Q$`U=aDUBNUwYDayGdQ}8+p4G@GB4}wX_HpDI6y!z4zED#EjbVBY*Fb z7uDkyU+*U$aFA2g=E1)D9!5%qu>#g5P=pvdsyWciw27=yqLK-R>A&^z7TqKGfH;y6 zcou=_vb$eH)dRiL-oM?(`(}^&cHYg>SRDhpfO$EW9iNZnQ&qvq%(KMVna~<(P(1tW ztmiJ$U8w8WNWOCDrx)-vlr~#V3Ib$GSDItWS^J^5;fk3#gt&zJVt!|i8*AG_*bnXU z*OL&RoJF3@w+5N{sB=Y*q=voL`GCXYN!qW!UtwOYq;$W`NxxecBZI|ZQg*P?AOJKU zetep&ZYhSI$6}v(UEg~Yu{e7*LSRA1Km0?D)J1@yzVLKy*PJ;uw*35ib7K1iHi!9w z>9j%x^<;AGB*dRS4S*C6E15jti+}*K)h03Cc-`S;HjLsvl$LZm+;<4!GUjH21|y_N zpHJ>v#VHlK?;O;1e4gnY0tara@UjHu$aR<13vz3)bf=NX7@<&58i!gM*dJ#^PO4$A5 ztzC0-V4<Gd-i!qJqzLs>cH_+zE!Ug%ra&F(W5u7yR;^RbGAmGlhC_|i{tGeu{W zyO9tCJN0KpL%F+BDeO6I?q`2q52din2C@8RI@Q54in{9Z0<3mQn_-lbPdxh6&lACd2ld#o%_{7YUCU6Wm2)?e_foh?Q~HH>5$pf7;;eX zO2JMG_s+{n8${e7Swrr<;nOTVZvS%a|SZ zFx({zJz29P%pjWV_mho)JW&V=_#u{R&&D<`%Q30D)>(kuZrCAvgCYOKS;?Sn+b2R8 zAigC0@OV;XIVOOe!>EBSF73=b&IzB>s?%wMD>imGQO_D&O1qrZpNR#iQ{ zNDczzH}lgQTG|aLQ{hS!Y_)>DVlVy4qRJ#c#5>^Q)H+;jz-cFN!`FoSiu-saPOVQ^ zP9w^*ny+eb^MgbANIZ9iS+=BS#!00na_;7QB9CgKwJMle-2g6WufY zH14%aqQMl&69T|<*Z2giQD89ymq}G?b$iir0rY- z1q{bZEhrVWc(cXZBzH$*&i=Qm+JF9}K;xb2^BytQ3 zJg{FpFWbyU)2_dQ`>Gy-w&@0`?|i{#+bWvZ7xvuXr9rapYxc*NC%(|d!%NlXjps@m zH{=FUq8`QB5Tc)qPNIU-(^-ogC~=saATymlX?(lGam3)cxW82KDk_nn8>;<`hsE*E z9nV6#2sio)Pqs}Y~K*rR}DdC zrgdcJu5eI()WUc{`7$xkmXWBc6DmfF1hkX`jLaH#YE&f6lC7F^6bLOznl0m@W*5Vs z%Y5q>oi&wN)r?y9-xl?E7^H!L+O$^BffsHCt;cPh$kAMm&r?`dz1S)=6j{xkCmQ6@ zqYxzf1Z6~W%zTPfxwElKvD!S7h`A$FIq#1=##g@w-KG^}`A`aLu#t6HEvhzn^qT*t zB;^l3V>~9ZO8>A=cjKHm==q1MMtU~HCHm-q+E4E}K8e(a++2~z{;}iRxhGOl_E_N! zS(9C=+;6fxslElvRBb)IlhEUx?``H~#~*jFO*;JJUKoC--F23QPk!z=WD|ytF+vvwy|!M- z*N<1EYMUi58n>)1zup_T0>QUjGEt1Z^vb(_)^CJA6+Dh9i*BuQLR-T#OYVoTjIPFIHi58B!!c@oD;MF;u|3Jn| zdxIh0@~CvuPc(GNq_{|;vggpWdk`tJ?@PyAQyE|E6W{S8{OqS@#u>7NeRcm!Q%Cny zR{SRPA!usPeMBuo*I$?58fPtlhHMdtjf%^$Kfv8OsC%xFvnTrTlnU@9`r(Po%bWE^ zTiaVa9t?_k+eMo9SHvBqihI#>K8BOO%44Ok10?fmbi+ttl@RNVy6-pFLl-$v6_m#A zxP>$R@kd)R%$RQe@j#oOUEP17N2(^O+wDHyNIbW92YX5uUC(67J~)6wxVIK_I#cNnY)F?YK-QsKF^8mbr&bE6zRf0a+cY55PdcuH3RwDa`(*kUK7Hx!*rTmAJ%^Qt3hHw z+~TYA$Fi!D5A3{@s}c^%@{0iC_swO;T0tHJt)QE;#*p~B%E_4b(sTWN*Q-A`;TT%+ zg5n`j2=;!{Y5C{|Di-rdBZeHN>>#DnF6O>E;wQxMLTZ?csi$^ptDJH;+t%)41pgm+ zq<`*5FXE}KV;x2tnVwvC`z%HvGvT??CRCo9SLvqSd9v?LhLyle>9&Ek!|V-PDheuF zQBSmg-fsKkKXq*Q3j~(hnN(0P#498zSuxPQHNf>L6g&JH9FYX5(*il_J?(mFvJZMV z%aIgVHJeC%LR-%$8Gs^i+~XETCD5d26g9o8%2L;_geb4k?SQ8?Cl?i@SGU76Rm_Zq zg_81DnrEEXmZV9ADty}azsob0b_rxYemv|%ZRRvbW*yEeSAA>X6BWfDvg;wn1#7cs zNl*r|l_b|VMsX|b5yv{fUdL2ASbpMShc-(B8!Pj>5mdt^4|^>{)LE-k2n&qWEqdzF zKb+89c)_m)9B==9vF7pVn`ur%}X}S5~_S?W_wc-KgQB zZVsY^+`JbktUUXApacliho9-xi5Rzt>KxzWu_udxZimH;m5POoo*EpvqhqiktJ%8; zt0x4-AWZ3R7e8jKtV~9>VJxC?P?g-SD}6@|2HJhlw>F!YcXznvdSIvZEBdJq62Ta6 z%0k4I^@>1^J?++PSlijc63e4oa2r?ufvbrql%$A5cQ{{WI_S@4rUSm{9MRWM%iK4n z>6L}5_7{Edi}X_oyRe;-ytzgLkmuil;y9{4R&)aniu+T5f%3a@#YgHnMm3f#pE<7a z$3Z@p%yO!v%^5lp0pSrEZ4cN8qV>b`L>j4i(fvf6-zQ&`+-(1W+hsw6cU`Bq-QwzV z2ohR+d;0l-(|c8$F$ELHcovuFj<6N^4K;Ylq~L!+!P&7F^ToQL!#);zBw8O@4l=R% z*@Cq?y)`(kYJVlg?a}$kqh0eLg;<9t@$jcI=YKZevc*w9gCzxp+i;0^S1P*X^MZgI z6tY%8>OnAxM%gyLOj&Bt)fBB$hlsb}qw^Yv{~>^PHVWgKlvPvMi?d3w;(I&m^!XPo zr|CNrQ@XnPsm2b?^eUzR9EF#+i`}~Z7t+Eu!|J-bTcOp>xffyna z_c)}b=P6Iv>@k^Ve%?Fr;`=yEvO`49f8D1<=@}iGaD)aY1^?+)Ly-O5_OkLV!}2nx zmS>%RTd0&+_+RvAtfilm&UG$$gtLBja~vhqV|)j5;RdhwUTJDdoSZbE1p}c0ag-GO zhQ`obnMyELjl(9ETg~28afrjI9Cu*ODo14hs)Oe_k6c&E)Mq`-SG;C-$3Hg-<3JWUimEjhpgBN3fc&5H9gdmsg@s86A7n8I*aUnN{M0Tr;_8p-wOR-WRC=x)g!W} zm0URND=3nnG&5V!@ItDA2yLagOiWi*V>{?W|9YZtr5V+@BMow@HtcHX9qU@LgBU{P z#eX9`a3sSIYxWK_j|yL!$S^-8P>&cpJM0rXt-LwY->9S2PPGF8Dc_gK^DOg`kl~*- zmw{>8oVO>)>w^RT&go=r*_r%s;!86w{<6tYoK=`3?0YV0W`4hCMi9{KKO3pE-Jp74 zO=g)#60l)sD&*SM9w?r$Ny%QOyx}&*B7S|r>y#*~5okfeH1AA3xpy?I@EJ#{1(b%^ z=0uG=kx%T}foJg@IwEsdWSbrrVK*D*R?z^+JqytOHfnmOQfP4=n)up) zKXsk)F_Y{FQENxQ1}gCs&-0d+7Mj6R(&Nv-%sAV-0!?3XnFwuZJ^kRlr86%o8>PXV z81Ae11RQpzoAZ3PO{UxxcU_(yhztpj(F9vLb#h^n7##Ib>2kljxM9lmf$p>QW`M}x z95-5%hOqRaUF;G(%AKT(A7!sUqC<5h!Oz-%Xk0G0e^&U9u)A4n8!-rN%`mi) zeItMpR{Gmu^QqFLnN49vkOV&LrIP2ig2&X79K^eLI=p%KNkk%ciIQDuFd8UKEvvq~ z+Vlzw-p0*$jtGkF5vG`6%$_(OK&%kpd-AsKe~-+rDp6uJc{hfM(ALt+sQ4}Hv!z-q zQJKmwO_{-+7saO@_J&O-m0vG8kwNro0Yxt{5W<r^xvT~`YS4(MhI^Zd5<`>+$H)%8&Ebdorov=LgI6-UVG8 zZxu2a#e#$9qgql8O}Xxsk`TktY#%rDPZ`b3Up4&>HWSadXiC&znBr#^wnz$MNvPhA z(YAe3yK&g;yOIz>(EcsPHh}<`^6@(K3Ttrx-YJDmo4-hOKC`aOaz)1s6T>P6BN#}o zrm}Yn*puzZo5E~=PTXaQ+>A`y0Z*@#Gam1{JBzk03fBB5K|t%4asN-#3$oz*dJkkl zKFrB+4j#sp{x`A0o%3THwetC*7|mai7Ie2fZnAIK|oo@r0mR%fn|Qjom@+KHGH<+XR52Gzo=UbTz@+UvDN010&g>MJ1vZL8bYgg zYk0{B#{Ae)W7PhnS&=SaLqm?w?NzEgp`wvzmzUHJ5CnGOo@kHhvG`)H*>NGj#u_LP zttfU9+7S!bGSMYW16k4(iP7}a5E$&Vx};*UKIo>PvD~)5h{R=a;g+>QMWypiQpSf; z2xsSX-5;v_Y&{cwE1RY+Z@0-m1_l*}3fQ+FNl0N4km6LG50mtarfr^TaqFJAxX{SS zY0Zm2e-w6{J7(UeDrYtO9)5RA2>DnJ{}~&n@NTY=q0RmL;*eHimY$~#2rpf^^zF*Q zbO#IdY_YKFgDDHY+{`=9HYRC>wW6CGeTN4zfXqT4)33ChIqvyh;aGv7IFA9oenBCz z<6hoji*#}sv&lb`+Y%yI^UvfG+8lkI2Y;s*r*f8Gp1p882|0GDo%$3GVL4ipJ4~gE zhosaYl7t9jy6aS?7EEg185BO}MODU;fj#N>@E!1X>mj3HeGCR-r-^P^$I}RT&3+@b z7H#DKJ+tfU^cuTRMYw1F=7=)KnvKJF0-D#fneq!g34##ExVlm8cT2F6??6%6W3%?q z%NDPf4?lQP4jlnjAXfCpUM9}@?NSvzd?3DhO+_A;D`8W}Kw|R@JlaBq!_}*FjKb`7 zq@t_AlqbWZ+d)tpI&|AXFfHZZKMWBNnQKZuC2dJUnDV>Q0WinN^Bf~*6#KX;W5u1l zR3n>zpXxMmByg1hC-w`cw%8T{=^*sJ-1Y3_clsc*1J8+=wp4zt^mJ}l1TZ6kSKQ@L z!w4QU0xt7SiO*bX-;=L@WtgxNKN-DR$*x{llQ`aD{G!Bh-+J>6qW`;TBe&9zoxb-% zxaR+;h^#=Ns`b;dFuWv#y9Wnp+vap4oQhhz-^5qjcVf)r99&6kf|$-JJ}nBe0~AZfCU8hkoYjP#e&SMy6MDmYtrpjG@Q8b>+Yu_(}w1Nyf=LoBGzJ}8$VE}EYOqb zl!a1Asor}%zVSFuN*}KC*0R=&O6<~jLxv9T|s3`MB zRk=X#q{Z%BhFdUWO(7rcB4WizX+_ixa#|iW;MT*xok|yo`XU*(;a0-pv zz<8~r6BkvjnqRf}Yl$aY8axBgm1o$WJ6N#6?k_v7n(1zL_Ev`-V*V7SFhBZ~d@)ff zc^k~4K&rZI{Po+oi>flcwD=zg@JHcGzT4Af{SGIINQlVURY0%(FsmE@@xg#3=&ept z_WVEyG1!V|c!cof)tO4VWuKTo81*%-FC8-Er??DUp&Rxsd!g%RLk6NPK`+G;k&$5_ zj+-8Ov;GZ-CsO2un#+w(Z7q5hEQ6`{&}8FF1#Ls~8N2E5^|}+1j%1Tu-9Gf-2SJ=g zJyf*^O%Sux3ti#E5^WlYx_Qz?Ex+#vvr+a_`dnJMZ6$ZI1dnUL%q~lk`W=())(0+y z=*1XtpBQ5db;s0x`x5w*M25rQ#_37oc4O$u)0a@c13x*AmD`peF8I|nt)3RDe{%;G z0l;Si4t+13qi<;WRg}2>8>N1xDj+YILHU6E|-C+BdYn6LpmHTz#Wyn+ zq&f~GkIcV+hvj~_!(1Gz1u>!xfBalWfWei_a@0S7|L*QzKV1VH0OF@B`xE;^AlK5@P4!Q|A^C=HnCQ>U5^dx}<%K7xA$;rCdXm6dtGRH34mwN z{`VQCW-cbqR*tS#4)&0Xnye&^ob*$EZXtetb{-CH%}>+tnPL3z#db#aZstZNu5Qj| z&Jehe#?sZ*QJ9m{!^4Ba%FKkr#F8=qdJgUo_}?84re?N(Fa6&`X{5}|jofTqY2a@& zajkcYc*E=a6VbS#`IwR z;ZvkoJh8cu^wcYNiQFsSh1~#0gFT_#<{@#H(}A3H8Q9Z@7@XnIQu7&20&KpKC!Or< ziC880vHQ-QB)eIE^E%w^cpD9Pw;J5ue;?8vS z_=W80=F0m}wN=6Zd2unmqT|uK4vRat%gt$KhTjHCx-`dkw-R^H(zw4~mEvDM*4Bv2 z5w6|Nyr=pG|2dkowBYrVk|V#|jfXe}xwll;)&{A6xYi|p(S~dws?VwTeiB#pD?>;7IkErwaGz}xuLmu9k|f*i|cB)SpR^)6D==oD~zwI`SGN*FTX=D zU)2%!)gNzX;cf}x^@<5Jm}H<>2mNk(B+&}H!t z%f=*-8$mSOMDogf2HuB<_qKzUP4Y3Fd8DX0B&|ac0z06<-T9#JOg}29Ba(?dvv9JI zX^wSCp=YGps#`;Po+qadwu1;(3S8!_&MBdH3vCeW8w6W#oG&Q;;X?Z1SEgB|jubWb zB~u7OBB5~^@oa(?JvKz2NZ&83RPE-*yU-xS!2KgBo$k_cSVC3)P;_(bZRwnqT%Ao4 z^SO&G9YS0GgnoC%v^K6OA9)|97%}fFhmR;lRi%v!**R6)nU7a(h&yFum&Jr{xu68Y zL^f*S@o5pR4)46<AE_{Nq*2 zpf^qCnA+M2>Hdh?10w0oKfAdn@s#e{)2l@yeVRq|9m@{U_}~U&|JK%1%avbM@h7l) z?ULTeNuF2i4L+#F?{6w^@$nK@l%`Gwr^7mh7z`p1a6<@u_vS0oJ@!75S;BL9X|G-8)ECG2;bJrug|27e zHDv1c8e2d5#?tGw{%nI+jJ-?F5%#%Q8l5OZi;9doUNc=3h;U5)x!dv%*GJO#UB`Kv zL%$~Rs@d|#I3bWDJ|aQjb0r=)ta53n`fDJ&N2><~z5CkxGc~Y|j`HPpDu=F?Aq6$LcO^GdrL|>f@)5CpXNA#Vz>JK=;jg>b_c?Xg*Y2_Q@s}}I>Nv7)CV;Ph zj7YQRbBRm6{*#AFzKJUQfx#pE=ZUK=?MwAHji@0;R@(ln4W0N(jT-QO znW+}<86(6QtKoBw3gPB93;Ug7ZU;SQG|@KVZ&BhHZ~M97Yln27VrRO+O4{5yf5SxW zF_;qf_B_|T7B5d%4$jE%j_jP|H^CDzbob&Fm6ZI(Tow(YBcmp3tm;MX@h%pCF-{}2 zWy=ofPJgbX>M`bj>n+A;OUC)*SF(fYt0Zw@7UTZcW}9i-)IsaQBY`j)E!_z|ZlO-^ zygviU$sK~j;S?>V(wle7c28PWY+Zk++*3H15M~8mac{z2LfB&!XIs@)Lm_g)gljRM zi<`L!Y#kRp>{BODbQWy&GDze1Uf+UJF!I_eV6nR(mU^2?JpQmkEonbfGAn55D-@EG zCwIWTV5>z=63dQ!ivli1mG9}?_TXGFo#&Z1s(nlB=@@Ux%}kb?mXVfWe&A8e*l9QQ zg^h(kr2mc(emRY)b6;(1dF0dn^Xosyp_9zRvXm)-pawoPXr?+h;Ta`h9cOo%c0$@W z0O2s0mz>q?d9*gi1j4~_I{I){5CczAb)(H!0`0cCsjTW=X}4b#7$hxZYHM6k z^G+_&Y}^D?H)D`t(33|%YRx~^t)o6&!XP*?cRBHmZ<_Hx?NaYtDui*`I&20ohDGOlR!2f9m)+QbV0Da zHoW4L126mVxxQn6zDqIb6g1g1hZ`w$CuzaH3HG>Xj0IF45E?#2(pHwX0k;j&C$LDT z;foyCEJVlmD#C&T`_g#^3Ng|1P2NV6Eu>LkG-yym!lQ7`dm$*& zLRir*-}b$5;a5W&8-L0rT!Kzus3GqLGVLlC=>s3qB#nyWWVZSn@{y0TJ^F#u+VT^8 zZz;X@?WUBCKzPbQuakDV(b*V{1{d?!89ZYRoJKd0MVC%tq)3p}eMmH5&MW_fU^^%V z^(pw=81@w*H6r1TRrs(XqUXQl518L8n4$vj|6-^juC*Y_#rMrSZ=eeK4@W;CgR7@$ z)*V)zSI)5+7ACgQ5f=m=N($BA9gl6+l$N3KWIo5jtaLgf&3WD371DlTg?G0K^^8

wJTuv_T-a_61i_XrvadzBj_JRXjnT+)#w9^Rzr}K(^)A#gD zT?D~CPxtYX&2R`C<9qv+bk!3}uihenX}W^S=e<3bruD~HChby25aZhel@UGjqIg7E z*dT1EpM-eBzf=%xXD?V!)llo5<->5@F0Y)b4#7Xfy+{nEp02@Bnf5||YO4DcvT?*5 z2tjRi4I07H+|#Q+2|N*03jb8tMkxLnBkHlRIDWEcEBdhwSqVlzF%cM57O- zrDc?VvcW`7cc6KZkWEEG7^aLUn3i^Y;fwI~F&oQ|LAT-`Ca>M87 zv=M1W#d8zbm(0y7wKX^&)y$OTW2Fm#)pdaKDjPrV9(&;+f#mIdDXc;p0K3nL=$G&& zLuKt`V{M!ojGR_GB|gh`+jpVgJ1@Co^3MQKvoFPmH~BxmI+ZumO5B4|lGhkIWTH7t z{Xr6ZfEcLhurMazY(-|U@m1@%)!_?Qva>zTwRZWl^}{d}nF6X7(Gy2(^qU;|-thR^ z(_`EUDrPaE`J^EB743JSF>%Vyo}UHiQKra*8nlQ5!FVvBoF-qNid7yEgEA&16DB-M zRKsO4iq9kG2zJi~%tsHyUWMx)?FBmBgWeVij?^2f2z!>9Ihw|tz{pA>g?&U+UcP_t z=ijO`k9(5Do48uk&vugHz@KAjnH;yYgC#wKk1j?EMzC@Iq``fdezkHO;g&bw>CI_>=9)B zDEXuHqqfiY*Ua8Cc1M;Q@1AFWhLExMzn?0W$T1w7mNiO1_+DZ?fJ~|Pn6bb@7p*L1bQ~Ot~|Lq@hOx2I#bq( zqJ2(pIIk)x%k*B|XDn?;srScoeEm*J3_)!V%~YlinbOmVNLN(oz2EJ0fugv?(OU3D zPSv@VEt$juD3e(@A5D~hF7RePSLi?7(TLuVTni3>U`|g?1u``(Z%!T+vfF9e8#LcU zoG{~qp01)b1fiD;k8#06Y3lO%bEKe0C(Rg_LG4g zg<@jjs4XoM&DPjguw3R;Il%C8KSV7cXCpwMn$SJuJI!YN6C1V~9mW4ihwXA-l~k2k zY|i_neN^*rqr1Om*nfUe$lNzs_Yo-&FAV z($j7oK~Z0pA45@X_HT}?eU0UB7Va0JP-%vyFb2>qXuqngave(~2xhgw%)C!IH_pkSnc&42d;| zfIxC0EiG&-=$w#Lx3QikLH~HB_!CzivqBFaXZWS>qxMo_fzPj+ss>7L(;tl7(^e%X zA8Pf!$~l3_9SqlNTV>P}sW+EcQHK}#8tkRY1#a-PBrHOX(!yus>gj_zb8<*lI8c+{ zg3s}>(BEt!*q+UK3sV_XK=A)0xbUFlja=ZlpTfs+P6L&+@aS)N0u}Ukz7;$A$`ac_ zYKhCD8FLIWcJ$imS%;D3%h4U3QmYmgmd1);nj&JIc1k#E)4qPWR6MS99SN$wcm zhN{TaSH3w@^6oW4USXR_^+&(M;wXqFR9*AaVDIzMJ_nLb7!C6SOG~Qd5gu`|`;F2+ zLLwurB5#zaju;rY$Fo14_U7s!(mZ^;*|9DOdO7iZ<=4l{eT4)XF5opR7}*BZpI&G2 zjr~CQzsZsJsBu4BYgiZ@`J5Hng z8LFlxgeNKAT(8St&PDnwBkfr{0QG)1yC&lWQo=h77av<5miezFWoToaKJm3x*N~~$ zU@PL^9jt=Oo{1B2@8 zlA2>E5Ur`4cKiEk1-@VE2v!e@ssNKEf}0L1ud@)=(c?kaxGS;zx#hN#g|t4SdKQU(c;r(q=3 z*4U6_PhV%}wg#KZoHEvCYW~kr3(g};GU^ALgL0Zn9zl%Ai0zLQKcQUFF!3^sSdr*= zI+XB1fB3g^TV{-FbwJVvFKTIj^SxVFC?<@3Wu1)%rPz<$htL%eXQnBar(rLxz`TvK z8+>tg;%=91k06m&CC`}7ZT1Eg8e|Sprrg%Gy-)`_4kxg}{nKV}i3jxP4~6K{E6N!zLomfJ9Ic(i#9 zjz}}0oQpFr%V;DwjFJcoH)`W1XW=DfzGb|0tPWTE__iyd)uLA0MXcnb_jSP*6yYxY zXAWRZ6W)6r7*NyZR=J2v&UY9{e3@GmuRr|kNLFqn2@~2?Z_L=W{vZtY1lR-2>^;MO zK2uo5)AxtR=lU&(w0Y+Vs6=!6TR`fyqCef^okm z;6FuuPq&V>0RhmDS*bY5BTf`#82Eks(;umNx?iIYb&wEX=u_I&9IRp}Ob8K~pb=47 z5ET{v;Z5V=ttJzt(}Kenn3z}i{EDxh$nZ4+O?URk#PRTt%*&Oto4pHmbC&8JK4yhX zpdT4NN;#z{L#s$rEP91o6LY5qGu6%+aRv)N@`4~=PigoiUjAERQjV5Yj0kuRc6{3I@?&M6mOJd;UJ#{eOLwh?LAUjI!+GHP#ar2vg_ru z=3-HU){hR%O=^2Mi|0Dqc%f(R=27JSE6c3s&Is(9+1d{khAt-;6|LG{zNmv4m@hh1Gg$gnmwx%Rn)AWsoPxkEUu@rSS>6$}D-cc6i51VD8z?IBt{0y_pP>Ijq@wAp7Q2a=EM8hww}Zi+#9j&USftw-QHee*kB zEq}AKjk=JrQ(6Z775@9Lm4l{yyK~x`Q5`7<5rh!wgUnfj3Fh7b-7be@}lV}ptB4eP>Z^@7^{{A{uE`pHe>B9mv@(jVM7|uSAMyUm2mDW6Z zMVm_AeFyMyA`ke3hWx5XpwNUd1%(L?1DXa*A{nBv9P8%m4KFmnROjo@XJKb8`lF6r z>wFA})w4!+h<#`yMGjXu50Gba+#69|&Nc!Dn8bVr3*Fcq2 z5biCwIy51cmE@C_9^2oi|3&M=!+?$HsN3*W7FI$Kk5sa%0dri)z@#3RR<`bS%pG8{p{e z;W*yY#$%6WJ7^?vxsoRlqrI8d9I0a+_gSJ6BF!UOnP2^R(>Q@0b!ig2%mPLQq#am) zF?~}Q;7NEKYNkxT`6-(}k)vVWG!%#+D@T`=v`tPhsH%a#r@-0nl{+fD&v+sy>{@1K zXqkKhOE1AlxB6&FkuMpP_xosjNl`^IqSy4fq7q)k`O_nWgbbp)n^Q%2TMGqUDZk1Q z>TWV?nzChK9q4lLA%+DvOyX>W{3_I<6$!Bx2XiJ;Tjo*Bv;t}wA+|hFJRX`5f}A9; zEdQdt{D7sfM_qsyl6>a-Ts?I3M}VFfav;;gqP5JENev1oB&c>z!mhaoya1H?BlDGd zF)ToMOxxePvr#H$r{##cs}mObdi%xhg|(U}d>rBcMU+P>_n*TN#KTL05BZLkW4*D% zhR>8DR_{n*Ob99oN!t4L8lFB6h{U1AzE9yh6MGd@J@%DA7r{QKUo=paJSGC$DY--I z)^7RaDE8ue?drkT;lF+S)peFmm(K`+G0H5pO1)LCfpYFy9jRvM_bxA$8)TSMkj3`e z+q!s;<<|txOMTg_wN!xC*!=RA$P}=&6r?Aw6GHHPVGI{< zw^NqG2tX!+(*mD-^mMw`8#`-o)k);9gYxW&k%pehM=Z_ascRw_@~5AUsn^qG6@t+kWK@&pumbMWv}J5#@+s_|mFMReIjn z`5`B;gRiQfkphsDonHIk;-vDy&zO#L=A0za2dIIg_A{C<%xaBv?LhfGKE6jKKHp_j z23oh`?6aBWEvZLiqyCP(KmzmJy?*x{lo4CKYR{=)$tH}@I#r^g+kuNzhxxBm%-kHp zLm_i?0q-h1+d>mIKA?xk8nkWmLV9n0G(Ubx94+Tc%d7{%EIb_MN?a&WSq{AaXk;zk zj*zOk;vWqd)k@b>&b}VC09A`+oLyflIXXTVU!bClQfO-Yq6MfiC6QmJc7b@sO2y!+ zBP${~^d(KvY4}>>dXpbAF3<;E-k>>%awTYSb;jeKs7@C}U(?hiPmap+5em_q{%=5P z1!@L7n*$Zwbo>3=uzKwV5i!8MCti;pjOX0ag49#o;luOIp8x_Gf#px?q7yO2gWeq> zt_dj5*TWt(#5XH(gN#WzPjN~xAyL1JQ`2pRaU`Ki52 z&nInqt&|scAKlf<`+McP;Uyl%<@w>AnWg7Ht|7f-X^tl+(NHCkz8M7;`kiXC>S&5M z*#>%6@$I5fP>f*-cZS~>tjaxT*6Y0K;M?PIB<+FsJPz(@0#7iJivnBRLuf*^*w#Mu zpo=Rb)a8g(&>yuDFI1cP$ygKo%|qJdV$*!W;($I-Hh0#ljX@*8mVa{Uz};g~ZO`}w^8+;RS)PU31{3qNu;KE(qo zuKn|B=NlbtWE5nG_V?8eMN-l-sKs>$7f4sz8H~lgAR9Rq1DY^WT+fJ^K|FUp1rbjY z^dRCBWqL?$)ObfDz>)!Zq_g1j{tiFuuxPURSpA+(1I^nESYvnv%A| zl25AMv+C|Q2?Paa3UYEh`k>XwrpK9_040xro(yQ!CUC7f#X^;_|EM$C-*gHY^Xb+_MmA#34gZ*K5P4l>@gwiUpV+vW&D_Tzv3Wk-QGh zVXIh+a&`8s8FE2|`~zrcj$hA3Nq16ca^Q6L)6=6D9lOrF4Ocb*fyggBl9`F2_lin0 zKAoaJKZlLy{!*2TCt>m)cH26Mh(V<``<464X}fX9Mit3?2zJ-DPYZ7cj%M-WxNOL9 z7eP7Pm`CrTMSf&ulk)bHj#}`-T?9qgh{+&HZi_D*NYrfv z|2h7Wfe6tC<N|5U-mI0z0gWDa|3_&`K%X&p`2Q?1X(OIzrpkUkTlr zw6r60^-H*BZI2-rGpq3Iy>GTWPUkP3eNkc0Xh|tKOx2QE+i9(U~5=4Q`K1=ld zEj81a;}4PpW2c!}Apng2rrN}H4G|?Ezj3{qY4<^Gd-q}_H6qr1XI|Bw8xG77p&=1r z3i6r10zEO2ciEbwS04i_AM@s8DD4boWrjda^|g#TJ{X!^rsnyMkd1-e?&*y)1zThSjuCy$)kTpuv0btg96!*e{ z6SU2yd@1+MGQSs?i5C6Z)9lpjYjT+^V@!$zR;JglyMI;s7`Tl!*m|(Q69bUzVNZF( zy&TQ0jb-Gus$z=ObK!ANrV-uQajHSJX8}DlS$Q!UJQ3`dke+fpHy#US5p)n9)XkRm zt?k}4(Nh2kerXBHLruohZ$Xhl=gw3l?qW^x%%xsQN}|j#3#i|#u^V`%&;jQVsL`oD z*pOS?iB~c43O#*6+vOzsdI!UZqrBYHo7&7o0%JEXL|V7Q zi<_%>ey2K;jBPmurI`DEbpsbjPiP0bw0Q&D%||sMWQO`;1APRQaAF{0Qo(ikE{jy@Y&$y7YEdZ zYGRr}12Ld3{!04hfyf~h92QV0-uTt!L8}nD-_29X`5>&Z#EM`=8{+MANsN+vMOB+{ z@&X8g%zdkD11{U=vni(9t-Mgp)!PGHNEp-yphEf0f^s@|W&M$k@?VPm{%{4r5TU9n z_CA+J(CWme-PhJQZlKPRR^EnsI291ydtadm#a}UKaByfh8VA{PCM8@lC&Pir{*=u) z5-^~6yNsL&W2g{Gr-~V&(`sY`T16`5ZCp9k?TUZOocYaYIs4M+b0iEjp!9$Lr}R6u zh;6;qMabIoB=JYM2? zr!qH>$iqE9@^S$4je!2#)^(V);0|C|mq9=xL3=(|xVb>erGn&}slpX=*;hiI__d%E z*7}3lleb#G62ISq&S!Fz!4MsF1Zb7IH)ch<#}{!w?8lK9m^#+BoCqM~YXra3&|xD8 z53%{?DT^<@rA!s8GXUJOln8B^<@T@GS1N5|JV@8#3FgF+44ajU0wIW|U?oX^ZlKX* zXi9)WGuhh(UM=6yUlbEsES&KyFfcrR^eUWv1?-uVDZ!BjSuy?kZmYvTf3-W> zYO)2_pM!V6o+{kY0M7^jA-jCdZqXgOFqemn5OWcyNW-sDio-Ltq~(CgmPog2x?==L z)cbVHb>`(?sDV<)fN4zJb$zy+`XTmZmw23!C{58R@Y>B%ID zU1-=KQ*E#7rl-eC0WvvEezIdaa~{8*Zau-Mci&#RD6Rc#!;!}lMGc{<2`^}v$Ip0V zWMG#((mf=?Sp4gX(z6S9Mu4fad$Ag283{f86wP0BT5!i?p6}66QVJ=_!^?^CW(JHUAee^=HaT)LR7jTstJijQ`R6kqnD>5q!x z4g49Ig#i3NKsCq@K+LVp6Z~xb9rFQr*C)79;Joh3Rs5`kc6?FY|I5e(wNHEon zn{Liu5>C8iv7n96f1?CiU~#BtW75>lk1+gdI;=i@m}Af*TAf+-P9PF95*w1=Od@eW zla-Oa!xMLqOZOPHhHn>O&#`Ls-W$dO4j@_Sjdy0EV>|YE&oTVl5A>Dqwrls`mk(KU z1BTOC*!FK*)b_Jyqutw{edR%Z{CO#J@|K%~;Cm^MFrQ!DoaHtV-8?;~D@{o$*RFvb zk;p$20W^i6Px^P~^g7a10Vbq~*F$#lR(K8wVM_bhu#~sDXSr6!BuwFh4WHkSd~7r) ze^w3U)doZW{F(1t`~BUL{hMSpxwrb}FO?i26?tlLpT~k_Tl!1llXcd^QPK?gr7$BY z)#TUj-EkZgn7X9beMYK8Q1X)H>j(s0zX=Eh{wSXZNF|bEC0a`GfscoV7CRV576hBP zYI(>sBZ#f8mS8tw+wTdrg}1rT2trU#@=(C~67R4?IOof+_EW+6qP|2ib#LykuD`Hz zXz}uOnS=#Ha;db;!xy183g|GGP_&HD_j6D6+=HTqsc(yPY7*z&dmMvgqsbJ zlD)3%kY9%Uhpr%Z`=yFoLIEc%+$vUq3Bg>aD|3)B zzr8;*5A3jnNL)xVLISVJ{p!sIi{uwTSBS$?7fSF*`|GtJqqY7u-WP;CF9@sa=wWZ} zUq5>-e;*-_xvzRA{?`JOPb+a1 z5Qa9TrRzYgkyniAhIbn4XA|R(m7X5}IXgM;Ysx`l*&=(MN(lp)+1KOeCe?QLuwS#YDj{#*$SKxDpSU$c$a^gP+ z16W3U99_95DX)LnNxz$J2rolr!34qhmf{TUwTu)A0b)q|m&OJ<#_2GSThSmOp?>^i zv;5^OU4ZE+E2t14B{^>7mGFYQAkPaRJ5G1pO#^|m&rRX6>$}jZxWCK=I}ZEGLrQ6K zD>B?rl`Mo%C22r2r=OzyFsOgn5cM-n@x9;Um*wb#wPP|m2vETayvhsuF5F);ucNDW zv`13?K*uVGgdW>~2vbc4qrr)fi{_x``^R0Vz_|-%Od*%kts5plg?39x6R(0EGB|n& zT7&5$K%t@mHySP;z*O=d>S721j~X&H^!#o36e~PjS^8r4S+V{xen3t>Gb!{=4Tw5{ zy^rqd`)j2q@GHjp`!qP&5uQUG(fL1D*i)%mHw?v8fSU6}>Gj6+&eL|FZzlbuEOLK zXib2NP&sm_?>Vtw9d#IQppc3c$d{aYtrJsotPKeX3=AE&`#V6&ERxVFlz{e+S2GDe zQ3Ae10juIUW3_v9hXwTR#pW3i)a0|^@#dywoei#RIu)<{r|4T-l97{{h^d(CsKKRz z@7WI+kZXg{-^zmzqw77499QrUfVtArDk#fc`(MeNyke%ELkMh)f5n&G+VvMZ03Yty zG_qWm8$_$N$(e{J`KZ}{{owoh1K>7^&S0nDQA>pPNf^&YZX4bYAIOa(dGWkZpW%6x z=!l9(egbMtOiZjx-3KGunQWb-LE$m*iW>yDk$u*EllWh<5YWx`ky_ymR4KWnkWYCF zEE}ldveG0xBmt8(kAxoKfGMWPmH5(H?v&`)e@^Kk@0?Gr+tptYlUtVnWF~0wAUe** zgDR54l%uJB*P(yH5U%R96;YgV&eaWhQ#KCjs4c24)yKkLv8#DbaSPkmI+E57`Fw^5 zWQr)yzg?Ro@JHOZ#Ztb??l~*$?3Mu~e0 z9OO%|uL5r0w>O1C->f)$JxX_GQ_R8^?PK1l_&^YBp>03iMH4;_nGhonH)&UOWO%gz z6h*acrr@9G&B5M?=r|(3x;x47Jb8>oMrnQJ5gwVHku*gPYsZ;`%hHG??9dv?cp3zLH2zY6LDsN<}82 zvM^xuGFd=?mt}wdt*;RuHiR)YDgTiZ ze|&7Z;i!P;$pa>VBK4F<^T?QysEC1J^~C~CcE4MEhL4KB)NG-grExF{&U!*WB?Nsp zw6MZ?%YkuVNnN4#nYQZw3t|F0WC+5(7f)qlOQPRH`APp(jkR3l28#-*Dv@{7=JIH& z12FqjQ@l*be)swjG%$;oSm1pOSI8ueXj00tJzqpi+pg=SB8I(t*;5)qfBlbJIRYfMoJ*aXMxfuL2lPI`7iSDI4u|DABK&0{vf)fbB4Ruy zV_n`NHjR`HCWPp?eft7OH=9eX+UNqb8lqzO0*Qr`Lc^!!#kqj}lylN1Th{GbL8eg$ z(pmZ^C4b>za&%Pb2_6zBZqv&6$(KwP>A$=V$a&3$zQ4#7iVq@=z4P2a!XF=<1Qu_>WlA>PoPFsJ>{=x+yjc9MwD{_M*`xVqdkes*vtOB?K z)>C%u<#q+{$UdL+EOKx=To893?R&2HOj!=kvk-+Xd4;x#i65d3yui#7E!W;wU z$Z$TZSXeL?16!2vb9szi6e0pekSdxyK|>UFVW%kLTsh*d{;3m-0en9o7wUE}0XhO! zh^n@Sg=V4*QmRC9A#+G5BU>H`f7uvpY^w?bQQE)dpP>VeBv+2EY~uM96|X=a0~GB- zv+L(;i;{r}mXATg0Ot0=_0J$-#9+BWl1<>-nrvTJl9 zG6~pS-vPQ1*cG$4vbY5kU={`p5oKH-3~||s#HY(=8~p!~3UNU3LYSj-;>^Rd5(Lu2 zEo`y7p(|2O(H_@=kKA2TQ%YL!AX$1gCRTZT{INX25mQl^P&&6NepY+Lk~as%Jwsx$Fwy;ttkIoQI}I1rR}dT~Z= z_Zut?7ICH5-j9#y;SYwiK{JCL8$T=u8I>(xm!Zea(LH*XY={^NI|4EJE;Ogrd;ME=BYc;+ z^^=rq>BYRz?1;^0K8YpCX*O;tFqYI)&tb}52vYS$rz95xDdzce#k-y27vz2fcuQ4# zpGwr9$chnh06T>8-J2vJF{FBn;ZPJ~aNMl6ZYXThf|*9{L19-$?3-ZIR@V!h-~eO= zIEy8|Fgyid?C;PtJ!SIRm2c^;&s+&0n4z<^PNOnnegWOtFZHy+NoG_)9Xbd%ZVz!S zXgq)bgw^06)QiGumn=*IVWlGZ!=Q1-J@UdoJjS=uNZRTNe@=4*gZN8sNi zkrP8Njuu9pm$1PEnrdh3OU`g5rRPe~Zav+4LGS%paskL@3pM*2b!pqai_PTBC)9Q-pB+%is6#R~_T>IFRM0XKW}bnEH!) zqA^P~U;2LG&uy6yj=$gK zaTe4*LC)R)B1%ya z{USVeaglAdGX$H&-ejj|B+}>U(qEDSelI;8nNoaeRDii5p}yy+P*d|0FZn*mr0ZLs z(AGcmENIOAlQSn#5hbYXet(JM0l)yxAvg|m zf{Q}|DR6gilnzL*;jjT|rxuHuwU?gnLhC@k4j6=sH8_K?0~iFfOq!BVdn72Z$@|Lw zZkQMBQLO*qfxdru0B{F864RuMKY8Yph)Grm{5m4=9-#fD)I#nJf^tm^N(~#^kC_T1 z6wnRXGZ)#V+RruJ0TKEQe%!LCK+cSH-a0tEde$6rcQPuM?swMcWx+!Zwq6|_e7TT; zlF0;=O!{=t4$Tgbl1$jYvDEO!0n3}uEIX9d2nUXmYsOaEOIN;|KMGgyGV0S;^Mc=&j{zr52{P0Mu# zXNG#vvyjo>A36b7{D(!B{UWOSh|F0V5hp z%Q(I3jz0m)Hvo(2-|c5=OZ%)JM{^*DVL=-^)WW`5K&*!|20u!4=`&txAwvkx7vmwX zW!47cwI;t<5BEvK3Dt+J@_s8}BoFjK1&@jTu|CB^b))17RIT>B<5nEXfQeB~&?`#| z!j6u!K{PfBXat&(r(`pRN{R}le&?XW|r2>^s>%CBxev}+*b#3bwMj++1l6gL5o zL(TvQRi^K zn|PvepXfa(8+#2`x9jmIPvi*n6)eGVP7n3+PS9mg)1*3p6RiI6CxY&o)m1e8h8-@M zxm@?awwHW%lYZ)wx)%YaQNmX@2M-Xn_!2;TjF-qg_zLpio}6+-G(cHK^u9u(p1B>DJx3R`l2Qfh1jvBG{4t*2Lug6#bo8EtAcZg{y z5)cOe>E)}i)}e^_^wOf~%lEK^3-%WdN-}yeSh>ji_`3*r$-nRFTfrf;T7X3>KhU>2 z@2E8?NzSUs>&`gL1FLBZGbdrL^8vUN3T@i(Jj+FkbJ_?Jh#z1aZP5pyp9ug3aO6N( z+zCXW2GO_)K>ZDL*~k_Mf5Lo#?rthA?pk)TWw&-Fus%@{CQYHi4sR)6vjA;z>?+;> znC}@`D!51*r4IuUV1aFm`x~t{JL|oVayN7&4Xe{YGcEjwzv;PT7DPr$E;RXbVCh~J zD8$c-pB^J@gYyBjpoV44IPmdR!#M?;l$1}ebm;zhjD+T$H+!Q6Kqdi)8`eyL&UOR$ z8sO1%?BQNtEyTIIokf;2AS;F2IVipz3?Afz+l)p9JkL9{aZK*7HfFnLZaf?p!VWZm z+Ez#&1PHlG>SC1vPj-{7(Yt@Z09X~mz$~2z-Df?n5 zD+Y{3UKgkOPYFQ-3f4YIU?xhrKCK-(XU|=@a|pP)@Y@RntNg`nl*K{mzvg9e_Zq;5 zp1?LAVQ6p40XIi27vzrxQHlB87=$Z2fBWO_1)mR zy7zNk!CQWry2hR>eV-%>q^TL)9D)CV`N1xw4{VD=#|28c&CX31z&t4V1spyndn5-p z-4Z7Mo^E*m^*z%;7V)2GLx;*Y{m{RTu{$RBRKTX0{muo zb39bF;h7faW(TU!{^DkTE0u7`JB2Mk_$etxeFuB9YaRC&mEH1}H^wz03_=LHT|>Os zfy!^pR;eX&>;2EZZb-Hy3rsXO``!bOj$0fVyh^p_avlk=N;;H`Y%+Lhk3;Lh1HIiw$Q-k2yH9t5AM7c>olm!IXKvv4H{z>fh#FYZF<)K z<}~ELSbcVq-MPgO^2OIyJ*5^ac-zu$UTNi^Xcjse_ZK#EiSqd8<;eDXI@p`57a}R| zcm*NsOGAc^rho3P`j>i3tcI(7-@J_m0jGxy774f_#avGN3M@W@uAbt7c0y95OCY!h zFL?Yklk(DV04sB>qV|2CeWms9^7|vA&;|uOzP}ZLRt<; z`M+|-?=ryA%epi@k0{_!7sU?z34xQV=K)vS%9QS~YwzLm2*7+Y61qoAWkGG3XJT%} z;3$;C!x{r#{aU++_yAxxM??r`bFx}a@AW(HB} z+eq*&n5b=f0L|W=%ii=0>`9RvdI1RD=#iW`2shdxLY%KWoF~OPE%}n~o9hmM;}0U( zf%Oplu+t6bTq??firZ)UG)aK)58~sY+~GTuPku;$&Bby(^4)T6vqsRs8#Y$pYzD+g z&4#2nCj<8`sIc&352z58M1bEG8%P|CNnfjen(%;=53;0?3o=}@zuV!I1%@=Ki9;`u z(s473!X-)&f#~vR6guEsy*BP|CB=bf?e=e6LJ_z;AjgBQ=G?g2D30GpJfn#%Gc^bl zoixBy05;knNjdzaE_W*NnjzD#`u5yuO$^i`i94;kYqwPJMSG2(D1csY0Ai4l6dQoZ zSmo!ydm;kY_mz&9tO-!tG!X(dv*+#(Oq%KY^KC9-vdXF+yxqnI?XTxMNOMnA*dy%1 zg$JC<-#RfYNE2%N9P+t{`M9UIa{coxzJAa8%@-3FHAyyj(Sk*QKR^*sndh3g05P3G5Y#q3mz|iPjaWeAV0#K_@?hug-bAaHJdq(Xu*W2`P zWa7(AS-|v5;Qsq-zCXSfN2zg>>AZvru0v=$iYvb>6Dw!_*wR_y-}w!kaXL`tT9#3@ zd^#Ft@mUxk?pq8b!&_BpA=k3iz8$oDtczsyV&L()4}_&zC;=EBwpyQ%Yj8oN5Gf_u zRqfrSmvhtw=K1HZUW19!ofn{Cob9P_K0dwxiaq$g);7qn=w#%R$>2cavR^FdjGIMR z2Pai=4*)K1XxRRtho_Hz2~KCTis#-1TsQCf4S^~tZU%f6KyeX7`)k-aKcCv2e=;0K zBgq9#A_U3~y}FxNN`ikIuqn-r-8biT|Me84fJ#jVPRf47=B_5pBzw@7A{CBhlH>XK> z&i$n;Ejm&lH{dTSQ!{5A;12`Fy7}xk{{(YV(3z4OE$~qJk)uMo5SP&7n?2BU^YJi( z#{nDf?QZ6Y%)=aPAQ{#jEo%4wzZ$MQ5X$ZSp9zB~JJaGKlqK6uTr`=4wAd z$Bw%ZVB1;qI&;9+OUtR@o=A)R((o_5`BFHpRRhg&fvQK7>#5fd(~5n}qu#%JUd&(?pt;}iSQA;+JW-j2N~bvkNxj{^7Tme=CD!Zt{H=I-FC zLJ!M=BBSD_VMQ)Y@ayejS8H&WU}RQ!&kXrh$|Sj9aTgO6h)t2bt4W&O>r66!k{@gp zr+Urz@Ck&%%4bE7AH@#_6e@9Jstc&LLKQhP{kG6+{DAgEL>1Mh*B=CYNMHKl7}HT&lFDmYFYbzL?XN#8t~?zL4xCf3LvU674=uR> z0|YzFDLJxH>CG-XETND}iF7fWCHjalqHfS|RhCB4TMJd8IWzu{dba{|-ET5V`N#&x ziO~OSx8Xr)`)?6YIj$-uP8dqnz#4f0vU)QGIY}&)0T?rXv@-@HCD=6xXh%c-{76Ur zDQDt(V8qv zPPLDhwh3s7a$9tdZe$TKwh^iE06@~R2DZ0@@nKr2xd$H z%`q1IPKp;td}U=K5wIc!%UD|jJhw0ntoLtL{CBs}-|yWs$FJ{cW5-i%g>nao9!p{1 zpNb=h6qNZC@PO3J8rb9{=ZeGdZUb?mkJ?05nyW{GYh|W|mR#!ke1YruV<$c(_^rh@ z$-*nBh+tQN-%|LRDb#c{% zanV{t5q;Q!1}Q)GUw48VYYHj|mAF`hM%r;}#$sUOWOm52Z|z4ok-*;$t8<|RZ8o>U zGP8T8r#VBoBKXHJ{1*hy zU{9A}0o?TVBz7b;Ov!Z1%gQ#@eRaRLPlq02m@qv#!$-cC1O1N!x0qo9xWz=Fu{U+4 zOBc=Ju~}uImisQ`(2Y~FW0ZF?kt)!q)y!7DmN)=(%CbSBId%n;bwZ$K_}20^>s|Oy z5dz9M*f?K3(!z979NwCayVlh5kgLk$Ja98Hg9+U$7~FU~cxpzAGRL)J0c2RU{pOHz zC2pr&q@BMxVI(T_%K-XC7UjlLu>B5}(dv9klrseE=xXt}`XbUS*-MhX`r320d(#nmKLA}fI34l7gbMtgAeXk`Vj?kNLZUY? zXaSR%FzZL(2CZM>F=kp60OHq_lPSwON0~JX`$*C*>H+$Rk#?9e(jAV1QrwOU@4=cC zIa#idAx1!b2oX0=zKy@g;LQKkp;E=z@5QBa$>YQ40bcT$x3m+dX-E&+xMxD!Jq^cm*JHOy69a zW^L0EdUlC`EOMIgQovExo z;)1cbWo+A`=q_g-GTTle)IOjwx6lZi!ig78U24epEq~?bMX|zGPx+O`=*}J3+x=Sr z(b?*{4CrZb5maZ-43=0aGKsd7XmC&b`^GUGLeF*D;t3$ z`a%xog5;*D;_Fr~^SI%9^_MuU<~uwEB4_wlPCWIX@tHRAtA+U%4eTnBKR6jO`D;!^ z+cX&WRc-jm_v&qt6EAQroJCgU(u}AFeb$xgLowL34=QE|n85NL1wVNx(VS+X@WAjK zP-33ap*JzfBA&J)+G9ua;wm=tCcS@8{UXn2NZF&A2^yRBi;1b3+pX z=yAeQqHEa!_?M=0X9tU1m{h_}Sba8?pjUCF-IWe=Uz*qVaOEbBKt2LnSu5iXF8LCg zTXR`{_=F2GGvin06B;r-z}<;?)EK4~vjlfe{ADItB+mwZ$T=79^S)SuaUN=gxjc`x zezp2ZAA{G9XGkervs{%4#<{f|7^8Amg&=wrYFEJuYm|F!R>CiuY^lU90m%CxRCtH` zl%lJrh?EVZztk`EYy>9551daJLzFX$$sP%{M-E>kARnN3-vi?OEOSK)itIQ#rpR_; zFOC1HHN6J4AH#y=3a`x^ETp{(!n}A%0IJ1Is!==B>1a!Z!THq<2vMZM>&kOeo356G z$}@{CLUl0po6Dd7>RJj-cdyVM)b1wF@twMQl8R^%&KM!kw}GQon#W)r3rxC#c&Jf( zZP7S0TI9NKRkol<5ley~z7vA@m73qQoT<2Ek^I9+uYFGaBLKXqHfUU_`$HRo|`Q_fNF9Vi51fJS93odtXz*D+fR*NE;vY`Bkxy| z{l^MKHTXzJzLD5MVR~hEru57be-nPfO>S@mQ)IwvznI2*u&{XHF0-MQPmP~nsJ|gH zwQ;3Fg9!RNHg+03M6&g@TdN-ch1qI(*5a30z_Rv!=hW6CY^+QG2MGCSti%tM(2Y-J zE>Ako^GfBglk}kYQUyJBFkn98mMu2oxTM6F&waCTa}wHmoEuXUyAWl0Nz;1}B2I<* z+WRd~%?Q90F)>9%k>ZYW{qMF6BTV6Z!fY>t9X6T-9#7rf80NmP#g_#6LsZ)l0_SZ{ z(>K~W!~2mRvHU)p0G@iBcza-*j0#i8&y#rVyt(tbVCWbQwH`bfgiAh&+Eo=d7Dp}N zZSg>WoR-=t@VV*`Zd?{8Mtx5;f*HD?C^g`}Vg(q6bMKB>U}~^kk#Gr(^QA0qjR@g9 zRN2<6oL^3DN5ePtk=C(a-}Pp;Zqa$5-Sq7cSh{XiG;D#xq23y3^OLc)hgCh8}lXAOWKN z0pDalev2-TKt9HPqK@IjQ-uQfP*omamKZk?p$rEsHxzU9ftr$+`5<_L zh8`a}QZ)9&1L|TXu_@6+6cah{lDk~kzF!-18;XtQ4}mh2A7Nx_=El~Q6TIX)D}H;& znHN?en?!Cqh`PT@rQ{BIUURS+w}BL=a$vtmI4o8>7ADfq!5_OL^qsDryvKE>92A4u zZ*-N|lwjNeOedc+)jo&10vyk)^U^>Ss1A}awwJKY{z8h!mD00?1N~i$uR?U_0O!v= zsHeCYBe6PNX5C@(?(bgvKC=sZ0I2E^s=0OtTNFuI4dmIP68=xYqa5L|+i3#_IvjDR zQbmv#o_rol@mQ7(GtEuTHf@GeLVZ76K%%>zs(qGDb_HUWU`^e6Tj74nYaRz5+hjPReeIsD^pE%hvMIP(Q=lAN8>^RDp%2I~=X7L9!R5$nWk>-nv90a9j;#W3{ z^$+sFy|89MK%nQ=)jd@BQSgc>xNpy%J&lz(wP9xxJ#2I)E!FpU65!Vh;;OP0sm??Q zYsO_ipOUgVr@wwMEmg-%$*uCIC+KFdOJ;5Fc4NL_|YLwdfS9=6yk1*6FIZn{{D*wgWy$vi~v1*A`AvU4dP7)~z$Nf2PwhmPM+(BkIG0 { + self.skipWaiting() +}) + +self.addEventListener('activate', (event) => { + event.waitUntil(self.clients.claim()) +}) + +self.addEventListener('fetch', (event) => { + if (event.request.method !== 'GET') return + + const url = new URL(event.request.url) + if (url.origin !== self.location.origin || url.pathname.includes('/server/api')) return + + event.respondWith( + fetch(event.request) + .then((response) => { + const copy = response.clone() + caches.open(CACHE_NAME).then((cache) => cache.put(event.request, copy)) + return response + }) + .catch(() => caches.match(event.request)), + ) +}) diff --git a/src/assets/styles/admin.css b/src/assets/styles/admin.css index 53398bd..0b3aecd 100644 --- a/src/assets/styles/admin.css +++ b/src/assets/styles/admin.css @@ -116,7 +116,7 @@ .admin-btn--primary { background: var(--btn-primary-bg); - color: #fff; + color: var(--color-surface); border-color: var(--btn-primary-bg); } diff --git a/src/assets/styles/main.css b/src/assets/styles/main.css index 29c59c3..6c6c321 100644 --- a/src/assets/styles/main.css +++ b/src/assets/styles/main.css @@ -1,17 +1,17 @@ @import './fonts.css'; :root { - /* Brand — هم‌تراز اپ کاربر (mockups / main.css) */ - --color-primary: #0a353c; - --color-primary-hover: #072a2f; - --color-primary-soft: #e8f4f1; - --color-primary-dark: #062428; - --color-primary-light: #e8f4f1; - --color-primary-rgb: 10, 53, 60; - --color-accent-navy: #1b223c; - --color-sidebar-bg: #0a353c; - --color-sidebar-active: #0e454e; - --color-sidebar-hover: #0e454e; + /* Brand — sampled from the Nademitex logo */ + --color-primary: #091d36; + --color-primary-hover: #061426; + --color-primary-soft: #e9edf2; + --color-primary-dark: #04101f; + --color-primary-light: #e9edf2; + --color-primary-rgb: 9, 29, 54; + --color-accent-navy: #091d36; + --color-sidebar-bg: #091d36; + --color-sidebar-active: #162b46; + --color-sidebar-hover: #162b46; --color-success: #1b8a5a; --color-success-light: #eaf8f1; --color-success-dark: #0d7a4d; @@ -25,12 +25,12 @@ --color-purple-light: #ede9fe; --color-info: #3b6fa0; --color-info-light: #eef3f7; - --color-bg: #f6f8f7; + --color-bg: #f3f5f7; --color-surface: #ffffff; --color-elevated: #ffffff; - --color-border: #e5e9e8; - --color-border-light: #eef1f0; - --color-text: #121212; + --color-border: #dfe4ea; + --color-border-light: #e9edf2; + --color-text: #121821; --color-text-muted: #6b7280; --color-text-secondary: #6b7280; --admin-primary: var(--color-primary); @@ -46,8 +46,8 @@ --sidebar-width: 240px; --header-height: 72px; --font-family: 'IRANSans', 'Tahoma', sans-serif; - --btn-primary-bg: #0a353c; - --btn-primary-hover: #072a2f; + --btn-primary-bg: var(--color-primary); + --btn-primary-hover: var(--color-primary-hover); --admin-desktop-min: 1280px; --control-height: 40px; --control-height-sm: 32px; @@ -59,20 +59,20 @@ --space-6: 24px; --transition-fast: 0.15s ease; --transition-base: 0.18s ease; - --focus-ring: 0 0 0 3px rgba(10, 53, 60, 0.18); + --focus-ring: 0 0 0 3px rgba(9, 29, 54, 0.2); } html.dark { - --color-primary: #5eb8ad; - --color-primary-hover: #7ad0c5; - --color-primary-soft: #14353a; - --color-primary-dark: #7ad0c5; - --color-primary-light: #14353a; - --color-primary-rgb: 94, 184, 173; - --color-accent-navy: #9bb0d0; + --color-primary: #7d8695; + --color-primary-hover: #aeb6c2; + --color-primary-soft: #27303d; + --color-primary-dark: #aeb6c2; + --color-primary-light: #27303d; + --color-primary-rgb: 125, 134, 149; + --color-accent-navy: #7d8695; --color-sidebar-bg: #0b0f14; - --color-sidebar-active: #14353a; - --color-sidebar-hover: #121821; + --color-sidebar-active: #27303d; + --color-sidebar-hover: #1a2230; --color-success: #3dd68c; --color-success-light: #123528; --color-success-dark: #6ee7b7; @@ -91,14 +91,14 @@ html.dark { --color-elevated: #1a2230; --color-border: #2a3444; --color-border-light: #1a2230; - --color-text: #eef2f8; + --color-text: #ffffff; --color-text-muted: #9aa8bc; --color-text-secondary: #9aa8bc; --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.35); --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.4), 0 4px 16px rgba(0, 0, 0, 0.35); - --btn-primary-bg: #5eb8ad; - --btn-primary-hover: #7ad0c5; - --focus-ring: 0 0 0 3px rgba(94, 184, 173, 0.28); + --btn-primary-bg: var(--color-primary); + --btn-primary-hover: var(--color-primary-hover); + --focus-ring: 0 0 0 3px rgba(125, 134, 149, 0.32); } *, diff --git a/src/components/charts/SalesAreaChart.vue b/src/components/charts/SalesAreaChart.vue index d9ca9b3..dac9f64 100644 --- a/src/components/charts/SalesAreaChart.vue +++ b/src/components/charts/SalesAreaChart.vue @@ -14,7 +14,7 @@ const props = withDefaults( }>(), { height: 160, - color: '#0a353c', + color: '#091d36', unit: 'میلیارد تومان', }, ) diff --git a/src/components/layout/AdminHeader.vue b/src/components/layout/AdminHeader.vue index 52a23e8..cd776d7 100644 --- a/src/components/layout/AdminHeader.vue +++ b/src/components/layout/AdminHeader.vue @@ -1,12 +1,16 @@ diff --git a/src/components/layout/AdminMobileDrawer.vue b/src/components/layout/AdminMobileDrawer.vue index 1fdb7fb..1a2ffd4 100644 --- a/src/components/layout/AdminMobileDrawer.vue +++ b/src/components/layout/AdminMobileDrawer.vue @@ -1,6 +1,7 @@ + + + +