From 9c999299ff5e8c4182730783b84ecd59eafe293b Mon Sep 17 00:00:00 2001 From: safavimohadeseh78 Date: Sun, 13 Sep 2026 10:49:18 +0330 Subject: [PATCH] dynamic support numbers --- ...chCell-CU-04sUE.js => ActiveSwitchCell-BaPmkdOq.js} | 2 +- ...nput-DEYWjQBL.js => AdminCurrencyInput-Dej5qU24.js} | 2 +- ...AdminSelect-Bi0VQHva.js => AdminSelect-Bw3z0TPQ.js} | 2 +- ...tsView-bjQn6OKl.js => BankAccountsView-qPkZErp-.js} | 2 +- ...BannersView-CSVhu69t.js => BannersView-BrJxBz6a.js} | 2 +- ...ptyState-P-TMfHGI.js => BaseEmptyState-D5jlq4nS.js} | 2 +- .../{BrandsView-BgcQt9a9.js => BrandsView-BgRB_dnQ.js} | 2 +- ...tsView-BKRIGKw1.js => CashPaymentsView-uwiw3eFd.js} | 2 +- ...iew-DmuxccLi.js => CatalogRequestsView-Bhd1ii66.js} | 2 +- ...talogsView-JnHYSqVw.js => CatalogsView-CUtcg7TE.js} | 2 +- ...riesView-DodASqYI.js => CategoriesView-Bg7zpqeN.js} | 2 +- ...iew-BLeaEEuT.js => CheckManagementView-DdfJ7mM8.js} | 2 +- ...ListView-B2lM1Mri.js => ChecksListView-DM6EfJQS.js} | 2 +- ...aniesView-Dr0i2DgE.js => CompaniesView-EUwI0EET.js} | 2 +- ...omersView-BZ2XNcSp.js => CustomersView-BKoe-p99.js} | 2 +- ...boardView-DB8d_Lkp.js => DashboardView-WAVxdnr5.js} | 2 +- .../{LevelsView-C9cD642-.js => LevelsView-Dt4PYLXr.js} | 2 +- .../{LoginView-CG-fIPqO.js => LoginView-Cwr3-bag.js} | 2 +- ...ngView-D6ELkOQs.js => OrderPricingView-DAA-KKtU.js} | 2 +- .../{OrdersView-DEb47ybi.js => OrdersView-syyGE4fv.js} | 2 +- ...oductsView-DeAxfx2Z.js => ProductsView-BpIWai3T.js} | 2 +- ...ReportsView-DyBGvZCc.js => ReportsView-u9EnobV7.js} | 2 +- ...ttingsView-BXC0CbHB.js => SettingsView-BtXHQ1G1.js} | 2 +- dist/assets/SettingsView-BxjDb3Mp.css | 1 - dist/assets/SettingsView-COlo0e0z.css | 1 + ...ippingView-U8liSwBL.js => ShippingView-BH50PpZU.js} | 2 +- ...rtsView-ByyE4I3s.js => StockAlertsView-QdcvkdiB.js} | 2 +- ...onsView-B9eEUT1E.js => SuggestionsView-CdS7IuYt.js} | 2 +- .../{UsersView-DDVrgBRB.js => UsersView-OoZZqmAT.js} | 2 +- dist/assets/{index-senPc5aL.js => index-mN60lSc2.js} | 4 ++-- dist/index.html | 2 +- src/views/settings/SettingsView.vue | 10 +++++++++- 32 files changed, 40 insertions(+), 32 deletions(-) rename dist/assets/{ActiveSwitchCell-CU-04sUE.js => ActiveSwitchCell-BaPmkdOq.js} (96%) rename dist/assets/{AdminCurrencyInput-DEYWjQBL.js => AdminCurrencyInput-Dej5qU24.js} (93%) rename dist/assets/{AdminSelect-Bi0VQHva.js => AdminSelect-Bw3z0TPQ.js} (98%) rename dist/assets/{BankAccountsView-bjQn6OKl.js => BankAccountsView-qPkZErp-.js} (97%) rename dist/assets/{BannersView-CSVhu69t.js => BannersView-BrJxBz6a.js} (96%) rename dist/assets/{BaseEmptyState-P-TMfHGI.js => BaseEmptyState-D5jlq4nS.js} (92%) rename dist/assets/{BrandsView-BgcQt9a9.js => BrandsView-BgRB_dnQ.js} (96%) rename dist/assets/{CashPaymentsView-BKRIGKw1.js => CashPaymentsView-uwiw3eFd.js} (97%) rename dist/assets/{CatalogRequestsView-DmuxccLi.js => CatalogRequestsView-Bhd1ii66.js} (92%) rename dist/assets/{CatalogsView-JnHYSqVw.js => CatalogsView-CUtcg7TE.js} (97%) rename dist/assets/{CategoriesView-DodASqYI.js => CategoriesView-Bg7zpqeN.js} (97%) rename dist/assets/{CheckManagementView-BLeaEEuT.js => CheckManagementView-DdfJ7mM8.js} (99%) rename dist/assets/{ChecksListView-B2lM1Mri.js => ChecksListView-DM6EfJQS.js} (97%) rename dist/assets/{CompaniesView-Dr0i2DgE.js => CompaniesView-EUwI0EET.js} (97%) rename dist/assets/{CustomersView-BZ2XNcSp.js => CustomersView-BKoe-p99.js} (97%) rename dist/assets/{DashboardView-DB8d_Lkp.js => DashboardView-WAVxdnr5.js} (98%) rename dist/assets/{LevelsView-C9cD642-.js => LevelsView-Dt4PYLXr.js} (96%) rename dist/assets/{LoginView-CG-fIPqO.js => LoginView-Cwr3-bag.js} (98%) rename dist/assets/{OrderPricingView-D6ELkOQs.js => OrderPricingView-DAA-KKtU.js} (98%) rename dist/assets/{OrdersView-DEb47ybi.js => OrdersView-syyGE4fv.js} (99%) rename dist/assets/{ProductsView-DeAxfx2Z.js => ProductsView-BpIWai3T.js} (98%) rename dist/assets/{ReportsView-DyBGvZCc.js => ReportsView-u9EnobV7.js} (99%) rename dist/assets/{SettingsView-BXC0CbHB.js => SettingsView-BtXHQ1G1.js} (80%) delete mode 100644 dist/assets/SettingsView-BxjDb3Mp.css create mode 100644 dist/assets/SettingsView-COlo0e0z.css rename dist/assets/{ShippingView-U8liSwBL.js => ShippingView-BH50PpZU.js} (98%) rename dist/assets/{StockAlertsView-ByyE4I3s.js => StockAlertsView-QdcvkdiB.js} (93%) rename dist/assets/{SuggestionsView-B9eEUT1E.js => SuggestionsView-CdS7IuYt.js} (94%) rename dist/assets/{UsersView-DDVrgBRB.js => UsersView-OoZZqmAT.js} (96%) rename dist/assets/{index-senPc5aL.js => index-mN60lSc2.js} (97%) diff --git a/dist/assets/ActiveSwitchCell-CU-04sUE.js b/dist/assets/ActiveSwitchCell-BaPmkdOq.js similarity index 96% rename from dist/assets/ActiveSwitchCell-CU-04sUE.js rename to dist/assets/ActiveSwitchCell-BaPmkdOq.js index 022ddef..cfc9757 100644 --- a/dist/assets/ActiveSwitchCell-CU-04sUE.js +++ b/dist/assets/ActiveSwitchCell-BaPmkdOq.js @@ -1 +1 @@ -import{N as e,a as t,m as n,nt as r,ut as i,x as a}from"./http-WTIyGIuL.js";import{I as o}from"./index-senPc5aL.js";import{t as s}from"./BaseSwitch-gjOaAbzm.js";function c(e=480){return new Promise(t=>{window.setTimeout(t,e)})}function l(e){let n=r(null),i=r(null),a=t();async function o(t,r){if(n.value)return r;let o=!r;if(!o&&e.confirmOff&&!await e.confirmOff())return r;n.value=t,i.value=null;let s=r;try{return await e.onPersist(o),a.success(e.successMessage?.(o)??(o?`وضعیت فعال شد.`:`وضعیت غیرفعال شد.`)),o}catch{return i.value=t,a.error(e.errorMessage??`به‌روزرسانی وضعیت انجام نشد.`),s}finally{n.value=null}}function s(e){return n.value===e}function c(e){return i.value===e}return{toggle:o,isLoading:s,hasError:c}}var u=a({__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(),n(s,{"model-value":t.modelValue,loading:i(f)(t.id),error:i(p)(t.id),"onUpdate:modelValue":m},null,8,[`model-value`,`loading`,`error`]))}});export{u as t}; \ No newline at end of file +import{N as e,a as t,m as n,nt as r,ut as i,x as a}from"./http-WTIyGIuL.js";import{I as o}from"./index-mN60lSc2.js";import{t as s}from"./BaseSwitch-gjOaAbzm.js";function c(e=480){return new Promise(t=>{window.setTimeout(t,e)})}function l(e){let n=r(null),i=r(null),a=t();async function o(t,r){if(n.value)return r;let o=!r;if(!o&&e.confirmOff&&!await e.confirmOff())return r;n.value=t,i.value=null;let s=r;try{return await e.onPersist(o),a.success(e.successMessage?.(o)??(o?`وضعیت فعال شد.`:`وضعیت غیرفعال شد.`)),o}catch{return i.value=t,a.error(e.errorMessage??`به‌روزرسانی وضعیت انجام نشد.`),s}finally{n.value=null}}function s(e){return n.value===e}function c(e){return i.value===e}return{toggle:o,isLoading:s,hasError:c}}var u=a({__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(),n(s,{"model-value":t.modelValue,loading:i(f)(t.id),error:i(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-DEYWjQBL.js b/dist/assets/AdminCurrencyInput-Dej5qU24.js similarity index 93% rename from dist/assets/AdminCurrencyInput-DEYWjQBL.js rename to dist/assets/AdminCurrencyInput-Dej5qU24.js index d24d003..9c4c6da 100644 --- a/dist/assets/AdminCurrencyInput-DEYWjQBL.js +++ b/dist/assets/AdminCurrencyInput-Dej5qU24.js @@ -1 +1 @@ -import{At as e,N as t,f as n,g as r,o as i,x as a}from"./http-WTIyGIuL.js";import{o,t as s}from"./index-senPc5aL.js";var c=[`id`,`value`,`placeholder`,`disabled`],l=i(a({__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(i,{emit:a}){let l=i,u=a,d=n(()=>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(n,a)=>(t(),r(`input`,{id:i.id,type:`text`,inputmode:`numeric`,dir:`ltr`,class:e([`admin-currency-input`,i.inputClass]),value:d.value,placeholder:i.placeholder,disabled:i.disabled,onInput:f},null,42,c))}}),[[`__scopeId`,`data-v-56435fc8`]]);export{l as t}; \ No newline at end of file +import{At as e,N as t,f as n,g as r,o as i,x as a}from"./http-WTIyGIuL.js";import{o,t as s}from"./index-mN60lSc2.js";var c=[`id`,`value`,`placeholder`,`disabled`],l=i(a({__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(i,{emit:a}){let l=i,u=a,d=n(()=>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(n,a)=>(t(),r(`input`,{id:i.id,type:`text`,inputmode:`numeric`,dir:`ltr`,class:e([`admin-currency-input`,i.inputClass]),value:d.value,placeholder:i.placeholder,disabled:i.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-Bi0VQHva.js b/dist/assets/AdminSelect-Bw3z0TPQ.js similarity index 98% rename from dist/assets/AdminSelect-Bi0VQHva.js rename to dist/assets/AdminSelect-Bw3z0TPQ.js index 88754d2..e824f94 100644 --- a/dist/assets/AdminSelect-Bi0VQHva.js +++ b/dist/assets/AdminSelect-Bw3z0TPQ.js @@ -1 +1 @@ -import{At as e,I as t,K as n,Mt as r,N as i,Nt as a,O as o,U as s,b as c,c as l,f as u,g as d,h as f,j as p,m,nt as h,o as g,p as _,u as v,x as y}from"./http-WTIyGIuL.js";import{H as b,N as x,O as S,U as C,V as w}from"./index-senPc5aL.js";var T=[`id`],E=[`aria-label`,`aria-expanded`],D={class:`admin-select__value`},O={class:`admin-select__chevron`,"aria-hidden":`true`},k=[`aria-label`],A={key:0,class:`admin-select__search`,role:`presentation`},j=[`placeholder`],M={key:1,class:`admin-select__empty`,role:`presentation`},N=[`aria-selected`,`onClick`],P=g(y({__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(g,{emit:y}){let P=g,F=y,I=h(!1),L=h(``),R=h(null),z=h(null),B=h(null),V=h({});S(R,()=>{I.value=!1,L.value=``},{ignore:[z]});let H=u(()=>P.options.find(e=>e.value===P.modelValue)?.label??P.placeholder),U=u(()=>{let e=L.value.trim().toLowerCase();return e?P.options.filter(t=>t.label.toLowerCase().includes(e)):P.options});function W(){let e=R.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));V.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 G(e){e?(window.addEventListener(`resize`,W),window.addEventListener(`scroll`,W,!0)):(window.removeEventListener(`resize`,W),window.removeEventListener(`scroll`,W,!0))}async function K(){I.value=!I.value,I.value&&(await o(),W(),P.searchable&&(L.value=``,await o(),B.value?.focus()))}function q(e){F(`update:modelValue`,e),I.value=!1,L.value=``}return s(I,e=>{G(e),e&&o(()=>W())}),p(()=>{G(!1)}),(o,s)=>(i(),d(`div`,{id:g.id,ref_key:`rootRef`,ref:R,class:e([`admin-select`,{"admin-select--open":I.value,"admin-select--block":g.block}])},[_(`button`,{type:`button`,class:`admin-select__trigger`,"aria-label":g.ariaLabel,"aria-expanded":I.value,"aria-haspopup":`listbox`,onClick:K},[_(`span`,D,a(H.value),1),_(`span`,O,[c(x,{name:`chevron-down`,size:16})])],8,E),(i(),m(v,{to:`body`},[I.value?(i(),d(`ul`,{key:0,ref_key:`menuRef`,ref:z,class:`admin-select__menu`,role:`listbox`,"aria-label":g.ariaLabel,style:r(V.value)},[g.searchable?(i(),d(`li`,A,[n(_(`input`,{ref_key:`searchInputRef`,ref:B,"onUpdate:modelValue":s[0]||=e=>L.value=e,type:`search`,class:`admin-select__search-input`,placeholder:g.searchPlaceholder,onClick:s[1]||=C(()=>{},[`stop`]),onKeydown:s[2]||=b(C(e=>I.value=!1,[`stop`]),[`esc`])},null,40,j),[[w,L.value]])])):f(``,!0),U.value.length?f(``,!0):(i(),d(`li`,M,` موردی یافت نشد `)),(i(!0),d(l,null,t(U.value,t=>(i(),d(`li`,{key:t.value,role:`presentation`},[_(`button`,{type:`button`,class:e([`admin-select__option`,{"admin-select__option--active":t.value===g.modelValue}]),role:`option`,"aria-selected":t.value===g.modelValue,onClick:e=>q(t.value)},[_(`span`,null,a(t.label),1),t.value===g.modelValue?(i(),m(x,{key:0,name:`check`,size:16,class:`admin-select__check`})):f(``,!0)],10,N)]))),128))],12,k)):f(``,!0)]))],10,T))}}),[[`__scopeId`,`data-v-7f43c8c3`]]);export{P as t}; \ No newline at end of file +import{At as e,I as t,K as n,Mt as r,N as i,Nt as a,O as o,U as s,b as c,c as l,f as u,g as d,h as f,j as p,m,nt as h,o as g,p as _,u as v,x as y}from"./http-WTIyGIuL.js";import{H as b,N as x,O as S,U as C,V as w}from"./index-mN60lSc2.js";var T=[`id`],E=[`aria-label`,`aria-expanded`],D={class:`admin-select__value`},O={class:`admin-select__chevron`,"aria-hidden":`true`},k=[`aria-label`],A={key:0,class:`admin-select__search`,role:`presentation`},j=[`placeholder`],M={key:1,class:`admin-select__empty`,role:`presentation`},N=[`aria-selected`,`onClick`],P=g(y({__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(g,{emit:y}){let P=g,F=y,I=h(!1),L=h(``),R=h(null),z=h(null),B=h(null),V=h({});S(R,()=>{I.value=!1,L.value=``},{ignore:[z]});let H=u(()=>P.options.find(e=>e.value===P.modelValue)?.label??P.placeholder),U=u(()=>{let e=L.value.trim().toLowerCase();return e?P.options.filter(t=>t.label.toLowerCase().includes(e)):P.options});function W(){let e=R.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));V.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 G(e){e?(window.addEventListener(`resize`,W),window.addEventListener(`scroll`,W,!0)):(window.removeEventListener(`resize`,W),window.removeEventListener(`scroll`,W,!0))}async function K(){I.value=!I.value,I.value&&(await o(),W(),P.searchable&&(L.value=``,await o(),B.value?.focus()))}function q(e){F(`update:modelValue`,e),I.value=!1,L.value=``}return s(I,e=>{G(e),e&&o(()=>W())}),p(()=>{G(!1)}),(o,s)=>(i(),d(`div`,{id:g.id,ref_key:`rootRef`,ref:R,class:e([`admin-select`,{"admin-select--open":I.value,"admin-select--block":g.block}])},[_(`button`,{type:`button`,class:`admin-select__trigger`,"aria-label":g.ariaLabel,"aria-expanded":I.value,"aria-haspopup":`listbox`,onClick:K},[_(`span`,D,a(H.value),1),_(`span`,O,[c(x,{name:`chevron-down`,size:16})])],8,E),(i(),m(v,{to:`body`},[I.value?(i(),d(`ul`,{key:0,ref_key:`menuRef`,ref:z,class:`admin-select__menu`,role:`listbox`,"aria-label":g.ariaLabel,style:r(V.value)},[g.searchable?(i(),d(`li`,A,[n(_(`input`,{ref_key:`searchInputRef`,ref:B,"onUpdate:modelValue":s[0]||=e=>L.value=e,type:`search`,class:`admin-select__search-input`,placeholder:g.searchPlaceholder,onClick:s[1]||=C(()=>{},[`stop`]),onKeydown:s[2]||=b(C(e=>I.value=!1,[`stop`]),[`esc`])},null,40,j),[[w,L.value]])])):f(``,!0),U.value.length?f(``,!0):(i(),d(`li`,M,` موردی یافت نشد `)),(i(!0),d(l,null,t(U.value,t=>(i(),d(`li`,{key:t.value,role:`presentation`},[_(`button`,{type:`button`,class:e([`admin-select__option`,{"admin-select__option--active":t.value===g.modelValue}]),role:`option`,"aria-selected":t.value===g.modelValue,onClick:e=>q(t.value)},[_(`span`,null,a(t.label),1),t.value===g.modelValue?(i(),m(x,{key:0,name:`check`,size:16,class:`admin-select__check`})):f(``,!0)],10,N)]))),128))],12,k)):f(``,!0)]))],10,T))}}),[[`__scopeId`,`data-v-7f43c8c3`]]);export{P as t}; \ No newline at end of file diff --git a/dist/assets/BankAccountsView-bjQn6OKl.js b/dist/assets/BankAccountsView-qPkZErp-.js similarity index 97% rename from dist/assets/BankAccountsView-bjQn6OKl.js rename to dist/assets/BankAccountsView-qPkZErp-.js index 044444f..32dc3dd 100644 --- a/dist/assets/BankAccountsView-bjQn6OKl.js +++ b/dist/assets/BankAccountsView-qPkZErp-.js @@ -1 +1 @@ -import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as ee,f as l,g as u,h as d,m as f,nt as p,o as te,p as m,t as h,x as g,y as _}from"./http-WTIyGIuL.js";import{F as ne,L as re,P as v,U as ie,V as y,c as b,h as ae}from"./index-senPc5aL.js";import{t as oe}from"./BaseSwitch-gjOaAbzm.js";import{t as se}from"./BaseEmptyState-P-TMfHGI.js";import{t as x}from"./ActiveSwitchCell-CU-04sUE.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`},me={class:`status`},S={key:2,class:`compact-only admin-card-list`},C={class:`admin-card-item__header`},w={class:`admin-card-item__title`},T={class:`admin-card-item__meta`},E={key:0},D={key:1,dir:`ltr`},O={key:0,class:`admin-form__error`,role:`alert`},k={class:`admin-form__row`},A={class:`admin-form__field`},j={class:`admin-form__field`},M={class:`admin-form__field`},N={class:`admin-form__row`},P={class:`admin-form__field`},F={class:`admin-form__field`},I={class:`admin-form__field`},L=[`disabled`],R=te(g({__name:`BankAccountsView`,setup(te){let g=v(),R=ne(),z=o(),B=p(null),V=p([]),H=p(!1),U=p(``),W=p(!1),G=l(()=>String(g.params.companyId)),K=l(()=>V.value),q=()=>({bankName:``,accountNumber:``,accountHolder:B.value?.name??``,cardNumber:``,iban:``,isActive:!0}),J=ee(q()),Y=l(()=>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([ae.get(G.value),b.listByCompany(G.value)]);B.value=e,V.value=t}catch(e){z.error(e instanceof h?e.message:`بارگذاری حساب‌ها انجام نشد.`)}}e(()=>{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 h?e.message:`ثبت حساب انجام نشد.`)}finally{W.value=!1}}async function $(e,t){await b.setActive(e,t)}function ge(){R.push(`/companies`)}return(e,o)=>(i(),u(`div`,ce,[m(`div`,le,[m(`div`,null,[m(`h1`,ue,` مدیریت حساب‌های بانکی — `+a(B.value?.name??`…`),1)]),m(`div`,{class:`admin-action-group`},[m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:X},` افزودن حساب `),m(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ge},` بازگشت `)])]),K.value.length?(i(),u(`div`,de,[m(`div`,fe,[m(`table`,pe,[o[6]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`بانک`),m(`th`,null,`حساب بانکی`),m(`th`,null,`نام صاحب`),m(`th`,null,`شماره کارت`),m(`th`,null,`شماره شبا`),m(`th`,{class:`status`},`وضعیت`)])],-1),m(`tbody`,null,[(i(!0),u(c,null,n(K.value,e=>(i(),u(`tr`,{key:e.id},[m(`td`,null,a(e.bankName),1),m(`td`,null,a(e.accountNumber),1),m(`td`,null,a(e.accountHolder),1),m(`td`,null,a(e.cardNumber||`—`),1),m(`td`,null,a(e.iban||`—`),1),m(`td`,me,[s(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))])])])])):(i(),f(se,{key:0,class:`admin-card`,icon:`wallet`,title:`حساب بانکی ثبت نشده`,description:`برای این شرکت هنوز حساب بانکی ثبت نشده است.`},{default:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:X},` افزودن حساب `)]),_:1})),K.value.length?(i(),u(`div`,S,[(i(!0),u(c,null,n(K.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,C,[m(`p`,w,`بانک `+a(e.bankName),1),s(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`])]),m(`div`,T,[m(`span`,null,a(e.accountHolder),1),m(`span`,null,`حساب: `+a(e.accountNumber),1),e.cardNumber?(i(),u(`span`,E,`کارت: `+a(e.cardNumber),1)):d(``,!0),e.iban?(i(),u(`span`,D,a(e.iban),1)):d(``,!0)])]))),128))])):d(``,!0),s(re,{open:H.value,title:`افزودن حساب بانکی`,size:`lg`,onClose:Z},{footer:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},` انصراف `),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Y.value||W.value,onClick:Q},` ثبت حساب `,8,L)]),default:t(()=>[m(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[U.value?(i(),u(`p`,O,a(U.value),1)):d(``,!0),m(`div`,k,[m(`div`,A,[o[7]||=m(`label`,{for:`bank-name`},[_(`نام بانک `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`bank-name`,"onUpdate:modelValue":o[0]||=e=>J.bankName=e,type:`text`,class:`admin-input`,placeholder:`مثال: ملت`},null,512),[[y,J.bankName]])]),m(`div`,j,[o[8]||=m(`label`,{for:`account-number`},[_(` شماره حساب `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`account-number`,"onUpdate:modelValue":o[1]||=e=>J.accountNumber=e,type:`text`,class:`admin-input`,placeholder:`1234567890`,inputmode:`numeric`,dir:`ltr`},null,512),[[y,J.accountNumber]])])]),m(`div`,M,[o[9]||=m(`label`,{for:`account-holder`},[_(` نام صاحب حساب `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`account-holder`,"onUpdate:modelValue":o[2]||=e=>J.accountHolder=e,type:`text`,class:`admin-input`},null,512),[[y,J.accountHolder]])]),m(`div`,N,[m(`div`,P,[o[10]||=m(`label`,{for:`card-number`},`شماره کارت`,-1),r(m(`input`,{id:`card-number`,"onUpdate:modelValue":o[3]||=e=>J.cardNumber=e,type:`text`,class:`admin-input`,placeholder:`6104 3378 0077 1234`,inputmode:`numeric`,dir:`ltr`},null,512),[[y,J.cardNumber]])]),m(`div`,F,[o[11]||=m(`label`,{for:`iban`},`شماره شبا`,-1),r(m(`input`,{id:`iban`,"onUpdate:modelValue":o[4]||=e=>J.iban=e,type:`text`,class:`admin-input`,placeholder:`IR...`,dir:`ltr`},null,512),[[y,J.iban]])])]),m(`div`,I,[s(oe,{modelValue:J.isActive,"onUpdate:modelValue":o[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 +import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as ee,f as l,g as u,h as d,m as f,nt as p,o as te,p as m,t as h,x as g,y as _}from"./http-WTIyGIuL.js";import{F as ne,L as re,P as v,U as ie,V as y,c as b,h as ae}from"./index-mN60lSc2.js";import{t as oe}from"./BaseSwitch-gjOaAbzm.js";import{t as se}from"./BaseEmptyState-D5jlq4nS.js";import{t as x}from"./ActiveSwitchCell-BaPmkdOq.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`},me={class:`status`},S={key:2,class:`compact-only admin-card-list`},C={class:`admin-card-item__header`},w={class:`admin-card-item__title`},T={class:`admin-card-item__meta`},E={key:0},D={key:1,dir:`ltr`},O={key:0,class:`admin-form__error`,role:`alert`},k={class:`admin-form__row`},A={class:`admin-form__field`},j={class:`admin-form__field`},M={class:`admin-form__field`},N={class:`admin-form__row`},P={class:`admin-form__field`},F={class:`admin-form__field`},I={class:`admin-form__field`},L=[`disabled`],R=te(g({__name:`BankAccountsView`,setup(te){let g=v(),R=ne(),z=o(),B=p(null),V=p([]),H=p(!1),U=p(``),W=p(!1),G=l(()=>String(g.params.companyId)),K=l(()=>V.value),q=()=>({bankName:``,accountNumber:``,accountHolder:B.value?.name??``,cardNumber:``,iban:``,isActive:!0}),J=ee(q()),Y=l(()=>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([ae.get(G.value),b.listByCompany(G.value)]);B.value=e,V.value=t}catch(e){z.error(e instanceof h?e.message:`بارگذاری حساب‌ها انجام نشد.`)}}e(()=>{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 h?e.message:`ثبت حساب انجام نشد.`)}finally{W.value=!1}}async function $(e,t){await b.setActive(e,t)}function ge(){R.push(`/companies`)}return(e,o)=>(i(),u(`div`,ce,[m(`div`,le,[m(`div`,null,[m(`h1`,ue,` مدیریت حساب‌های بانکی — `+a(B.value?.name??`…`),1)]),m(`div`,{class:`admin-action-group`},[m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:X},` افزودن حساب `),m(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ge},` بازگشت `)])]),K.value.length?(i(),u(`div`,de,[m(`div`,fe,[m(`table`,pe,[o[6]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`بانک`),m(`th`,null,`حساب بانکی`),m(`th`,null,`نام صاحب`),m(`th`,null,`شماره کارت`),m(`th`,null,`شماره شبا`),m(`th`,{class:`status`},`وضعیت`)])],-1),m(`tbody`,null,[(i(!0),u(c,null,n(K.value,e=>(i(),u(`tr`,{key:e.id},[m(`td`,null,a(e.bankName),1),m(`td`,null,a(e.accountNumber),1),m(`td`,null,a(e.accountHolder),1),m(`td`,null,a(e.cardNumber||`—`),1),m(`td`,null,a(e.iban||`—`),1),m(`td`,me,[s(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))])])])])):(i(),f(se,{key:0,class:`admin-card`,icon:`wallet`,title:`حساب بانکی ثبت نشده`,description:`برای این شرکت هنوز حساب بانکی ثبت نشده است.`},{default:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:X},` افزودن حساب `)]),_:1})),K.value.length?(i(),u(`div`,S,[(i(!0),u(c,null,n(K.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,C,[m(`p`,w,`بانک `+a(e.bankName),1),s(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`])]),m(`div`,T,[m(`span`,null,a(e.accountHolder),1),m(`span`,null,`حساب: `+a(e.accountNumber),1),e.cardNumber?(i(),u(`span`,E,`کارت: `+a(e.cardNumber),1)):d(``,!0),e.iban?(i(),u(`span`,D,a(e.iban),1)):d(``,!0)])]))),128))])):d(``,!0),s(re,{open:H.value,title:`افزودن حساب بانکی`,size:`lg`,onClose:Z},{footer:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},` انصراف `),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Y.value||W.value,onClick:Q},` ثبت حساب `,8,L)]),default:t(()=>[m(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[U.value?(i(),u(`p`,O,a(U.value),1)):d(``,!0),m(`div`,k,[m(`div`,A,[o[7]||=m(`label`,{for:`bank-name`},[_(`نام بانک `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`bank-name`,"onUpdate:modelValue":o[0]||=e=>J.bankName=e,type:`text`,class:`admin-input`,placeholder:`مثال: ملت`},null,512),[[y,J.bankName]])]),m(`div`,j,[o[8]||=m(`label`,{for:`account-number`},[_(` شماره حساب `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`account-number`,"onUpdate:modelValue":o[1]||=e=>J.accountNumber=e,type:`text`,class:`admin-input`,placeholder:`1234567890`,inputmode:`numeric`,dir:`ltr`},null,512),[[y,J.accountNumber]])])]),m(`div`,M,[o[9]||=m(`label`,{for:`account-holder`},[_(` نام صاحب حساب `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`account-holder`,"onUpdate:modelValue":o[2]||=e=>J.accountHolder=e,type:`text`,class:`admin-input`},null,512),[[y,J.accountHolder]])]),m(`div`,N,[m(`div`,P,[o[10]||=m(`label`,{for:`card-number`},`شماره کارت`,-1),r(m(`input`,{id:`card-number`,"onUpdate:modelValue":o[3]||=e=>J.cardNumber=e,type:`text`,class:`admin-input`,placeholder:`6104 3378 0077 1234`,inputmode:`numeric`,dir:`ltr`},null,512),[[y,J.cardNumber]])]),m(`div`,F,[o[11]||=m(`label`,{for:`iban`},`شماره شبا`,-1),r(m(`input`,{id:`iban`,"onUpdate:modelValue":o[4]||=e=>J.iban=e,type:`text`,class:`admin-input`,placeholder:`IR...`,dir:`ltr`},null,512),[[y,J.iban]])])]),m(`div`,I,[s(oe,{modelValue:J.isActive,"onUpdate:modelValue":o[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-CSVhu69t.js b/dist/assets/BannersView-BrJxBz6a.js similarity index 96% rename from dist/assets/BannersView-CSVhu69t.js rename to dist/assets/BannersView-BrJxBz6a.js index 4b57c59..cc3ed9e 100644 --- a/dist/assets/BannersView-CSVhu69t.js +++ b/dist/assets/BannersView-BrJxBz6a.js @@ -1 +1 @@ -import{A as e,At as t,G as n,I as r,K as i,Mt as a,N as o,Nt as s,a as c,b as l,c as u,et as d,f,g as p,h as m,m as h,nt as g,o as _,p as v,t as y,x as b,y as x}from"./http-WTIyGIuL.js";import{L as S,V as C,l as w}from"./index-senPc5aL.js";import{t as T}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as E}from"./BaseSwitch-gjOaAbzm.js";import{t as ee}from"./BaseEmptyState-P-TMfHGI.js";import{t as D}from"./AdminImagePicker-DcFp1rIR.js";import{t as O}from"./AdminSelect-Bi0VQHva.js";var k={class:`banners-page`},A={key:2,class:`admin-card`},j={class:`admin-table`},M={key:0,class:`banner-sub`},N={class:`actions`},P=[`onClick`],F=[`onClick`],I={class:`field`},L={class:`field`},R={class:`field`},z={class:`field`},B={class:`field`},V={class:`field`},H=[`disabled`],U=_(b({__name:`BannersView`,setup(_){let b=[{value:`home_hero`,label:`خانه — بنر اصلی`},{value:`products_hero`,label:`لیست محصولات`},{value:`categories_hero`,label:`دسته‌بندی‌ها`}],U=g([]),W=g(!0),G=g(!1),K=g(!1),q=g(null),J=c(),Y=d({slot:`home_hero`,title:``,subtitle:``,ctaLabel:``,ctaLink:`/categories`,imageUrl:null,displayOrder:0,isActive:!0}),X=f(()=>q.value?`ویرایش بنر`:`افزودن بنر`);function Z(e){return b.find(t=>t.value===e)?.label??e}async function Q(){W.value=!0;try{U.value=await w.list()}catch(e){J.error(e instanceof y?e.message:`بارگذاری بنرها ناموفق بود.`)}finally{W.value=!1}}function $(){q.value=null,Object.assign(Y,{slot:`home_hero`,title:``,subtitle:``,ctaLabel:`مشاهده کالکشن`,ctaLink:`/categories`,imageUrl:null,displayOrder:U.value.length,isActive:!0}),K.value=!0}function te(e){q.value=e.id,Object.assign(Y,{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}),K.value=!0}async function ne(){if(Y.title.trim()){G.value=!0;try{let e={slot:Y.slot,title:Y.title.trim(),subtitle:Y.subtitle.trim()||null,ctaLabel:Y.ctaLabel.trim()||null,ctaLink:Y.ctaLink.trim()||null,imageUrl:Y.imageUrl,displayOrder:Y.displayOrder,isActive:Y.isActive};q.value?await w.update(q.value,e):await w.create(e),K.value=!1,J.success(`بنر ذخیره شد.`),await Q()}catch(e){J.error(e instanceof y?e.message:`ذخیره بنر ناموفق بود.`)}finally{G.value=!1}}}async function re(e){if(window.confirm(`بنر «${e.title}» حذف شود؟`))try{await w.remove(e.id),J.success(`بنر حذف شد.`),await Q()}catch(e){J.error(e instanceof y?e.message:`حذف بنر ناموفق بود.`)}}return e(()=>{Q()}),(e,c)=>(o(),p(`div`,k,[v(`div`,{class:`admin-page-header`},[c[10]||=v(`div`,null,[v(`h1`,{class:`admin-page-header__title`},`بنرها`),v(`p`,{class:`admin-page-header__sub`},`بنر بخش‌های مختلف اپ کاربر را از اینجا مدیریت کنید.`)],-1),v(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:$},`افزودن بنر`)]),W.value?(o(),h(T,{key:0,variant:`table`})):U.value.length?(o(),p(`div`,A,[v(`table`,j,[c[11]||=v(`thead`,null,[v(`tr`,null,[v(`th`,null,`تصویر`),v(`th`,null,`عنوان`),v(`th`,null,`بخش`),v(`th`,null,`دکمه`),v(`th`,null,`فعال`),v(`th`,{class:`actions`},`عملیات`)])],-1),v(`tbody`,null,[(o(!0),p(u,null,r(U.value,e=>(o(),p(`tr`,{key:e.id},[v(`td`,null,[v(`span`,{class:t([`banner-thumb`,{"banner-thumb--empty":!e.imageUrl}]),style:a(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6)]),v(`td`,null,[v(`strong`,null,s(e.title),1),e.subtitle?(o(),p(`p`,M,s(e.subtitle),1)):m(``,!0)]),v(`td`,null,s(Z(e.slot)),1),v(`td`,null,s(e.ctaLabel||`—`),1),v(`td`,null,s(e.isActive?`بله`:`خیر`),1),v(`td`,N,[v(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>te(e)},` ویرایش `,8,P),v(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>re(e)},` حذف `,8,F)])]))),128))])])])):(o(),h(ee,{key:1,title:`بنری ثبت نشده`,description:`اولین بنر خانه را اضافه کنید.`},{default:n(()=>[v(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:$},` افزودن بنر `)]),_:1})),l(S,{open:K.value,title:X.value,onClose:c[9]||=e=>K.value=!1},{footer:n(()=>[v(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:c[8]||=e=>K.value=!1},`انصراف`),v(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Y.title.trim()||G.value,onClick:ne},s(G.value?`در حال ذخیره...`:`ذخیره`),9,H)]),default:n(()=>[v(`label`,I,[c[12]||=x(` بخش نمایش `,-1),l(O,{modelValue:Y.slot,"onUpdate:modelValue":c[0]||=e=>Y.slot=e,options:b},null,8,[`modelValue`])]),v(`label`,L,[c[13]||=x(`عنوان`,-1),i(v(`input`,{"onUpdate:modelValue":c[1]||=e=>Y.title=e,class:`admin-input`},null,512),[[C,Y.title]])]),v(`label`,R,[c[14]||=x(`زیرعنوان`,-1),i(v(`input`,{"onUpdate:modelValue":c[2]||=e=>Y.subtitle=e,class:`admin-input`},null,512),[[C,Y.subtitle]])]),v(`label`,z,[c[15]||=x(`متن دکمه`,-1),i(v(`input`,{"onUpdate:modelValue":c[3]||=e=>Y.ctaLabel=e,class:`admin-input`},null,512),[[C,Y.ctaLabel]])]),v(`label`,B,[c[16]||=x(` لینک دکمه `,-1),i(v(`input`,{"onUpdate:modelValue":c[4]||=e=>Y.ctaLink=e,class:`admin-input`,dir:`ltr`,placeholder:`/categories`},null,512),[[C,Y.ctaLink]])]),v(`label`,V,[c[17]||=x(`ترتیب نمایش`,-1),i(v(`input`,{"onUpdate:modelValue":c[5]||=e=>Y.displayOrder=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[C,Y.displayOrder,void 0,{number:!0}]])]),l(D,{modelValue:Y.imageUrl,"onUpdate:modelValue":c[6]||=e=>Y.imageUrl=e,label:`تصویر بنر`},null,8,[`modelValue`]),l(E,{modelValue:Y.isActive,"onUpdate:modelValue":c[7]||=e=>Y.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-b734755d`]]);export{U as default}; \ No newline at end of file +import{A as e,At as t,G as n,I as r,K as i,Mt as a,N as o,Nt as s,a as c,b as l,c as u,et as d,f,g as p,h as m,m as h,nt as g,o as _,p as v,t as y,x as b,y as x}from"./http-WTIyGIuL.js";import{L as S,V as C,l as w}from"./index-mN60lSc2.js";import{t as T}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as E}from"./BaseSwitch-gjOaAbzm.js";import{t as ee}from"./BaseEmptyState-D5jlq4nS.js";import{t as D}from"./AdminImagePicker-DcFp1rIR.js";import{t as O}from"./AdminSelect-Bw3z0TPQ.js";var k={class:`banners-page`},A={key:2,class:`admin-card`},j={class:`admin-table`},M={key:0,class:`banner-sub`},N={class:`actions`},P=[`onClick`],F=[`onClick`],I={class:`field`},L={class:`field`},R={class:`field`},z={class:`field`},B={class:`field`},V={class:`field`},H=[`disabled`],U=_(b({__name:`BannersView`,setup(_){let b=[{value:`home_hero`,label:`خانه — بنر اصلی`},{value:`products_hero`,label:`لیست محصولات`},{value:`categories_hero`,label:`دسته‌بندی‌ها`}],U=g([]),W=g(!0),G=g(!1),K=g(!1),q=g(null),J=c(),Y=d({slot:`home_hero`,title:``,subtitle:``,ctaLabel:``,ctaLink:`/categories`,imageUrl:null,displayOrder:0,isActive:!0}),X=f(()=>q.value?`ویرایش بنر`:`افزودن بنر`);function Z(e){return b.find(t=>t.value===e)?.label??e}async function Q(){W.value=!0;try{U.value=await w.list()}catch(e){J.error(e instanceof y?e.message:`بارگذاری بنرها ناموفق بود.`)}finally{W.value=!1}}function $(){q.value=null,Object.assign(Y,{slot:`home_hero`,title:``,subtitle:``,ctaLabel:`مشاهده کالکشن`,ctaLink:`/categories`,imageUrl:null,displayOrder:U.value.length,isActive:!0}),K.value=!0}function te(e){q.value=e.id,Object.assign(Y,{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}),K.value=!0}async function ne(){if(Y.title.trim()){G.value=!0;try{let e={slot:Y.slot,title:Y.title.trim(),subtitle:Y.subtitle.trim()||null,ctaLabel:Y.ctaLabel.trim()||null,ctaLink:Y.ctaLink.trim()||null,imageUrl:Y.imageUrl,displayOrder:Y.displayOrder,isActive:Y.isActive};q.value?await w.update(q.value,e):await w.create(e),K.value=!1,J.success(`بنر ذخیره شد.`),await Q()}catch(e){J.error(e instanceof y?e.message:`ذخیره بنر ناموفق بود.`)}finally{G.value=!1}}}async function re(e){if(window.confirm(`بنر «${e.title}» حذف شود؟`))try{await w.remove(e.id),J.success(`بنر حذف شد.`),await Q()}catch(e){J.error(e instanceof y?e.message:`حذف بنر ناموفق بود.`)}}return e(()=>{Q()}),(e,c)=>(o(),p(`div`,k,[v(`div`,{class:`admin-page-header`},[c[10]||=v(`div`,null,[v(`h1`,{class:`admin-page-header__title`},`بنرها`),v(`p`,{class:`admin-page-header__sub`},`بنر بخش‌های مختلف اپ کاربر را از اینجا مدیریت کنید.`)],-1),v(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:$},`افزودن بنر`)]),W.value?(o(),h(T,{key:0,variant:`table`})):U.value.length?(o(),p(`div`,A,[v(`table`,j,[c[11]||=v(`thead`,null,[v(`tr`,null,[v(`th`,null,`تصویر`),v(`th`,null,`عنوان`),v(`th`,null,`بخش`),v(`th`,null,`دکمه`),v(`th`,null,`فعال`),v(`th`,{class:`actions`},`عملیات`)])],-1),v(`tbody`,null,[(o(!0),p(u,null,r(U.value,e=>(o(),p(`tr`,{key:e.id},[v(`td`,null,[v(`span`,{class:t([`banner-thumb`,{"banner-thumb--empty":!e.imageUrl}]),style:a(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6)]),v(`td`,null,[v(`strong`,null,s(e.title),1),e.subtitle?(o(),p(`p`,M,s(e.subtitle),1)):m(``,!0)]),v(`td`,null,s(Z(e.slot)),1),v(`td`,null,s(e.ctaLabel||`—`),1),v(`td`,null,s(e.isActive?`بله`:`خیر`),1),v(`td`,N,[v(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>te(e)},` ویرایش `,8,P),v(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>re(e)},` حذف `,8,F)])]))),128))])])])):(o(),h(ee,{key:1,title:`بنری ثبت نشده`,description:`اولین بنر خانه را اضافه کنید.`},{default:n(()=>[v(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:$},` افزودن بنر `)]),_:1})),l(S,{open:K.value,title:X.value,onClose:c[9]||=e=>K.value=!1},{footer:n(()=>[v(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:c[8]||=e=>K.value=!1},`انصراف`),v(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Y.title.trim()||G.value,onClick:ne},s(G.value?`در حال ذخیره...`:`ذخیره`),9,H)]),default:n(()=>[v(`label`,I,[c[12]||=x(` بخش نمایش `,-1),l(O,{modelValue:Y.slot,"onUpdate:modelValue":c[0]||=e=>Y.slot=e,options:b},null,8,[`modelValue`])]),v(`label`,L,[c[13]||=x(`عنوان`,-1),i(v(`input`,{"onUpdate:modelValue":c[1]||=e=>Y.title=e,class:`admin-input`},null,512),[[C,Y.title]])]),v(`label`,R,[c[14]||=x(`زیرعنوان`,-1),i(v(`input`,{"onUpdate:modelValue":c[2]||=e=>Y.subtitle=e,class:`admin-input`},null,512),[[C,Y.subtitle]])]),v(`label`,z,[c[15]||=x(`متن دکمه`,-1),i(v(`input`,{"onUpdate:modelValue":c[3]||=e=>Y.ctaLabel=e,class:`admin-input`},null,512),[[C,Y.ctaLabel]])]),v(`label`,B,[c[16]||=x(` لینک دکمه `,-1),i(v(`input`,{"onUpdate:modelValue":c[4]||=e=>Y.ctaLink=e,class:`admin-input`,dir:`ltr`,placeholder:`/categories`},null,512),[[C,Y.ctaLink]])]),v(`label`,V,[c[17]||=x(`ترتیب نمایش`,-1),i(v(`input`,{"onUpdate:modelValue":c[5]||=e=>Y.displayOrder=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[C,Y.displayOrder,void 0,{number:!0}]])]),l(D,{modelValue:Y.imageUrl,"onUpdate:modelValue":c[6]||=e=>Y.imageUrl=e,label:`تصویر بنر`},null,8,[`modelValue`]),l(E,{modelValue:Y.isActive,"onUpdate:modelValue":c[7]||=e=>Y.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-b734755d`]]);export{U as default}; \ No newline at end of file diff --git a/dist/assets/BaseEmptyState-P-TMfHGI.js b/dist/assets/BaseEmptyState-D5jlq4nS.js similarity index 92% rename from dist/assets/BaseEmptyState-P-TMfHGI.js rename to dist/assets/BaseEmptyState-D5jlq4nS.js index 8363cce..bb041b9 100644 --- a/dist/assets/BaseEmptyState-P-TMfHGI.js +++ b/dist/assets/BaseEmptyState-D5jlq4nS.js @@ -1 +1 @@ -import{At as e,L as t,N as n,Nt as r,b as i,g as a,h as o,o as s,p as c,x as l}from"./http-WTIyGIuL.js";import{N as u}from"./index-senPc5aL.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=s(l({__name:`BaseEmptyState`,props:{icon:{default:`file`},title:{},description:{},compact:{type:Boolean}},emits:[`action`,`secondary`],setup(s){return(l,h)=>(n(),a(`div`,{class:e([`base-empty`,{"base-empty--compact":s.compact}])},[c(`div`,d,[i(u,{name:s.icon,size:s.compact?28:36},null,8,[`name`,`size`])]),c(`h3`,f,r(s.title),1),s.description?(n(),a(`p`,p,r(s.description),1)):o(``,!0),l.$slots.default||l.$slots.secondary?(n(),a(`div`,m,[t(l.$slots,`default`,{},void 0,!0),t(l.$slots,`secondary`,{},void 0,!0)])):o(``,!0)],2))}}),[[`__scopeId`,`data-v-47ea81e4`]]);export{h as t}; \ No newline at end of file +import{At as e,L as t,N as n,Nt as r,b as i,g as a,h as o,o as s,p as c,x as l}from"./http-WTIyGIuL.js";import{N as u}from"./index-mN60lSc2.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=s(l({__name:`BaseEmptyState`,props:{icon:{default:`file`},title:{},description:{},compact:{type:Boolean}},emits:[`action`,`secondary`],setup(s){return(l,h)=>(n(),a(`div`,{class:e([`base-empty`,{"base-empty--compact":s.compact}])},[c(`div`,d,[i(u,{name:s.icon,size:s.compact?28:36},null,8,[`name`,`size`])]),c(`h3`,f,r(s.title),1),s.description?(n(),a(`p`,p,r(s.description),1)):o(``,!0),l.$slots.default||l.$slots.secondary?(n(),a(`div`,m,[t(l.$slots,`default`,{},void 0,!0),t(l.$slots,`secondary`,{},void 0,!0)])):o(``,!0)],2))}}),[[`__scopeId`,`data-v-47ea81e4`]]);export{h as t}; \ No newline at end of file diff --git a/dist/assets/BrandsView-BgcQt9a9.js b/dist/assets/BrandsView-BgRB_dnQ.js similarity index 96% rename from dist/assets/BrandsView-BgcQt9a9.js rename to dist/assets/BrandsView-BgRB_dnQ.js index b7eee5a..5686b34 100644 --- a/dist/assets/BrandsView-BgcQt9a9.js +++ b/dist/assets/BrandsView-BgRB_dnQ.js @@ -1 +1 @@ -import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as l,f as u,g as d,m as f,nt as p,o as m,p as h,t as g,x as _,y as v}from"./http-WTIyGIuL.js";import{L as y,V as b,u as x}from"./index-senPc5aL.js";import{t as S}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as C}from"./BaseSwitch-gjOaAbzm.js";import{t as w}from"./BaseEmptyState-P-TMfHGI.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=m(_({__name:`BrandsView`,setup(m){let _=p([]),P=p(!0),F=p(!1),I=p(null),L=o(),R=l({name:``,slug:``,description:``,displayOrder:0,isActive:!0}),z=u(()=>I.value?`ویرایش برند`:`افزودن برند`);async function B(){P.value=!0;try{_.value=await x.list()}catch(e){L.error(e instanceof g?e.message:`بارگذاری برندها ناموفق بود`)}finally{P.value=!1}}function V(){I.value=null,Object.assign(R,{name:``,slug:``,description:``,displayOrder:_.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 g?e.message:`ذخیره ناموفق بود`)}}return e(()=>{B()}),(e,o)=>(i(),d(`div`,T,[h(`header`,{class:`admin-page__head`},[o[6]||=h(`div`,null,[h(`h1`,null,`برندها`)],-1),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`افزودن برند`)]),P.value?(i(),f(S,{key:0,variant:`table`})):_.value.length?(i(),d(`table`,E,[o[7]||=h(`thead`,null,[h(`tr`,null,[h(`th`,null,`نام`),h(`th`,null,`شناسه لاتین`),h(`th`,null,`مشتریان`),h(`th`,null,`فعال`),h(`th`)])],-1),h(`tbody`,null,[(i(!0),d(c,null,n(_.value,e=>(i(),d(`tr`,{key:e.id},[h(`td`,null,a(e.name),1),h(`td`,D,a(e.slug||`—`),1),h(`td`,null,a(e.customersCount??0),1),h(`td`,null,a(e.isActive?`بله`:`خیر`),1),h(`td`,null,[h(`button`,{type:`button`,class:`link`,onClick:t=>H(e)},`ویرایش`,8,O)])]))),128))])])):(i(),f(w,{key:1,title:`برندی ثبت نشده`})),s(y,{open:F.value,title:z.value,onClose:o[5]||=e=>F.value=!1},{footer:t(()=>[h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!R.name.trim(),onClick:U},`ذخیره`,8,N)]),default:t(()=>[h(`label`,k,[o[8]||=v(`نام`,-1),r(h(`input`,{"onUpdate:modelValue":o[0]||=e=>R.name=e,class:`admin-input`},null,512),[[b,R.name]])]),h(`label`,A,[o[9]||=v(`شناسه لاتین`,-1),r(h(`input`,{"onUpdate:modelValue":o[1]||=e=>R.slug=e,class:`admin-input`,dir:`ltr`,placeholder:`مثلاً nademi-silk`},null,512),[[b,R.slug]])]),h(`label`,j,[o[10]||=v(`توضیح`,-1),r(h(`textarea`,{"onUpdate:modelValue":o[2]||=e=>R.description=e,class:`admin-input`,rows:`3`},null,512),[[b,R.description]])]),h(`label`,M,[o[11]||=v(`ترتیب`,-1),r(h(`input`,{"onUpdate:modelValue":o[3]||=e=>R.displayOrder=e,type:`number`,class:`admin-input`},null,512),[[b,R.displayOrder,void 0,{number:!0}]])]),s(C,{modelValue:R.isActive,"onUpdate:modelValue":o[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 +import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as l,f as u,g as d,m as f,nt as p,o as m,p as h,t as g,x as _,y as v}from"./http-WTIyGIuL.js";import{L as y,V as b,u as x}from"./index-mN60lSc2.js";import{t as S}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as C}from"./BaseSwitch-gjOaAbzm.js";import{t as w}from"./BaseEmptyState-D5jlq4nS.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=m(_({__name:`BrandsView`,setup(m){let _=p([]),P=p(!0),F=p(!1),I=p(null),L=o(),R=l({name:``,slug:``,description:``,displayOrder:0,isActive:!0}),z=u(()=>I.value?`ویرایش برند`:`افزودن برند`);async function B(){P.value=!0;try{_.value=await x.list()}catch(e){L.error(e instanceof g?e.message:`بارگذاری برندها ناموفق بود`)}finally{P.value=!1}}function V(){I.value=null,Object.assign(R,{name:``,slug:``,description:``,displayOrder:_.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 g?e.message:`ذخیره ناموفق بود`)}}return e(()=>{B()}),(e,o)=>(i(),d(`div`,T,[h(`header`,{class:`admin-page__head`},[o[6]||=h(`div`,null,[h(`h1`,null,`برندها`)],-1),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`افزودن برند`)]),P.value?(i(),f(S,{key:0,variant:`table`})):_.value.length?(i(),d(`table`,E,[o[7]||=h(`thead`,null,[h(`tr`,null,[h(`th`,null,`نام`),h(`th`,null,`شناسه لاتین`),h(`th`,null,`مشتریان`),h(`th`,null,`فعال`),h(`th`)])],-1),h(`tbody`,null,[(i(!0),d(c,null,n(_.value,e=>(i(),d(`tr`,{key:e.id},[h(`td`,null,a(e.name),1),h(`td`,D,a(e.slug||`—`),1),h(`td`,null,a(e.customersCount??0),1),h(`td`,null,a(e.isActive?`بله`:`خیر`),1),h(`td`,null,[h(`button`,{type:`button`,class:`link`,onClick:t=>H(e)},`ویرایش`,8,O)])]))),128))])])):(i(),f(w,{key:1,title:`برندی ثبت نشده`})),s(y,{open:F.value,title:z.value,onClose:o[5]||=e=>F.value=!1},{footer:t(()=>[h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!R.name.trim(),onClick:U},`ذخیره`,8,N)]),default:t(()=>[h(`label`,k,[o[8]||=v(`نام`,-1),r(h(`input`,{"onUpdate:modelValue":o[0]||=e=>R.name=e,class:`admin-input`},null,512),[[b,R.name]])]),h(`label`,A,[o[9]||=v(`شناسه لاتین`,-1),r(h(`input`,{"onUpdate:modelValue":o[1]||=e=>R.slug=e,class:`admin-input`,dir:`ltr`,placeholder:`مثلاً nademi-silk`},null,512),[[b,R.slug]])]),h(`label`,j,[o[10]||=v(`توضیح`,-1),r(h(`textarea`,{"onUpdate:modelValue":o[2]||=e=>R.description=e,class:`admin-input`,rows:`3`},null,512),[[b,R.description]])]),h(`label`,M,[o[11]||=v(`ترتیب`,-1),r(h(`input`,{"onUpdate:modelValue":o[3]||=e=>R.displayOrder=e,type:`number`,class:`admin-input`},null,512),[[b,R.displayOrder,void 0,{number:!0}]])]),s(C,{modelValue:R.isActive,"onUpdate:modelValue":o[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-BKRIGKw1.js b/dist/assets/CashPaymentsView-uwiw3eFd.js similarity index 97% rename from dist/assets/CashPaymentsView-BKRIGKw1.js rename to dist/assets/CashPaymentsView-uwiw3eFd.js index 31782f5..c48c78e 100644 --- a/dist/assets/CashPaymentsView-BKRIGKw1.js +++ b/dist/assets/CashPaymentsView-uwiw3eFd.js @@ -1 +1 @@ -import{A as e,At as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,f as l,g as u,h as d,m as ee,nt as f,o as te,p,t as m,ut as h,x as g}from"./http-WTIyGIuL.js";import{N as ne,P as re,V as ie,d as _,i as v,n as y,x as ae}from"./index-senPc5aL.js";import{t as b}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as oe}from"./AdminSelect-Bi0VQHva.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`},R={class:`admin-card-item__meta`},ce={key:0},z={dir:`ltr`},B={key:0,class:`admin-card-item__actions`},V=[`disabled`,`onClick`],H=[`disabled`,`onClick`],U=[`disabled`,`onClick`],W=te(g({__name:`CashPaymentsView`,setup(te){let g=re(),W=f([]),G=f(g.query.order??``),K=f(`all`),q=f(!0),J=o(),Y=f(null),le=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار تأیید`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`},{value:`expired`,label:`منقضی‌شده`}],X=l(()=>{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}}e(()=>{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 ae.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(e,o)=>(i(),u(`div`,se,[o[3]||=p(`div`,{class:`admin-page-header`},[p(`div`,null,[p(`h1`,{class:`admin-page-header__title`},`پرداخت‌های نقدی`)])],-1),p(`div`,C,[p(`div`,w,[s(ne,{name:`search`,size:18}),r(p(`input`,{"onUpdate:modelValue":o[0]||=e=>G.value=e,type:`search`,class:`cash-payments-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، پیگیری...`},null,512),[[ie,G.value]])]),s(oe,{modelValue:K.value,"onUpdate:modelValue":o[1]||=e=>K.value=e,class:`cash-payments-page__status-select`,"aria-label":`فیلتر وضعیت پرداخت`,options:le},null,8,[`modelValue`])]),q.value?(i(),ee(b,{key:0,variant:`table`})):(i(),u(c,{key:1},[p(`div`,T,[p(`div`,E,[p(`table`,D,[o[2]||=p(`thead`,null,[p(`tr`,null,[p(`th`,null,`شماره سفارش`),p(`th`,null,`مشتری`),p(`th`,null,`مبلغ فاکتور`),p(`th`,null,`مبلغ واریزی`),p(`th`,null,`تاریخ واریز`),p(`th`,null,`شماره پیگیری`),p(`th`,null,`پایان اعتبار`),p(`th`,null,`وضعیت`),p(`th`,null,`عملیات`)])],-1),p(`tbody`,null,[(i(!0),u(c,null,n(X.value,e=>(i(),u(`tr`,{key:e.id},[p(`td`,null,a(e.orderNumber),1),p(`td`,null,a(e.customerName),1),p(`td`,null,a(h(y)(e.amount)),1),p(`td`,null,a(e.paidAmount?h(y)(e.paidAmount):`—`),1),p(`td`,null,a(e.transferDate?h(v)(e.transferDate):`—`),1),p(`td`,O,a(e.trackingCode),1),p(`td`,null,a(h(v)(e.expiresAt)),1),p(`td`,null,[p(`span`,{class:t([`admin-badge`,h(S)[e.status]])},a(h(x)[e.status]),3)]),p(`td`,null,[e.status===`pending_review`?(i(),u(`div`,k,[p(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>Z(e)},` تأیید `,8,A),p(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>$(e)},` رد `,8,j)])):e.status===`approved`?(i(),u(`div`,M,[p(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>Q(e)},` تأیید نهایی سفارش `,8,N)])):(i(),u(`span`,P,`—`))])]))),128))])])])]),p(`div`,F,[(i(!0),u(c,null,n(X.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[p(`div`,I,[p(`p`,L,a(e.orderNumber),1),p(`span`,{class:t([`admin-badge`,h(S)[e.status]])},a(h(x)[e.status]),3)]),p(`div`,R,[p(`span`,null,a(e.customerName),1),p(`span`,null,a(h(y)(e.amount)),1),e.paidAmount==null?d(``,!0):(i(),u(`span`,ce,`پرداختی: `+a(h(y)(e.paidAmount)),1)),p(`span`,z,a(e.trackingCode),1)]),e.status===`pending_review`||e.status===`approved`?(i(),u(`div`,B,[e.status===`pending_review`?(i(),u(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>Z(e)},` تأیید `,8,V)):d(``,!0),e.status===`pending_review`?(i(),u(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>$(e)},` رد `,8,H)):d(``,!0),e.status===`approved`?(i(),u(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>Q(e)},` تأیید نهایی سفارش `,8,U)):d(``,!0)])):d(``,!0)]))),128))])],64))]))}}),[[`__scopeId`,`data-v-9afb2a83`]]);export{W as default}; \ No newline at end of file +import{A as e,At as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,f as l,g as u,h as d,m as ee,nt as f,o as te,p,t as m,ut as h,x as g}from"./http-WTIyGIuL.js";import{N as ne,P as re,V as ie,d as _,i as v,n as y,x as ae}from"./index-mN60lSc2.js";import{t as b}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as oe}from"./AdminSelect-Bw3z0TPQ.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`},R={class:`admin-card-item__meta`},ce={key:0},z={dir:`ltr`},B={key:0,class:`admin-card-item__actions`},V=[`disabled`,`onClick`],H=[`disabled`,`onClick`],U=[`disabled`,`onClick`],W=te(g({__name:`CashPaymentsView`,setup(te){let g=re(),W=f([]),G=f(g.query.order??``),K=f(`all`),q=f(!0),J=o(),Y=f(null),le=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار تأیید`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`},{value:`expired`,label:`منقضی‌شده`}],X=l(()=>{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}}e(()=>{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 ae.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(e,o)=>(i(),u(`div`,se,[o[3]||=p(`div`,{class:`admin-page-header`},[p(`div`,null,[p(`h1`,{class:`admin-page-header__title`},`پرداخت‌های نقدی`)])],-1),p(`div`,C,[p(`div`,w,[s(ne,{name:`search`,size:18}),r(p(`input`,{"onUpdate:modelValue":o[0]||=e=>G.value=e,type:`search`,class:`cash-payments-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، پیگیری...`},null,512),[[ie,G.value]])]),s(oe,{modelValue:K.value,"onUpdate:modelValue":o[1]||=e=>K.value=e,class:`cash-payments-page__status-select`,"aria-label":`فیلتر وضعیت پرداخت`,options:le},null,8,[`modelValue`])]),q.value?(i(),ee(b,{key:0,variant:`table`})):(i(),u(c,{key:1},[p(`div`,T,[p(`div`,E,[p(`table`,D,[o[2]||=p(`thead`,null,[p(`tr`,null,[p(`th`,null,`شماره سفارش`),p(`th`,null,`مشتری`),p(`th`,null,`مبلغ فاکتور`),p(`th`,null,`مبلغ واریزی`),p(`th`,null,`تاریخ واریز`),p(`th`,null,`شماره پیگیری`),p(`th`,null,`پایان اعتبار`),p(`th`,null,`وضعیت`),p(`th`,null,`عملیات`)])],-1),p(`tbody`,null,[(i(!0),u(c,null,n(X.value,e=>(i(),u(`tr`,{key:e.id},[p(`td`,null,a(e.orderNumber),1),p(`td`,null,a(e.customerName),1),p(`td`,null,a(h(y)(e.amount)),1),p(`td`,null,a(e.paidAmount?h(y)(e.paidAmount):`—`),1),p(`td`,null,a(e.transferDate?h(v)(e.transferDate):`—`),1),p(`td`,O,a(e.trackingCode),1),p(`td`,null,a(h(v)(e.expiresAt)),1),p(`td`,null,[p(`span`,{class:t([`admin-badge`,h(S)[e.status]])},a(h(x)[e.status]),3)]),p(`td`,null,[e.status===`pending_review`?(i(),u(`div`,k,[p(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>Z(e)},` تأیید `,8,A),p(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>$(e)},` رد `,8,j)])):e.status===`approved`?(i(),u(`div`,M,[p(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>Q(e)},` تأیید نهایی سفارش `,8,N)])):(i(),u(`span`,P,`—`))])]))),128))])])])]),p(`div`,F,[(i(!0),u(c,null,n(X.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[p(`div`,I,[p(`p`,L,a(e.orderNumber),1),p(`span`,{class:t([`admin-badge`,h(S)[e.status]])},a(h(x)[e.status]),3)]),p(`div`,R,[p(`span`,null,a(e.customerName),1),p(`span`,null,a(h(y)(e.amount)),1),e.paidAmount==null?d(``,!0):(i(),u(`span`,ce,`پرداختی: `+a(h(y)(e.paidAmount)),1)),p(`span`,z,a(e.trackingCode),1)]),e.status===`pending_review`||e.status===`approved`?(i(),u(`div`,B,[e.status===`pending_review`?(i(),u(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>Z(e)},` تأیید `,8,V)):d(``,!0),e.status===`pending_review`?(i(),u(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>$(e)},` رد `,8,H)):d(``,!0),e.status===`approved`?(i(),u(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>Q(e)},` تأیید نهایی سفارش `,8,U)):d(``,!0)])):d(``,!0)]))),128))])],64))]))}}),[[`__scopeId`,`data-v-9afb2a83`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/CatalogRequestsView-DmuxccLi.js b/dist/assets/CatalogRequestsView-Bhd1ii66.js similarity index 92% rename from dist/assets/CatalogRequestsView-DmuxccLi.js rename to dist/assets/CatalogRequestsView-Bhd1ii66.js index 18c8375..2df772d 100644 --- a/dist/assets/CatalogRequestsView-DmuxccLi.js +++ b/dist/assets/CatalogRequestsView-Bhd1ii66.js @@ -1 +1 @@ -import{A as e,I as t,N as n,Nt as r,a as i,b as a,c as o,g as s,h as c,m as l,nt as u,o as d,p as f,t as p,ut as m,x as h,y as g}from"./http-WTIyGIuL.js";import{f as _,i as v}from"./index-senPc5aL.js";import{t as y}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as b}from"./BaseEmptyState-P-TMfHGI.js";import{t as x}from"./AdminSelect-Bi0VQHva.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=d(h({__name:`CatalogRequestsView`,setup(d){let h=[{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(h.filter(e=>e.value).map(e=>[e.value,e.label])),P=Object.fromEntries(M.map(e=>[e.value,e.label])),F=u([]),I=u(``),L=u(!0),R=u(null),z=i();async function B(){L.value=!0;try{F.value=await _.list(I.value||void 0)}catch(e){z.error(e instanceof p?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 p?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 p?e.message:`به‌روزرسانی محل ناموفق بود`)}finally{R.value=null}}}function U(e){return P[e]??e}return e(()=>{B()}),(e,i)=>(n(),s(`div`,S,[f(`header`,C,[i[1]||=f(`div`,null,[f(`h1`,null,`درخواست کالیته فیزیکی`),f(`p`,null,`بررسی، گردش وضعیت و محل نگهداری اقلام`)],-1),a(x,{modelValue:I.value,"onUpdate:modelValue":[i[0]||=e=>I.value=e,B],options:h},null,8,[`modelValue`])]),L.value?(n(),l(y,{key:0,variant:`cards`})):F.value.length?(n(!0),s(o,{key:2},t(F.value,e=>(n(),s(`div`,{key:e.id,class:`request-card`},[f(`div`,w,[f(`div`,null,[f(`strong`,null,r(e.customerName),1),f(`span`,T,r(e.customerPhone),1),f(`span`,E,r(m(N)[e.status]??e.status),1)]),a(x,{"model-value":e.status,options:h.filter(e=>e.value),"onUpdate:modelValue":t=>V(e.id,String(t))},null,8,[`model-value`,`options`,`onUpdate:modelValue`])]),e.note?(n(),s(`p`,D,r(e.note),1)):c(``,!0),f(`table`,O,[i[2]||=f(`thead`,null,[f(`tr`,null,[f(`th`,null,`محصول`),f(`th`,null,`کد`),f(`th`,null,`تعداد`),f(`th`,null,`محل`)])],-1),f(`tbody`,null,[(n(!0),s(o,null,t(e.items,e=>(n(),s(`tr`,{key:e.id},[f(`td`,null,r(e.productName),1),f(`td`,k,r(e.productCode),1),f(`td`,null,r(e.quantity),1),f(`td`,null,[a(x,{"model-value":e.holderType,options:M,"onUpdate:modelValue":t=>H(e.id,String(t))},null,8,[`model-value`,`onUpdate:modelValue`]),e.movements?.length?(n(),s(`ul`,A,[(n(!0),s(o,null,t(e.movements,e=>(n(),s(`li`,{key:e.id},[g(r(U(e.fromHolder))+` → `+r(U(e.toHolder))+` `,1),f(`span`,j,r(m(v)(e.movedAt)),1)]))),128))])):c(``,!0)])]))),128))])])]))),128)):(n(),l(b,{key:1,title:`درخواستی نیست`}))]))}}),[[`__scopeId`,`data-v-747d8f88`]]);export{M as default}; \ No newline at end of file +import{A as e,I as t,N as n,Nt as r,a as i,b as a,c as o,g as s,h as c,m as l,nt as u,o as d,p as f,t as p,ut as m,x as h,y as g}from"./http-WTIyGIuL.js";import{f as _,i as v}from"./index-mN60lSc2.js";import{t as y}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as b}from"./BaseEmptyState-D5jlq4nS.js";import{t as x}from"./AdminSelect-Bw3z0TPQ.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=d(h({__name:`CatalogRequestsView`,setup(d){let h=[{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(h.filter(e=>e.value).map(e=>[e.value,e.label])),P=Object.fromEntries(M.map(e=>[e.value,e.label])),F=u([]),I=u(``),L=u(!0),R=u(null),z=i();async function B(){L.value=!0;try{F.value=await _.list(I.value||void 0)}catch(e){z.error(e instanceof p?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 p?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 p?e.message:`به‌روزرسانی محل ناموفق بود`)}finally{R.value=null}}}function U(e){return P[e]??e}return e(()=>{B()}),(e,i)=>(n(),s(`div`,S,[f(`header`,C,[i[1]||=f(`div`,null,[f(`h1`,null,`درخواست کالیته فیزیکی`),f(`p`,null,`بررسی، گردش وضعیت و محل نگهداری اقلام`)],-1),a(x,{modelValue:I.value,"onUpdate:modelValue":[i[0]||=e=>I.value=e,B],options:h},null,8,[`modelValue`])]),L.value?(n(),l(y,{key:0,variant:`cards`})):F.value.length?(n(!0),s(o,{key:2},t(F.value,e=>(n(),s(`div`,{key:e.id,class:`request-card`},[f(`div`,w,[f(`div`,null,[f(`strong`,null,r(e.customerName),1),f(`span`,T,r(e.customerPhone),1),f(`span`,E,r(m(N)[e.status]??e.status),1)]),a(x,{"model-value":e.status,options:h.filter(e=>e.value),"onUpdate:modelValue":t=>V(e.id,String(t))},null,8,[`model-value`,`options`,`onUpdate:modelValue`])]),e.note?(n(),s(`p`,D,r(e.note),1)):c(``,!0),f(`table`,O,[i[2]||=f(`thead`,null,[f(`tr`,null,[f(`th`,null,`محصول`),f(`th`,null,`کد`),f(`th`,null,`تعداد`),f(`th`,null,`محل`)])],-1),f(`tbody`,null,[(n(!0),s(o,null,t(e.items,e=>(n(),s(`tr`,{key:e.id},[f(`td`,null,r(e.productName),1),f(`td`,k,r(e.productCode),1),f(`td`,null,r(e.quantity),1),f(`td`,null,[a(x,{"model-value":e.holderType,options:M,"onUpdate:modelValue":t=>H(e.id,String(t))},null,8,[`model-value`,`onUpdate:modelValue`]),e.movements?.length?(n(),s(`ul`,A,[(n(!0),s(o,null,t(e.movements,e=>(n(),s(`li`,{key:e.id},[g(r(U(e.fromHolder))+` → `+r(U(e.toHolder))+` `,1),f(`span`,j,r(m(v)(e.movedAt)),1)]))),128))])):c(``,!0)])]))),128))])])]))),128)):(n(),l(b,{key:1,title:`درخواستی نیست`}))]))}}),[[`__scopeId`,`data-v-747d8f88`]]);export{M as default}; \ No newline at end of file diff --git a/dist/assets/CatalogsView-JnHYSqVw.js b/dist/assets/CatalogsView-CUtcg7TE.js similarity index 97% rename from dist/assets/CatalogsView-JnHYSqVw.js rename to dist/assets/CatalogsView-CUtcg7TE.js index a3dcb98..db017cf 100644 --- a/dist/assets/CatalogsView-JnHYSqVw.js +++ b/dist/assets/CatalogsView-CUtcg7TE.js @@ -1 +1 @@ -import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as ee,f as l,g as u,h as d,m as f,nt as p,o as te,p as m,t as h,x as g,y as _}from"./http-WTIyGIuL.js";import{L as ne,N as re,U as ie,V as v,h as ae,p as y}from"./index-senPc5aL.js";import{t as oe}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as se}from"./BaseSwitch-gjOaAbzm.js";import{t as ce}from"./BaseEmptyState-P-TMfHGI.js";import{t as b}from"./AdminSelect-Bi0VQHva.js";import{t as x}from"./ActiveSwitchCell-CU-04sUE.js";var le={class:`catalogs-page`},ue={class:`catalogs-page__filters admin-card`},de={class:`catalogs-page__search`},fe={key:2,class:`catalogs-page__table admin-card desktop-only`},pe={class:`admin-table-wrap`},me={class:`admin-table`},he={class:`numeric`},ge={class:`numeric`},_e={class:`status`},ve={class:`actions`},ye=[`onClick`],be={key:3,class:`compact-only admin-card-list`},xe={class:`admin-card-item__header`},S={class:`admin-card-item__title`},C={class:`admin-card-item__meta`},w={class:`admin-card-item__actions`},T=[`onClick`],E={key:0,class:`admin-form__error`,role:`alert`},D={class:`admin-form__field`},O={class:`admin-form__row`},k={class:`admin-form__field`},A={class:`admin-form__field`},j={class:`admin-form__row`},M={class:`admin-form__field`},Se={class:`admin-form__field`},Ce=[`disabled`],N=te(g({__name:`CatalogsView`,setup(te){let g=p([]),N=p([]),P=p(``),F=p(`all`),I=p(!0),L=p(null),R=p(null),z=p(``),B=p(!1),V=o(),we=l(()=>[{value:`all`,label:`همه شرکت‌ها`},...N.value.map(e=>({value:e.id,label:e.name}))]),Te=l(()=>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}),U=ee(H()),Ee=l(()=>L.value!==null),W=l(()=>L.value===`edit`?`ویرایش کالیته`:`افزودن کالیته`),G=l(()=>U.code.trim()&&U.name.trim()&&U.companyId),K=l(()=>P.value.trim().length>0||F.value!==`all`),q=l(()=>{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 De(){I.value=!0;try{let[e,t]=await Promise.all([y.list(),ae.list()]);g.value=e,N.value=t}catch(e){V.error(e instanceof h?e.message:`بارگذاری کالیته‌ها انجام نشد.`)}finally{I.value=!1}}e(()=>{De()});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,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 y.update(R.value,{code:U.code.trim(),name:U.name.trim(),displayOrder:Number(U.displayOrder)||1,isActive:U.isActive}),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 y.create({companyId:U.companyId,code:U.code.trim(),name:U.name.trim(),displayOrder:Number(U.displayOrder)||1,isActive:U.isActive});g.value.push({...e,companyName:e.companyName||J(U.companyId),productCount:e.productCount??0}),V.success(`کالیته جدید ثبت شد.`)}Z()}catch(e){V.error(e instanceof h?e.message:`ذخیره کالیته انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await y.setActive(e,t)}function Oe(){P.value=``,F.value=`all`}return(e,o)=>(i(),u(`div`,le,[m(`div`,{class:`admin-page-header`},[o[7]||=m(`div`,null,[m(`h1`,{class:`admin-page-header__title`},`کالیته‌ها`)],-1),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کالیته `)]),m(`div`,ue,[m(`div`,de,[s(re,{name:`search`,size:18}),r(m(`input`,{"onUpdate:modelValue":o[0]||=e=>P.value=e,type:`search`,class:`catalogs-page__search-input`,placeholder:`جستجو بر اساس کد یا نام...`},null,512),[[v,P.value]])]),s(b,{modelValue:F.value,"onUpdate:modelValue":o[1]||=e=>F.value=e,class:`catalogs-page__company-filter`,"aria-label":`فیلتر شرکت`,options:we.value},null,8,[`modelValue`,`options`])]),I.value?(i(),f(oe,{key:0,variant:`table`})):q.value.length?(i(),u(`div`,fe,[m(`div`,pe,[m(`table`,me,[o[8]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`کد`),m(`th`,null,`نام کالیته`),m(`th`,null,`شرکت`),m(`th`,{class:`numeric`},`ترتیب`),m(`th`,{class:`numeric`},`تعداد محصول`),m(`th`,{class:`status`},`وضعیت`),m(`th`,{class:`actions`},`عملیات`)])],-1),m(`tbody`,null,[(i(!0),u(c,null,n(q.value,e=>(i(),u(`tr`,{key:e.id},[m(`td`,null,a(e.code),1),m(`td`,null,a(e.name),1),m(`td`,null,a(e.companyName),1),m(`td`,he,a(e.displayOrder),1),m(`td`,ge,a(e.productCount),1),m(`td`,_e,[s(x,{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`])]),m(`td`,ve,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,ye)])]))),128))])])])])):(i(),f(ce,{key:1,class:`admin-card`,icon:`catalogs`,title:K.value?`نتیجه‌ای یافت نشد`:`کالیته‌ای ثبت نشده`,description:K.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کالیته را ثبت کنید.`},{default:t(()=>[K.value?(i(),u(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Oe},` پاک کردن فیلترها `)):(i(),u(`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?(i(),u(`div`,be,[(i(!0),u(c,null,n(q.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,xe,[m(`p`,S,`کالیته `+a(e.code)+` — `+a(e.name),1),s(x,{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`])]),m(`div`,C,[m(`span`,null,a(e.companyName),1),m(`span`,null,a(e.productCount)+` محصول`,1),m(`span`,null,`ترتیب: `+a(e.displayOrder),1)]),m(`div`,w,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,T)])]))),128))])):d(``,!0),s(ne,{open:Ee.value,title:W.value,size:`lg`,onClose:Z},{footer:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!G.value||B.value,onClick:Q},a(L.value===`edit`?`ذخیره تغییرات`:`ثبت کالیته`),9,Ce)]),default:t(()=>[m(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[z.value?(i(),u(`p`,E,a(z.value),1)):d(``,!0),m(`div`,D,[o[9]||=m(`label`,null,[_(`شرکت `),m(`span`,{class:`admin-form__required`},`*`)],-1),s(b,{modelValue:U.companyId,"onUpdate:modelValue":o[2]||=e=>U.companyId=e,block:``,"aria-label":`انتخاب شرکت`,placeholder:`انتخاب شرکت`,options:Te.value},null,8,[`modelValue`,`options`])]),m(`div`,O,[m(`div`,k,[o[10]||=m(`label`,{for:`catalog-code`},[_(`کد کالیته `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`catalog-code`,"onUpdate:modelValue":o[3]||=e=>U.code=e,type:`text`,class:`admin-input`,placeholder:`377`},null,512),[[v,U.code]])]),m(`div`,A,[o[11]||=m(`label`,{for:`catalog-name`},[_(`نام کالیته `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`catalog-name`,"onUpdate:modelValue":o[4]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[v,U.name]])])]),m(`div`,j,[m(`div`,M,[o[12]||=m(`label`,{for:`catalog-order`},`ترتیب نمایش`,-1),r(m(`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}]])]),m(`div`,Se,[s(se,{modelValue:U.isActive,"onUpdate:modelValue":o[6]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-dcbaeba4`]]);export{N as default}; \ No newline at end of file +import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as ee,f as l,g as u,h as d,m as f,nt as p,o as te,p as m,t as h,x as g,y as _}from"./http-WTIyGIuL.js";import{L as ne,N as re,U as ie,V as v,h as ae,p as y}from"./index-mN60lSc2.js";import{t as oe}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as se}from"./BaseSwitch-gjOaAbzm.js";import{t as ce}from"./BaseEmptyState-D5jlq4nS.js";import{t as b}from"./AdminSelect-Bw3z0TPQ.js";import{t as x}from"./ActiveSwitchCell-BaPmkdOq.js";var le={class:`catalogs-page`},ue={class:`catalogs-page__filters admin-card`},de={class:`catalogs-page__search`},fe={key:2,class:`catalogs-page__table admin-card desktop-only`},pe={class:`admin-table-wrap`},me={class:`admin-table`},he={class:`numeric`},ge={class:`numeric`},_e={class:`status`},ve={class:`actions`},ye=[`onClick`],be={key:3,class:`compact-only admin-card-list`},xe={class:`admin-card-item__header`},S={class:`admin-card-item__title`},C={class:`admin-card-item__meta`},w={class:`admin-card-item__actions`},T=[`onClick`],E={key:0,class:`admin-form__error`,role:`alert`},D={class:`admin-form__field`},O={class:`admin-form__row`},k={class:`admin-form__field`},A={class:`admin-form__field`},j={class:`admin-form__row`},M={class:`admin-form__field`},Se={class:`admin-form__field`},Ce=[`disabled`],N=te(g({__name:`CatalogsView`,setup(te){let g=p([]),N=p([]),P=p(``),F=p(`all`),I=p(!0),L=p(null),R=p(null),z=p(``),B=p(!1),V=o(),we=l(()=>[{value:`all`,label:`همه شرکت‌ها`},...N.value.map(e=>({value:e.id,label:e.name}))]),Te=l(()=>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}),U=ee(H()),Ee=l(()=>L.value!==null),W=l(()=>L.value===`edit`?`ویرایش کالیته`:`افزودن کالیته`),G=l(()=>U.code.trim()&&U.name.trim()&&U.companyId),K=l(()=>P.value.trim().length>0||F.value!==`all`),q=l(()=>{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 De(){I.value=!0;try{let[e,t]=await Promise.all([y.list(),ae.list()]);g.value=e,N.value=t}catch(e){V.error(e instanceof h?e.message:`بارگذاری کالیته‌ها انجام نشد.`)}finally{I.value=!1}}e(()=>{De()});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,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 y.update(R.value,{code:U.code.trim(),name:U.name.trim(),displayOrder:Number(U.displayOrder)||1,isActive:U.isActive}),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 y.create({companyId:U.companyId,code:U.code.trim(),name:U.name.trim(),displayOrder:Number(U.displayOrder)||1,isActive:U.isActive});g.value.push({...e,companyName:e.companyName||J(U.companyId),productCount:e.productCount??0}),V.success(`کالیته جدید ثبت شد.`)}Z()}catch(e){V.error(e instanceof h?e.message:`ذخیره کالیته انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await y.setActive(e,t)}function Oe(){P.value=``,F.value=`all`}return(e,o)=>(i(),u(`div`,le,[m(`div`,{class:`admin-page-header`},[o[7]||=m(`div`,null,[m(`h1`,{class:`admin-page-header__title`},`کالیته‌ها`)],-1),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کالیته `)]),m(`div`,ue,[m(`div`,de,[s(re,{name:`search`,size:18}),r(m(`input`,{"onUpdate:modelValue":o[0]||=e=>P.value=e,type:`search`,class:`catalogs-page__search-input`,placeholder:`جستجو بر اساس کد یا نام...`},null,512),[[v,P.value]])]),s(b,{modelValue:F.value,"onUpdate:modelValue":o[1]||=e=>F.value=e,class:`catalogs-page__company-filter`,"aria-label":`فیلتر شرکت`,options:we.value},null,8,[`modelValue`,`options`])]),I.value?(i(),f(oe,{key:0,variant:`table`})):q.value.length?(i(),u(`div`,fe,[m(`div`,pe,[m(`table`,me,[o[8]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`کد`),m(`th`,null,`نام کالیته`),m(`th`,null,`شرکت`),m(`th`,{class:`numeric`},`ترتیب`),m(`th`,{class:`numeric`},`تعداد محصول`),m(`th`,{class:`status`},`وضعیت`),m(`th`,{class:`actions`},`عملیات`)])],-1),m(`tbody`,null,[(i(!0),u(c,null,n(q.value,e=>(i(),u(`tr`,{key:e.id},[m(`td`,null,a(e.code),1),m(`td`,null,a(e.name),1),m(`td`,null,a(e.companyName),1),m(`td`,he,a(e.displayOrder),1),m(`td`,ge,a(e.productCount),1),m(`td`,_e,[s(x,{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`])]),m(`td`,ve,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,ye)])]))),128))])])])])):(i(),f(ce,{key:1,class:`admin-card`,icon:`catalogs`,title:K.value?`نتیجه‌ای یافت نشد`:`کالیته‌ای ثبت نشده`,description:K.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کالیته را ثبت کنید.`},{default:t(()=>[K.value?(i(),u(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Oe},` پاک کردن فیلترها `)):(i(),u(`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?(i(),u(`div`,be,[(i(!0),u(c,null,n(q.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,xe,[m(`p`,S,`کالیته `+a(e.code)+` — `+a(e.name),1),s(x,{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`])]),m(`div`,C,[m(`span`,null,a(e.companyName),1),m(`span`,null,a(e.productCount)+` محصول`,1),m(`span`,null,`ترتیب: `+a(e.displayOrder),1)]),m(`div`,w,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,T)])]))),128))])):d(``,!0),s(ne,{open:Ee.value,title:W.value,size:`lg`,onClose:Z},{footer:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!G.value||B.value,onClick:Q},a(L.value===`edit`?`ذخیره تغییرات`:`ثبت کالیته`),9,Ce)]),default:t(()=>[m(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[z.value?(i(),u(`p`,E,a(z.value),1)):d(``,!0),m(`div`,D,[o[9]||=m(`label`,null,[_(`شرکت `),m(`span`,{class:`admin-form__required`},`*`)],-1),s(b,{modelValue:U.companyId,"onUpdate:modelValue":o[2]||=e=>U.companyId=e,block:``,"aria-label":`انتخاب شرکت`,placeholder:`انتخاب شرکت`,options:Te.value},null,8,[`modelValue`,`options`])]),m(`div`,O,[m(`div`,k,[o[10]||=m(`label`,{for:`catalog-code`},[_(`کد کالیته `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`catalog-code`,"onUpdate:modelValue":o[3]||=e=>U.code=e,type:`text`,class:`admin-input`,placeholder:`377`},null,512),[[v,U.code]])]),m(`div`,A,[o[11]||=m(`label`,{for:`catalog-name`},[_(`نام کالیته `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`catalog-name`,"onUpdate:modelValue":o[4]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[v,U.name]])])]),m(`div`,j,[m(`div`,M,[o[12]||=m(`label`,{for:`catalog-order`},`ترتیب نمایش`,-1),r(m(`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}]])]),m(`div`,Se,[s(se,{modelValue:U.isActive,"onUpdate:modelValue":o[6]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-dcbaeba4`]]);export{N as default}; \ No newline at end of file diff --git a/dist/assets/CategoriesView-DodASqYI.js b/dist/assets/CategoriesView-Bg7zpqeN.js similarity index 97% rename from dist/assets/CategoriesView-DodASqYI.js rename to dist/assets/CategoriesView-Bg7zpqeN.js index a99485c..7a92d92 100644 --- a/dist/assets/CategoriesView-DodASqYI.js +++ b/dist/assets/CategoriesView-Bg7zpqeN.js @@ -1 +1 @@ -import{A as e,I as t,N as n,Nt as r,a as i,b as a,c as o,et as s,g as c,m as l,nt as u,o as d,p as f,t as p,x as m}from"./http-WTIyGIuL.js";import{C as h}from"./index-senPc5aL.js";import{t as g}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as _}from"./AdminImagePicker-DcFp1rIR.js";var v={class:`categories-admin`},y={class:`admin-page-header`},b=[`disabled`],x={key:1,class:`categories-admin__grid`},S={class:`admin-card`},C={class:`categories-admin__list`},w={class:`admin-card`},T={class:`categories-admin__list`},E=d(m({__name:`CategoriesView`,setup(d){let m=[{id:`trousers`,title:`پارچه‌های شلواری`},{id:`suit`,title:`پارچه‌های کت‌شلواری`},{id:`shirt`,title:`پارچه‌های پیراهنی`}],E=[{id:`summer`,title:`تابستانه`},{id:`winter`,title:`زمستانه`},{id:`all_season`,title:`چهارفصل`}],D=s({trousers:null,suit:null,shirt:null,summer:null,winter:null,all_season:null}),O=u(!0),k=u(!1),A=i();async function j(){O.value=!0;try{let e=(await h.get()).categoryImagesJson??{};for(let t of Object.keys(D))D[t]=e[t]??null}catch(e){A.error(e instanceof p?e.message:`بارگذاری تصاویر دسته‌ها ناموفق بود.`)}finally{O.value=!1}}async function M(){k.value=!0;try{let e={};for(let[t,n]of Object.entries(D))n&&(e[t]=n);await h.update({categoryImagesJson:e}),A.success(`تصاویر دسته‌بندی ذخیره شد.`)}catch(e){A.error(e instanceof p?e.message:`ذخیره تصاویر ناموفق بود.`)}finally{k.value=!1}}return e(()=>{j()}),(e,i)=>(n(),c(`div`,v,[f(`div`,y,[i[0]||=f(`div`,null,[f(`h1`,{class:`admin-page-header__title`},`دسته‌بندی‌ها`),f(`p`,{class:`admin-page-header__sub`},`تصویر هر دسته در اپ کاربر نمایش داده می‌شود.`)],-1),f(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:k.value||O.value,onClick:M},r(k.value?`در حال ذخیره...`:`ذخیره تصاویر`),9,b)]),O.value?(n(),l(g,{key:0,variant:`cards`})):(n(),c(`div`,x,[f(`section`,S,[i[1]||=f(`h2`,null,`بر اساس کاربرد`,-1),f(`div`,C,[(n(),c(o,null,t(m,e=>a(_,{key:e.id,label:e.title,"model-value":D[e.id],"onUpdate:modelValue":t=>D[e.id]=t},null,8,[`label`,`model-value`,`onUpdate:modelValue`])),64))])]),f(`section`,w,[i[2]||=f(`h2`,null,`بر اساس فصل`,-1),f(`div`,T,[(n(),c(o,null,t(E,e=>a(_,{key:e.id,label:e.title,"model-value":D[e.id],"onUpdate:modelValue":t=>D[e.id]=t},null,8,[`label`,`model-value`,`onUpdate:modelValue`])),64))])])]))]))}}),[[`__scopeId`,`data-v-551e5d97`]]);export{E as default}; \ No newline at end of file +import{A as e,I as t,N as n,Nt as r,a as i,b as a,c as o,et as s,g as c,m as l,nt as u,o as d,p as f,t as p,x as m}from"./http-WTIyGIuL.js";import{C as h}from"./index-mN60lSc2.js";import{t as g}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as _}from"./AdminImagePicker-DcFp1rIR.js";var v={class:`categories-admin`},y={class:`admin-page-header`},b=[`disabled`],x={key:1,class:`categories-admin__grid`},S={class:`admin-card`},C={class:`categories-admin__list`},w={class:`admin-card`},T={class:`categories-admin__list`},E=d(m({__name:`CategoriesView`,setup(d){let m=[{id:`trousers`,title:`پارچه‌های شلواری`},{id:`suit`,title:`پارچه‌های کت‌شلواری`},{id:`shirt`,title:`پارچه‌های پیراهنی`}],E=[{id:`summer`,title:`تابستانه`},{id:`winter`,title:`زمستانه`},{id:`all_season`,title:`چهارفصل`}],D=s({trousers:null,suit:null,shirt:null,summer:null,winter:null,all_season:null}),O=u(!0),k=u(!1),A=i();async function j(){O.value=!0;try{let e=(await h.get()).categoryImagesJson??{};for(let t of Object.keys(D))D[t]=e[t]??null}catch(e){A.error(e instanceof p?e.message:`بارگذاری تصاویر دسته‌ها ناموفق بود.`)}finally{O.value=!1}}async function M(){k.value=!0;try{let e={};for(let[t,n]of Object.entries(D))n&&(e[t]=n);await h.update({categoryImagesJson:e}),A.success(`تصاویر دسته‌بندی ذخیره شد.`)}catch(e){A.error(e instanceof p?e.message:`ذخیره تصاویر ناموفق بود.`)}finally{k.value=!1}}return e(()=>{j()}),(e,i)=>(n(),c(`div`,v,[f(`div`,y,[i[0]||=f(`div`,null,[f(`h1`,{class:`admin-page-header__title`},`دسته‌بندی‌ها`),f(`p`,{class:`admin-page-header__sub`},`تصویر هر دسته در اپ کاربر نمایش داده می‌شود.`)],-1),f(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:k.value||O.value,onClick:M},r(k.value?`در حال ذخیره...`:`ذخیره تصاویر`),9,b)]),O.value?(n(),l(g,{key:0,variant:`cards`})):(n(),c(`div`,x,[f(`section`,S,[i[1]||=f(`h2`,null,`بر اساس کاربرد`,-1),f(`div`,C,[(n(),c(o,null,t(m,e=>a(_,{key:e.id,label:e.title,"model-value":D[e.id],"onUpdate:modelValue":t=>D[e.id]=t},null,8,[`label`,`model-value`,`onUpdate:modelValue`])),64))])]),f(`section`,w,[i[2]||=f(`h2`,null,`بر اساس فصل`,-1),f(`div`,T,[(n(),c(o,null,t(E,e=>a(_,{key:e.id,label:e.title,"model-value":D[e.id],"onUpdate:modelValue":t=>D[e.id]=t},null,8,[`label`,`model-value`,`onUpdate:modelValue`])),64))])])]))]))}}),[[`__scopeId`,`data-v-551e5d97`]]);export{E as default}; \ No newline at end of file diff --git a/dist/assets/CheckManagementView-BLeaEEuT.js b/dist/assets/CheckManagementView-DdfJ7mM8.js similarity index 99% rename from dist/assets/CheckManagementView-BLeaEEuT.js rename to dist/assets/CheckManagementView-DdfJ7mM8.js index f98129e..5e644d1 100644 --- a/dist/assets/CheckManagementView-BLeaEEuT.js +++ b/dist/assets/CheckManagementView-DdfJ7mM8.js @@ -1 +1 @@ -import{A as e,At as t,I as n,N as r,Nt as i,a,b as o,c as s,f as c,g as l,h as u,m as ee,nt as d,o as te,p as f,t as p,u as ne,ut as m,x as h,y as g}from"./http-WTIyGIuL.js";import{F as re,I as _,P as ie,U as v,m as y,n as b,r as x,x as S,y as ae}from"./index-senPc5aL.js";import{c as C}from"./orderStatus-CYVblRJB.js";import{t as w}from"./StatusBadge-C_awmXg1.js";var oe={class:`checks-page`},se={class:`admin-page-header`},ce={key:0,class:`checks-page__order-meta`},le={class:`checks-page__stats`},ue={class:`checks-page__stat`},de={class:`checks-page__stat`},fe={class:`checks-page__stat`},pe={class:`checks-page__stat`},me={class:`admin-tabs`},he={key:0,class:`admin-empty-placeholder admin-card`},ge={key:1,class:`checks-page__list admin-card`},_e=[`onClick`],ve={class:`check-row__chevron`,"aria-hidden":`true`},ye=[`onClick`],be=[`src`],T={key:1,class:`check-row__thumb check-row__thumb--empty`},E={class:`check-row__meta`},D=[`disabled`,`onClick`],O=[`disabled`,`onClick`],k={key:0,class:`check-row__panel`},A={key:0,class:`check-row__fields`},j=[`dir`],M={key:1,class:`check-row__hint`},N={class:`check-row__photos`},xe=[`onClick`],Se=[`src`],Ce=[`onClick`],we=[`src`],Te={key:2,class:`check-row__hint`},Ee={class:`checks-page__footer`},De={class:`checks-page__note`},Oe={class:`admin-action-group`},ke=[`disabled`],Ae={key:0,class:`admin-empty-placeholder admin-card`},je={key:1,class:`checks-page__history`},Me={class:`checks-page__history-item-head`},Ne={class:`checks-page__history-meta`},P={key:0,class:`checks-page__history-note`},Pe={key:1,class:`checks-page__history-note`},Fe={class:`checks-page__history-item-head`},Ie={class:`checks-page__history-note`},Le=[`src`],F=te(h({__name:`CheckManagementView`,setup(te){let h=ie(),F=re(),I=a(),L=d(`info`),R=d(null),z=d([]),B=d(null),V=d(null),H=d(null),U=c(()=>R.value?ae(R.value):null),Re=c(()=>z.value.reduce((e,t)=>e+t.amount,0)),W=c(()=>z.value.filter(e=>e.status===`pending_review`)),ze=c(()=>z.value.length>0&&z.value.every(e=>e.status===`approved`)),G=c(()=>!ze.value||!R.value?!1:(R.value.rawStatus??R.value.status)===`checks_approved`),K=d(!1),q=c(()=>{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=c(()=>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 Be(){let e=String(h.params.id);try{let[t,n]=await Promise.all([S.get(e),y.listByOrder(e)]);R.value=t,z.value=n,n.length===1&&(V.value=n[0].id)}catch(e){I.error(e instanceof p?e.message:`بارگذاری چک‌ها انجام نشد.`)}}e(()=>{Be()});function Ve(){F.push(`/orders`)}function Y(e){return e===`approved`?`check_approved`:e===`rejected`?`check_rejected`:`pending_check_review`}function He(e){return e?e===`customer`?`مشتری`:e.startsWith(`admin:`)?`ادمین`:e:`—`}function X(e){if(!e)return`—`;try{return new Intl.DateTimeFormat(`fa-IR`,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e))}catch{return e.slice(0,16).replace(`T`,` `)}}function Ue(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:Ue(e)},{label:`کد ملی`,value:e.ownerNationalId,ltr:!0},{label:`یادداشت`,value:e.notes}].filter(e=>!!e.value?.trim())}function We(e){V.value=V.value===e.id?null:e.id}async function Q(e,t){B.value=e.id;try{let n=await y.updateStatus(e.id,{status:t}),r=z.value.findIndex(t=>t.id===e.id);return r!==-1&&(z.value[r]=n),R.value=await S.get(String(h.params.id)),!0}catch(e){return I.error(e instanceof p?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 Ge(){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 Ke(){if(!(!R.value||K.value)&&await _({title:`تأیید نهایی سفارش`,message:`با تأیید نهایی، سفارش از مرحله بررسی چک خارج می‌شود و وارد آماده‌سازی می‌گردد. ادامه می‌دهید؟`,tone:`primary`,confirmLabel:`تأیید نهایی`,cancelLabel:`انصراف`})){K.value=!0;try{let e=await S.updateStatus(R.value.id,{status:`final_approved`,note:`تأیید نهایی پس از تأیید همه چک‌ها`});R.value=e,I.success(`سفارش تأیید نهایی شد.`)}catch(e){I.error(e instanceof p?e.message:`تأیید نهایی انجام نشد.`)}finally{K.value=!1}}}return(e,a)=>(r(),l(`div`,oe,[f(`div`,se,[a[5]||=f(`div`,null,[f(`h1`,{class:`admin-page-header__title`},`مدیریت چک‌های سفارش`)],-1),U.value?(r(),l(`div`,ce,[o(w,{status:U.value.status},null,8,[`status`])])):u(``,!0)]),f(`div`,le,[f(`div`,ue,[a[6]||=f(`span`,null,`تعداد`,-1),f(`strong`,null,i(z.value.length),1)]),f(`div`,de,[a[7]||=f(`span`,null,`راس`,-1),f(`strong`,null,i(R.value?.checkRassDays??`—`)+` روز`,1)]),f(`div`,fe,[a[8]||=f(`span`,null,`مجموع چک`,-1),f(`strong`,null,i(m(b)(Re.value)),1)]),f(`div`,pe,[a[9]||=f(`span`,null,`مبلغ سفارش`,-1),f(`strong`,null,i(U.value?.totalAmount?m(b)(U.value.totalAmount):`—`),1)])]),f(`div`,me,[f(`button`,{type:`button`,class:t([`admin-tab`,{active:L.value===`info`}]),onClick:a[0]||=e=>L.value=`info`},` چک‌ها (`+i(z.value.length)+`) `,3),f(`button`,{type:`button`,class:t([`admin-tab`,{active:L.value===`history`}]),onClick:a[1]||=e=>L.value=`history`},` تاریخچه `,2)]),L.value===`info`?(r(),l(s,{key:0},[z.value.length?(r(),l(`div`,ge,[(r(!0),l(s,null,n(z.value,e=>(r(),l(`div`,{key:e.id,class:t([`check-row`,{open:V.value===e.id}])},[f(`button`,{type:`button`,class:`check-row__main`,onClick:t=>We(e)},[f(`span`,ve,i(V.value===e.id?`▾`:`◂`),1),e.frontImage||e.backImage?(r(),l(`span`,{key:0,class:`check-row__thumb`,onClick:v(t=>H.value=e.frontImage||e.backImage,[`stop`])},[f(`img`,{src:e.frontImage||e.backImage,alt:``},null,8,be)],8,ye)):(r(),l(`span`,T,`بدون عکس`)),f(`span`,E,[f(`strong`,null,`چک `+i(e.row),1),f(`small`,null,[g(i(m(b)(e.amount))+` `,1),e.bankName?(r(),l(s,{key:0},[g(` · `+i(e.bankName),1)],64)):u(``,!0),g(` · `+i(m(x)(e.dueDate)),1)])]),o(w,{status:Y(e.status)},null,8,[`status`])],8,_e),f(`div`,{class:`check-row__actions`,onClick:a[2]||=v(()=>{},[`stop`])},[e.status===`pending_review`?(r(),l(s,{key:0},[f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:B.value===e.id,onClick:t=>$(e,`approved`)},` تأیید `,8,D),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:B.value===e.id,onClick:t=>$(e,`rejected`)},` رد `,8,O)],64)):u(``,!0)]),V.value===e.id?(r(),l(`div`,k,[Z(e).length?(r(),l(`div`,A,[(r(!0),l(s,null,n(Z(e),e=>(r(),l(`div`,{key:e.label,class:`check-row__field`},[f(`span`,null,i(e.label),1),f(`strong`,{dir:e.ltr?`ltr`:void 0},i(e.value),9,j)]))),128))])):(r(),l(`p`,M,`جزئیات متنی بیشتری ثبت نشده است.`)),f(`div`,N,[e.frontImage?(r(),l(`button`,{key:0,type:`button`,class:`check-row__photo`,onClick:t=>H.value=e.frontImage},[f(`img`,{src:e.frontImage,alt:`روی چک`},null,8,Se),a[10]||=f(`span`,null,`روی`,-1)],8,xe)):u(``,!0),e.backImage?(r(),l(`button`,{key:1,type:`button`,class:`check-row__photo`,onClick:t=>H.value=e.backImage},[f(`img`,{src:e.backImage,alt:`پشت چک`},null,8,we),a[11]||=f(`span`,null,`پشت`,-1)],8,Ce)):u(``,!0),!e.frontImage&&!e.backImage?(r(),l(`p`,Te,` تصویری ثبت نشده. `)):u(``,!0)])])):u(``,!0)],2))),128))])):(r(),l(`div`,he,` چکی برای این سفارش ثبت نشده است. `)),f(`div`,Ee,[f(`p`,De,[G.value?(r(),l(s,{key:0},[g(` همه چک‌ها تأیید شده‌اند. برای ادامه، تأیید نهایی سفارش را ثبت کنید. `)],64)):R.value?.checkRassDate?(r(),l(s,{key:1},[g(` راس: `+i(m(x)(R.value.checkRassDate)),1)],64)):(r(),l(s,{key:2},[g(`راس بر اساس تاریخ ثبت سفارش محاسبه می‌شود.`)],64))]),f(`div`,Oe,[G.value?(r(),l(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:K.value,onClick:Ke},i(K.value?`در حال ثبت…`:`تأیید نهایی سفارش`),9,ke)):u(``,!0),W.value.length?(r(),l(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,onClick:Ge},` تأیید همه چک‌ها `)):u(``,!0),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Ve},` بازگشت `)])])],64)):(r(),l(s,{key:1},[!q.value.length&&!J.value.length?(r(),l(`div`,Ae,` هنوز تاریخچه‌ای ثبت نشده است. `)):(r(),l(`div`,je,[(r(!0),l(s,null,n(q.value,e=>(r(),l(`article`,{key:e.id,class:`admin-card checks-page__history-item`},[f(`div`,Me,[f(`strong`,null,i(e.fromStatus?m(C)(e.fromStatus):`—`)+` → `+i(m(C)(e.toStatus)),1),f(`span`,null,i(X(e.changedAt)),1)]),f(`p`,Ne,`توسط `+i(He(e.changedBy)),1),e.note?(r(),l(`p`,P,i(e.note),1)):u(``,!0),e.reason?(r(),l(`p`,Pe,`دلیل: `+i(e.reason),1)):u(``,!0)]))),128)),(r(!0),l(s,null,n(J.value,e=>(r(),l(`article`,{key:`note-${e.id}`,class:`admin-card checks-page__history-item`},[f(`div`,Fe,[f(`strong`,null,`یادداشت چک `+i(e.row),1),f(`span`,null,i(X(e.updatedAt)),1)]),o(w,{status:Y(e.status)},null,8,[`status`]),f(`p`,Ie,i(e.notes),1)]))),128))]))],64)),(r(),ee(ne,{to:`body`},[H.value?(r(),l(`div`,{key:0,class:`checks-page__lightbox`,onClick:a[4]||=v(e=>H.value=null,[`self`])},[f(`button`,{type:`button`,class:`checks-page__lightbox-close`,onClick:a[3]||=e=>H.value=null},` بستن `),f(`img`,{src:H.value,alt:`پیش‌نمایش`},null,8,Le)])):u(``,!0)]))]))}}),[[`__scopeId`,`data-v-1cb3ca79`]]);export{F as default}; \ No newline at end of file +import{A as e,At as t,I as n,N as r,Nt as i,a,b as o,c as s,f as c,g as l,h as u,m as ee,nt as d,o as te,p as f,t as p,u as ne,ut as m,x as h,y as g}from"./http-WTIyGIuL.js";import{F as re,I as _,P as ie,U as v,m as y,n as b,r as x,x as S,y as ae}from"./index-mN60lSc2.js";import{c as C}from"./orderStatus-CYVblRJB.js";import{t as w}from"./StatusBadge-C_awmXg1.js";var oe={class:`checks-page`},se={class:`admin-page-header`},ce={key:0,class:`checks-page__order-meta`},le={class:`checks-page__stats`},ue={class:`checks-page__stat`},de={class:`checks-page__stat`},fe={class:`checks-page__stat`},pe={class:`checks-page__stat`},me={class:`admin-tabs`},he={key:0,class:`admin-empty-placeholder admin-card`},ge={key:1,class:`checks-page__list admin-card`},_e=[`onClick`],ve={class:`check-row__chevron`,"aria-hidden":`true`},ye=[`onClick`],be=[`src`],T={key:1,class:`check-row__thumb check-row__thumb--empty`},E={class:`check-row__meta`},D=[`disabled`,`onClick`],O=[`disabled`,`onClick`],k={key:0,class:`check-row__panel`},A={key:0,class:`check-row__fields`},j=[`dir`],M={key:1,class:`check-row__hint`},N={class:`check-row__photos`},xe=[`onClick`],Se=[`src`],Ce=[`onClick`],we=[`src`],Te={key:2,class:`check-row__hint`},Ee={class:`checks-page__footer`},De={class:`checks-page__note`},Oe={class:`admin-action-group`},ke=[`disabled`],Ae={key:0,class:`admin-empty-placeholder admin-card`},je={key:1,class:`checks-page__history`},Me={class:`checks-page__history-item-head`},Ne={class:`checks-page__history-meta`},P={key:0,class:`checks-page__history-note`},Pe={key:1,class:`checks-page__history-note`},Fe={class:`checks-page__history-item-head`},Ie={class:`checks-page__history-note`},Le=[`src`],F=te(h({__name:`CheckManagementView`,setup(te){let h=ie(),F=re(),I=a(),L=d(`info`),R=d(null),z=d([]),B=d(null),V=d(null),H=d(null),U=c(()=>R.value?ae(R.value):null),Re=c(()=>z.value.reduce((e,t)=>e+t.amount,0)),W=c(()=>z.value.filter(e=>e.status===`pending_review`)),ze=c(()=>z.value.length>0&&z.value.every(e=>e.status===`approved`)),G=c(()=>!ze.value||!R.value?!1:(R.value.rawStatus??R.value.status)===`checks_approved`),K=d(!1),q=c(()=>{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=c(()=>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 Be(){let e=String(h.params.id);try{let[t,n]=await Promise.all([S.get(e),y.listByOrder(e)]);R.value=t,z.value=n,n.length===1&&(V.value=n[0].id)}catch(e){I.error(e instanceof p?e.message:`بارگذاری چک‌ها انجام نشد.`)}}e(()=>{Be()});function Ve(){F.push(`/orders`)}function Y(e){return e===`approved`?`check_approved`:e===`rejected`?`check_rejected`:`pending_check_review`}function He(e){return e?e===`customer`?`مشتری`:e.startsWith(`admin:`)?`ادمین`:e:`—`}function X(e){if(!e)return`—`;try{return new Intl.DateTimeFormat(`fa-IR`,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e))}catch{return e.slice(0,16).replace(`T`,` `)}}function Ue(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:Ue(e)},{label:`کد ملی`,value:e.ownerNationalId,ltr:!0},{label:`یادداشت`,value:e.notes}].filter(e=>!!e.value?.trim())}function We(e){V.value=V.value===e.id?null:e.id}async function Q(e,t){B.value=e.id;try{let n=await y.updateStatus(e.id,{status:t}),r=z.value.findIndex(t=>t.id===e.id);return r!==-1&&(z.value[r]=n),R.value=await S.get(String(h.params.id)),!0}catch(e){return I.error(e instanceof p?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 Ge(){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 Ke(){if(!(!R.value||K.value)&&await _({title:`تأیید نهایی سفارش`,message:`با تأیید نهایی، سفارش از مرحله بررسی چک خارج می‌شود و وارد آماده‌سازی می‌گردد. ادامه می‌دهید؟`,tone:`primary`,confirmLabel:`تأیید نهایی`,cancelLabel:`انصراف`})){K.value=!0;try{let e=await S.updateStatus(R.value.id,{status:`final_approved`,note:`تأیید نهایی پس از تأیید همه چک‌ها`});R.value=e,I.success(`سفارش تأیید نهایی شد.`)}catch(e){I.error(e instanceof p?e.message:`تأیید نهایی انجام نشد.`)}finally{K.value=!1}}}return(e,a)=>(r(),l(`div`,oe,[f(`div`,se,[a[5]||=f(`div`,null,[f(`h1`,{class:`admin-page-header__title`},`مدیریت چک‌های سفارش`)],-1),U.value?(r(),l(`div`,ce,[o(w,{status:U.value.status},null,8,[`status`])])):u(``,!0)]),f(`div`,le,[f(`div`,ue,[a[6]||=f(`span`,null,`تعداد`,-1),f(`strong`,null,i(z.value.length),1)]),f(`div`,de,[a[7]||=f(`span`,null,`راس`,-1),f(`strong`,null,i(R.value?.checkRassDays??`—`)+` روز`,1)]),f(`div`,fe,[a[8]||=f(`span`,null,`مجموع چک`,-1),f(`strong`,null,i(m(b)(Re.value)),1)]),f(`div`,pe,[a[9]||=f(`span`,null,`مبلغ سفارش`,-1),f(`strong`,null,i(U.value?.totalAmount?m(b)(U.value.totalAmount):`—`),1)])]),f(`div`,me,[f(`button`,{type:`button`,class:t([`admin-tab`,{active:L.value===`info`}]),onClick:a[0]||=e=>L.value=`info`},` چک‌ها (`+i(z.value.length)+`) `,3),f(`button`,{type:`button`,class:t([`admin-tab`,{active:L.value===`history`}]),onClick:a[1]||=e=>L.value=`history`},` تاریخچه `,2)]),L.value===`info`?(r(),l(s,{key:0},[z.value.length?(r(),l(`div`,ge,[(r(!0),l(s,null,n(z.value,e=>(r(),l(`div`,{key:e.id,class:t([`check-row`,{open:V.value===e.id}])},[f(`button`,{type:`button`,class:`check-row__main`,onClick:t=>We(e)},[f(`span`,ve,i(V.value===e.id?`▾`:`◂`),1),e.frontImage||e.backImage?(r(),l(`span`,{key:0,class:`check-row__thumb`,onClick:v(t=>H.value=e.frontImage||e.backImage,[`stop`])},[f(`img`,{src:e.frontImage||e.backImage,alt:``},null,8,be)],8,ye)):(r(),l(`span`,T,`بدون عکس`)),f(`span`,E,[f(`strong`,null,`چک `+i(e.row),1),f(`small`,null,[g(i(m(b)(e.amount))+` `,1),e.bankName?(r(),l(s,{key:0},[g(` · `+i(e.bankName),1)],64)):u(``,!0),g(` · `+i(m(x)(e.dueDate)),1)])]),o(w,{status:Y(e.status)},null,8,[`status`])],8,_e),f(`div`,{class:`check-row__actions`,onClick:a[2]||=v(()=>{},[`stop`])},[e.status===`pending_review`?(r(),l(s,{key:0},[f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:B.value===e.id,onClick:t=>$(e,`approved`)},` تأیید `,8,D),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:B.value===e.id,onClick:t=>$(e,`rejected`)},` رد `,8,O)],64)):u(``,!0)]),V.value===e.id?(r(),l(`div`,k,[Z(e).length?(r(),l(`div`,A,[(r(!0),l(s,null,n(Z(e),e=>(r(),l(`div`,{key:e.label,class:`check-row__field`},[f(`span`,null,i(e.label),1),f(`strong`,{dir:e.ltr?`ltr`:void 0},i(e.value),9,j)]))),128))])):(r(),l(`p`,M,`جزئیات متنی بیشتری ثبت نشده است.`)),f(`div`,N,[e.frontImage?(r(),l(`button`,{key:0,type:`button`,class:`check-row__photo`,onClick:t=>H.value=e.frontImage},[f(`img`,{src:e.frontImage,alt:`روی چک`},null,8,Se),a[10]||=f(`span`,null,`روی`,-1)],8,xe)):u(``,!0),e.backImage?(r(),l(`button`,{key:1,type:`button`,class:`check-row__photo`,onClick:t=>H.value=e.backImage},[f(`img`,{src:e.backImage,alt:`پشت چک`},null,8,we),a[11]||=f(`span`,null,`پشت`,-1)],8,Ce)):u(``,!0),!e.frontImage&&!e.backImage?(r(),l(`p`,Te,` تصویری ثبت نشده. `)):u(``,!0)])])):u(``,!0)],2))),128))])):(r(),l(`div`,he,` چکی برای این سفارش ثبت نشده است. `)),f(`div`,Ee,[f(`p`,De,[G.value?(r(),l(s,{key:0},[g(` همه چک‌ها تأیید شده‌اند. برای ادامه، تأیید نهایی سفارش را ثبت کنید. `)],64)):R.value?.checkRassDate?(r(),l(s,{key:1},[g(` راس: `+i(m(x)(R.value.checkRassDate)),1)],64)):(r(),l(s,{key:2},[g(`راس بر اساس تاریخ ثبت سفارش محاسبه می‌شود.`)],64))]),f(`div`,Oe,[G.value?(r(),l(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:K.value,onClick:Ke},i(K.value?`در حال ثبت…`:`تأیید نهایی سفارش`),9,ke)):u(``,!0),W.value.length?(r(),l(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,onClick:Ge},` تأیید همه چک‌ها `)):u(``,!0),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Ve},` بازگشت `)])])],64)):(r(),l(s,{key:1},[!q.value.length&&!J.value.length?(r(),l(`div`,Ae,` هنوز تاریخچه‌ای ثبت نشده است. `)):(r(),l(`div`,je,[(r(!0),l(s,null,n(q.value,e=>(r(),l(`article`,{key:e.id,class:`admin-card checks-page__history-item`},[f(`div`,Me,[f(`strong`,null,i(e.fromStatus?m(C)(e.fromStatus):`—`)+` → `+i(m(C)(e.toStatus)),1),f(`span`,null,i(X(e.changedAt)),1)]),f(`p`,Ne,`توسط `+i(He(e.changedBy)),1),e.note?(r(),l(`p`,P,i(e.note),1)):u(``,!0),e.reason?(r(),l(`p`,Pe,`دلیل: `+i(e.reason),1)):u(``,!0)]))),128)),(r(!0),l(s,null,n(J.value,e=>(r(),l(`article`,{key:`note-${e.id}`,class:`admin-card checks-page__history-item`},[f(`div`,Fe,[f(`strong`,null,`یادداشت چک `+i(e.row),1),f(`span`,null,i(X(e.updatedAt)),1)]),o(w,{status:Y(e.status)},null,8,[`status`]),f(`p`,Ie,i(e.notes),1)]))),128))]))],64)),(r(),ee(ne,{to:`body`},[H.value?(r(),l(`div`,{key:0,class:`checks-page__lightbox`,onClick:a[4]||=v(e=>H.value=null,[`self`])},[f(`button`,{type:`button`,class:`checks-page__lightbox-close`,onClick:a[3]||=e=>H.value=null},` بستن `),f(`img`,{src:H.value,alt:`پیش‌نمایش`},null,8,Le)])):u(``,!0)]))]))}}),[[`__scopeId`,`data-v-1cb3ca79`]]);export{F as default}; \ No newline at end of file diff --git a/dist/assets/ChecksListView-B2lM1Mri.js b/dist/assets/ChecksListView-DM6EfJQS.js similarity index 97% rename from dist/assets/ChecksListView-B2lM1Mri.js rename to dist/assets/ChecksListView-DM6EfJQS.js index 1ea2fda..bfb64d7 100644 --- a/dist/assets/ChecksListView-B2lM1Mri.js +++ b/dist/assets/ChecksListView-DM6EfJQS.js @@ -1 +1 @@ -import{A as e,I as t,K as n,N as r,Nt as i,a,b as o,c as s,f as c,g as l,h as u,m as ee,nt as d,o as te,p as f,t as p,ut as m,x as h}from"./http-WTIyGIuL.js";import{F as ne,N as re,V as ie,i as ae,m as g,n as _,x as oe}from"./index-senPc5aL.js";import{t as v}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as se}from"./AdminSelect-Bi0VQHva.js";import{t as y}from"./StatusBadge-C_awmXg1.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`},I={class:`admin-card-item__title`},ue={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=te(h({__name:`ChecksListView`,setup(te){let h=ne(),U=a(),W=d([]),G=d(!0),K=d(``),q=d(`all`),J=d(null),de=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار بررسی`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`}],Y=c(()=>{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=c(()=>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 oe.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 p?e.message:`بارگذاری چک‌ها انجام نشد.`)}}finally{G.value=!1}}e(()=>{pe()});function Q(e){h.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 p?e.message:`به‌روزرسانی وضعیت چک انجام نشد.`)}finally{J.value=null}}return(e,a)=>(r(),l(`div`,ce,[f(`div`,le,[a[2]||=f(`div`,null,[f(`h1`,{class:`admin-page-header__title`},`چک‌ها`)],-1),f(`div`,b,[f(`span`,null,i(W.value.length)+` چک`,1),X.value?(r(),l(`span`,x,i(X.value)+` در انتظار بررسی`,1)):u(``,!0)])]),f(`div`,S,[f(`div`,C,[o(re,{name:`search`,size:18}),n(f(`input`,{"onUpdate:modelValue":a[0]||=e=>K.value=e,type:`search`,class:`checks-list-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، بانک، صیاد...`},null,512),[[ie,K.value]])]),o(se,{modelValue:q.value,"onUpdate:modelValue":a[1]||=e=>q.value=e,class:`checks-list-page__status-select`,"aria-label":`فیلتر وضعیت چک`,options:de},null,8,[`modelValue`])]),G.value?(r(),ee(v,{key:0,variant:`table`})):(r(),l(s,{key:1},[f(`div`,w,[f(`div`,T,[f(`table`,E,[a[3]||=f(`thead`,null,[f(`tr`,null,[f(`th`,null,`شماره سفارش`),f(`th`,null,`مشتری`),f(`th`,null,`ردیف`),f(`th`,null,`مبلغ`),f(`th`,null,`بانک`),f(`th`,null,`شناسه صیادی`),f(`th`,null,`سررسید`),f(`th`,null,`وضعیت`),f(`th`,null,`عملیات`)])],-1),f(`tbody`,null,[(r(!0),l(s,null,t(Y.value,e=>(r(),l(`tr`,{key:e.id},[f(`td`,null,[f(`button`,{type:`button`,class:`checks-list-page__order-link`,onClick:t=>Q(e)},i(e.orderNumber||e.orderId),9,D)]),f(`td`,null,i(e.customerName||`—`),1),f(`td`,null,i(e.row),1),f(`td`,null,i(m(_)(e.amount)),1),f(`td`,null,i(e.bankName||`—`),1),f(`td`,O,i(e.sayadId||`—`),1),f(`td`,null,i(e.dueDate.slice(0,10)),1),f(`td`,null,[o(y,{status:Z(e.status)},null,8,[`status`])]),f(`td`,null,[f(`div`,k,[e.status===`pending_review`?(r(),l(s,{key:0},[f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===e.id,onClick:t=>$(e,`approved`)},` تأیید `,8,A),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===e.id,onClick:t=>$(e,`rejected`)},` رد `,8,j)],64)):u(``,!0),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e)},` جزئیات سفارش `,8,M)])])]))),128))])])]),Y.value.length?u(``,!0):(r(),l(`p`,N,` چکی با این فیلتر یافت نشد. `))]),f(`div`,P,[(r(!0),l(s,null,t(Y.value,e=>(r(),l(`article`,{key:e.id,class:`admin-card-item`},[f(`div`,F,[f(`p`,I,i(e.orderNumber||e.orderId)+` — چک `+i(e.row),1),o(y,{status:Z(e.status)},null,8,[`status`])]),f(`div`,ue,[f(`span`,null,i(e.customerName||`—`),1),f(`span`,null,i(m(_)(e.amount)),1),f(`span`,null,i(e.bankName||`—`),1),f(`span`,null,`سررسید `+i(e.dueDate.slice(0,10)),1),e.createdAt?(r(),l(`span`,L,`ثبت `+i(m(ae)(e.createdAt)),1)):u(``,!0)]),f(`div`,R,[e.status===`pending_review`?(r(),l(s,{key:0},[f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===e.id,onClick:t=>$(e,`approved`)},` تأیید `,8,z),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===e.id,onClick:t=>$(e,`rejected`)},` رد `,8,B)],64)):u(``,!0),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e)},` جزئیات سفارش `,8,V)])]))),128)),Y.value.length?u(``,!0):(r(),l(`p`,H,` چکی با این فیلتر یافت نشد. `))])],64))]))}}),[[`__scopeId`,`data-v-09633f1f`]]);export{U as default}; \ No newline at end of file +import{A as e,I as t,K as n,N as r,Nt as i,a,b as o,c as s,f as c,g as l,h as u,m as ee,nt as d,o as te,p as f,t as p,ut as m,x as h}from"./http-WTIyGIuL.js";import{F as ne,N as re,V as ie,i as ae,m as g,n as _,x as oe}from"./index-mN60lSc2.js";import{t as v}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as se}from"./AdminSelect-Bw3z0TPQ.js";import{t as y}from"./StatusBadge-C_awmXg1.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`},I={class:`admin-card-item__title`},ue={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=te(h({__name:`ChecksListView`,setup(te){let h=ne(),U=a(),W=d([]),G=d(!0),K=d(``),q=d(`all`),J=d(null),de=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار بررسی`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`}],Y=c(()=>{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=c(()=>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 oe.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 p?e.message:`بارگذاری چک‌ها انجام نشد.`)}}finally{G.value=!1}}e(()=>{pe()});function Q(e){h.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 p?e.message:`به‌روزرسانی وضعیت چک انجام نشد.`)}finally{J.value=null}}return(e,a)=>(r(),l(`div`,ce,[f(`div`,le,[a[2]||=f(`div`,null,[f(`h1`,{class:`admin-page-header__title`},`چک‌ها`)],-1),f(`div`,b,[f(`span`,null,i(W.value.length)+` چک`,1),X.value?(r(),l(`span`,x,i(X.value)+` در انتظار بررسی`,1)):u(``,!0)])]),f(`div`,S,[f(`div`,C,[o(re,{name:`search`,size:18}),n(f(`input`,{"onUpdate:modelValue":a[0]||=e=>K.value=e,type:`search`,class:`checks-list-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، بانک، صیاد...`},null,512),[[ie,K.value]])]),o(se,{modelValue:q.value,"onUpdate:modelValue":a[1]||=e=>q.value=e,class:`checks-list-page__status-select`,"aria-label":`فیلتر وضعیت چک`,options:de},null,8,[`modelValue`])]),G.value?(r(),ee(v,{key:0,variant:`table`})):(r(),l(s,{key:1},[f(`div`,w,[f(`div`,T,[f(`table`,E,[a[3]||=f(`thead`,null,[f(`tr`,null,[f(`th`,null,`شماره سفارش`),f(`th`,null,`مشتری`),f(`th`,null,`ردیف`),f(`th`,null,`مبلغ`),f(`th`,null,`بانک`),f(`th`,null,`شناسه صیادی`),f(`th`,null,`سررسید`),f(`th`,null,`وضعیت`),f(`th`,null,`عملیات`)])],-1),f(`tbody`,null,[(r(!0),l(s,null,t(Y.value,e=>(r(),l(`tr`,{key:e.id},[f(`td`,null,[f(`button`,{type:`button`,class:`checks-list-page__order-link`,onClick:t=>Q(e)},i(e.orderNumber||e.orderId),9,D)]),f(`td`,null,i(e.customerName||`—`),1),f(`td`,null,i(e.row),1),f(`td`,null,i(m(_)(e.amount)),1),f(`td`,null,i(e.bankName||`—`),1),f(`td`,O,i(e.sayadId||`—`),1),f(`td`,null,i(e.dueDate.slice(0,10)),1),f(`td`,null,[o(y,{status:Z(e.status)},null,8,[`status`])]),f(`td`,null,[f(`div`,k,[e.status===`pending_review`?(r(),l(s,{key:0},[f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===e.id,onClick:t=>$(e,`approved`)},` تأیید `,8,A),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===e.id,onClick:t=>$(e,`rejected`)},` رد `,8,j)],64)):u(``,!0),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e)},` جزئیات سفارش `,8,M)])])]))),128))])])]),Y.value.length?u(``,!0):(r(),l(`p`,N,` چکی با این فیلتر یافت نشد. `))]),f(`div`,P,[(r(!0),l(s,null,t(Y.value,e=>(r(),l(`article`,{key:e.id,class:`admin-card-item`},[f(`div`,F,[f(`p`,I,i(e.orderNumber||e.orderId)+` — چک `+i(e.row),1),o(y,{status:Z(e.status)},null,8,[`status`])]),f(`div`,ue,[f(`span`,null,i(e.customerName||`—`),1),f(`span`,null,i(m(_)(e.amount)),1),f(`span`,null,i(e.bankName||`—`),1),f(`span`,null,`سررسید `+i(e.dueDate.slice(0,10)),1),e.createdAt?(r(),l(`span`,L,`ثبت `+i(m(ae)(e.createdAt)),1)):u(``,!0)]),f(`div`,R,[e.status===`pending_review`?(r(),l(s,{key:0},[f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===e.id,onClick:t=>$(e,`approved`)},` تأیید `,8,z),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===e.id,onClick:t=>$(e,`rejected`)},` رد `,8,B)],64)):u(``,!0),f(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e)},` جزئیات سفارش `,8,V)])]))),128)),Y.value.length?u(``,!0):(r(),l(`p`,H,` چکی با این فیلتر یافت نشد. `))])],64))]))}}),[[`__scopeId`,`data-v-09633f1f`]]);export{U as default}; \ No newline at end of file diff --git a/dist/assets/CompaniesView-Dr0i2DgE.js b/dist/assets/CompaniesView-EUwI0EET.js similarity index 97% rename from dist/assets/CompaniesView-Dr0i2DgE.js rename to dist/assets/CompaniesView-EUwI0EET.js index a7eba59..bb2cefb 100644 --- a/dist/assets/CompaniesView-Dr0i2DgE.js +++ b/dist/assets/CompaniesView-EUwI0EET.js @@ -1 +1 @@ -import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as ee,f as l,g as u,h as d,m as f,nt as p,o as te,p as m,t as h,x as g,y as _}from"./http-WTIyGIuL.js";import{F as ne,I as re,L as ie,T as ae,U as oe,V as v,h as y}from"./index-senPc5aL.js";import{t as se}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as ce}from"./BaseSwitch-gjOaAbzm.js";import{t as le}from"./BaseEmptyState-P-TMfHGI.js";import{t as b}from"./ActiveSwitchCell-CU-04sUE.js";var ue={class:`companies-page`},de={key:2,class:`companies-page__table admin-card desktop-only`},fe={class:`admin-table-wrap`},pe={class:`admin-table`},me=[`src`,`alt`],he={key:1,class:`company-logo company-logo--fallback`},ge={class:`numeric`},_e={class:`status`},ve={class:`actions`},ye={class:`admin-action-group`},be=[`onClick`],xe=[`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`},ke={class:`admin-form__row`},Ae={class:`admin-form__field`},N={class:`admin-form__field`},je=[`disabled`],Me=2097152,P=te(g({__name:`CompaniesView`,setup(te){let g=[`image/png`,`image/jpeg`,`image/webp`,`image/svg+xml`],P=ne(),F=o(),I=p([]),L=p(!0),R=p(null),z=p(null),B=p(null),V=p(null),H=p(!1);async function Ne(){L.value=!0;try{I.value=await y.list()}catch(e){F.error(e instanceof h?e.message:`بارگذاری شرکت‌ها انجام نشد.`)}finally{L.value=!1}}e(()=>{Ne()});let U=()=>({name:``,description:``,displayOrder:I.value.length+1,isActive:!0}),W=ee(U()),G=p(``),Pe=l(()=>R.value!==null),Fe=l(()=>R.value===`edit`?`ویرایش شرکت`:`افزودن شرکت`),Ie=l(()=>R.value===`edit`?`ذخیره تغییرات`:`ثبت شرکت`),Le=l(()=>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(!g.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 re({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 y.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 y.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 h?e.message:`ذخیره شرکت انجام نشد.`)}finally{H.value=!1}}async function Z(e,t){await y.setActive(e,t)}function Q(e){P.push(`/companies/${e}/accounts`)}function $(e){return e.trim().charAt(0)||`؟`}return(e,o)=>(i(),u(`div`,ue,[m(`div`,{class:`admin-page-header`},[o[5]||=m(`div`,null,[m(`h1`,{class:`admin-page-header__title`},`مدیریت شرکت‌ها`)],-1),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` افزودن شرکت `)]),L.value?(i(),f(se,{key:0,variant:`table`})):I.value.length?(i(),u(`div`,de,[m(`div`,fe,[m(`table`,pe,[o[6]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`لوگو`),m(`th`,{class:`numeric`},`ترتیب`),m(`th`,{class:`status`},`وضعیت`),m(`th`,null,`توضیحات`),m(`th`,null,`نام شرکت`),m(`th`,{class:`actions`},`عملیات`)])],-1),m(`tbody`,null,[(i(!0),u(c,null,n(I.value,e=>(i(),u(`tr`,{key:e.id},[m(`td`,null,[e.logoUrl?(i(),u(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,me)):(i(),u(`div`,he,a($(e.name)),1))]),m(`td`,ge,a(e.displayOrder),1),m(`td`,_e,[s(b,{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`])]),m(`td`,null,a(e.description),1),m(`td`,null,a(e.name),1),m(`td`,ve,[m(`div`,ye,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,be),m(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,xe)])])]))),128))])])])])):(i(),f(le,{key:1,class:`admin-card`,icon:`companies`,title:`شرکتی ثبت نشده`,description:`برای شروع، اولین شرکت را ثبت کنید.`},{default:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:q},` افزودن شرکت `)]),_:1})),!L.value&&I.value.length?(i(),u(`div`,x,[(i(!0),u(c,null,n(I.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,S,[m(`div`,C,[e.logoUrl?(i(),u(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,w)):(i(),u(`div`,T,a($(e.name)),1)),m(`div`,null,[m(`p`,E,a(e.name),1),m(`p`,D,a(e.description),1)])]),s(b,{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`])]),m(`div`,O,[m(`span`,null,`ترتیب: `+a(e.displayOrder),1)]),m(`div`,k,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,A),m(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,j)])]))),128))])):d(``,!0),s(ie,{open:Pe.value,title:Fe.value,onClose:Y},{footer:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Y},` انصراف `),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Le.value||H.value,onClick:X},a(Ie.value),9,je)]),default:t(()=>[m(`form`,{class:`admin-form`,onSubmit:oe(X,[`prevent`])},[G.value?(i(),u(`p`,M,a(G.value),1)):d(``,!0),m(`div`,Se,[o[8]||=m(`label`,null,[_(`لوگو `),m(`span`,{class:`admin-form__required`},`*`)],-1),m(`div`,Ce,[B.value?(i(),u(`div`,we,[m(`img`,{src:B.value,alt:`پیش‌نمایش لوگو`,class:`logo-upload__preview`},null,8,Te),m(`button`,{type:`button`,class:`logo-upload__remove`,onClick:ze},` حذف تصویر `)])):(i(),u(`label`,Ee,[...o[7]||=[m(`span`,{class:`logo-upload__icon`},`+`,-1),m(`span`,{class:`logo-upload__text`},`انتخاب یا رها کردن تصویر لوگو`,-1),m(`span`,{class:`logo-upload__hint`},`PNG، JPG، WEBP یا SVG — حداکثر ۲ مگابایت`,-1)]])),m(`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?(i(),u(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm logo-upload__change`,onClick:o[0]||=e=>V.value?.click()},` تغییر تصویر `)):d(``,!0)])]),m(`div`,De,[o[9]||=m(`label`,{for:`company-name`},[_(`نام شرکت `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`company-name`,"onUpdate:modelValue":o[1]||=e=>W.name=e,type:`text`,class:`admin-input`,placeholder:`مثال: شرکت پَر`,autocomplete:`off`},null,512),[[v,W.name]])]),m(`div`,Oe,[o[10]||=m(`label`,{for:`company-description`},`توضیحات`,-1),r(m(`textarea`,{id:`company-description`,"onUpdate:modelValue":o[2]||=e=>W.description=e,class:`admin-form__textarea`,placeholder:`تولید و عرضه انواع پارچه`,rows:`3`},null,512),[[v,W.description]])]),m(`div`,ke,[m(`div`,Ae,[o[11]||=m(`label`,{for:`company-order`},`ترتیب نمایش`,-1),r(m(`input`,{id:`company-order`,"onUpdate:modelValue":o[3]||=e=>W.displayOrder=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[v,W.displayOrder,void 0,{number:!0}]])]),m(`div`,N,[s(ce,{modelValue:W.isActive,"onUpdate:modelValue":o[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 +import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as ee,f as l,g as u,h as d,m as f,nt as p,o as te,p as m,t as h,x as g,y as _}from"./http-WTIyGIuL.js";import{F as ne,I as re,L as ie,T as ae,U as oe,V as v,h as y}from"./index-mN60lSc2.js";import{t as se}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as ce}from"./BaseSwitch-gjOaAbzm.js";import{t as le}from"./BaseEmptyState-D5jlq4nS.js";import{t as b}from"./ActiveSwitchCell-BaPmkdOq.js";var ue={class:`companies-page`},de={key:2,class:`companies-page__table admin-card desktop-only`},fe={class:`admin-table-wrap`},pe={class:`admin-table`},me=[`src`,`alt`],he={key:1,class:`company-logo company-logo--fallback`},ge={class:`numeric`},_e={class:`status`},ve={class:`actions`},ye={class:`admin-action-group`},be=[`onClick`],xe=[`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`},ke={class:`admin-form__row`},Ae={class:`admin-form__field`},N={class:`admin-form__field`},je=[`disabled`],Me=2097152,P=te(g({__name:`CompaniesView`,setup(te){let g=[`image/png`,`image/jpeg`,`image/webp`,`image/svg+xml`],P=ne(),F=o(),I=p([]),L=p(!0),R=p(null),z=p(null),B=p(null),V=p(null),H=p(!1);async function Ne(){L.value=!0;try{I.value=await y.list()}catch(e){F.error(e instanceof h?e.message:`بارگذاری شرکت‌ها انجام نشد.`)}finally{L.value=!1}}e(()=>{Ne()});let U=()=>({name:``,description:``,displayOrder:I.value.length+1,isActive:!0}),W=ee(U()),G=p(``),Pe=l(()=>R.value!==null),Fe=l(()=>R.value===`edit`?`ویرایش شرکت`:`افزودن شرکت`),Ie=l(()=>R.value===`edit`?`ذخیره تغییرات`:`ثبت شرکت`),Le=l(()=>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(!g.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 re({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 y.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 y.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 h?e.message:`ذخیره شرکت انجام نشد.`)}finally{H.value=!1}}async function Z(e,t){await y.setActive(e,t)}function Q(e){P.push(`/companies/${e}/accounts`)}function $(e){return e.trim().charAt(0)||`؟`}return(e,o)=>(i(),u(`div`,ue,[m(`div`,{class:`admin-page-header`},[o[5]||=m(`div`,null,[m(`h1`,{class:`admin-page-header__title`},`مدیریت شرکت‌ها`)],-1),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` افزودن شرکت `)]),L.value?(i(),f(se,{key:0,variant:`table`})):I.value.length?(i(),u(`div`,de,[m(`div`,fe,[m(`table`,pe,[o[6]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`لوگو`),m(`th`,{class:`numeric`},`ترتیب`),m(`th`,{class:`status`},`وضعیت`),m(`th`,null,`توضیحات`),m(`th`,null,`نام شرکت`),m(`th`,{class:`actions`},`عملیات`)])],-1),m(`tbody`,null,[(i(!0),u(c,null,n(I.value,e=>(i(),u(`tr`,{key:e.id},[m(`td`,null,[e.logoUrl?(i(),u(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,me)):(i(),u(`div`,he,a($(e.name)),1))]),m(`td`,ge,a(e.displayOrder),1),m(`td`,_e,[s(b,{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`])]),m(`td`,null,a(e.description),1),m(`td`,null,a(e.name),1),m(`td`,ve,[m(`div`,ye,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,be),m(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,xe)])])]))),128))])])])])):(i(),f(le,{key:1,class:`admin-card`,icon:`companies`,title:`شرکتی ثبت نشده`,description:`برای شروع، اولین شرکت را ثبت کنید.`},{default:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:q},` افزودن شرکت `)]),_:1})),!L.value&&I.value.length?(i(),u(`div`,x,[(i(!0),u(c,null,n(I.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,S,[m(`div`,C,[e.logoUrl?(i(),u(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,w)):(i(),u(`div`,T,a($(e.name)),1)),m(`div`,null,[m(`p`,E,a(e.name),1),m(`p`,D,a(e.description),1)])]),s(b,{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`])]),m(`div`,O,[m(`span`,null,`ترتیب: `+a(e.displayOrder),1)]),m(`div`,k,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,A),m(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,j)])]))),128))])):d(``,!0),s(ie,{open:Pe.value,title:Fe.value,onClose:Y},{footer:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Y},` انصراف `),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Le.value||H.value,onClick:X},a(Ie.value),9,je)]),default:t(()=>[m(`form`,{class:`admin-form`,onSubmit:oe(X,[`prevent`])},[G.value?(i(),u(`p`,M,a(G.value),1)):d(``,!0),m(`div`,Se,[o[8]||=m(`label`,null,[_(`لوگو `),m(`span`,{class:`admin-form__required`},`*`)],-1),m(`div`,Ce,[B.value?(i(),u(`div`,we,[m(`img`,{src:B.value,alt:`پیش‌نمایش لوگو`,class:`logo-upload__preview`},null,8,Te),m(`button`,{type:`button`,class:`logo-upload__remove`,onClick:ze},` حذف تصویر `)])):(i(),u(`label`,Ee,[...o[7]||=[m(`span`,{class:`logo-upload__icon`},`+`,-1),m(`span`,{class:`logo-upload__text`},`انتخاب یا رها کردن تصویر لوگو`,-1),m(`span`,{class:`logo-upload__hint`},`PNG، JPG، WEBP یا SVG — حداکثر ۲ مگابایت`,-1)]])),m(`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?(i(),u(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm logo-upload__change`,onClick:o[0]||=e=>V.value?.click()},` تغییر تصویر `)):d(``,!0)])]),m(`div`,De,[o[9]||=m(`label`,{for:`company-name`},[_(`نام شرکت `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`company-name`,"onUpdate:modelValue":o[1]||=e=>W.name=e,type:`text`,class:`admin-input`,placeholder:`مثال: شرکت پَر`,autocomplete:`off`},null,512),[[v,W.name]])]),m(`div`,Oe,[o[10]||=m(`label`,{for:`company-description`},`توضیحات`,-1),r(m(`textarea`,{id:`company-description`,"onUpdate:modelValue":o[2]||=e=>W.description=e,class:`admin-form__textarea`,placeholder:`تولید و عرضه انواع پارچه`,rows:`3`},null,512),[[v,W.description]])]),m(`div`,ke,[m(`div`,Ae,[o[11]||=m(`label`,{for:`company-order`},`ترتیب نمایش`,-1),r(m(`input`,{id:`company-order`,"onUpdate:modelValue":o[3]||=e=>W.displayOrder=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[v,W.displayOrder,void 0,{number:!0}]])]),m(`div`,N,[s(ce,{modelValue:W.isActive,"onUpdate:modelValue":o[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-BZ2XNcSp.js b/dist/assets/CustomersView-BKoe-p99.js similarity index 97% rename from dist/assets/CustomersView-BZ2XNcSp.js rename to dist/assets/CustomersView-BKoe-p99.js index 6b7c918..6c0e128 100644 --- a/dist/assets/CustomersView-BZ2XNcSp.js +++ b/dist/assets/CustomersView-BKoe-p99.js @@ -1 +1 @@ -import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as ee,f as l,g as u,h as d,m as f,nt as p,o as te,p as m,t as h,ut as g,x as _,y as v}from"./http-WTIyGIuL.js";import{L as ne,N as re,U as ie,V as y,a as ae,g as b,i as oe,u as se,v as ce}from"./index-senPc5aL.js";import{t as le}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as ue}from"./BaseSwitch-gjOaAbzm.js";import{t as de}from"./BaseEmptyState-P-TMfHGI.js";import{t as x}from"./AdminSelect-Bi0VQHva.js";import{r as S}from"./adminLabels-Cz9ccm1Z.js";import{t as C}from"./ActiveSwitchCell-CU-04sUE.js";var fe={class:`customers-page`},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={class:`numeric`},ve={class:`numeric`},ye={class:`status`},be={class:`actions`},xe=[`onClick`],Se={key:3,class:`compact-only admin-card-list`},Ce={class:`admin-card-item__header`},w={class:`admin-card-item__title`},T={class:`admin-card-item__header-actions`},E=[`onClick`],D={class:`admin-card-item__meta`},O={key:0,class:`admin-form__error`,role:`alert`},k={class:`admin-form__field`},A={class:`admin-form__row`},we={class:`admin-form__field`},Te={class:`admin-form__field`},Ee={class:`admin-form__row`},De={class:`admin-form__field`},Oe={class:`admin-form__field`},ke={class:`admin-form__row`},Ae={class:`admin-form__field`},je={class:`admin-form__field`},Me={class:`admin-form__row`},Ne={class:`admin-form__field`},Pe={key:0,class:`admin-form__field`},Fe={key:1,class:`admin-form__field`},Ie={class:`customers-page__brands`},Le=[`checked`,`onChange`],Re={class:`admin-form__field`},ze=[`disabled`],Be={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},j=te(_({__name:`CustomersView`,setup(te){let _=p([]),j=p([]),M=p([]),N=p([]),P=p(``),F=p(!0),I=p(null),L=p(null),R=p(``),z=p(!1),B=o();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)?`-`:ae(e)}let Ve=[{value:`wholesale`,label:`عمده‌فروش`},{value:`retail`,label:`خرده‌فروش`}],He=[{value:`customer`,label:`مشتری`},{value:`agent`,label:`واسطه`}],Ue=l(()=>[{value:``,label:`بدون سطح`},...j.value.map(e=>({value:e.id,label:e.label}))]),We=l(()=>[{value:``,label:`بدون واسطه`},...M.value.filter(e=>e.id!==L.value).map(e=>({value:e.id,label:e.name+(e.agentCode?` (${e.agentCode})`:``)}))]),U=()=>({name:``,phone:``,nationalId:``,customerType:`wholesale`,companyName:``,isActive:!0,levelDefId:``,assignedAgentId:``,brandIds:[],appRole:`customer`,agentCode:``}),W=ee(U()),Ge=l(()=>I.value!==null),G=l(()=>I.value===`edit`?`ویرایش مشتری`:`افزودن مشتری`),K=l(()=>W.name.trim()&&W.phone.trim()&&W.nationalId.trim()),q=l(()=>{let e=P.value.trim();return e?_.value.filter(t=>t.name.includes(e)||t.phone.includes(e)||t.nationalId.includes(e)||t.companyName.includes(e)):_.value});function Ke(e,t){t?W.brandIds.includes(e)||W.brandIds.push(e):W.brandIds=W.brandIds.filter(t=>t!==e)}async function qe(){F.value=!0;try{_.value=await b.list()}catch(e){B.error(e instanceof h?e.message:`بارگذاری مشتریان انجام نشد.`)}finally{F.value=!1}}async function J(){try{let[e,t,n]=await Promise.all([ce.list(),b.list(void 0,`agent`),se.list()]);j.value=e,M.value=t,N.value=n}catch(e){B.error(e instanceof h?e.message:`بارگذاری اطلاعات کمکی انجام نشد.`)}}e(()=>{qe(),J()});function Y(){I.value=`add`,L.value=null,Object.assign(W,U()),R.value=``}function X(e){I.value=`edit`,L.value=e.id,W.name=e.name,W.phone=e.phone,W.nationalId=e.nationalId,W.customerType=e.customerType,W.companyName=e.companyName,W.isActive=e.isActive,W.levelDefId=e.levelDefId??``,W.assignedAgentId=e.assignedAgentId??``,W.brandIds=[...e.brandIds??[]],W.appRole=e.appRole===`agent`?`agent`:`customer`,W.agentCode=e.agentCode??``,R.value=``}function Z(){I.value=null,L.value=null,R.value=``}async function Q(){if(!K.value){R.value=`نام، تلفن و شناسه ملی الزامی هستند.`;return}z.value=!0;let e={name:W.name.trim(),phone:W.phone.trim(),nationalId:W.nationalId.trim(),customerType:W.customerType,isActive:W.isActive,levelDefId:W.levelDefId||null,assignedAgentId:W.assignedAgentId||null,brandIds:[...W.brandIds],appRole:W.appRole,agentCode:W.appRole===`agent`&&W.agentCode.trim()||null};try{if(I.value===`edit`&&L.value){let t=await b.update(L.value,e),n=_.value.findIndex(e=>e.id===L.value);n!==-1&&(_.value[n]={..._.value[n],...t})}else{let t=await b.create(e);_.value.unshift(t)}B.success(I.value===`edit`?`اطلاعات مشتری به‌روزرسانی شد.`:`مشتری جدید ثبت شد.`),Z(),e.appRole===`agent`&&J()}catch(e){B.error(e instanceof h?e.message:`ذخیره مشتری انجام نشد.`)}finally{z.value=!1}}async function $(e,t){await b.setActive(e,t)}function Je(){P.value=``}return(e,o)=>(i(),u(`div`,fe,[m(`div`,{class:`admin-page-header`},[o[11]||=m(`div`,null,[m(`h1`,{class:`admin-page-header__title`},`مشتریان`)],-1),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن مشتری `)]),m(`div`,pe,[s(re,{name:`search`,size:18}),r(m(`input`,{"onUpdate:modelValue":o[0]||=e=>P.value=e,type:`search`,class:`customers-page__search-input`,placeholder:`جستجو در نام، تلفن، شناسه ملی...`},null,512),[[y,P.value]])]),F.value?(i(),f(le,{key:0,variant:`table`})):q.value.length?(i(),u(`div`,me,[m(`div`,he,[m(`table`,ge,[o[12]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`نام مشتری`),m(`th`,null,`تلفن`),m(`th`,null,`شناسه ملی`),m(`th`,null,`نوع`),m(`th`,null,`سطح`),m(`th`,null,`واسطه`),m(`th`,null,`شرکت`),m(`th`,{class:`numeric`},`تعداد سفارش`),m(`th`,{class:`numeric`},`مجموع متراژ`),m(`th`,{class:`status`},`وضعیت`),m(`th`,null,`تاریخ ثبت`),m(`th`,{class:`actions`},`عملیات`)])],-1),m(`tbody`,null,[(i(!0),u(c,null,n(q.value,e=>(i(),u(`tr`,{key:e.id},[m(`td`,null,a(V(e.name)),1),m(`td`,null,a(V(e.phone)),1),m(`td`,null,a(V(e.nationalId)),1),m(`td`,null,a(V(g(S)[e.customerType])),1),m(`td`,null,a(V(e.levelLabel)),1),m(`td`,null,a(V(e.assignedAgentName)),1),m(`td`,null,a(V(e.companyName)),1),m(`td`,_e,a(V(e.orderCount)),1),m(`td`,ve,a(H(e.totalMeterage)),1),m(`td`,ye,[s(C,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`مشتری`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),m(`td`,null,a(V(g(oe)(e.registeredAt))),1),m(`td`,be,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,xe)])]))),128))])])])])):(i(),f(de,{key:1,class:`admin-card`,icon:`customers`,title:P.value.trim()?`نتیجه‌ای یافت نشد`:`مشتریان ثبت شده`,description:P.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین مشتری را ثبت کنید.`},{default:t(()=>[P.value.trim()?(i(),u(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Je},` پاک کردن جستجو `)):(i(),u(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` افزودن مشتری `))]),_:1},8,[`title`,`description`])),!F.value&&q.value.length?(i(),u(`div`,Se,[(i(!0),u(c,null,n(q.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,Ce,[m(`p`,w,a(V(e.name)),1),m(`div`,T,[s(C,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`مشتری`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`]),m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,E)])]),m(`div`,D,[m(`span`,null,a(V(e.phone)),1),m(`span`,null,a(V(g(S)[e.customerType])),1),m(`span`,null,a(V(e.levelLabel)),1),m(`span`,null,a(V(e.assignedAgentName)),1),m(`span`,null,a(V(e.companyName)),1),m(`span`,null,a(V(e.orderCount))+` سفارش · `+a(H(e.totalMeterage)),1)])]))),128))])):d(``,!0),s(ne,{open:Ge.value,title:G.value,size:`lg`,onClose:Z},{footer:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!K.value||z.value,onClick:Q},[z.value?(i(),u(`span`,Be)):d(``,!0),v(` `+a(I.value===`edit`?`ذخیره تغییرات`:`ثبت مشتری`),1)],8,ze)]),default:t(()=>[m(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[R.value?(i(),u(`p`,O,a(R.value),1)):d(``,!0),m(`div`,k,[o[13]||=m(`label`,{for:`customer-name`},[v(`نام مشتری `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`customer-name`,"onUpdate:modelValue":o[1]||=e=>W.name=e,type:`text`,class:`admin-input`},null,512),[[y,W.name]])]),m(`div`,A,[m(`div`,we,[o[14]||=m(`label`,{for:`customer-phone`},[v(`تلفن `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`customer-phone`,"onUpdate:modelValue":o[2]||=e=>W.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[y,W.phone]])]),m(`div`,Te,[o[15]||=m(`label`,{for:`customer-national-id`},[v(`شناسه ملی `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`customer-national-id`,"onUpdate:modelValue":o[3]||=e=>W.nationalId=e,type:`text`,class:`admin-input`,inputmode:`numeric`,dir:`ltr`},null,512),[[y,W.nationalId]])])]),m(`div`,Ee,[m(`div`,De,[o[16]||=m(`label`,null,`نوع مشتری`,-1),s(x,{modelValue:W.customerType,"onUpdate:modelValue":o[4]||=e=>W.customerType=e,block:``,"aria-label":`نوع مشتری`,options:Ve},null,8,[`modelValue`])]),m(`div`,Oe,[o[17]||=m(`label`,{for:`customer-company`},`شرکت مرتبط`,-1),r(m(`input`,{id:`customer-company`,"onUpdate:modelValue":o[5]||=e=>W.companyName=e,type:`text`,class:`admin-input`},null,512),[[y,W.companyName]])])]),m(`div`,ke,[m(`div`,Ae,[o[18]||=m(`label`,null,`سطح`,-1),s(x,{modelValue:W.levelDefId,"onUpdate:modelValue":o[6]||=e=>W.levelDefId=e,block:``,"aria-label":`سطح مشتری`,options:Ue.value},null,8,[`modelValue`,`options`])]),m(`div`,je,[o[19]||=m(`label`,null,`واسطه`,-1),s(x,{modelValue:W.assignedAgentId,"onUpdate:modelValue":o[7]||=e=>W.assignedAgentId=e,block:``,"aria-label":`واسطه اختصاص‌یافته`,options:We.value},null,8,[`modelValue`,`options`])])]),m(`div`,Me,[m(`div`,Ne,[o[20]||=m(`label`,null,`نقش در اپ`,-1),s(x,{modelValue:W.appRole,"onUpdate:modelValue":o[8]||=e=>W.appRole=e,block:``,"aria-label":`نقش در اپ`,options:He},null,8,[`modelValue`])]),W.appRole===`agent`?(i(),u(`div`,Pe,[o[21]||=m(`label`,{for:`customer-agent-code`},`کد واسطه`,-1),r(m(`input`,{id:`customer-agent-code`,"onUpdate:modelValue":o[9]||=e=>W.agentCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[y,W.agentCode]])])):d(``,!0)]),N.value.length?(i(),u(`div`,Fe,[o[22]||=m(`label`,null,`برندها`,-1),m(`div`,Ie,[(i(!0),u(c,null,n(N.value,e=>(i(),u(`label`,{key:e.id,class:`customers-page__brand`},[m(`input`,{type:`checkbox`,checked:W.brandIds.includes(e.id),onChange:t=>Ke(e.id,t.target.checked)},null,40,Le),m(`span`,null,a(e.name),1)]))),128))])])):d(``,!0),m(`div`,Re,[s(ue,{modelValue:W.isActive,"onUpdate:modelValue":o[10]||=e=>W.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-089d9237`]]);export{j as default}; \ No newline at end of file +import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as ee,f as l,g as u,h as d,m as f,nt as p,o as te,p as m,t as h,ut as g,x as _,y as v}from"./http-WTIyGIuL.js";import{L as ne,N as re,U as ie,V as y,a as ae,g as b,i as oe,u as se,v as ce}from"./index-mN60lSc2.js";import{t as le}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as ue}from"./BaseSwitch-gjOaAbzm.js";import{t as de}from"./BaseEmptyState-D5jlq4nS.js";import{t as x}from"./AdminSelect-Bw3z0TPQ.js";import{r as S}from"./adminLabels-Cz9ccm1Z.js";import{t as C}from"./ActiveSwitchCell-BaPmkdOq.js";var fe={class:`customers-page`},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={class:`numeric`},ve={class:`numeric`},ye={class:`status`},be={class:`actions`},xe=[`onClick`],Se={key:3,class:`compact-only admin-card-list`},Ce={class:`admin-card-item__header`},w={class:`admin-card-item__title`},T={class:`admin-card-item__header-actions`},E=[`onClick`],D={class:`admin-card-item__meta`},O={key:0,class:`admin-form__error`,role:`alert`},k={class:`admin-form__field`},A={class:`admin-form__row`},we={class:`admin-form__field`},Te={class:`admin-form__field`},Ee={class:`admin-form__row`},De={class:`admin-form__field`},Oe={class:`admin-form__field`},ke={class:`admin-form__row`},Ae={class:`admin-form__field`},je={class:`admin-form__field`},Me={class:`admin-form__row`},Ne={class:`admin-form__field`},Pe={key:0,class:`admin-form__field`},Fe={key:1,class:`admin-form__field`},Ie={class:`customers-page__brands`},Le=[`checked`,`onChange`],Re={class:`admin-form__field`},ze=[`disabled`],Be={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},j=te(_({__name:`CustomersView`,setup(te){let _=p([]),j=p([]),M=p([]),N=p([]),P=p(``),F=p(!0),I=p(null),L=p(null),R=p(``),z=p(!1),B=o();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)?`-`:ae(e)}let Ve=[{value:`wholesale`,label:`عمده‌فروش`},{value:`retail`,label:`خرده‌فروش`}],He=[{value:`customer`,label:`مشتری`},{value:`agent`,label:`واسطه`}],Ue=l(()=>[{value:``,label:`بدون سطح`},...j.value.map(e=>({value:e.id,label:e.label}))]),We=l(()=>[{value:``,label:`بدون واسطه`},...M.value.filter(e=>e.id!==L.value).map(e=>({value:e.id,label:e.name+(e.agentCode?` (${e.agentCode})`:``)}))]),U=()=>({name:``,phone:``,nationalId:``,customerType:`wholesale`,companyName:``,isActive:!0,levelDefId:``,assignedAgentId:``,brandIds:[],appRole:`customer`,agentCode:``}),W=ee(U()),Ge=l(()=>I.value!==null),G=l(()=>I.value===`edit`?`ویرایش مشتری`:`افزودن مشتری`),K=l(()=>W.name.trim()&&W.phone.trim()&&W.nationalId.trim()),q=l(()=>{let e=P.value.trim();return e?_.value.filter(t=>t.name.includes(e)||t.phone.includes(e)||t.nationalId.includes(e)||t.companyName.includes(e)):_.value});function Ke(e,t){t?W.brandIds.includes(e)||W.brandIds.push(e):W.brandIds=W.brandIds.filter(t=>t!==e)}async function qe(){F.value=!0;try{_.value=await b.list()}catch(e){B.error(e instanceof h?e.message:`بارگذاری مشتریان انجام نشد.`)}finally{F.value=!1}}async function J(){try{let[e,t,n]=await Promise.all([ce.list(),b.list(void 0,`agent`),se.list()]);j.value=e,M.value=t,N.value=n}catch(e){B.error(e instanceof h?e.message:`بارگذاری اطلاعات کمکی انجام نشد.`)}}e(()=>{qe(),J()});function Y(){I.value=`add`,L.value=null,Object.assign(W,U()),R.value=``}function X(e){I.value=`edit`,L.value=e.id,W.name=e.name,W.phone=e.phone,W.nationalId=e.nationalId,W.customerType=e.customerType,W.companyName=e.companyName,W.isActive=e.isActive,W.levelDefId=e.levelDefId??``,W.assignedAgentId=e.assignedAgentId??``,W.brandIds=[...e.brandIds??[]],W.appRole=e.appRole===`agent`?`agent`:`customer`,W.agentCode=e.agentCode??``,R.value=``}function Z(){I.value=null,L.value=null,R.value=``}async function Q(){if(!K.value){R.value=`نام، تلفن و شناسه ملی الزامی هستند.`;return}z.value=!0;let e={name:W.name.trim(),phone:W.phone.trim(),nationalId:W.nationalId.trim(),customerType:W.customerType,isActive:W.isActive,levelDefId:W.levelDefId||null,assignedAgentId:W.assignedAgentId||null,brandIds:[...W.brandIds],appRole:W.appRole,agentCode:W.appRole===`agent`&&W.agentCode.trim()||null};try{if(I.value===`edit`&&L.value){let t=await b.update(L.value,e),n=_.value.findIndex(e=>e.id===L.value);n!==-1&&(_.value[n]={..._.value[n],...t})}else{let t=await b.create(e);_.value.unshift(t)}B.success(I.value===`edit`?`اطلاعات مشتری به‌روزرسانی شد.`:`مشتری جدید ثبت شد.`),Z(),e.appRole===`agent`&&J()}catch(e){B.error(e instanceof h?e.message:`ذخیره مشتری انجام نشد.`)}finally{z.value=!1}}async function $(e,t){await b.setActive(e,t)}function Je(){P.value=``}return(e,o)=>(i(),u(`div`,fe,[m(`div`,{class:`admin-page-header`},[o[11]||=m(`div`,null,[m(`h1`,{class:`admin-page-header__title`},`مشتریان`)],-1),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن مشتری `)]),m(`div`,pe,[s(re,{name:`search`,size:18}),r(m(`input`,{"onUpdate:modelValue":o[0]||=e=>P.value=e,type:`search`,class:`customers-page__search-input`,placeholder:`جستجو در نام، تلفن، شناسه ملی...`},null,512),[[y,P.value]])]),F.value?(i(),f(le,{key:0,variant:`table`})):q.value.length?(i(),u(`div`,me,[m(`div`,he,[m(`table`,ge,[o[12]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`نام مشتری`),m(`th`,null,`تلفن`),m(`th`,null,`شناسه ملی`),m(`th`,null,`نوع`),m(`th`,null,`سطح`),m(`th`,null,`واسطه`),m(`th`,null,`شرکت`),m(`th`,{class:`numeric`},`تعداد سفارش`),m(`th`,{class:`numeric`},`مجموع متراژ`),m(`th`,{class:`status`},`وضعیت`),m(`th`,null,`تاریخ ثبت`),m(`th`,{class:`actions`},`عملیات`)])],-1),m(`tbody`,null,[(i(!0),u(c,null,n(q.value,e=>(i(),u(`tr`,{key:e.id},[m(`td`,null,a(V(e.name)),1),m(`td`,null,a(V(e.phone)),1),m(`td`,null,a(V(e.nationalId)),1),m(`td`,null,a(V(g(S)[e.customerType])),1),m(`td`,null,a(V(e.levelLabel)),1),m(`td`,null,a(V(e.assignedAgentName)),1),m(`td`,null,a(V(e.companyName)),1),m(`td`,_e,a(V(e.orderCount)),1),m(`td`,ve,a(H(e.totalMeterage)),1),m(`td`,ye,[s(C,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`مشتری`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),m(`td`,null,a(V(g(oe)(e.registeredAt))),1),m(`td`,be,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,xe)])]))),128))])])])])):(i(),f(de,{key:1,class:`admin-card`,icon:`customers`,title:P.value.trim()?`نتیجه‌ای یافت نشد`:`مشتریان ثبت شده`,description:P.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین مشتری را ثبت کنید.`},{default:t(()=>[P.value.trim()?(i(),u(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Je},` پاک کردن جستجو `)):(i(),u(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` افزودن مشتری `))]),_:1},8,[`title`,`description`])),!F.value&&q.value.length?(i(),u(`div`,Se,[(i(!0),u(c,null,n(q.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,Ce,[m(`p`,w,a(V(e.name)),1),m(`div`,T,[s(C,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`مشتری`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`]),m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,E)])]),m(`div`,D,[m(`span`,null,a(V(e.phone)),1),m(`span`,null,a(V(g(S)[e.customerType])),1),m(`span`,null,a(V(e.levelLabel)),1),m(`span`,null,a(V(e.assignedAgentName)),1),m(`span`,null,a(V(e.companyName)),1),m(`span`,null,a(V(e.orderCount))+` سفارش · `+a(H(e.totalMeterage)),1)])]))),128))])):d(``,!0),s(ne,{open:Ge.value,title:G.value,size:`lg`,onClose:Z},{footer:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!K.value||z.value,onClick:Q},[z.value?(i(),u(`span`,Be)):d(``,!0),v(` `+a(I.value===`edit`?`ذخیره تغییرات`:`ثبت مشتری`),1)],8,ze)]),default:t(()=>[m(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[R.value?(i(),u(`p`,O,a(R.value),1)):d(``,!0),m(`div`,k,[o[13]||=m(`label`,{for:`customer-name`},[v(`نام مشتری `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`customer-name`,"onUpdate:modelValue":o[1]||=e=>W.name=e,type:`text`,class:`admin-input`},null,512),[[y,W.name]])]),m(`div`,A,[m(`div`,we,[o[14]||=m(`label`,{for:`customer-phone`},[v(`تلفن `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`customer-phone`,"onUpdate:modelValue":o[2]||=e=>W.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[y,W.phone]])]),m(`div`,Te,[o[15]||=m(`label`,{for:`customer-national-id`},[v(`شناسه ملی `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`customer-national-id`,"onUpdate:modelValue":o[3]||=e=>W.nationalId=e,type:`text`,class:`admin-input`,inputmode:`numeric`,dir:`ltr`},null,512),[[y,W.nationalId]])])]),m(`div`,Ee,[m(`div`,De,[o[16]||=m(`label`,null,`نوع مشتری`,-1),s(x,{modelValue:W.customerType,"onUpdate:modelValue":o[4]||=e=>W.customerType=e,block:``,"aria-label":`نوع مشتری`,options:Ve},null,8,[`modelValue`])]),m(`div`,Oe,[o[17]||=m(`label`,{for:`customer-company`},`شرکت مرتبط`,-1),r(m(`input`,{id:`customer-company`,"onUpdate:modelValue":o[5]||=e=>W.companyName=e,type:`text`,class:`admin-input`},null,512),[[y,W.companyName]])])]),m(`div`,ke,[m(`div`,Ae,[o[18]||=m(`label`,null,`سطح`,-1),s(x,{modelValue:W.levelDefId,"onUpdate:modelValue":o[6]||=e=>W.levelDefId=e,block:``,"aria-label":`سطح مشتری`,options:Ue.value},null,8,[`modelValue`,`options`])]),m(`div`,je,[o[19]||=m(`label`,null,`واسطه`,-1),s(x,{modelValue:W.assignedAgentId,"onUpdate:modelValue":o[7]||=e=>W.assignedAgentId=e,block:``,"aria-label":`واسطه اختصاص‌یافته`,options:We.value},null,8,[`modelValue`,`options`])])]),m(`div`,Me,[m(`div`,Ne,[o[20]||=m(`label`,null,`نقش در اپ`,-1),s(x,{modelValue:W.appRole,"onUpdate:modelValue":o[8]||=e=>W.appRole=e,block:``,"aria-label":`نقش در اپ`,options:He},null,8,[`modelValue`])]),W.appRole===`agent`?(i(),u(`div`,Pe,[o[21]||=m(`label`,{for:`customer-agent-code`},`کد واسطه`,-1),r(m(`input`,{id:`customer-agent-code`,"onUpdate:modelValue":o[9]||=e=>W.agentCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[y,W.agentCode]])])):d(``,!0)]),N.value.length?(i(),u(`div`,Fe,[o[22]||=m(`label`,null,`برندها`,-1),m(`div`,Ie,[(i(!0),u(c,null,n(N.value,e=>(i(),u(`label`,{key:e.id,class:`customers-page__brand`},[m(`input`,{type:`checkbox`,checked:W.brandIds.includes(e.id),onChange:t=>Ke(e.id,t.target.checked)},null,40,Le),m(`span`,null,a(e.name),1)]))),128))])])):d(``,!0),m(`div`,Re,[s(ue,{modelValue:W.isActive,"onUpdate:modelValue":o[10]||=e=>W.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-089d9237`]]);export{j as default}; \ No newline at end of file diff --git a/dist/assets/DashboardView-DB8d_Lkp.js b/dist/assets/DashboardView-WAVxdnr5.js similarity index 98% rename from dist/assets/DashboardView-DB8d_Lkp.js rename to dist/assets/DashboardView-WAVxdnr5.js index 01be7cb..d5e2179 100644 --- a/dist/assets/DashboardView-DB8d_Lkp.js +++ b/dist/assets/DashboardView-WAVxdnr5.js @@ -1 +1 @@ -import{A as e,At as t,G as n,I as r,Mt as i,N as a,Nt as o,R as s,a as c,b as l,c as u,f as d,g as f,h as p,m,nt as h,o as g,p as _,t as v,ut as y,x as b,y as x}from"./http-WTIyGIuL.js";import{F as S,N as C,_ as w,i as T,n as E,o as D,y as O}from"./index-senPc5aL.js";import{t as k}from"./StatusBadge-C_awmXg1.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=g(b({__name:`SalesAreaChart`,props:{data:{},title:{},subtitle:{},height:{default:160},color:{default:`#0a353c`},unit:{default:`میلیارد تومان`},labels:{}},setup(e){let t=e,n=h(null),s={top:12,right:8,bottom:8,left:8},c=d(()=>Math.max(...t.data,.001)),l=d(()=>{let e=B-s.left-s.right,n=V-s.top-s.bottom,r=e/Math.max(t.data.length-1,1);return t.data.map((e,t)=>({x:s.left+t*r,y:s.top+n-e/c.value*n,value:e,index:t}))}),m=d(()=>l.value.map(e=>`${e.x},${e.y}`).join(` `)),g=d(()=>{let e=V-s.bottom,t=l.value[0],n=l.value[l.value.length-1];return!t||!n?``:`${t.x},${e} ${m.value} ${n.x},${e}`}),v=d(()=>{let e=V-s.top-s.bottom;return[0,.5,1].map(t=>s.top+e*t)}),b=d(()=>n.value===null?null:l.value[n.value]??null);function x(e){let t=e.currentTarget.getBoundingClientRect(),r=(e.clientX-t.left)/t.width*B,i=0,a=1/0;l.value.forEach(e=>{let t=Math.abs(e.x-r);t(a(),f(`div`,ee,[e.title||e.subtitle?(a(),f(`div`,A,[_(`div`,null,[e.title?(a(),f(`h3`,j,o(e.title),1)):p(``,!0),e.subtitle?(a(),f(`p`,M,o(e.subtitle),1)):p(``,!0)])])):p(``,!0),_(`div`,{class:`sales-chart__body`,style:i({height:`${e.height}px`})},[(a(),f(`svg`,{class:`sales-chart__svg`,viewBox:`0 0 ${B} ${V}`,preserveAspectRatio:`none`,role:`img`,"aria-label":e.title||`نمودار فروش`,onMousemove:x,onMouseleave:S},[(a(!0),f(u,null,r(v.value,(e,t)=>(a(),f(`line`,{key:t,x1:s.left,x2:B-s.right,y1:e,y2:e,class:`sales-chart__grid`},null,8,te))),128)),g.value?(a(),f(`polygon`,{key:0,points:g.value,class:`sales-chart__area`,style:i({fill:`${e.color}22`})},null,12,P)):p(``,!0),_(`polyline`,{points:m.value,class:`sales-chart__line`,style:i({stroke:e.color})},null,12,F),b.value?(a(),f(u,{key:1},[_(`line`,{x1:b.value.x,x2:b.value.x,y1:s.top,y2:V-s.bottom,class:`sales-chart__cursor`},null,8,I),_(`circle`,{cx:b.value.x,cy:b.value.y,r:`4`,class:`sales-chart__dot`,style:i({fill:e.color})},null,12,L)],64)):p(``,!0)],40,N)),b.value?(a(),f(`div`,{key:0,class:`sales-chart__tooltip`,style:i({left:`${b.value.x/B*100}%`})},[_(`span`,R,o(e.labels?.[b.value.index]??`روز ${b.value.index+1}`),1),_(`strong`,null,o(y(D)(b.value.value))+` `+o(e.unit),1)],4)):p(``,!0)],4),e.labels?.length?(a(),f(`div`,z,[(a(!0),f(u,null,r(e.labels,(e,t)=>(a(),f(`span`,{key:t},o(e),1))),128))])):p(``,!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 t=S(),n=c(),r=h(G()),i=h([]),a=h(Array.from({length:28},()=>0)),o=h([`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`]),s=h([]),l=h(!1),u=d(()=>[{label:`سفارش‌های جدید`,value:r.value.newOrders,icon:`cart`,tone:`info`,link:`/orders`},{label:`در انتظار بررسی`,value:r.value.pendingReview,icon:`file`,tone:`warning`,link:`/orders?tab=pending_review`},{label:`بررسی چک`,value:r.value.pendingCheck,icon:`wallet`,tone:`purple`,link:`/orders?tab=pending_check`},{label:`تأیید نهایی شده`,value:r.value.finalApproval,icon:`check-circle`,tone:`success`,link:`/orders?tab=final_approval`}]),f=d(()=>{let e=a.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 p(){l.value=!0;try{let e=await w.get();r.value=e.stats,i.value=(e.recentOrders??[]).map(e=>O(e)),a.value=e.salesChartData?.length?e.salesChartData:Array.from({length:28},()=>0),o.value=e.chartAxisLabels?.length?e.chartAxisLabels:[`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`],s.value=e.checkDeadlines??[]}catch(e){n.error(e instanceof v?e.message:`بارگذاری داشبورد انجام نشد.`)}finally{l.value=!1}}e(()=>{p()});function m(){t.push(`/orders`)}return{checkDeadlines:s,dashboardStats:r,recentOrders:i,chartPoints:f,salesChartData:a,chartAxisLabels:o,statCards:u,loading:l,goOrders:m,loadDashboard:p}}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=g(b({__name:`DesktopDashboard`,setup(e){let{checkDeadlines:c,dashboardStats:d,recentOrders:p,salesChartData:m,chartAxisLabels:h,goOrders:g,statCards:v}=K();return(e,b)=>{let S=s(`RouterLink`);return a(),f(`div`,q,[_(`div`,J,[_(`button`,Y,[l(C,{name:`calendar`,size:16}),b[1]||=x(` امروز `,-1)])]),_(`div`,X,[(a(!0),f(u,null,r(y(v),e=>(a(),f(`div`,{key:e.label,class:`admin-stat-card`},[_(`div`,{class:`admin-stat-card__icon`,style:i({background:y(U)[e.tone],color:y(W)[e.tone]})},[l(C,{name:e.icon,size:20},null,8,[`name`])],4),_(`p`,Z,o(e.label),1),_(`p`,Q,o(e.value),1),l(S,{to:e.link,class:`admin-stat-card__link`},{default:n(()=>[...b[2]||=[x(`مشاهده سفارش‌ها`,-1)]]),_:1},8,[`to`])]))),128)),_(`div`,ne,[_(`div`,re,[_(`div`,null,[b[3]||=_(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),_(`p`,ie,o(y(E)(y(d).todaySales)),1),_(`span`,ae,` +`+o(y(d).todaySalesGrowth)+`% نسبت به دیروز `,1)]),l(C,{name:`calendar`,size:20,class:`dashboard__sales-icon`})]),b[4]||=_(`svg`,{class:`dashboard__sparkline`,viewBox:`0 0 120 32`,preserveAspectRatio:`none`},[_(`polyline`,{fill:`none`,stroke:`#159660`,"stroke-width":`2`,points:`0,24 20,18 40,22 60,12 80,16 100,8 120,14`})],-1)])]),_(`div`,oe,[_(`div`,se,[l(H,{title:`فروش ماه جاری`,subtitle:y(E)(y(d).monthSales),data:y(m),labels:y(h),unit:`میلیارد`,height:168},null,8,[`subtitle`,`data`,`labels`])]),_(`div`,ce,[b[7]||=_(`div`,{class:`dashboard__card-header`},[_(`h2`,{class:`dashboard__card-title`},`سفارش‌های اخیر`)],-1),_(`div`,le,[_(`table`,ue,[b[5]||=_(`thead`,null,[_(`tr`,null,[_(`th`,null,`شماره سفارش`),_(`th`,null,`مشتری`),_(`th`,null,`شرکت`),_(`th`,null,`وضعیت`),_(`th`,null,`تاریخ ثبت`)])],-1),_(`tbody`,null,[(a(!0),f(u,null,r(y(p),e=>(a(),f(`tr`,{key:e.id},[_(`td`,null,o(e.orderNumber),1),_(`td`,null,o(e.customerName),1),_(`td`,null,o(e.companyName),1),_(`td`,null,[l(k,{status:e.status},null,8,[`status`])]),_(`td`,null,o(y(T)(e.createdAt)),1)]))),128))])])]),_(`div`,de,[_(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:b[0]||=(...e)=>y(g)&&y(g)(...e)},[b[6]||=x(` مشاهده همه سفارش‌ها `,-1),l(C,{name:`chevron-left`,size:16})])])]),_(`div`,fe,[b[9]||=_(`div`,{class:`dashboard__card-header`},[_(`h2`,{class:`dashboard__card-title`},`سررسید چک‌ها`)],-1),_(`ul`,pe,[(a(!0),f(u,null,r(y(c),e=>(a(),f(`li`,{key:e.id,class:`dashboard__deadline-item`},[_(`span`,{class:t([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},o(e.label),3),_(`span`,me,o(e.count)+` فقره`,1),_(`span`,he,o(y(E)(e.amount)),1)]))),128))]),_(`div`,ge,[l(S,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm`},{default:n(()=>[b[8]||=x(` مشاهده همه `,-1),l(C,{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=b({__name:`CompactDashboard`,setup(e){let{checkDeadlines:c,dashboardStats:d,recentOrders:p,salesChartData:h,chartAxisLabels:g,goOrders:v,statCards:b}=K();return(e,S)=>{let w=s(`RouterLink`);return a(),f(`div`,ve,[_(`div`,ye,[_(`button`,be,[l(C,{name:`calendar`,size:16}),S[1]||=x(` امروز `,-1)])]),_(`div`,xe,[(a(!0),f(u,null,r(y(b),e=>(a(),f(`div`,{key:e.label,class:`admin-stat-card`},[_(`div`,{class:`admin-stat-card__icon`,style:i({background:y(U)[e.tone],color:y(W)[e.tone]})},[l(C,{name:e.icon,size:20},null,8,[`name`])],4),_(`p`,Se,o(e.label),1),_(`p`,Ce,o(e.value),1),l(w,{to:e.link,class:`admin-stat-card__link`},{default:n(()=>[...S[2]||=[x(`مشاهده`,-1)]]),_:1},8,[`to`])]))),128)),_(`div`,we,[S[3]||=_(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),_(`p`,$,o(y(E)(y(d).todaySales)),1),_(`span`,Te,` +`+o(y(d).todaySalesGrowth)+`% نسبت به دیروز `,1)])]),_(`div`,Ee,[_(`section`,De,[l(H,{title:`فروش ماه جاری`,subtitle:y(E)(y(d).monthSales),data:y(h),labels:y(g),unit:`میلیارد`,height:140},null,8,[`subtitle`,`data`,`labels`])]),_(`section`,Oe,[S[5]||=_(`h2`,{class:`compact-section-card__title`},`سفارش‌های اخیر`,-1),_(`div`,ke,[(a(!0),f(u,null,r(y(p),e=>(a(),m(w,{key:e.id,to:`/orders`,class:`admin-card-item block no-underline text-inherit`},{default:n(()=>[_(`div`,Ae,[_(`p`,je,o(e.orderNumber),1),l(k,{status:e.status},null,8,[`status`])]),_(`div`,Me,[_(`span`,null,o(e.customerName),1),_(`span`,null,o(y(T)(e.createdAt)),1)])]),_:2},1024))),128))]),_(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm inline-flex mt-3`,onClick:S[0]||=(...e)=>y(v)&&y(v)(...e)},[S[4]||=x(` مشاهده همه سفارش‌ها `,-1),l(C,{name:`chevron-left`,size:16})])]),_(`section`,Ne,[S[7]||=_(`h2`,{class:`compact-section-card__title`},`سررسید چک‌ها`,-1),_(`ul`,Pe,[(a(!0),f(u,null,r(y(c),e=>(a(),f(`li`,{key:e.id,class:`flex flex-wrap items-center gap-2 text-sm`},[_(`span`,{class:t([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},o(e.label),3),_(`span`,null,o(e.count)+` فقره`,1),_(`strong`,Fe,o(y(E)(e.amount)),1)]))),128))]),l(w,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm inline-flex mt-3 no-underline`},{default:n(()=>[S[6]||=x(` مشاهده همه `,-1),l(C,{name:`chevron-left`,size:16})]),_:1})])])])}}}),Le=b({__name:`DashboardView`,setup(e){return(e,t)=>(a(),f(u,null,[l(_e,{class:`desktop-only`}),l(Ie,{class:`compact-only`})],64))}});export{Le as default}; \ No newline at end of file +import{A as e,At as t,G as n,I as r,Mt as i,N as a,Nt as o,R as s,a as c,b as l,c as u,f as d,g as f,h as p,m,nt as h,o as g,p as _,t as v,ut as y,x as b,y as x}from"./http-WTIyGIuL.js";import{F as S,N as C,_ as w,i as T,n as E,o as D,y as O}from"./index-mN60lSc2.js";import{t as k}from"./StatusBadge-C_awmXg1.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=g(b({__name:`SalesAreaChart`,props:{data:{},title:{},subtitle:{},height:{default:160},color:{default:`#0a353c`},unit:{default:`میلیارد تومان`},labels:{}},setup(e){let t=e,n=h(null),s={top:12,right:8,bottom:8,left:8},c=d(()=>Math.max(...t.data,.001)),l=d(()=>{let e=B-s.left-s.right,n=V-s.top-s.bottom,r=e/Math.max(t.data.length-1,1);return t.data.map((e,t)=>({x:s.left+t*r,y:s.top+n-e/c.value*n,value:e,index:t}))}),m=d(()=>l.value.map(e=>`${e.x},${e.y}`).join(` `)),g=d(()=>{let e=V-s.bottom,t=l.value[0],n=l.value[l.value.length-1];return!t||!n?``:`${t.x},${e} ${m.value} ${n.x},${e}`}),v=d(()=>{let e=V-s.top-s.bottom;return[0,.5,1].map(t=>s.top+e*t)}),b=d(()=>n.value===null?null:l.value[n.value]??null);function x(e){let t=e.currentTarget.getBoundingClientRect(),r=(e.clientX-t.left)/t.width*B,i=0,a=1/0;l.value.forEach(e=>{let t=Math.abs(e.x-r);t(a(),f(`div`,ee,[e.title||e.subtitle?(a(),f(`div`,A,[_(`div`,null,[e.title?(a(),f(`h3`,j,o(e.title),1)):p(``,!0),e.subtitle?(a(),f(`p`,M,o(e.subtitle),1)):p(``,!0)])])):p(``,!0),_(`div`,{class:`sales-chart__body`,style:i({height:`${e.height}px`})},[(a(),f(`svg`,{class:`sales-chart__svg`,viewBox:`0 0 ${B} ${V}`,preserveAspectRatio:`none`,role:`img`,"aria-label":e.title||`نمودار فروش`,onMousemove:x,onMouseleave:S},[(a(!0),f(u,null,r(v.value,(e,t)=>(a(),f(`line`,{key:t,x1:s.left,x2:B-s.right,y1:e,y2:e,class:`sales-chart__grid`},null,8,te))),128)),g.value?(a(),f(`polygon`,{key:0,points:g.value,class:`sales-chart__area`,style:i({fill:`${e.color}22`})},null,12,P)):p(``,!0),_(`polyline`,{points:m.value,class:`sales-chart__line`,style:i({stroke:e.color})},null,12,F),b.value?(a(),f(u,{key:1},[_(`line`,{x1:b.value.x,x2:b.value.x,y1:s.top,y2:V-s.bottom,class:`sales-chart__cursor`},null,8,I),_(`circle`,{cx:b.value.x,cy:b.value.y,r:`4`,class:`sales-chart__dot`,style:i({fill:e.color})},null,12,L)],64)):p(``,!0)],40,N)),b.value?(a(),f(`div`,{key:0,class:`sales-chart__tooltip`,style:i({left:`${b.value.x/B*100}%`})},[_(`span`,R,o(e.labels?.[b.value.index]??`روز ${b.value.index+1}`),1),_(`strong`,null,o(y(D)(b.value.value))+` `+o(e.unit),1)],4)):p(``,!0)],4),e.labels?.length?(a(),f(`div`,z,[(a(!0),f(u,null,r(e.labels,(e,t)=>(a(),f(`span`,{key:t},o(e),1))),128))])):p(``,!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 t=S(),n=c(),r=h(G()),i=h([]),a=h(Array.from({length:28},()=>0)),o=h([`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`]),s=h([]),l=h(!1),u=d(()=>[{label:`سفارش‌های جدید`,value:r.value.newOrders,icon:`cart`,tone:`info`,link:`/orders`},{label:`در انتظار بررسی`,value:r.value.pendingReview,icon:`file`,tone:`warning`,link:`/orders?tab=pending_review`},{label:`بررسی چک`,value:r.value.pendingCheck,icon:`wallet`,tone:`purple`,link:`/orders?tab=pending_check`},{label:`تأیید نهایی شده`,value:r.value.finalApproval,icon:`check-circle`,tone:`success`,link:`/orders?tab=final_approval`}]),f=d(()=>{let e=a.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 p(){l.value=!0;try{let e=await w.get();r.value=e.stats,i.value=(e.recentOrders??[]).map(e=>O(e)),a.value=e.salesChartData?.length?e.salesChartData:Array.from({length:28},()=>0),o.value=e.chartAxisLabels?.length?e.chartAxisLabels:[`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`],s.value=e.checkDeadlines??[]}catch(e){n.error(e instanceof v?e.message:`بارگذاری داشبورد انجام نشد.`)}finally{l.value=!1}}e(()=>{p()});function m(){t.push(`/orders`)}return{checkDeadlines:s,dashboardStats:r,recentOrders:i,chartPoints:f,salesChartData:a,chartAxisLabels:o,statCards:u,loading:l,goOrders:m,loadDashboard:p}}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=g(b({__name:`DesktopDashboard`,setup(e){let{checkDeadlines:c,dashboardStats:d,recentOrders:p,salesChartData:m,chartAxisLabels:h,goOrders:g,statCards:v}=K();return(e,b)=>{let S=s(`RouterLink`);return a(),f(`div`,q,[_(`div`,J,[_(`button`,Y,[l(C,{name:`calendar`,size:16}),b[1]||=x(` امروز `,-1)])]),_(`div`,X,[(a(!0),f(u,null,r(y(v),e=>(a(),f(`div`,{key:e.label,class:`admin-stat-card`},[_(`div`,{class:`admin-stat-card__icon`,style:i({background:y(U)[e.tone],color:y(W)[e.tone]})},[l(C,{name:e.icon,size:20},null,8,[`name`])],4),_(`p`,Z,o(e.label),1),_(`p`,Q,o(e.value),1),l(S,{to:e.link,class:`admin-stat-card__link`},{default:n(()=>[...b[2]||=[x(`مشاهده سفارش‌ها`,-1)]]),_:1},8,[`to`])]))),128)),_(`div`,ne,[_(`div`,re,[_(`div`,null,[b[3]||=_(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),_(`p`,ie,o(y(E)(y(d).todaySales)),1),_(`span`,ae,` +`+o(y(d).todaySalesGrowth)+`% نسبت به دیروز `,1)]),l(C,{name:`calendar`,size:20,class:`dashboard__sales-icon`})]),b[4]||=_(`svg`,{class:`dashboard__sparkline`,viewBox:`0 0 120 32`,preserveAspectRatio:`none`},[_(`polyline`,{fill:`none`,stroke:`#159660`,"stroke-width":`2`,points:`0,24 20,18 40,22 60,12 80,16 100,8 120,14`})],-1)])]),_(`div`,oe,[_(`div`,se,[l(H,{title:`فروش ماه جاری`,subtitle:y(E)(y(d).monthSales),data:y(m),labels:y(h),unit:`میلیارد`,height:168},null,8,[`subtitle`,`data`,`labels`])]),_(`div`,ce,[b[7]||=_(`div`,{class:`dashboard__card-header`},[_(`h2`,{class:`dashboard__card-title`},`سفارش‌های اخیر`)],-1),_(`div`,le,[_(`table`,ue,[b[5]||=_(`thead`,null,[_(`tr`,null,[_(`th`,null,`شماره سفارش`),_(`th`,null,`مشتری`),_(`th`,null,`شرکت`),_(`th`,null,`وضعیت`),_(`th`,null,`تاریخ ثبت`)])],-1),_(`tbody`,null,[(a(!0),f(u,null,r(y(p),e=>(a(),f(`tr`,{key:e.id},[_(`td`,null,o(e.orderNumber),1),_(`td`,null,o(e.customerName),1),_(`td`,null,o(e.companyName),1),_(`td`,null,[l(k,{status:e.status},null,8,[`status`])]),_(`td`,null,o(y(T)(e.createdAt)),1)]))),128))])])]),_(`div`,de,[_(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:b[0]||=(...e)=>y(g)&&y(g)(...e)},[b[6]||=x(` مشاهده همه سفارش‌ها `,-1),l(C,{name:`chevron-left`,size:16})])])]),_(`div`,fe,[b[9]||=_(`div`,{class:`dashboard__card-header`},[_(`h2`,{class:`dashboard__card-title`},`سررسید چک‌ها`)],-1),_(`ul`,pe,[(a(!0),f(u,null,r(y(c),e=>(a(),f(`li`,{key:e.id,class:`dashboard__deadline-item`},[_(`span`,{class:t([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},o(e.label),3),_(`span`,me,o(e.count)+` فقره`,1),_(`span`,he,o(y(E)(e.amount)),1)]))),128))]),_(`div`,ge,[l(S,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm`},{default:n(()=>[b[8]||=x(` مشاهده همه `,-1),l(C,{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=b({__name:`CompactDashboard`,setup(e){let{checkDeadlines:c,dashboardStats:d,recentOrders:p,salesChartData:h,chartAxisLabels:g,goOrders:v,statCards:b}=K();return(e,S)=>{let w=s(`RouterLink`);return a(),f(`div`,ve,[_(`div`,ye,[_(`button`,be,[l(C,{name:`calendar`,size:16}),S[1]||=x(` امروز `,-1)])]),_(`div`,xe,[(a(!0),f(u,null,r(y(b),e=>(a(),f(`div`,{key:e.label,class:`admin-stat-card`},[_(`div`,{class:`admin-stat-card__icon`,style:i({background:y(U)[e.tone],color:y(W)[e.tone]})},[l(C,{name:e.icon,size:20},null,8,[`name`])],4),_(`p`,Se,o(e.label),1),_(`p`,Ce,o(e.value),1),l(w,{to:e.link,class:`admin-stat-card__link`},{default:n(()=>[...S[2]||=[x(`مشاهده`,-1)]]),_:1},8,[`to`])]))),128)),_(`div`,we,[S[3]||=_(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),_(`p`,$,o(y(E)(y(d).todaySales)),1),_(`span`,Te,` +`+o(y(d).todaySalesGrowth)+`% نسبت به دیروز `,1)])]),_(`div`,Ee,[_(`section`,De,[l(H,{title:`فروش ماه جاری`,subtitle:y(E)(y(d).monthSales),data:y(h),labels:y(g),unit:`میلیارد`,height:140},null,8,[`subtitle`,`data`,`labels`])]),_(`section`,Oe,[S[5]||=_(`h2`,{class:`compact-section-card__title`},`سفارش‌های اخیر`,-1),_(`div`,ke,[(a(!0),f(u,null,r(y(p),e=>(a(),m(w,{key:e.id,to:`/orders`,class:`admin-card-item block no-underline text-inherit`},{default:n(()=>[_(`div`,Ae,[_(`p`,je,o(e.orderNumber),1),l(k,{status:e.status},null,8,[`status`])]),_(`div`,Me,[_(`span`,null,o(e.customerName),1),_(`span`,null,o(y(T)(e.createdAt)),1)])]),_:2},1024))),128))]),_(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm inline-flex mt-3`,onClick:S[0]||=(...e)=>y(v)&&y(v)(...e)},[S[4]||=x(` مشاهده همه سفارش‌ها `,-1),l(C,{name:`chevron-left`,size:16})])]),_(`section`,Ne,[S[7]||=_(`h2`,{class:`compact-section-card__title`},`سررسید چک‌ها`,-1),_(`ul`,Pe,[(a(!0),f(u,null,r(y(c),e=>(a(),f(`li`,{key:e.id,class:`flex flex-wrap items-center gap-2 text-sm`},[_(`span`,{class:t([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},o(e.label),3),_(`span`,null,o(e.count)+` فقره`,1),_(`strong`,Fe,o(y(E)(e.amount)),1)]))),128))]),l(w,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm inline-flex mt-3 no-underline`},{default:n(()=>[S[6]||=x(` مشاهده همه `,-1),l(C,{name:`chevron-left`,size:16})]),_:1})])])])}}}),Le=b({__name:`DashboardView`,setup(e){return(e,t)=>(a(),f(u,null,[l(_e,{class:`desktop-only`}),l(Ie,{class:`compact-only`})],64))}});export{Le as default}; \ No newline at end of file diff --git a/dist/assets/LevelsView-C9cD642-.js b/dist/assets/LevelsView-Dt4PYLXr.js similarity index 96% rename from dist/assets/LevelsView-C9cD642-.js rename to dist/assets/LevelsView-Dt4PYLXr.js index ac77d9b..c9942d4 100644 --- a/dist/assets/LevelsView-C9cD642-.js +++ b/dist/assets/LevelsView-Dt4PYLXr.js @@ -1,3 +1,3 @@ -import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as l,f as u,g as d,m as f,nt as p,o as m,p as h,t as g,x as _,y as v}from"./http-WTIyGIuL.js";import{L as y,V as b,v as x}from"./index-senPc5aL.js";import{t as S}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as C}from"./BaseEmptyState-P-TMfHGI.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=m(_({__name:`LevelsView`,setup(m){let _=p([]),N=p(!0),P=p(!1),F=p(null),I=o(),L=l({code:``,label:``,sortOrder:0,benefitsText:``}),R=u(()=>F.value?`ویرایش سطح`:`سطح جدید`);function z(e){return e.split(` +import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as l,f as u,g as d,m as f,nt as p,o as m,p as h,t as g,x as _,y as v}from"./http-WTIyGIuL.js";import{L as y,V as b,v as x}from"./index-mN60lSc2.js";import{t as S}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as C}from"./BaseEmptyState-D5jlq4nS.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=m(_({__name:`LevelsView`,setup(m){let _=p([]),N=p(!0),P=p(!1),F=p(null),I=o(),L=l({code:``,label:``,sortOrder:0,benefitsText:``}),R=u(()=>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{_.value=await x.list()}catch(e){I.error(e instanceof g?e.message:`بارگذاری سطوح ناموفق بود`)}finally{N.value=!1}}function V(){F.value=null,Object.assign(L,{code:``,label:``,sortOrder:_.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 g?e.message:`ذخیره ناموفق بود`)}}return e(()=>{B()}),(e,o)=>(i(),d(`div`,w,[h(`header`,{class:`admin-page__head`},[o[5]||=h(`div`,null,[h(`h1`,null,`سطوح و مزایای مشتری`),h(`p`,null,`تعریف Level داخلی CRM و مزایای هر سطح (نمایش فقط در ادمین)`)],-1),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`سطح جدید`)]),N.value?(i(),f(S,{key:0,variant:`table`})):_.value.length?(i(),d(`table`,T,[o[6]||=h(`thead`,null,[h(`tr`,null,[h(`th`,null,`کد`),h(`th`,null,`عنوان`),h(`th`,null,`مزایا`),h(`th`,null,`مشتریان`),h(`th`)])],-1),h(`tbody`,null,[(i(!0),d(c,null,n(_.value,e=>(i(),d(`tr`,{key:e.id},[h(`td`,E,a(e.code),1),h(`td`,null,a(e.label),1),h(`td`,null,a(e.benefits.map(e=>e.title).join(`، `)||`—`),1),h(`td`,null,a(e.customersCount),1),h(`td`,null,[h(`button`,{type:`button`,class:`link`,onClick:t=>H(e)},`ویرایش`,8,D)])]))),128))])])):(i(),f(C,{key:1,title:`سطحی تعریف نشده`})),s(y,{open:P.value,title:R.value,onClose:o[4]||=e=>P.value=!1},{footer:t(()=>[h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!L.code.trim()||!L.label.trim(),onClick:U},` ذخیره `,8,M)]),default:t(()=>[h(`label`,O,[o[7]||=v(`کد`,-1),r(h(`input`,{"onUpdate:modelValue":o[0]||=e=>L.code=e,class:`admin-input`,dir:`ltr`},null,512),[[b,L.code]])]),h(`label`,k,[o[8]||=v(`عنوان`,-1),r(h(`input`,{"onUpdate:modelValue":o[1]||=e=>L.label=e,class:`admin-input`},null,512),[[b,L.label]])]),h(`label`,A,[o[9]||=v(`ترتیب`,-1),r(h(`input`,{"onUpdate:modelValue":o[2]||=e=>L.sortOrder=e,type:`number`,class:`admin-input`},null,512),[[b,L.sortOrder,void 0,{number:!0}]])]),h(`label`,j,[o[10]||=v(` مزایا (هر خط یک مورد) `,-1),r(h(`textarea`,{"onUpdate:modelValue":o[3]||=e=>L.benefitsText=e,class:`admin-input`,rows:`4`},null,512),[[b,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-CG-fIPqO.js b/dist/assets/LoginView-Cwr3-bag.js similarity index 98% rename from dist/assets/LoginView-CG-fIPqO.js rename to dist/assets/LoginView-Cwr3-bag.js index 48297f5..a418268 100644 --- a/dist/assets/LoginView-CG-fIPqO.js +++ b/dist/assets/LoginView-Cwr3-bag.js @@ -1 +1 @@ -import{K as e,N as t,Nt as n,a as r,b as i,f as a,g as o,h as s,nt as c,o as l,p as u,ut as d,v as f,x as p,y as m}from"./http-WTIyGIuL.js";import{A as h,F as g,M as _,N as v,P as y,R as b,U as x,V as S,j as C,z as w}from"./index-senPc5aL.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=l(p({__name:`LoginView`,setup(l){let p=g(),W=y(),G=h(),K=r(),q=c(_()?C.phone:``),J=c(_()?C.password:``),Y=c(!0),X=c(!1),Z=_(),Q=a(()=>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:`/`;p.replace(e)}return(r,a)=>(t(),o(`div`,T,[u(`div`,E,[u(`div`,D,[u(`div`,O,[a[8]||=u(`h2`,{class:`login-page__title`},`ورود به پنل مدیریت`,-1),a[9]||=u(`p`,{class:`login-page__subtitle`},`برای ادامه، اطلاعات حساب کاربری خود را وارد کنید.`,-1),d(Z)?(t(),o(`p`,k,[a[6]||=m(` حالت موک فعال است — `,-1),u(`span`,A,n(d(C).phone),1),a[7]||=m(` / `,-1),u(`span`,j,n(d(C).password),1)])):s(``,!0)]),u(`form`,{class:`admin-form login-page__form`,onSubmit:x(ee,[`prevent`])},[d(G).error?(t(),o(`p`,M,n(d(G).error),1)):s(``,!0),u(`div`,N,[a[10]||=u(`label`,{for:`login-phone`},`شماره موبایل`,-1),u(`div`,P,[u(`span`,F,[i(v,{name:`phone`,size:18})]),e(u(`input`,{id:`login-phone`,"onUpdate:modelValue":a[0]||=e=>q.value=e,type:`tel`,class:`admin-input login-page__input`,placeholder:`۰۹۱۲۱۱۱۱۲۲۲۲`,autocomplete:`username`,inputmode:`tel`,dir:`ltr`,onInput:a[1]||=e=>d(G).clearError()},null,544),[[S,q.value]])])]),u(`div`,I,[a[11]||=u(`label`,{for:`login-password`},`رمز عبور`,-1),u(`div`,L,[u(`span`,R,[i(v,{name:`lock`,size:18})]),e(u(`input`,{id:`login-password`,"onUpdate:modelValue":a[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:a[3]||=e=>d(G).clearError()},null,40,z),[[w,J.value]]),u(`button`,{type:`button`,class:`login-page__toggle-password`,"aria-label":X.value?`پنهان کردن رمز`:`نمایش رمز`,onClick:a[4]||=e=>X.value=!X.value},[i(v,{name:X.value?`eye-off`:`eye`,size:18},null,8,[`name`])],8,B)])]),u(`label`,V,[e(u(`input`,{"onUpdate:modelValue":a[5]||=e=>Y.value=e,type:`checkbox`},null,512),[[b,Y.value]]),a[12]||=u(`span`,null,`مرا به خاطر بسپار`,-1)]),u(`button`,{type:`submit`,class:`admin-btn admin-btn--primary login-page__submit`,disabled:!Q.value||d(G).loading},[d(G).loading?(t(),o(`span`,U)):s(``,!0),a[13]||=m(` ورود به پنل `,-1)],8,H)],32)])]),a[14]||=f(``,1)]))}}),[[`__scopeId`,`data-v-3c4fbd85`]]);export{W as default}; \ No newline at end of file +import{K as e,N as t,Nt as n,a as r,b as i,f as a,g as o,h as s,nt as c,o as l,p as u,ut as d,v as f,x as p,y as m}from"./http-WTIyGIuL.js";import{A as h,F as g,M as _,N as v,P as y,R as b,U as x,V as S,j as C,z as w}from"./index-mN60lSc2.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=l(p({__name:`LoginView`,setup(l){let p=g(),W=y(),G=h(),K=r(),q=c(_()?C.phone:``),J=c(_()?C.password:``),Y=c(!0),X=c(!1),Z=_(),Q=a(()=>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:`/`;p.replace(e)}return(r,a)=>(t(),o(`div`,T,[u(`div`,E,[u(`div`,D,[u(`div`,O,[a[8]||=u(`h2`,{class:`login-page__title`},`ورود به پنل مدیریت`,-1),a[9]||=u(`p`,{class:`login-page__subtitle`},`برای ادامه، اطلاعات حساب کاربری خود را وارد کنید.`,-1),d(Z)?(t(),o(`p`,k,[a[6]||=m(` حالت موک فعال است — `,-1),u(`span`,A,n(d(C).phone),1),a[7]||=m(` / `,-1),u(`span`,j,n(d(C).password),1)])):s(``,!0)]),u(`form`,{class:`admin-form login-page__form`,onSubmit:x(ee,[`prevent`])},[d(G).error?(t(),o(`p`,M,n(d(G).error),1)):s(``,!0),u(`div`,N,[a[10]||=u(`label`,{for:`login-phone`},`شماره موبایل`,-1),u(`div`,P,[u(`span`,F,[i(v,{name:`phone`,size:18})]),e(u(`input`,{id:`login-phone`,"onUpdate:modelValue":a[0]||=e=>q.value=e,type:`tel`,class:`admin-input login-page__input`,placeholder:`۰۹۱۲۱۱۱۱۲۲۲۲`,autocomplete:`username`,inputmode:`tel`,dir:`ltr`,onInput:a[1]||=e=>d(G).clearError()},null,544),[[S,q.value]])])]),u(`div`,I,[a[11]||=u(`label`,{for:`login-password`},`رمز عبور`,-1),u(`div`,L,[u(`span`,R,[i(v,{name:`lock`,size:18})]),e(u(`input`,{id:`login-password`,"onUpdate:modelValue":a[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:a[3]||=e=>d(G).clearError()},null,40,z),[[w,J.value]]),u(`button`,{type:`button`,class:`login-page__toggle-password`,"aria-label":X.value?`پنهان کردن رمز`:`نمایش رمز`,onClick:a[4]||=e=>X.value=!X.value},[i(v,{name:X.value?`eye-off`:`eye`,size:18},null,8,[`name`])],8,B)])]),u(`label`,V,[e(u(`input`,{"onUpdate:modelValue":a[5]||=e=>Y.value=e,type:`checkbox`},null,512),[[b,Y.value]]),a[12]||=u(`span`,null,`مرا به خاطر بسپار`,-1)]),u(`button`,{type:`submit`,class:`admin-btn admin-btn--primary login-page__submit`,disabled:!Q.value||d(G).loading},[d(G).loading?(t(),o(`span`,U)):s(``,!0),a[13]||=m(` ورود به پنل `,-1)],8,H)],32)])]),a[14]||=f(``,1)]))}}),[[`__scopeId`,`data-v-3c4fbd85`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/OrderPricingView-D6ELkOQs.js b/dist/assets/OrderPricingView-DAA-KKtU.js similarity index 98% rename from dist/assets/OrderPricingView-D6ELkOQs.js rename to dist/assets/OrderPricingView-DAA-KKtU.js index c9d058d..2f61707 100644 --- a/dist/assets/OrderPricingView-D6ELkOQs.js +++ b/dist/assets/OrderPricingView-DAA-KKtU.js @@ -1 +1 @@ -import{A as e,G as t,I as n,K as r,N as i,Nt as a,U as o,a as ee,b as s,c,et as te,f as l,g as u,h as d,m as ne,nt as f,o as re,p,t as m,ut as h,x as g,y as _}from"./http-WTIyGIuL.js";import{F as ie,I as v,L as ae,N as y,P as oe,S as se,U as ce,V as b,n as x,o as S,x as C,y as le}from"./index-senPc5aL.js";import{t as ue}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as de}from"./AdminSelect-Bi0VQHva.js";import{r as fe}from"./orderStatus-CYVblRJB.js";import{t as pe}from"./StatusBadge-C_awmXg1.js";import{t as w}from"./AdminCurrencyInput-DEYWjQBL.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`],Xe={class:`pricing-page__invoice-hint`},D={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=re(g({__name:`OrderPricingView`,setup(re){let g=oe(),O=ie(),k=ee(),A=f(null),j=f([]),M=f(0),N=f(``),P=f(!1),F=f(``),I=f(!1),L=f(!1),R=f(!0),z=f([]),B=f([]),V=()=>({productId:``,requestedMeterage:50,confirmedMeterage:50}),H=te(V()),nt=l(()=>z.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),U=l(()=>H.productId.length>0&&H.requestedMeterage>0),W=l(()=>A.value?le(A.value):null),G=l(()=>A.value?!fe.includes(A.value.status):!1),K=l(()=>!!A.value?.finalAmount&&!G.value);async function rt(){R.value=!0;try{let e=await C.get(String(g.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 m?e.message:`بارگذاری سفارش انجام نشد.`)}finally{R.value=!1}}e(()=>{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 v({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))}o(()=>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 m?e.message:`ذخیره قیمت‌گذاری انجام نشد.`)}finally{I.value=!1}}}async function $(){if(A.value){if(!A.value.finalAmount){k.error(`ابتدا قیمت‌گذاری را ذخیره کنید تا مبلغ فاکتور مشخص شود.`);return}if(await v({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 m?e.message:`ارسال فاکتور انجام نشد.`)}finally{L.value=!1}}}}return(e,o)=>(i(),u(`div`,me,[p(`div`,he,[o[5]||=p(`div`,null,[p(`h1`,{class:`admin-page-header__title`},`قیمت‌گذاری سفارش`)],-1),p(`div`,ge,[p(`button`,{type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:I.value||R.value,onClick:Q},a(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,_e),p(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!K.value||L.value||I.value,onClick:$},a(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,ve),p(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:it},` بازگشت `)])]),R.value?(i(),ne(ue,{key:0,variant:`detail`})):W.value?(i(),u(c,{key:1},[p(`div`,ye,[p(`div`,be,[p(`div`,null,[p(`strong`,xe,a(W.value.orderNumber),1),p(`p`,Se,a(W.value.customerName),1),s(pe,{status:W.value.status},null,8,[`status`])])]),p(`div`,Ce,[p(`div`,we,[o[6]||=p(`p`,{class:`admin-summary-item__label`},`مجموع مبلغ`,-1),p(`p`,Te,a(W.value.totalAmount?h(x)(W.value.totalAmount):`—`),1)]),p(`div`,Ee,[o[7]||=p(`p`,{class:`admin-summary-item__label`},`هزینه حمل`,-1),p(`p`,De,a(h(x)(M.value)),1)]),p(`div`,T,[o[8]||=p(`p`,{class:`admin-summary-item__label`},`مبلغ نهایی`,-1),p(`p`,E,a(A.value?.finalAmount?h(x)(A.value.finalAmount):`—`),1)])])]),p(`div`,Oe,[p(`div`,ke,[p(`table`,Ae,[o[9]||=p(`thead`,null,[p(`tr`,null,[p(`th`,null,`ردیف`),p(`th`,null,`شرکت`),p(`th`,null,`کالیته`),p(`th`,null,`محصول`),p(`th`,null,`رنگ / نوع`),p(`th`,null,`متراژ درخواستی`),p(`th`,null,`متراژ تأیید شده`),p(`th`,null,`قیمت تأمینی (واحد)`),p(`th`,null,`مبلغ کل (تومان)`),p(`th`,null,`عملیات`)])],-1),p(`tbody`,null,[(i(!0),u(c,null,n(j.value,(e,t)=>(i(),u(`tr`,{key:e.id},[p(`td`,null,a(t+1),1),p(`td`,null,a(e.companyName||A.value?.companyName||`—`),1),p(`td`,null,a(e.catalogCode),1),p(`td`,null,a(e.productName),1),p(`td`,null,a(e.color),1),p(`td`,null,a(h(S)(e.requestedMeterage)),1),p(`td`,null,[r(p(`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}]])]),p(`td`,null,[s(w,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,"input-class":`admin-input admin-input--sm`,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),p(`td`,null,a(e.totalAmount?h(x)(e.totalAmount):`—`),1),p(`td`,null,[p(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Me)])]))),128))])])]),p(`button`,{type:`button`,class:`admin-btn admin-btn--ghost pricing-page__add-btn`,onClick:Y},[s(y,{name:`products`,size:16}),o[10]||=_(` افزودن محصول `,-1)])]),p(`div`,Ne,[(i(!0),u(c,null,n(j.value,(e,t)=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[p(`div`,Pe,[p(`p`,Fe,a(e.productName),1),p(`span`,Ie,`#`+a(t+1),1)]),p(`div`,Le,[e.companyName||A.value?.companyName?(i(),u(`span`,Re,a(e.companyName||A.value?.companyName),1)):d(``,!0),p(`span`,null,`کالیته `+a(e.catalogCode),1),p(`span`,null,a(e.color),1),p(`span`,null,`درخواست: `+a(h(S)(e.requestedMeterage))+` متر`,1)]),p(`div`,ze,[p(`label`,null,[o[11]||=_(` متراژ تأیید شده `,-1),r(p(`input`,{"onUpdate:modelValue":t=>e.confirmedMeterage=t,type:`number`,class:`admin-input`},null,8,Be),[[b,e.confirmedMeterage,void 0,{number:!0}]])]),p(`label`,null,[o[12]||=_(` قیمت تأمینی `,-1),s(w,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),e.totalAmount?(i(),u(`p`,Ve,` مبلغ کل: `+a(h(x)(e.totalAmount)),1)):d(``,!0)]),p(`div`,He,[p(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Ue)])]))),128)),p(`button`,{type:`button`,class:`admin-btn admin-btn--ghost`,onClick:Y},[s(y,{name:`products`,size:16}),o[13]||=_(` افزودن محصول `,-1)])]),p(`div`,We,[p(`div`,Ge,[o[14]||=p(`label`,null,`هزینه حمل (تومان)`,-1),s(w,{modelValue:M.value,"onUpdate:modelValue":o[0]||=e=>M.value=e,"allow-empty":!1},null,8,[`modelValue`])]),p(`div`,Ke,[o[15]||=p(`label`,null,`توضیحات برای مشتری`,-1),r(p(`textarea`,{"onUpdate:modelValue":o[1]||=e=>N.value=e,placeholder:`توضیحات خود را وارد کنید...`},null,512),[[b,N.value]])])]),p(`div`,qe,[p(`button`,{type:`button`,class:`admin-btn admin-btn--success`,disabled:I.value,onClick:Q},a(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,Je),p(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!K.value||L.value||I.value,onClick:$},a(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,Ye)]),p(`p`,Xe,[G.value?(i(),u(c,{key:0},[_(` فاکتور این سفارش برای مشتری ارسال شده است؛ انتخاب روش تسویه در اختیار اوست. `)],64)):K.value?(i(),u(c,{key:1},[_(` مبلغ نهایی آماده است. با ارسال فاکتور، مشتری برای انتخاب نقدی یا چک مطلع می‌شود. `)],64)):(i(),u(c,{key:2},[_(` ابتدا قیمت واحد اقلام و هزینه حمل را ذخیره کنید تا مبلغ نهایی فاکتور ساخته شود. `)],64))])],64)):d(``,!0),s(ae,{open:P.value,title:`افزودن محصول`,size:`lg`,onClose:X},{footer:t(()=>[p(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:X},` انصراف `),p(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!U.value,onClick:Z},` افزودن به سفارش `,8,tt)]),default:t(()=>[p(`form`,{class:`admin-form`,onSubmit:ce(Z,[`prevent`])},[F.value?(i(),u(`p`,D,a(F.value),1)):d(``,!0),p(`div`,Ze,[o[16]||=p(`label`,null,[_(`محصول `),p(`span`,{class:`admin-form__required`},`*`)],-1),s(de,{modelValue:H.productId,"onUpdate:modelValue":o[2]||=e=>H.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:nt.value},null,8,[`modelValue`,`options`])]),p(`div`,Qe,[p(`div`,$e,[o[17]||=p(`label`,{for:`requested-meterage`},[_(` متراژ درخواستی `),p(`span`,{class:`admin-form__required`},`*`)],-1),r(p(`input`,{id:`requested-meterage`,"onUpdate:modelValue":o[3]||=e=>H.requestedMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[b,H.requestedMeterage,void 0,{number:!0}]])]),p(`div`,et,[o[18]||=p(`label`,{for:`confirmed-meterage`},`متراژ تأیید شده`,-1),r(p(`input`,{id:`confirmed-meterage`,"onUpdate:modelValue":o[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 +import{A as e,G as t,I as n,K as r,N as i,Nt as a,U as o,a as ee,b as s,c,et as te,f as l,g as u,h as d,m as ne,nt as f,o as re,p,t as m,ut as h,x as g,y as _}from"./http-WTIyGIuL.js";import{F as ie,I as v,L as ae,N as y,P as oe,S as se,U as ce,V as b,n as x,o as S,x as C,y as le}from"./index-mN60lSc2.js";import{t as ue}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as de}from"./AdminSelect-Bw3z0TPQ.js";import{r as fe}from"./orderStatus-CYVblRJB.js";import{t as pe}from"./StatusBadge-C_awmXg1.js";import{t as w}from"./AdminCurrencyInput-Dej5qU24.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`],Xe={class:`pricing-page__invoice-hint`},D={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=re(g({__name:`OrderPricingView`,setup(re){let g=oe(),O=ie(),k=ee(),A=f(null),j=f([]),M=f(0),N=f(``),P=f(!1),F=f(``),I=f(!1),L=f(!1),R=f(!0),z=f([]),B=f([]),V=()=>({productId:``,requestedMeterage:50,confirmedMeterage:50}),H=te(V()),nt=l(()=>z.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),U=l(()=>H.productId.length>0&&H.requestedMeterage>0),W=l(()=>A.value?le(A.value):null),G=l(()=>A.value?!fe.includes(A.value.status):!1),K=l(()=>!!A.value?.finalAmount&&!G.value);async function rt(){R.value=!0;try{let e=await C.get(String(g.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 m?e.message:`بارگذاری سفارش انجام نشد.`)}finally{R.value=!1}}e(()=>{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 v({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))}o(()=>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 m?e.message:`ذخیره قیمت‌گذاری انجام نشد.`)}finally{I.value=!1}}}async function $(){if(A.value){if(!A.value.finalAmount){k.error(`ابتدا قیمت‌گذاری را ذخیره کنید تا مبلغ فاکتور مشخص شود.`);return}if(await v({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 m?e.message:`ارسال فاکتور انجام نشد.`)}finally{L.value=!1}}}}return(e,o)=>(i(),u(`div`,me,[p(`div`,he,[o[5]||=p(`div`,null,[p(`h1`,{class:`admin-page-header__title`},`قیمت‌گذاری سفارش`)],-1),p(`div`,ge,[p(`button`,{type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:I.value||R.value,onClick:Q},a(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,_e),p(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!K.value||L.value||I.value,onClick:$},a(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,ve),p(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:it},` بازگشت `)])]),R.value?(i(),ne(ue,{key:0,variant:`detail`})):W.value?(i(),u(c,{key:1},[p(`div`,ye,[p(`div`,be,[p(`div`,null,[p(`strong`,xe,a(W.value.orderNumber),1),p(`p`,Se,a(W.value.customerName),1),s(pe,{status:W.value.status},null,8,[`status`])])]),p(`div`,Ce,[p(`div`,we,[o[6]||=p(`p`,{class:`admin-summary-item__label`},`مجموع مبلغ`,-1),p(`p`,Te,a(W.value.totalAmount?h(x)(W.value.totalAmount):`—`),1)]),p(`div`,Ee,[o[7]||=p(`p`,{class:`admin-summary-item__label`},`هزینه حمل`,-1),p(`p`,De,a(h(x)(M.value)),1)]),p(`div`,T,[o[8]||=p(`p`,{class:`admin-summary-item__label`},`مبلغ نهایی`,-1),p(`p`,E,a(A.value?.finalAmount?h(x)(A.value.finalAmount):`—`),1)])])]),p(`div`,Oe,[p(`div`,ke,[p(`table`,Ae,[o[9]||=p(`thead`,null,[p(`tr`,null,[p(`th`,null,`ردیف`),p(`th`,null,`شرکت`),p(`th`,null,`کالیته`),p(`th`,null,`محصول`),p(`th`,null,`رنگ / نوع`),p(`th`,null,`متراژ درخواستی`),p(`th`,null,`متراژ تأیید شده`),p(`th`,null,`قیمت تأمینی (واحد)`),p(`th`,null,`مبلغ کل (تومان)`),p(`th`,null,`عملیات`)])],-1),p(`tbody`,null,[(i(!0),u(c,null,n(j.value,(e,t)=>(i(),u(`tr`,{key:e.id},[p(`td`,null,a(t+1),1),p(`td`,null,a(e.companyName||A.value?.companyName||`—`),1),p(`td`,null,a(e.catalogCode),1),p(`td`,null,a(e.productName),1),p(`td`,null,a(e.color),1),p(`td`,null,a(h(S)(e.requestedMeterage)),1),p(`td`,null,[r(p(`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}]])]),p(`td`,null,[s(w,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,"input-class":`admin-input admin-input--sm`,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),p(`td`,null,a(e.totalAmount?h(x)(e.totalAmount):`—`),1),p(`td`,null,[p(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Me)])]))),128))])])]),p(`button`,{type:`button`,class:`admin-btn admin-btn--ghost pricing-page__add-btn`,onClick:Y},[s(y,{name:`products`,size:16}),o[10]||=_(` افزودن محصول `,-1)])]),p(`div`,Ne,[(i(!0),u(c,null,n(j.value,(e,t)=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[p(`div`,Pe,[p(`p`,Fe,a(e.productName),1),p(`span`,Ie,`#`+a(t+1),1)]),p(`div`,Le,[e.companyName||A.value?.companyName?(i(),u(`span`,Re,a(e.companyName||A.value?.companyName),1)):d(``,!0),p(`span`,null,`کالیته `+a(e.catalogCode),1),p(`span`,null,a(e.color),1),p(`span`,null,`درخواست: `+a(h(S)(e.requestedMeterage))+` متر`,1)]),p(`div`,ze,[p(`label`,null,[o[11]||=_(` متراژ تأیید شده `,-1),r(p(`input`,{"onUpdate:modelValue":t=>e.confirmedMeterage=t,type:`number`,class:`admin-input`},null,8,Be),[[b,e.confirmedMeterage,void 0,{number:!0}]])]),p(`label`,null,[o[12]||=_(` قیمت تأمینی `,-1),s(w,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),e.totalAmount?(i(),u(`p`,Ve,` مبلغ کل: `+a(h(x)(e.totalAmount)),1)):d(``,!0)]),p(`div`,He,[p(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Ue)])]))),128)),p(`button`,{type:`button`,class:`admin-btn admin-btn--ghost`,onClick:Y},[s(y,{name:`products`,size:16}),o[13]||=_(` افزودن محصول `,-1)])]),p(`div`,We,[p(`div`,Ge,[o[14]||=p(`label`,null,`هزینه حمل (تومان)`,-1),s(w,{modelValue:M.value,"onUpdate:modelValue":o[0]||=e=>M.value=e,"allow-empty":!1},null,8,[`modelValue`])]),p(`div`,Ke,[o[15]||=p(`label`,null,`توضیحات برای مشتری`,-1),r(p(`textarea`,{"onUpdate:modelValue":o[1]||=e=>N.value=e,placeholder:`توضیحات خود را وارد کنید...`},null,512),[[b,N.value]])])]),p(`div`,qe,[p(`button`,{type:`button`,class:`admin-btn admin-btn--success`,disabled:I.value,onClick:Q},a(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,Je),p(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!K.value||L.value||I.value,onClick:$},a(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,Ye)]),p(`p`,Xe,[G.value?(i(),u(c,{key:0},[_(` فاکتور این سفارش برای مشتری ارسال شده است؛ انتخاب روش تسویه در اختیار اوست. `)],64)):K.value?(i(),u(c,{key:1},[_(` مبلغ نهایی آماده است. با ارسال فاکتور، مشتری برای انتخاب نقدی یا چک مطلع می‌شود. `)],64)):(i(),u(c,{key:2},[_(` ابتدا قیمت واحد اقلام و هزینه حمل را ذخیره کنید تا مبلغ نهایی فاکتور ساخته شود. `)],64))])],64)):d(``,!0),s(ae,{open:P.value,title:`افزودن محصول`,size:`lg`,onClose:X},{footer:t(()=>[p(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:X},` انصراف `),p(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!U.value,onClick:Z},` افزودن به سفارش `,8,tt)]),default:t(()=>[p(`form`,{class:`admin-form`,onSubmit:ce(Z,[`prevent`])},[F.value?(i(),u(`p`,D,a(F.value),1)):d(``,!0),p(`div`,Ze,[o[16]||=p(`label`,null,[_(`محصول `),p(`span`,{class:`admin-form__required`},`*`)],-1),s(de,{modelValue:H.productId,"onUpdate:modelValue":o[2]||=e=>H.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:nt.value},null,8,[`modelValue`,`options`])]),p(`div`,Qe,[p(`div`,$e,[o[17]||=p(`label`,{for:`requested-meterage`},[_(` متراژ درخواستی `),p(`span`,{class:`admin-form__required`},`*`)],-1),r(p(`input`,{id:`requested-meterage`,"onUpdate:modelValue":o[3]||=e=>H.requestedMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[b,H.requestedMeterage,void 0,{number:!0}]])]),p(`div`,et,[o[18]||=p(`label`,{for:`confirmed-meterage`},`متراژ تأیید شده`,-1),r(p(`input`,{id:`confirmed-meterage`,"onUpdate:modelValue":o[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-DEb47ybi.js b/dist/assets/OrdersView-syyGE4fv.js similarity index 99% rename from dist/assets/OrdersView-DEb47ybi.js rename to dist/assets/OrdersView-syyGE4fv.js index 77b3924..66fb567 100644 --- a/dist/assets/OrdersView-DEb47ybi.js +++ b/dist/assets/OrdersView-syyGE4fv.js @@ -1 +1 @@ -import{A as e,At as t,E as n,G as r,I as i,K as a,Mt as o,N as s,Nt as c,O as l,P as u,U as d,Z as f,a as ee,b as p,c as m,et as h,f as g,g as _,h as v,j as y,m as b,nt as x,o as S,p as C,t as w,u as T,ut as E,v as D,x as O,y as k}from"./http-WTIyGIuL.js";import{F as A,L as j,N as M,P as N,R as P,S as F,U as I,V as L,a as R,g as z,h as B,i as te,k as V,n as H,o as U,x as W,y as G}from"./index-senPc5aL.js";import{t as K}from"./AdminSelect-Bi0VQHva.js";import{r as q}from"./adminLabels-Cz9ccm1Z.js";import{c as J,i as Y,n as X,o as Z,s as Q,t as ne}from"./orderStatus-CYVblRJB.js";import{t as re}from"./StatusBadge-C_awmXg1.js";function ie(){let t=N(),n=A(),r=ee(),i=x([]),a=x([]),o=new Set(X.map(e=>e.key));function s(){let e=typeof t.query.tab==`string`?t.query.tab:``;return o.has(e)?e:`all`}let c=x([]),l=x(s()),u=x(``),f=x(``),p=x(!1),m=x(!1),_=x(!1),v=x(``),y=x(!1),b=()=>({customerId:``,customerName:``,customerPhone:``,items:[]}),S=h(b()),C=g(()=>S.customerId.length>0&&S.items.length>0),T=g(()=>{let e=[...a.value];return e.sort((e,t)=>Number(t.isActive)-Number(e.isActive)||e.name.localeCompare(t.name,`fa`)),e});function E(e){let t=a.value.find(t=>t.id===e);S.customerId=e,S.customerName=t?.name??``,S.customerPhone=t?.phone??``}async function D(){try{a.value=await z.list()}catch(e){r.error(e instanceof w?e.message:`بارگذاری مشتریان انجام نشد.`)}}let O=g(()=>{let e=c.value;if(l.value!==`all`&&(e=e.filter(e=>e.status===l.value)),f.value.trim()){let t=f.value.trim();e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t))}return e}),k=g(()=>c.value.find(e=>e.id===u.value)??null);function j(e){let t=e.trim();if(t)return c.value.find(e=>e.id===t||e.orderNumber.toUpperCase()===t.toUpperCase())}async function M(){let e=typeof t.query.order==`string`?t.query.order:``;if(!e||!c.value.length)return;let r=j(e);if(!r){f.value=e;return}let i=typeof t.query.focus==`string`?t.query.focus:``;if(i===`pricing`){await n.replace(`/orders/${r.id}/pricing`);return}if(i===`checks`){await n.replace(`/orders/${r.id}/checks`);return}I(r),f.value=r.orderNumber}async function P(){try{let[e,t,n]=await Promise.all([W.list(),B.list(),z.list()]);c.value=e.map(e=>G(e)),i.value=t,a.value=n,await M()}catch(e){r.error(e instanceof w?e.message:`بارگذاری سفارش‌ها انجام نشد.`)}}e(()=>{P()}),d(()=>[t.query.order,t.query.focus],()=>{M()}),d(()=>t.query.tab,()=>{let e=s();l.value!==e&&(l.value=e)}),d(l,e=>{let r=typeof t.query.tab==`string`?t.query.tab:`all`,i=e===`all`?void 0:e;(r===`all`?void 0:r)!==i&&n.replace({query:{...t.query,tab:i}})});function F(e,t=!1){u.value=e.id,t&&(m.value=!0)}function I(e){u.value=e.id,_.value=!0}function L(){m.value=!1}function R(){_.value=!1}function te(e){return e?e===`check`?`چکی`:`نقدی`:`انتخاب‌نشده`}let V=x(!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}),n=G(t),i=c.value.findIndex(t=>t.id===e.orderId);return i>=0&&(c.value[i]={...c.value[i],...n}),r.success(`وضعیت سفارش به «${J(e.status)}» تغییر کرد.`),n}catch(e){return r.error(e instanceof w?e.message:`تغییر وضعیت انجام نشد.`),null}finally{V.value=!1}}function U(e){n.push(`/orders/${e.id}/pricing`)}function K(e){n.push(`/orders/${e.id}/checks`)}function q(e){n.push({path:`/cash-payments`,query:{order:e.orderNumber}})}function Y(){Object.assign(S,b()),v.value=``,p.value=!0,D()}function Z(){p.value=!1,v.value=``}function Q(e){return S.items.some(t=>t.productId===e.productId)?(v.value=`این محصول قبلاً به سفارش اضافه شده است.`,!1):(S.items.push(e),v.value=``,!0)}function ne(e){S.items=S.items.filter(t=>t.productId!==e)}async function re(){if(!C.value){v.value=`انتخاب مشتری و حداقل یک محصول الزامی است.`;return}y.value=!0;try{let e=await W.create({customerId:S.customerId||void 0,userId:S.customerId||void 0,customerName:S.customerName.trim(),customerPhone:S.customerPhone.trim()||void 0,items:S.items.map(e=>({productId:e.productId,meterage:e.meterage}))}),t=G(e);c.value.unshift(t),u.value=t.id,r.success(`سفارش جدید ثبت شد.`),Z()}catch(e){r.error(e instanceof w?e.message:`ثبت سفارش انجام نشد.`)}finally{y.value=!1}}return{companies:i,customers:a,activeCustomers:T,applyCustomer:E,loadCustomers:D,orderList:c,activeTab:l,selectedOrderId:u,searchQuery:f,showAddModal:p,showDetailPanel:m,showDetailModal:_,formError:v,form:S,addFormItem:Q,removeFormItem:ne,isFormValid:C,filteredOrders:O,selectedOrder:k,selectOrder:F,openOrderDetail:I,closeDetailPanel:L,closeDetailModal:R,settlementLabel:te,changeStatus:H,statusSaving:V,goPricing:U,goChecks:K,goCashReceipt:q,openAddModal:Y,closeAddModal:Z,submitAddOrder:re,saving:y}}var ae=Symbol(`orders-page`);function oe(){let e=ie();return u(ae,e),e}function se(){let e=n(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=S(O({__name:`OrderDetailContent`,props:{order:{},settlementLabel:{},layout:{default:`compact`},statusSaving:{type:Boolean}},emits:[`pricing`,`checks`,`cashReceipt`,`finalApprove`,`status`],setup(e,{emit:n}){let r=e,o=n,l=x(!1),u=x(``),f=x(``),ee=Object.keys(Y),h=g(()=>r.order.allowedTransitions??[]),y=g(()=>l.value?ee.filter(e=>e!==r.order.rawStatus):[...h.value]),b=g(()=>[{value:``,label:`انتخاب کنید…`},...y.value.map(e=>({value:e,label:J(e)}))]),S=g(()=>l.value),w=g(()=>!!u.value&&(!S.value||f.value.trim().length>0)),T=g(()=>r.layout===`desktop`),D=g(()=>ne[r.order.status]?.label??r.order.status),O=g(()=>{let e=J(r.order.rawStatus);return!e||e===D.value?``:e}),k=g(()=>{let e=r.order.customerType;return e?q[e]??r.order.customerType??`—`:`—`}),A=g(()=>Q(r.order)),j=g(()=>Z(r.order)),N=g(()=>r.order.settlementMethod===`check`&&!A.value),F=g(()=>r.order.settlementMethod===`cash`&&!A.value&&r.order.rawStatus!==`cash_confirmed`),I=g(()=>A.value?`pricing`:j.value?`final`:N.value?`checks`:F.value?`cash`:null);d([()=>r.order.id,l],()=>{u.value=``,f.value=``});function z(){if(!u.value||!w.value)return;let e=f.value.trim()||void 0;o(`status`,{orderId:r.order.id,status:u.value,note:e,reason:l.value?e:void 0,force:l.value||void 0}),u.value=``,f.value=``}return(n,r)=>(s(),_(`div`,{class:t([`order-detail`,`order-detail--${e.layout}`])},[C(`header`,ce,[C(`div`,$,[C(`div`,le,[C(`strong`,null,c(e.order.orderNumber),1),p(re,{status:e.order.status},null,8,[`status`])]),O.value?(s(),_(`p`,ue,c(O.value),1)):v(``,!0)]),C(`div`,de,[A.value?(s(),_(`button`,{key:0,type:`button`,class:t([`admin-btn admin-btn--sm`,I.value===`pricing`?`admin-btn--primary`:`admin-btn--outline`]),onClick:r[0]||=e=>o(`pricing`)},` قیمت‌گذاری سفارش `,2)):v(``,!0),N.value?(s(),_(`button`,{key:1,type:`button`,class:t([`admin-btn admin-btn--sm`,I.value===`checks`?`admin-btn--primary`:`admin-btn--outline`]),onClick:r[1]||=e=>o(`checks`)},` مدیریت چک‌ها `,2)):v(``,!0),F.value?(s(),_(`button`,{key:2,type:`button`,class:t([`admin-btn admin-btn--sm`,I.value===`cash`?`admin-btn--primary`:`admin-btn--outline`]),onClick:r[2]||=e=>o(`cashReceipt`)},` رسید پرداخت `,2)):v(``,!0),j.value?(s(),_(`button`,{key:3,type:`button`,class:t([`admin-btn admin-btn--sm`,I.value===`final`?`admin-btn--primary`:`admin-btn--outline`]),disabled:e.statusSaving,onClick:r[3]||=e=>o(`finalApprove`)},` تأیید نهایی `,10,fe)):v(``,!0)])]),C(`div`,pe,[C(`section`,me,[r[11]||=C(`h3`,{class:`order-detail__section-title`},`اطلاعات مشتری`,-1),C(`div`,he,[C(`div`,ge,[p(M,{name:`building`,size:16}),r[7]||=C(`span`,{class:`order-detail__info-label`},`مشتری`,-1),C(`span`,_e,c(e.order.customerName),1)]),C(`div`,ve,[p(M,{name:`phone`,size:16}),r[8]||=C(`span`,{class:`order-detail__info-label`},`تلفن`,-1),C(`span`,ye,c(e.order.customerPhone??`—`),1)]),C(`div`,be,[p(M,{name:`id-card`,size:16}),r[9]||=C(`span`,{class:`order-detail__info-label`},`شناسه ملی`,-1),C(`span`,xe,c(e.order.customerNationalId??`—`),1)]),C(`div`,Se,[p(M,{name:`user`,size:16}),r[10]||=C(`span`,{class:`order-detail__info-label`},`نوع مشتری`,-1),C(`span`,Ce,c(k.value),1)])])]),C(`section`,we,[r[16]||=C(`h3`,{class:`order-detail__section-title`},`اطلاعات سفارش`,-1),C(`div`,Te,[C(`div`,Ee,[r[12]||=C(`span`,{class:`order-detail__info-label`},`شرکت`,-1),C(`span`,De,c(e.order.companyName),1)]),C(`div`,Oe,[r[13]||=C(`span`,{class:`order-detail__info-label`},`روش تسویه`,-1),C(`span`,ke,c(e.settlementLabel(e.order.settlementMethod)),1)]),C(`div`,Ae,[r[14]||=C(`span`,{class:`order-detail__info-label`},`متراژ کل`,-1),C(`span`,je,c(E(R)(e.order.meterage)),1)]),C(`div`,Me,[r[15]||=C(`span`,{class:`order-detail__info-label`},`مبلغ کل`,-1),C(`span`,Ne,c(e.order.totalAmount==null?`پس از قیمت‌گذاری`:E(H)(e.order.totalAmount)),1)])])])]),e.order.items?.length?(s(),_(`section`,Pe,[r[18]||=C(`h3`,{class:`order-detail__section-title`},`محصولات سفارش`,-1),T.value?(s(),_(`div`,Fe,[C(`table`,Ie,[r[17]||=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,`مبلغ`)])],-1),C(`tbody`,null,[(s(!0),_(m,null,i(e.order.items,t=>(s(),_(`tr`,{key:t.id},[C(`td`,null,c(t.companyName||e.order.companyName),1),C(`td`,null,c(t.catalogCode),1),C(`td`,null,c(t.productName),1),C(`td`,null,c(t.color),1),C(`td`,null,c(E(U)(t.confirmedMeterage??t.requestedMeterage)),1),C(`td`,null,c(t.supplyPrice==null?`—`:E(H)(t.supplyPrice)),1),C(`td`,null,c(t.totalAmount==null?`—`:E(H)(t.totalAmount)),1)]))),128))])])])):(s(),_(`ul`,Le,[(s(!0),_(m,null,i(e.order.items,e=>(s(),_(`li`,{key:e.id,class:`order-detail__item`},[C(`div`,Re,[C(`strong`,null,c(e.productName),1),C(`span`,null,c(e.catalogCode),1)]),C(`div`,ze,[e.companyName?(s(),_(`span`,Be,c(e.companyName),1)):v(``,!0),C(`span`,null,c(e.color),1),C(`span`,null,c(E(R)(e.confirmedMeterage??e.requestedMeterage)),1),e.supplyPrice==null?v(``,!0):(s(),_(`span`,Ve,c(E(H)(e.supplyPrice)),1)),e.totalAmount==null?v(``,!0):(s(),_(`span`,He,c(E(H)(e.totalAmount)),1))])]))),128))]))])):v(``,!0),C(`section`,Ue,[C(`div`,We,[r[20]||=C(`h3`,{class:`order-detail__section-title`},`تغییر وضعیت`,-1),C(`label`,Ge,[a(C(`input`,{"onUpdate:modelValue":r[4]||=e=>l.value=e,type:`checkbox`},null,512),[[P,l.value]]),r[19]||=C(`span`,null,`تغییر دستی`,-1)])]),l.value?(s(),_(`p`,Ke,` این گذر خارج از روال استاندارد است؛ ثبت یادداشت اجباری است. `)):y.value.length?v(``,!0):(s(),_(`p`,qe,` در این وضعیت گذر خودکاری وجود ندارد. برای تغییر، حالت دستی را فعال کنید. `)),y.value.length?(s(),_(`div`,Je,[C(`div`,Ye,[r[21]||=C(`label`,null,`وضعیت بعدی`,-1),p(K,{modelValue:u.value,"onUpdate:modelValue":r[5]||=e=>u.value=e,block:``,"aria-label":`وضعیت بعدی`,placeholder:`انتخاب کنید…`,options:b.value},null,8,[`modelValue`,`options`])]),C(`div`,Xe,[C(`label`,Ze,` یادداشت`+c(S.value?` (اجباری)`:` (اختیاری)`),1),a(C(`input`,{id:`status-note`,"onUpdate:modelValue":r[6]||=e=>f.value=e,type:`text`,class:`admin-input`,placeholder:`دلیل یا توضیح این تغییر`},null,512),[[L,f.value]])]),C(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!w.value||e.statusSaving,onClick:z},c(e.statusSaving?`در حال ثبت…`:`ثبت وضعیت`),9,Qe)])):v(``,!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=S(O({__name:`DesktopOrdersPage`,setup(n){let u=V(`(min-width: 1280px)`),{activeTab:d,selectedOrderId:ee,searchQuery:h,filteredOrders:g,selectedOrder:S,showDetailModal:w,openOrderDetail:O,closeDetailModal:A,settlementLabel:N,goPricing:P,goChecks:F,goCashReceipt:z,changeStatus:B,statusSaving:U,openAddModal:W}=se(),G=x(null),K=x({});function q(){G.value=null}async function J(e,t){if(t.stopPropagation(),G.value?.id===e.id){q();return}let n=t.currentTarget.getBoundingClientRect();G.value=e,await l();let r=Math.min(Math.max(8,n.right-168),window.innerWidth-168-8);K.value={position:`fixed`,top:`${n.bottom+4}px`,left:`${r}px`,width:`168px`}}function Y(){q()}e(()=>{document.addEventListener(`click`,Y),window.addEventListener(`scroll`,q,!0),window.addEventListener(`resize`,q)}),y(()=>{document.removeEventListener(`click`,Y),window.removeEventListener(`scroll`,q,!0),window.removeEventListener(`resize`,q)});function ne(){S.value&&(A(),P(S.value))}function ie(){S.value&&(A(),F(S.value))}function ae(){S.value&&(A(),z(S.value))}function oe(){S.value&&B({orderId:S.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}function ce(){if(!S.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=G.value;if(t){if(q(),e===`detail`){O(t);return}if(e===`pricing`){P(t);return}if(e===`checks`){F(t);return}if(e===`final`){B({orderId:t.id,status:`final_approved`,note:`تأیید نهایی سفارش`});return}z(t)}}return(e,n)=>(s(),_(`div`,et,[C(`div`,tt,[C(`div`,nt,[n[9]||=C(`div`,null,[C(`h2`,{class:`orders-page__list-title`},`سفارش‌ها`)],-1),C(`div`,rt,[C(`button`,it,[p(M,{name:`filter`,size:16}),n[8]||=k(` فیلتر `,-1)]),C(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:n[0]||=(...e)=>E(W)&&E(W)(...e)},` سفارش جدید `)])]),C(`div`,at,[p(M,{name:`search`,size:18}),a(C(`input`,{"onUpdate:modelValue":n[1]||=e=>f(h)?h.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[L,E(h)]])]),C(`div`,ot,[(s(!0),_(m,null,i(E(X),e=>(s(),_(`button`,{key:e.key,type:`button`,class:t([`admin-tab`,{active:E(d)===e.key}]),onClick:t=>d.value=e.key},[k(c(e.label)+` `,1),`count`in e&&e.count?(s(),_(m,{key:0},[k(` (`+c(e.count)+`)`,1)],64)):v(``,!0)],10,st))),128))]),C(`div`,ct,[C(`table`,lt,[n[10]||=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,`عملیات`)])],-1),C(`tbody`,null,[(s(!0),_(m,null,i(E(g),e=>(s(),_(`tr`,{key:e.id,class:t({"is-selected":E(ee)===e.id}),onClick:t=>E(O)(e)},[C(`td`,null,c(e.orderNumber),1),C(`td`,null,c(e.customerName),1),C(`td`,null,c(E(N)(e.settlementMethod)),1),C(`td`,null,c(e.totalAmount?E(H)(e.totalAmount):`—`),1),C(`td`,null,c(E(R)(e.meterage)),1),C(`td`,null,[p(re,{status:e.status},null,8,[`status`])]),C(`td`,null,c(E(te)(e.createdAt)),1),C(`td`,dt,[C(`button`,{type:`button`,class:`orders-page__more-btn`,"aria-expanded":G.value?.id===e.id,"aria-haspopup":`menu`,"aria-label":`عملیات سفارش`,onClick:t=>J(e,t)},[p(M,{name:`more`,size:18})],8,ft)])],10,ut))),128))])])]),n[11]||=D(`
نمایش ۱ تا ۷ از ۱۰۳ سفارش
...
`,1)]),(s(),b(T,{to:`body`},[G.value?(s(),_(`div`,{key:0,class:`orders-page__menu`,role:`menu`,style:o(K.value),onClick:n[7]||=I(()=>{},[`stop`])},[C(`button`,{type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:n[2]||=e=>$(`detail`)},` جزئیات سفارش `),G.value&&E(Q)(G.value)?(s(),_(`button`,{key:0,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:n[3]||=e=>$(`pricing`)},` قیمت‌گذاری `)):v(``,!0),G.value.settlementMethod===`check`?(s(),_(`button`,{key:1,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:n[4]||=e=>$(`checks`)},` مدیریت چک‌ها `)):v(``,!0),G.value.settlementMethod===`cash`&&G.value.rawStatus!==`cash_confirmed`?(s(),_(`button`,{key:2,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:n[5]||=e=>$(`cash`)},` رسید پرداخت `)):v(``,!0),E(Z)(G.value)?(s(),_(`button`,{key:3,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:n[6]||=e=>$(`final`)},` تأیید نهایی `)):v(``,!0)],4)):v(``,!0)])),p(j,{open:E(u)&&E(w)&&!!E(S),title:`جزئیات سفارش`,size:`xl`,onClose:E(A)},{footer:r(()=>[C(`button`,pt,[p(M,{name:`sms`,size:16}),n[12]||=k(` ارسال پیامک `,-1)]),C(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ce},[p(M,{name:`print`,size:16}),n[13]||=k(` چاپ `,-1)])]),default:r(()=>[E(S)?(s(),b($e,{key:0,order:E(S),layout:`desktop`,"settlement-label":E(N),"status-saving":E(U),onPricing:ne,onChecks:ie,onCashReceipt:ae,onFinalApprove:oe,onStatus:E(B)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):v(``,!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=S(O({__name:`CompactOrdersPage`,setup(e){let n=V(`(max-width: 767px)`),o=V(`(max-width: 1279px)`),{activeTab:l,selectedOrderId:u,searchQuery:d,filteredOrders:ee,selectedOrder:h,showDetailPanel:y,showDetailModal:S,selectOrder:w,openOrderDetail:T,closeDetailPanel:D,closeDetailModal:O,settlementLabel:A,goPricing:N,goChecks:P,goCashReceipt:F,changeStatus:I,statusSaving:z,openAddModal:B}=se(),U=x(!1),W=g(()=>l.value!==`all`),G=g(()=>X.find(e=>e.key===l.value)?.label??`همه`);function K(){U.value=!0}function q(){U.value=!1}function J(){l.value=`all`,U.value=!1}function Y(e){l.value=e,U.value=!1}function Z(e){if(n.value){w(e,!0);return}T(e)}function Q(){h.value&&(O(),D(),N(h.value))}function ne(){h.value&&(O(),D(),P(h.value))}function ie(){h.value&&(O(),D(),F(h.value))}function ae(){h.value&&I({orderId:h.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}return(e,g)=>(s(),_(`div`,ht,[C(`div`,gt,[C(`div`,_t,[g[4]||=C(`div`,null,[C(`h2`,{class:`compact-page-header__title`},`سفارش‌ها`)],-1),C(`div`,vt,[C(`button`,{type:`button`,class:t([`admin-btn admin-btn--outline admin-btn--sm`,{"admin-btn--filter-active":W.value}]),onClick:K},[p(M,{name:`filter`,size:16}),g[3]||=k(` فیلتر `,-1),W.value?(s(),_(`span`,yt)):v(``,!0)],2),C(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:g[0]||=(...e)=>E(B)&&E(B)(...e)},` سفارش جدید `)])])]),C(`div`,bt,[p(M,{name:`search`,size:18}),a(C(`input`,{"onUpdate:modelValue":g[1]||=e=>f(d)?d.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[L,E(d)]])]),E(n)&&W.value?(s(),_(`div`,xt,[C(`span`,null,`وضعیت: `+c(G.value),1),C(`button`,{type:`button`,class:`compact-orders__filter-clear`,onClick:J},`پاک کردن`)])):v(``,!0),E(n)?v(``,!0):(s(),_(`div`,St,[(s(!0),_(m,null,i(E(X),e=>(s(),_(`button`,{key:e.key,type:`button`,class:t([`admin-tab`,{active:E(l)===e.key}]),onClick:t=>l.value=e.key},[k(c(e.label)+` `,1),`count`in e&&e.count?(s(),_(m,{key:0},[k(` (`+c(e.count)+`)`,1)],64)):v(``,!0)],10,Ct))),128))])),p(j,{open:U.value,title:`فیلتر سفارش‌ها`,onClose:q},{footer:r(()=>[C(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:J},` پاک کردن `),C(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` بستن `)]),default:r(()=>[C(`div`,wt,[(s(!0),_(m,null,i(E(X),e=>(s(),_(`button`,{key:e.key,type:`button`,class:t([`compact-orders__filter-option`,{"is-active":E(l)===e.key}]),role:`option`,"aria-selected":E(l)===e.key,onClick:t=>Y(e.key)},[C(`span`,null,c(e.label),1),E(l)===e.key?(s(),_(`span`,Et,`✓`)):v(``,!0)],10,Tt))),128))])]),_:1},8,[`open`]),C(`div`,Dt,[(s(!0),_(m,null,i(E(ee),e=>(s(),_(`button`,{key:e.id,type:`button`,class:t([`admin-card-item`,{selected:E(u)===e.id}]),onClick:t=>Z(e)},[C(`div`,kt,[C(`p`,At,c(e.orderNumber),1),p(re,{status:e.status},null,8,[`status`])]),C(`div`,jt,[C(`span`,null,[g[5]||=C(`strong`,null,`مشتری:`,-1),k(` `+c(e.customerName),1)]),C(`span`,null,[g[6]||=C(`strong`,null,`متراژ:`,-1),k(` `+c(E(R)(e.meterage)),1)]),C(`span`,null,[g[7]||=C(`strong`,null,`مبلغ:`,-1),k(` `+c(e.totalAmount?E(H)(e.totalAmount):`—`),1)]),C(`span`,null,c(E(te)(e.createdAt)),1)])],10,Ot))),128))]),C(`div`,{class:t([`admin-detail-panel compact-orders__mobile-panel`,{open:E(n)&&E(y)&&E(h)}])},[E(h)?(s(),_(`div`,Mt,[C(`div`,Nt,[C(`button`,{type:`button`,class:`admin-detail-panel__back`,"aria-label":`بازگشت به لیست`,onClick:g[2]||=(...e)=>E(D)&&E(D)(...e)},[p(M,{name:`chevron-back`,size:20})]),g[8]||=C(`h2`,{class:`admin-detail-panel__title`},`جزئیات سفارش`,-1)]),C(`div`,Pt,[p($e,{order:E(h),"settlement-label":E(A),"status-saving":E(z),onPricing:Q,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:E(I)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])])])):v(``,!0)],2),p(j,{open:E(o)&&!E(n)&&E(S)&&!!E(h),title:`جزئیات سفارش`,size:`xl`,onClose:E(O)},{default:r(()=>[E(h)?(s(),b($e,{key:0,order:E(h),"settlement-label":E(A),"status-saving":E(z),onPricing:Q,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:E(I)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):v(``,!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=S(O({__name:`OrderAddModal`,setup(e){let{showAddModal:t,formError:n,form:o,isFormValid:l,activeCustomers:u,applyCustomer:f,addFormItem:y,removeFormItem:S,closeAddModal:T,submitAddOrder:D}=se(),O=ee(),A=x([]),M=h({productId:``,meterage:0}),N=g(()=>u.value.map(e=>{let t=e.phone?` — ${e.phone}`:``,n=e.isActive===!1?` (غیرفعال)`:``;return{value:e.id,label:`${e.name}${t}${n}`}})),P=g(()=>A.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),R=g(()=>A.value.find(e=>e.id===M.productId)??null);d(()=>o.customerId,e=>{if(!e){o.customerName=``,o.customerPhone=``;return}f(e)}),d(t,async e=>{if(e){M.productId=``,M.meterage=0;try{A.value=await F.list({activeOnly:!0})}catch(e){O.error(e instanceof w?e.message:`بارگذاری محصولات انجام نشد.`)}}}),d(()=>M.productId,e=>{let t=A.value.find(t=>t.id===e);t&&(M.meterage=t.rollMeters||t.minMeterage||t.orderStep||50)});function z(){let e=R.value;if(!e){n.value=`محصول را انتخاب کنید.`;return}if(!M.meterage||M.meterage<=0){n.value=`متراژ باید بزرگ‌تر از صفر باشد.`;return}y({productId:e.id,productName:e.name,catalogCode:e.catalogCode,meterage:M.meterage}),M.productId=``,M.meterage=0}return(e,u)=>(s(),b(j,{open:E(t),title:`پیش‌سفارش جدید`,size:`lg`,onClose:E(T)},{footer:r(()=>[C(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:u[4]||=(...e)=>E(T)&&E(T)(...e)},` انصراف `),C(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!E(l),onClick:u[5]||=(...e)=>E(D)&&E(D)(...e)},` ثبت پیش‌سفارش `,8,Gt)]),default:r(()=>[C(`form`,{class:`admin-form`,onSubmit:u[3]||=I((...e)=>E(D)&&E(D)(...e),[`prevent`])},[E(n)?(s(),_(`p`,It,c(E(n)),1)):v(``,!0),u[9]||=C(`p`,{class:`admin-form__hint`},` مثل سفارش مشتری: ابتدا اقلام ثبت می‌شود، قیمت‌گذاری و تسویه بعداً انجام می‌شود. `,-1),C(`div`,Lt,[u[6]||=C(`label`,{id:`order-customer-label`},[k(` مشتری `),C(`span`,{class:`admin-form__required`},`*`)],-1),p(K,{id:`order-customer`,modelValue:E(o).customerId,"onUpdate:modelValue":u[0]||=e=>E(o).customerId=e,block:``,searchable:``,"aria-label":`انتخاب مشتری از لیست`,placeholder:`انتخاب مشتری از لیست`,"search-placeholder":`جستجوی نام یا موبایل…`,options:N.value},null,8,[`modelValue`,`options`]),N.value.length?v(``,!0):(s(),_(`p`,Rt,` مشتری‌ای در سیستم نیست. ابتدا از بخش «مشتریان» یک مشتری ثبت کنید. `))]),C(`div`,zt,[C(`div`,Bt,[u[7]||=C(`label`,null,`محصول`,-1),p(K,{modelValue:M.productId,"onUpdate:modelValue":u[1]||=e=>M.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:P.value},null,8,[`modelValue`,`options`])]),C(`div`,Vt,[u[8]||=C(`label`,{for:`order-item-meterage`},`متراژ (متر)`,-1),a(C(`input`,{id:`order-item-meterage`,"onUpdate:modelValue":u[2]||=e=>M.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[L,M.meterage,void 0,{number:!0}]])])]),C(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:z},` افزودن به اقلام `),E(o).items.length?(s(),_(`div`,Ht,[(s(!0),_(m,null,i(E(o).items,e=>(s(),_(`div`,{key:e.productId,class:`order-add__item`},[C(`div`,null,[C(`strong`,null,c(e.productName),1),C(`span`,null,`کالیته `+c(e.catalogCode)+` — `+c(E(U)(e.meterage))+` متر`,1)]),C(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>E(S)(e.productId)},` حذف `,8,Ut)]))),128))])):(s(),_(`p`,Wt,`هنوز محصولی به پیش‌سفارش اضافه نشده است.`))],32)]),_:1},8,[`open`,`onClose`]))}}),[[`__scopeId`,`data-v-291a46f0`]]),qt=O({__name:`OrdersView`,setup(e){return oe(),(e,t)=>(s(),_(m,null,[p(mt,{class:`desktop-only`}),p(Ft,{class:`compact-only`}),p(Kt)],64))}});export{qt as default}; \ No newline at end of file +import{A as e,At as t,E as n,G as r,I as i,K as a,Mt as o,N as s,Nt as c,O as l,P as u,U as d,Z as f,a as ee,b as p,c as m,et as h,f as g,g as _,h as v,j as y,m as b,nt as x,o as S,p as C,t as w,u as T,ut as E,v as D,x as O,y as k}from"./http-WTIyGIuL.js";import{F as A,L as j,N as M,P as N,R as P,S as F,U as I,V as L,a as R,g as z,h as B,i as te,k as V,n as H,o as U,x as W,y as G}from"./index-mN60lSc2.js";import{t as K}from"./AdminSelect-Bw3z0TPQ.js";import{r as q}from"./adminLabels-Cz9ccm1Z.js";import{c as J,i as Y,n as X,o as Z,s as Q,t as ne}from"./orderStatus-CYVblRJB.js";import{t as re}from"./StatusBadge-C_awmXg1.js";function ie(){let t=N(),n=A(),r=ee(),i=x([]),a=x([]),o=new Set(X.map(e=>e.key));function s(){let e=typeof t.query.tab==`string`?t.query.tab:``;return o.has(e)?e:`all`}let c=x([]),l=x(s()),u=x(``),f=x(``),p=x(!1),m=x(!1),_=x(!1),v=x(``),y=x(!1),b=()=>({customerId:``,customerName:``,customerPhone:``,items:[]}),S=h(b()),C=g(()=>S.customerId.length>0&&S.items.length>0),T=g(()=>{let e=[...a.value];return e.sort((e,t)=>Number(t.isActive)-Number(e.isActive)||e.name.localeCompare(t.name,`fa`)),e});function E(e){let t=a.value.find(t=>t.id===e);S.customerId=e,S.customerName=t?.name??``,S.customerPhone=t?.phone??``}async function D(){try{a.value=await z.list()}catch(e){r.error(e instanceof w?e.message:`بارگذاری مشتریان انجام نشد.`)}}let O=g(()=>{let e=c.value;if(l.value!==`all`&&(e=e.filter(e=>e.status===l.value)),f.value.trim()){let t=f.value.trim();e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t))}return e}),k=g(()=>c.value.find(e=>e.id===u.value)??null);function j(e){let t=e.trim();if(t)return c.value.find(e=>e.id===t||e.orderNumber.toUpperCase()===t.toUpperCase())}async function M(){let e=typeof t.query.order==`string`?t.query.order:``;if(!e||!c.value.length)return;let r=j(e);if(!r){f.value=e;return}let i=typeof t.query.focus==`string`?t.query.focus:``;if(i===`pricing`){await n.replace(`/orders/${r.id}/pricing`);return}if(i===`checks`){await n.replace(`/orders/${r.id}/checks`);return}I(r),f.value=r.orderNumber}async function P(){try{let[e,t,n]=await Promise.all([W.list(),B.list(),z.list()]);c.value=e.map(e=>G(e)),i.value=t,a.value=n,await M()}catch(e){r.error(e instanceof w?e.message:`بارگذاری سفارش‌ها انجام نشد.`)}}e(()=>{P()}),d(()=>[t.query.order,t.query.focus],()=>{M()}),d(()=>t.query.tab,()=>{let e=s();l.value!==e&&(l.value=e)}),d(l,e=>{let r=typeof t.query.tab==`string`?t.query.tab:`all`,i=e===`all`?void 0:e;(r===`all`?void 0:r)!==i&&n.replace({query:{...t.query,tab:i}})});function F(e,t=!1){u.value=e.id,t&&(m.value=!0)}function I(e){u.value=e.id,_.value=!0}function L(){m.value=!1}function R(){_.value=!1}function te(e){return e?e===`check`?`چکی`:`نقدی`:`انتخاب‌نشده`}let V=x(!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}),n=G(t),i=c.value.findIndex(t=>t.id===e.orderId);return i>=0&&(c.value[i]={...c.value[i],...n}),r.success(`وضعیت سفارش به «${J(e.status)}» تغییر کرد.`),n}catch(e){return r.error(e instanceof w?e.message:`تغییر وضعیت انجام نشد.`),null}finally{V.value=!1}}function U(e){n.push(`/orders/${e.id}/pricing`)}function K(e){n.push(`/orders/${e.id}/checks`)}function q(e){n.push({path:`/cash-payments`,query:{order:e.orderNumber}})}function Y(){Object.assign(S,b()),v.value=``,p.value=!0,D()}function Z(){p.value=!1,v.value=``}function Q(e){return S.items.some(t=>t.productId===e.productId)?(v.value=`این محصول قبلاً به سفارش اضافه شده است.`,!1):(S.items.push(e),v.value=``,!0)}function ne(e){S.items=S.items.filter(t=>t.productId!==e)}async function re(){if(!C.value){v.value=`انتخاب مشتری و حداقل یک محصول الزامی است.`;return}y.value=!0;try{let e=await W.create({customerId:S.customerId||void 0,userId:S.customerId||void 0,customerName:S.customerName.trim(),customerPhone:S.customerPhone.trim()||void 0,items:S.items.map(e=>({productId:e.productId,meterage:e.meterage}))}),t=G(e);c.value.unshift(t),u.value=t.id,r.success(`سفارش جدید ثبت شد.`),Z()}catch(e){r.error(e instanceof w?e.message:`ثبت سفارش انجام نشد.`)}finally{y.value=!1}}return{companies:i,customers:a,activeCustomers:T,applyCustomer:E,loadCustomers:D,orderList:c,activeTab:l,selectedOrderId:u,searchQuery:f,showAddModal:p,showDetailPanel:m,showDetailModal:_,formError:v,form:S,addFormItem:Q,removeFormItem:ne,isFormValid:C,filteredOrders:O,selectedOrder:k,selectOrder:F,openOrderDetail:I,closeDetailPanel:L,closeDetailModal:R,settlementLabel:te,changeStatus:H,statusSaving:V,goPricing:U,goChecks:K,goCashReceipt:q,openAddModal:Y,closeAddModal:Z,submitAddOrder:re,saving:y}}var ae=Symbol(`orders-page`);function oe(){let e=ie();return u(ae,e),e}function se(){let e=n(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=S(O({__name:`OrderDetailContent`,props:{order:{},settlementLabel:{},layout:{default:`compact`},statusSaving:{type:Boolean}},emits:[`pricing`,`checks`,`cashReceipt`,`finalApprove`,`status`],setup(e,{emit:n}){let r=e,o=n,l=x(!1),u=x(``),f=x(``),ee=Object.keys(Y),h=g(()=>r.order.allowedTransitions??[]),y=g(()=>l.value?ee.filter(e=>e!==r.order.rawStatus):[...h.value]),b=g(()=>[{value:``,label:`انتخاب کنید…`},...y.value.map(e=>({value:e,label:J(e)}))]),S=g(()=>l.value),w=g(()=>!!u.value&&(!S.value||f.value.trim().length>0)),T=g(()=>r.layout===`desktop`),D=g(()=>ne[r.order.status]?.label??r.order.status),O=g(()=>{let e=J(r.order.rawStatus);return!e||e===D.value?``:e}),k=g(()=>{let e=r.order.customerType;return e?q[e]??r.order.customerType??`—`:`—`}),A=g(()=>Q(r.order)),j=g(()=>Z(r.order)),N=g(()=>r.order.settlementMethod===`check`&&!A.value),F=g(()=>r.order.settlementMethod===`cash`&&!A.value&&r.order.rawStatus!==`cash_confirmed`),I=g(()=>A.value?`pricing`:j.value?`final`:N.value?`checks`:F.value?`cash`:null);d([()=>r.order.id,l],()=>{u.value=``,f.value=``});function z(){if(!u.value||!w.value)return;let e=f.value.trim()||void 0;o(`status`,{orderId:r.order.id,status:u.value,note:e,reason:l.value?e:void 0,force:l.value||void 0}),u.value=``,f.value=``}return(n,r)=>(s(),_(`div`,{class:t([`order-detail`,`order-detail--${e.layout}`])},[C(`header`,ce,[C(`div`,$,[C(`div`,le,[C(`strong`,null,c(e.order.orderNumber),1),p(re,{status:e.order.status},null,8,[`status`])]),O.value?(s(),_(`p`,ue,c(O.value),1)):v(``,!0)]),C(`div`,de,[A.value?(s(),_(`button`,{key:0,type:`button`,class:t([`admin-btn admin-btn--sm`,I.value===`pricing`?`admin-btn--primary`:`admin-btn--outline`]),onClick:r[0]||=e=>o(`pricing`)},` قیمت‌گذاری سفارش `,2)):v(``,!0),N.value?(s(),_(`button`,{key:1,type:`button`,class:t([`admin-btn admin-btn--sm`,I.value===`checks`?`admin-btn--primary`:`admin-btn--outline`]),onClick:r[1]||=e=>o(`checks`)},` مدیریت چک‌ها `,2)):v(``,!0),F.value?(s(),_(`button`,{key:2,type:`button`,class:t([`admin-btn admin-btn--sm`,I.value===`cash`?`admin-btn--primary`:`admin-btn--outline`]),onClick:r[2]||=e=>o(`cashReceipt`)},` رسید پرداخت `,2)):v(``,!0),j.value?(s(),_(`button`,{key:3,type:`button`,class:t([`admin-btn admin-btn--sm`,I.value===`final`?`admin-btn--primary`:`admin-btn--outline`]),disabled:e.statusSaving,onClick:r[3]||=e=>o(`finalApprove`)},` تأیید نهایی `,10,fe)):v(``,!0)])]),C(`div`,pe,[C(`section`,me,[r[11]||=C(`h3`,{class:`order-detail__section-title`},`اطلاعات مشتری`,-1),C(`div`,he,[C(`div`,ge,[p(M,{name:`building`,size:16}),r[7]||=C(`span`,{class:`order-detail__info-label`},`مشتری`,-1),C(`span`,_e,c(e.order.customerName),1)]),C(`div`,ve,[p(M,{name:`phone`,size:16}),r[8]||=C(`span`,{class:`order-detail__info-label`},`تلفن`,-1),C(`span`,ye,c(e.order.customerPhone??`—`),1)]),C(`div`,be,[p(M,{name:`id-card`,size:16}),r[9]||=C(`span`,{class:`order-detail__info-label`},`شناسه ملی`,-1),C(`span`,xe,c(e.order.customerNationalId??`—`),1)]),C(`div`,Se,[p(M,{name:`user`,size:16}),r[10]||=C(`span`,{class:`order-detail__info-label`},`نوع مشتری`,-1),C(`span`,Ce,c(k.value),1)])])]),C(`section`,we,[r[16]||=C(`h3`,{class:`order-detail__section-title`},`اطلاعات سفارش`,-1),C(`div`,Te,[C(`div`,Ee,[r[12]||=C(`span`,{class:`order-detail__info-label`},`شرکت`,-1),C(`span`,De,c(e.order.companyName),1)]),C(`div`,Oe,[r[13]||=C(`span`,{class:`order-detail__info-label`},`روش تسویه`,-1),C(`span`,ke,c(e.settlementLabel(e.order.settlementMethod)),1)]),C(`div`,Ae,[r[14]||=C(`span`,{class:`order-detail__info-label`},`متراژ کل`,-1),C(`span`,je,c(E(R)(e.order.meterage)),1)]),C(`div`,Me,[r[15]||=C(`span`,{class:`order-detail__info-label`},`مبلغ کل`,-1),C(`span`,Ne,c(e.order.totalAmount==null?`پس از قیمت‌گذاری`:E(H)(e.order.totalAmount)),1)])])])]),e.order.items?.length?(s(),_(`section`,Pe,[r[18]||=C(`h3`,{class:`order-detail__section-title`},`محصولات سفارش`,-1),T.value?(s(),_(`div`,Fe,[C(`table`,Ie,[r[17]||=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,`مبلغ`)])],-1),C(`tbody`,null,[(s(!0),_(m,null,i(e.order.items,t=>(s(),_(`tr`,{key:t.id},[C(`td`,null,c(t.companyName||e.order.companyName),1),C(`td`,null,c(t.catalogCode),1),C(`td`,null,c(t.productName),1),C(`td`,null,c(t.color),1),C(`td`,null,c(E(U)(t.confirmedMeterage??t.requestedMeterage)),1),C(`td`,null,c(t.supplyPrice==null?`—`:E(H)(t.supplyPrice)),1),C(`td`,null,c(t.totalAmount==null?`—`:E(H)(t.totalAmount)),1)]))),128))])])])):(s(),_(`ul`,Le,[(s(!0),_(m,null,i(e.order.items,e=>(s(),_(`li`,{key:e.id,class:`order-detail__item`},[C(`div`,Re,[C(`strong`,null,c(e.productName),1),C(`span`,null,c(e.catalogCode),1)]),C(`div`,ze,[e.companyName?(s(),_(`span`,Be,c(e.companyName),1)):v(``,!0),C(`span`,null,c(e.color),1),C(`span`,null,c(E(R)(e.confirmedMeterage??e.requestedMeterage)),1),e.supplyPrice==null?v(``,!0):(s(),_(`span`,Ve,c(E(H)(e.supplyPrice)),1)),e.totalAmount==null?v(``,!0):(s(),_(`span`,He,c(E(H)(e.totalAmount)),1))])]))),128))]))])):v(``,!0),C(`section`,Ue,[C(`div`,We,[r[20]||=C(`h3`,{class:`order-detail__section-title`},`تغییر وضعیت`,-1),C(`label`,Ge,[a(C(`input`,{"onUpdate:modelValue":r[4]||=e=>l.value=e,type:`checkbox`},null,512),[[P,l.value]]),r[19]||=C(`span`,null,`تغییر دستی`,-1)])]),l.value?(s(),_(`p`,Ke,` این گذر خارج از روال استاندارد است؛ ثبت یادداشت اجباری است. `)):y.value.length?v(``,!0):(s(),_(`p`,qe,` در این وضعیت گذر خودکاری وجود ندارد. برای تغییر، حالت دستی را فعال کنید. `)),y.value.length?(s(),_(`div`,Je,[C(`div`,Ye,[r[21]||=C(`label`,null,`وضعیت بعدی`,-1),p(K,{modelValue:u.value,"onUpdate:modelValue":r[5]||=e=>u.value=e,block:``,"aria-label":`وضعیت بعدی`,placeholder:`انتخاب کنید…`,options:b.value},null,8,[`modelValue`,`options`])]),C(`div`,Xe,[C(`label`,Ze,` یادداشت`+c(S.value?` (اجباری)`:` (اختیاری)`),1),a(C(`input`,{id:`status-note`,"onUpdate:modelValue":r[6]||=e=>f.value=e,type:`text`,class:`admin-input`,placeholder:`دلیل یا توضیح این تغییر`},null,512),[[L,f.value]])]),C(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!w.value||e.statusSaving,onClick:z},c(e.statusSaving?`در حال ثبت…`:`ثبت وضعیت`),9,Qe)])):v(``,!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=S(O({__name:`DesktopOrdersPage`,setup(n){let u=V(`(min-width: 1280px)`),{activeTab:d,selectedOrderId:ee,searchQuery:h,filteredOrders:g,selectedOrder:S,showDetailModal:w,openOrderDetail:O,closeDetailModal:A,settlementLabel:N,goPricing:P,goChecks:F,goCashReceipt:z,changeStatus:B,statusSaving:U,openAddModal:W}=se(),G=x(null),K=x({});function q(){G.value=null}async function J(e,t){if(t.stopPropagation(),G.value?.id===e.id){q();return}let n=t.currentTarget.getBoundingClientRect();G.value=e,await l();let r=Math.min(Math.max(8,n.right-168),window.innerWidth-168-8);K.value={position:`fixed`,top:`${n.bottom+4}px`,left:`${r}px`,width:`168px`}}function Y(){q()}e(()=>{document.addEventListener(`click`,Y),window.addEventListener(`scroll`,q,!0),window.addEventListener(`resize`,q)}),y(()=>{document.removeEventListener(`click`,Y),window.removeEventListener(`scroll`,q,!0),window.removeEventListener(`resize`,q)});function ne(){S.value&&(A(),P(S.value))}function ie(){S.value&&(A(),F(S.value))}function ae(){S.value&&(A(),z(S.value))}function oe(){S.value&&B({orderId:S.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}function ce(){if(!S.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=G.value;if(t){if(q(),e===`detail`){O(t);return}if(e===`pricing`){P(t);return}if(e===`checks`){F(t);return}if(e===`final`){B({orderId:t.id,status:`final_approved`,note:`تأیید نهایی سفارش`});return}z(t)}}return(e,n)=>(s(),_(`div`,et,[C(`div`,tt,[C(`div`,nt,[n[9]||=C(`div`,null,[C(`h2`,{class:`orders-page__list-title`},`سفارش‌ها`)],-1),C(`div`,rt,[C(`button`,it,[p(M,{name:`filter`,size:16}),n[8]||=k(` فیلتر `,-1)]),C(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:n[0]||=(...e)=>E(W)&&E(W)(...e)},` سفارش جدید `)])]),C(`div`,at,[p(M,{name:`search`,size:18}),a(C(`input`,{"onUpdate:modelValue":n[1]||=e=>f(h)?h.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[L,E(h)]])]),C(`div`,ot,[(s(!0),_(m,null,i(E(X),e=>(s(),_(`button`,{key:e.key,type:`button`,class:t([`admin-tab`,{active:E(d)===e.key}]),onClick:t=>d.value=e.key},[k(c(e.label)+` `,1),`count`in e&&e.count?(s(),_(m,{key:0},[k(` (`+c(e.count)+`)`,1)],64)):v(``,!0)],10,st))),128))]),C(`div`,ct,[C(`table`,lt,[n[10]||=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,`عملیات`)])],-1),C(`tbody`,null,[(s(!0),_(m,null,i(E(g),e=>(s(),_(`tr`,{key:e.id,class:t({"is-selected":E(ee)===e.id}),onClick:t=>E(O)(e)},[C(`td`,null,c(e.orderNumber),1),C(`td`,null,c(e.customerName),1),C(`td`,null,c(E(N)(e.settlementMethod)),1),C(`td`,null,c(e.totalAmount?E(H)(e.totalAmount):`—`),1),C(`td`,null,c(E(R)(e.meterage)),1),C(`td`,null,[p(re,{status:e.status},null,8,[`status`])]),C(`td`,null,c(E(te)(e.createdAt)),1),C(`td`,dt,[C(`button`,{type:`button`,class:`orders-page__more-btn`,"aria-expanded":G.value?.id===e.id,"aria-haspopup":`menu`,"aria-label":`عملیات سفارش`,onClick:t=>J(e,t)},[p(M,{name:`more`,size:18})],8,ft)])],10,ut))),128))])])]),n[11]||=D(`
نمایش ۱ تا ۷ از ۱۰۳ سفارش
...
`,1)]),(s(),b(T,{to:`body`},[G.value?(s(),_(`div`,{key:0,class:`orders-page__menu`,role:`menu`,style:o(K.value),onClick:n[7]||=I(()=>{},[`stop`])},[C(`button`,{type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:n[2]||=e=>$(`detail`)},` جزئیات سفارش `),G.value&&E(Q)(G.value)?(s(),_(`button`,{key:0,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:n[3]||=e=>$(`pricing`)},` قیمت‌گذاری `)):v(``,!0),G.value.settlementMethod===`check`?(s(),_(`button`,{key:1,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:n[4]||=e=>$(`checks`)},` مدیریت چک‌ها `)):v(``,!0),G.value.settlementMethod===`cash`&&G.value.rawStatus!==`cash_confirmed`?(s(),_(`button`,{key:2,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:n[5]||=e=>$(`cash`)},` رسید پرداخت `)):v(``,!0),E(Z)(G.value)?(s(),_(`button`,{key:3,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:n[6]||=e=>$(`final`)},` تأیید نهایی `)):v(``,!0)],4)):v(``,!0)])),p(j,{open:E(u)&&E(w)&&!!E(S),title:`جزئیات سفارش`,size:`xl`,onClose:E(A)},{footer:r(()=>[C(`button`,pt,[p(M,{name:`sms`,size:16}),n[12]||=k(` ارسال پیامک `,-1)]),C(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ce},[p(M,{name:`print`,size:16}),n[13]||=k(` چاپ `,-1)])]),default:r(()=>[E(S)?(s(),b($e,{key:0,order:E(S),layout:`desktop`,"settlement-label":E(N),"status-saving":E(U),onPricing:ne,onChecks:ie,onCashReceipt:ae,onFinalApprove:oe,onStatus:E(B)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):v(``,!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=S(O({__name:`CompactOrdersPage`,setup(e){let n=V(`(max-width: 767px)`),o=V(`(max-width: 1279px)`),{activeTab:l,selectedOrderId:u,searchQuery:d,filteredOrders:ee,selectedOrder:h,showDetailPanel:y,showDetailModal:S,selectOrder:w,openOrderDetail:T,closeDetailPanel:D,closeDetailModal:O,settlementLabel:A,goPricing:N,goChecks:P,goCashReceipt:F,changeStatus:I,statusSaving:z,openAddModal:B}=se(),U=x(!1),W=g(()=>l.value!==`all`),G=g(()=>X.find(e=>e.key===l.value)?.label??`همه`);function K(){U.value=!0}function q(){U.value=!1}function J(){l.value=`all`,U.value=!1}function Y(e){l.value=e,U.value=!1}function Z(e){if(n.value){w(e,!0);return}T(e)}function Q(){h.value&&(O(),D(),N(h.value))}function ne(){h.value&&(O(),D(),P(h.value))}function ie(){h.value&&(O(),D(),F(h.value))}function ae(){h.value&&I({orderId:h.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}return(e,g)=>(s(),_(`div`,ht,[C(`div`,gt,[C(`div`,_t,[g[4]||=C(`div`,null,[C(`h2`,{class:`compact-page-header__title`},`سفارش‌ها`)],-1),C(`div`,vt,[C(`button`,{type:`button`,class:t([`admin-btn admin-btn--outline admin-btn--sm`,{"admin-btn--filter-active":W.value}]),onClick:K},[p(M,{name:`filter`,size:16}),g[3]||=k(` فیلتر `,-1),W.value?(s(),_(`span`,yt)):v(``,!0)],2),C(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:g[0]||=(...e)=>E(B)&&E(B)(...e)},` سفارش جدید `)])])]),C(`div`,bt,[p(M,{name:`search`,size:18}),a(C(`input`,{"onUpdate:modelValue":g[1]||=e=>f(d)?d.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[L,E(d)]])]),E(n)&&W.value?(s(),_(`div`,xt,[C(`span`,null,`وضعیت: `+c(G.value),1),C(`button`,{type:`button`,class:`compact-orders__filter-clear`,onClick:J},`پاک کردن`)])):v(``,!0),E(n)?v(``,!0):(s(),_(`div`,St,[(s(!0),_(m,null,i(E(X),e=>(s(),_(`button`,{key:e.key,type:`button`,class:t([`admin-tab`,{active:E(l)===e.key}]),onClick:t=>l.value=e.key},[k(c(e.label)+` `,1),`count`in e&&e.count?(s(),_(m,{key:0},[k(` (`+c(e.count)+`)`,1)],64)):v(``,!0)],10,Ct))),128))])),p(j,{open:U.value,title:`فیلتر سفارش‌ها`,onClose:q},{footer:r(()=>[C(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:J},` پاک کردن `),C(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` بستن `)]),default:r(()=>[C(`div`,wt,[(s(!0),_(m,null,i(E(X),e=>(s(),_(`button`,{key:e.key,type:`button`,class:t([`compact-orders__filter-option`,{"is-active":E(l)===e.key}]),role:`option`,"aria-selected":E(l)===e.key,onClick:t=>Y(e.key)},[C(`span`,null,c(e.label),1),E(l)===e.key?(s(),_(`span`,Et,`✓`)):v(``,!0)],10,Tt))),128))])]),_:1},8,[`open`]),C(`div`,Dt,[(s(!0),_(m,null,i(E(ee),e=>(s(),_(`button`,{key:e.id,type:`button`,class:t([`admin-card-item`,{selected:E(u)===e.id}]),onClick:t=>Z(e)},[C(`div`,kt,[C(`p`,At,c(e.orderNumber),1),p(re,{status:e.status},null,8,[`status`])]),C(`div`,jt,[C(`span`,null,[g[5]||=C(`strong`,null,`مشتری:`,-1),k(` `+c(e.customerName),1)]),C(`span`,null,[g[6]||=C(`strong`,null,`متراژ:`,-1),k(` `+c(E(R)(e.meterage)),1)]),C(`span`,null,[g[7]||=C(`strong`,null,`مبلغ:`,-1),k(` `+c(e.totalAmount?E(H)(e.totalAmount):`—`),1)]),C(`span`,null,c(E(te)(e.createdAt)),1)])],10,Ot))),128))]),C(`div`,{class:t([`admin-detail-panel compact-orders__mobile-panel`,{open:E(n)&&E(y)&&E(h)}])},[E(h)?(s(),_(`div`,Mt,[C(`div`,Nt,[C(`button`,{type:`button`,class:`admin-detail-panel__back`,"aria-label":`بازگشت به لیست`,onClick:g[2]||=(...e)=>E(D)&&E(D)(...e)},[p(M,{name:`chevron-back`,size:20})]),g[8]||=C(`h2`,{class:`admin-detail-panel__title`},`جزئیات سفارش`,-1)]),C(`div`,Pt,[p($e,{order:E(h),"settlement-label":E(A),"status-saving":E(z),onPricing:Q,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:E(I)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])])])):v(``,!0)],2),p(j,{open:E(o)&&!E(n)&&E(S)&&!!E(h),title:`جزئیات سفارش`,size:`xl`,onClose:E(O)},{default:r(()=>[E(h)?(s(),b($e,{key:0,order:E(h),"settlement-label":E(A),"status-saving":E(z),onPricing:Q,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:E(I)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):v(``,!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=S(O({__name:`OrderAddModal`,setup(e){let{showAddModal:t,formError:n,form:o,isFormValid:l,activeCustomers:u,applyCustomer:f,addFormItem:y,removeFormItem:S,closeAddModal:T,submitAddOrder:D}=se(),O=ee(),A=x([]),M=h({productId:``,meterage:0}),N=g(()=>u.value.map(e=>{let t=e.phone?` — ${e.phone}`:``,n=e.isActive===!1?` (غیرفعال)`:``;return{value:e.id,label:`${e.name}${t}${n}`}})),P=g(()=>A.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),R=g(()=>A.value.find(e=>e.id===M.productId)??null);d(()=>o.customerId,e=>{if(!e){o.customerName=``,o.customerPhone=``;return}f(e)}),d(t,async e=>{if(e){M.productId=``,M.meterage=0;try{A.value=await F.list({activeOnly:!0})}catch(e){O.error(e instanceof w?e.message:`بارگذاری محصولات انجام نشد.`)}}}),d(()=>M.productId,e=>{let t=A.value.find(t=>t.id===e);t&&(M.meterage=t.rollMeters||t.minMeterage||t.orderStep||50)});function z(){let e=R.value;if(!e){n.value=`محصول را انتخاب کنید.`;return}if(!M.meterage||M.meterage<=0){n.value=`متراژ باید بزرگ‌تر از صفر باشد.`;return}y({productId:e.id,productName:e.name,catalogCode:e.catalogCode,meterage:M.meterage}),M.productId=``,M.meterage=0}return(e,u)=>(s(),b(j,{open:E(t),title:`پیش‌سفارش جدید`,size:`lg`,onClose:E(T)},{footer:r(()=>[C(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:u[4]||=(...e)=>E(T)&&E(T)(...e)},` انصراف `),C(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!E(l),onClick:u[5]||=(...e)=>E(D)&&E(D)(...e)},` ثبت پیش‌سفارش `,8,Gt)]),default:r(()=>[C(`form`,{class:`admin-form`,onSubmit:u[3]||=I((...e)=>E(D)&&E(D)(...e),[`prevent`])},[E(n)?(s(),_(`p`,It,c(E(n)),1)):v(``,!0),u[9]||=C(`p`,{class:`admin-form__hint`},` مثل سفارش مشتری: ابتدا اقلام ثبت می‌شود، قیمت‌گذاری و تسویه بعداً انجام می‌شود. `,-1),C(`div`,Lt,[u[6]||=C(`label`,{id:`order-customer-label`},[k(` مشتری `),C(`span`,{class:`admin-form__required`},`*`)],-1),p(K,{id:`order-customer`,modelValue:E(o).customerId,"onUpdate:modelValue":u[0]||=e=>E(o).customerId=e,block:``,searchable:``,"aria-label":`انتخاب مشتری از لیست`,placeholder:`انتخاب مشتری از لیست`,"search-placeholder":`جستجوی نام یا موبایل…`,options:N.value},null,8,[`modelValue`,`options`]),N.value.length?v(``,!0):(s(),_(`p`,Rt,` مشتری‌ای در سیستم نیست. ابتدا از بخش «مشتریان» یک مشتری ثبت کنید. `))]),C(`div`,zt,[C(`div`,Bt,[u[7]||=C(`label`,null,`محصول`,-1),p(K,{modelValue:M.productId,"onUpdate:modelValue":u[1]||=e=>M.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:P.value},null,8,[`modelValue`,`options`])]),C(`div`,Vt,[u[8]||=C(`label`,{for:`order-item-meterage`},`متراژ (متر)`,-1),a(C(`input`,{id:`order-item-meterage`,"onUpdate:modelValue":u[2]||=e=>M.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[L,M.meterage,void 0,{number:!0}]])])]),C(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:z},` افزودن به اقلام `),E(o).items.length?(s(),_(`div`,Ht,[(s(!0),_(m,null,i(E(o).items,e=>(s(),_(`div`,{key:e.productId,class:`order-add__item`},[C(`div`,null,[C(`strong`,null,c(e.productName),1),C(`span`,null,`کالیته `+c(e.catalogCode)+` — `+c(E(U)(e.meterage))+` متر`,1)]),C(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>E(S)(e.productId)},` حذف `,8,Ut)]))),128))])):(s(),_(`p`,Wt,`هنوز محصولی به پیش‌سفارش اضافه نشده است.`))],32)]),_:1},8,[`open`,`onClose`]))}}),[[`__scopeId`,`data-v-291a46f0`]]),qt=O({__name:`OrdersView`,setup(e){return oe(),(e,t)=>(s(),_(m,null,[p(mt,{class:`desktop-only`}),p(Ft,{class:`compact-only`}),p(Kt)],64))}});export{qt as default}; \ No newline at end of file diff --git a/dist/assets/ProductsView-DeAxfx2Z.js b/dist/assets/ProductsView-BpIWai3T.js similarity index 98% rename from dist/assets/ProductsView-DeAxfx2Z.js rename to dist/assets/ProductsView-BpIWai3T.js index 97d83a8..3a02c8d 100644 --- a/dist/assets/ProductsView-DeAxfx2Z.js +++ b/dist/assets/ProductsView-BpIWai3T.js @@ -1 +1 @@ -import{A as e,At as t,G as n,I as r,K as i,Mt as a,N as o,Nt as s,a as c,b as l,c as u,et as ee,f as d,g as f,h as p,m,nt as h,o as te,p as g,t as _,ut as v,x as y,y as b}from"./http-WTIyGIuL.js";import{B as x,L as ne,N as re,S,U as ie,V as C,n as w,o as T,p as ae}from"./index-senPc5aL.js";import{t as oe}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as E}from"./BaseSwitch-gjOaAbzm.js";import{t as se}from"./BaseEmptyState-P-TMfHGI.js";import{t as ce}from"./catalogImage-DbusXpop.js";import{t as D}from"./AdminSelect-Bi0VQHva.js";import{t as O}from"./ActiveSwitchCell-CU-04sUE.js";import{t as le}from"./AdminCurrencyInput-DEYWjQBL.js";var ue={class:`products-page`},de={class:`products-page__filters admin-card`},fe={class:`products-page__search`},pe={key:2,class:`products-page__table admin-card desktop-only`},me={class:`admin-table-wrap`},he={class:`admin-table`},ge={class:`numeric`},_e={class:`numeric`},ve={class:`numeric`},ye={class:`numeric`},be={class:`status`},xe={class:`actions`},k=[`onClick`],A={key:3,class:`compact-only admin-card-list`},j={class:`admin-card-item__header`},M={class:`admin-card-item__title`},Se={class:`admin-card-item__header-actions`},Ce=[`onClick`],we={class:`admin-card-item__meta`},Te={key:0,class:`admin-form__error`,role:`alert`},Ee={class:`admin-form__field`},De={class:`admin-form__row`},Oe={class:`admin-form__field`},ke={class:`admin-form__field`},Ae={class:`admin-form__field`},je={class:`admin-form__row`},Me={class:`admin-form__field`},Ne={class:`admin-form__field`},Pe={class:`admin-form__row`},Fe={class:`admin-form__field`},Ie={class:`admin-form__field`},Le={class:`admin-form__row`},Re={class:`admin-form__field`},ze={class:`admin-form__field`},Be={class:`admin-form__row`},Ve={class:`admin-form__field`},He={class:`admin-form__field`},Ue={class:`admin-form__row`},We={class:`admin-form__field`},Ge={class:`admin-form__field`},Ke={class:`admin-form__field`},qe={class:`admin-form__field`},Je={class:`product-images`},Ye=[`onClick`],Xe={class:`product-images__add`},Ze=[`disabled`],Qe={class:`admin-form__field`},$e={class:`admin-form__field`},et=[`disabled`],N=te(y({__name:`ProductsView`,setup(te){let y=h([]),N=h([]),P=h(``),F=h(`all`),I=h(!0),L=h(null),R=h(null),z=h(``),B=h(!1),V=c(),tt=d(()=>[{value:`all`,label:`همه کالیته‌ها`},...N.value.map(e=>({value:e.id,label:`${e.code} — ${e.name}`}))]),nt=d(()=>N.value.map(e=>({value:e.id,label:`${e.code} — ${e.name} (${e.companyName})`}))),H=()=>({catalogId:N.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,colorsText:``,imageUrls:[]}),U=ee(H()),rt=d(()=>L.value!==null),W=d(()=>L.value===`edit`?`ویرایش محصول`:`افزودن محصول`),G=d(()=>U.name.trim()&&U.catalogId&&U.minMeterage>0),K=d(()=>P.value.trim().length>0||F.value!==`all`),q=d(()=>{let e=y.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 it(){I.value=!0;try{let[e,t]=await Promise.all([S.list(),ae.list()]);y.value=e,N.value=t}catch(e){V.error(e instanceof _?e.message:`بارگذاری محصولات انجام نشد.`)}finally{I.value=!1}}e(()=>{it()});function at(e){return N.value.find(t=>t.id===e)}function J(){L.value=`add`,R.value=null,Object.assign(U,H()),z.value=``}function Y(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,U.colorsText=(e.colors??[]).join(`, `),U.imageUrls=[...e.imageUrls??[]],z.value=``}function ot(e){return e.split(`,`).map(e=>e.trim()).filter(Boolean)}let X=h(!1);async function st(e){let t=e.target,n=[...t.files??[]];if(t.value=``,n.length){X.value=!0,z.value=``;try{let e=await Promise.all(n.map(e=>ce(e)));U.imageUrls=[...U.imageUrls,...e]}catch(e){z.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`}finally{X.value=!1}}}function ct(e){U.imageUrls.splice(e,1)}function Z(){L.value=null,R.value=null,z.value=``}async function Q(){if(!G.value){z.value=`نام محصول، کالیته و حداقل متراژ الزامی هستند.`;return}let e=at(U.catalogId);if(!e){z.value=`کالیته معتبر انتخاب کنید.`;return}let t={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:ot(U.colorsText),imageUrlsJson:U.imageUrls},n=U.productCode.trim()||`${e.code}-NEW`;B.value=!0;try{if(L.value===`edit`&&R.value){let e=await S.update(R.value,{catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||`—`,code:n,productCode:n,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...t}),r=y.value.findIndex(e=>e.id===R.value);r!==-1&&(y.value[r]={...y.value[r],...e}),V.success(`اطلاعات محصول به‌روزرسانی شد.`)}else{let r=await S.create({companyId:e.companyId,catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||`—`,code:n,productCode:n,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...t});y.value.push(r),V.success(`محصول جدید ثبت شد.`)}Z()}catch(e){V.error(e instanceof _?e.message:`ذخیره محصول انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await S.setActive(e,t)}function lt(){P.value=``,F.value=`all`}return(e,c)=>(o(),f(`div`,ue,[g(`div`,{class:`admin-page-header`},[c[19]||=g(`div`,null,[g(`h1`,{class:`admin-page-header__title`},`محصولات`)],-1),g(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:J},` افزودن محصول `)]),g(`div`,de,[g(`div`,fe,[l(re,{name:`search`,size:18}),i(g(`input`,{"onUpdate:modelValue":c[0]||=e=>P.value=e,type:`search`,class:`products-page__search-input`,placeholder:`جستجو در نام، رنگ، کد...`},null,512),[[C,P.value]])]),l(D,{modelValue:F.value,"onUpdate:modelValue":c[1]||=e=>F.value=e,class:`products-page__catalog-filter`,"aria-label":`فیلتر کالیته`,options:tt.value},null,8,[`modelValue`,`options`])]),I.value?(o(),m(oe,{key:0,variant:`table`})):q.value.length?(o(),f(`div`,pe,[g(`div`,me,[g(`table`,he,[c[20]||=g(`thead`,null,[g(`tr`,null,[g(`th`,null,`تصویر`),g(`th`,null,`کد محصول`),g(`th`,null,`نام`),g(`th`,null,`رنگ`),g(`th`,null,`کالیته`),g(`th`,null,`شرکت`),g(`th`,{class:`numeric`},`حداقل متراژ`),g(`th`,{class:`numeric`},`ضریب`),g(`th`,{class:`numeric`},`قیمت`),g(`th`,{class:`numeric`},`موجودی`),g(`th`,{class:`status`},`وضعیت`),g(`th`,{class:`actions`},`عملیات`)])],-1),g(`tbody`,null,[(o(!0),f(u,null,r(q.value,e=>(o(),f(`tr`,{key:e.id},[g(`td`,null,[g(`span`,{class:t([`product-thumb`,{"product-thumb--empty":!e.imageUrls?.[0]}]),style:a(e.imageUrls?.[0]?{backgroundImage:`url(${e.imageUrls[0]})`}:void 0)},null,6)]),g(`td`,null,s(e.productCode),1),g(`td`,null,s(e.name),1),g(`td`,null,s(e.color),1),g(`td`,null,s(e.catalogCode),1),g(`td`,null,s(e.companyName),1),g(`td`,ge,s(v(T)(e.minMeterage))+` متر`,1),g(`td`,_e,s(v(T)(e.orderStep)),1),g(`td`,ve,s(e.price?v(w)(e.price):`—`),1),g(`td`,ye,s(v(T)(e.internalStock))+` متر`,1),g(`td`,be,[l(O,{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`])]),g(`td`,xe,[g(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>Y(e)},` ویرایش `,8,k)])]))),128))])])])])):(o(),m(se,{key:1,class:`admin-card`,icon:`products`,title:K.value?`نتیجه‌ای یافت نشد`:`محصولی ثبت نشده`,description:K.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین محصول را ثبت کنید.`},{default:n(()=>[K.value?(o(),f(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:lt},` پاک کردن فیلترها `)):(o(),f(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:J},` افزودن محصول `))]),_:1},8,[`title`,`description`])),!I.value&&q.value.length?(o(),f(`div`,A,[(o(!0),f(u,null,r(q.value,e=>(o(),f(`article`,{key:e.id,class:`admin-card-item`},[g(`div`,j,[g(`p`,M,s(e.name),1),g(`div`,Se,[l(O,{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`]),g(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>Y(e)},` ویرایش `,8,Ce)])]),g(`div`,we,[g(`span`,null,s(e.productCode),1),g(`span`,null,s(e.color),1),g(`span`,null,`کالیته `+s(e.catalogCode),1),g(`span`,null,s(e.price?v(w)(e.price):`بدون قیمت`),1)])]))),128))])):p(``,!0),l(ne,{open:rt.value,title:W.value,size:`lg`,onClose:Z},{footer:n(()=>[g(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),g(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!G.value||B.value,onClick:Q},s(L.value===`edit`?`ذخیره تغییرات`:`ثبت محصول`),9,et)]),default:n(()=>[g(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[z.value?(o(),f(`p`,Te,s(z.value),1)):p(``,!0),g(`div`,Ee,[c[21]||=g(`label`,null,[b(`کالیته `),g(`span`,{class:`admin-form__required`},`*`)],-1),l(D,{modelValue:U.catalogId,"onUpdate:modelValue":c[2]||=e=>U.catalogId=e,block:``,"aria-label":`انتخاب کالیته`,placeholder:`انتخاب کالیته`,options:nt.value},null,8,[`modelValue`,`options`])]),g(`div`,De,[g(`div`,Oe,[c[22]||=g(`label`,{for:`product-name`},[b(`نام محصول `),g(`span`,{class:`admin-form__required`},`*`)],-1),i(g(`input`,{id:`product-name`,"onUpdate:modelValue":c[3]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[C,U.name]])]),g(`div`,ke,[c[23]||=g(`label`,{for:`product-color`},`رنگ / نوع`,-1),i(g(`input`,{id:`product-color`,"onUpdate:modelValue":c[4]||=e=>U.color=e,type:`text`,class:`admin-input`},null,512),[[C,U.color]])])]),g(`div`,Ae,[c[24]||=g(`label`,{for:`product-code`},`کد محصول`,-1),i(g(`input`,{id:`product-code`,"onUpdate:modelValue":c[5]||=e=>U.productCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[C,U.productCode]])]),g(`div`,je,[g(`div`,Me,[c[25]||=g(`label`,{for:`product-min`},`حداقل متراژ`,-1),i(g(`input`,{id:`product-min`,"onUpdate:modelValue":c[6]||=e=>U.minMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.minMeterage,void 0,{number:!0}]])]),g(`div`,Ne,[c[26]||=g(`label`,{for:`product-step`},`ضریب سفارش`,-1),i(g(`input`,{id:`product-step`,"onUpdate:modelValue":c[7]||=e=>U.orderStep=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.orderStep,void 0,{number:!0}]])])]),g(`div`,Pe,[g(`div`,Fe,[c[27]||=g(`label`,{for:`product-price`},`قیمت (تومان)`,-1),l(le,{id:`product-price`,modelValue:U.price,"onUpdate:modelValue":c[8]||=e=>U.price=e},null,8,[`modelValue`])]),g(`div`,Ie,[c[28]||=g(`label`,{for:`product-stock`},`موجودی داخلی (متر)`,-1),i(g(`input`,{id:`product-stock`,"onUpdate:modelValue":c[9]||=e=>U.internalStock=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[C,U.internalStock,void 0,{number:!0}]])])]),g(`div`,Le,[g(`div`,Re,[c[30]||=g(`label`,{for:`product-usage`},`کاربرد`,-1),i(g(`select`,{id:`product-usage`,"onUpdate:modelValue":c[10]||=e=>U.usageCategory=e,class:`admin-input`},[...c[29]||=[g(`option`,{value:`trousers`},`شلوار`,-1),g(`option`,{value:`suit`},`کت‌وشلوار`,-1),g(`option`,{value:`shirt`},`پیراهن`,-1),g(`option`,{value:`other`},`سایر`,-1)]],512),[[x,U.usageCategory]])]),g(`div`,ze,[c[32]||=g(`label`,{for:`product-season`},`فصل`,-1),i(g(`select`,{id:`product-season`,"onUpdate:modelValue":c[11]||=e=>U.season=e,class:`admin-input`},[...c[31]||=[g(`option`,{value:`summer`},`تابستان`,-1),g(`option`,{value:`winter`},`زمستان`,-1),g(`option`,{value:`all_season`},`چهارفصل`,-1)]],512),[[x,U.season]])])]),g(`div`,Be,[g(`div`,Ve,[c[33]||=g(`label`,{for:`product-composition`},`جنس / ترکیب`,-1),i(g(`input`,{id:`product-composition`,"onUpdate:modelValue":c[12]||=e=>U.composition=e,type:`text`,class:`admin-input`},null,512),[[C,U.composition]])]),g(`div`,He,[c[34]||=g(`label`,{for:`product-weave`},`نوع بافت`,-1),i(g(`input`,{id:`product-weave`,"onUpdate:modelValue":c[13]||=e=>U.weaveType=e,type:`text`,class:`admin-input`},null,512),[[C,U.weaveType]])])]),g(`div`,Ue,[g(`div`,We,[c[35]||=g(`label`,{for:`product-subtitle`},`زیرعنوان`,-1),i(g(`input`,{id:`product-subtitle`,"onUpdate:modelValue":c[14]||=e=>U.subtitle=e,type:`text`,class:`admin-input`},null,512),[[C,U.subtitle]])]),g(`div`,Ge,[c[36]||=g(`label`,{for:`product-roll`},`متراژ طاقه`,-1),i(g(`input`,{id:`product-roll`,"onUpdate:modelValue":c[15]||=e=>U.rollMeters=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.rollMeters,void 0,{number:!0}]])])]),g(`div`,Ke,[c[37]||=g(`label`,{for:`product-colors`},`رنگ‌ها (با ویرگول)`,-1),i(g(`input`,{id:`product-colors`,"onUpdate:modelValue":c[16]||=e=>U.colorsText=e,type:`text`,class:`admin-input`,placeholder:`مثلاً: سرمه‌ای، خاکستری، بژ`},null,512),[[C,U.colorsText]])]),g(`div`,qe,[c[38]||=g(`label`,null,`تصاویر محصول`,-1),g(`div`,Je,[(o(!0),f(u,null,r(U.imageUrls,(e,t)=>(o(),f(`div`,{key:`${t}-${e.slice(0,24)}`,class:`product-images__item`},[g(`span`,{class:`product-images__thumb`,style:a({backgroundImage:`url(${e})`})},null,4),g(`button`,{type:`button`,class:`product-images__remove`,onClick:e=>ct(t)},` حذف `,8,Ye)]))),128)),g(`label`,Xe,[g(`input`,{type:`file`,accept:`image/*`,multiple:``,hidden:``,disabled:X.value,onChange:st},null,40,Ze),b(` `+s(X.value?`...`:`+ افزودن تصویر`),1)])])]),g(`div`,Qe,[l(E,{modelValue:U.isNew,"onUpdate:modelValue":c[17]||=e=>U.isNew=e,label:`محصول جدید`},null,8,[`modelValue`])]),g(`div`,$e,[l(E,{modelValue:U.isActive,"onUpdate:modelValue":c[18]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-89b21e26`]]);export{N as default}; \ No newline at end of file +import{A as e,At as t,G as n,I as r,K as i,Mt as a,N as o,Nt as s,a as c,b as l,c as u,et as ee,f as d,g as f,h as p,m,nt as h,o as te,p as g,t as _,ut as v,x as y,y as b}from"./http-WTIyGIuL.js";import{B as x,L as ne,N as re,S,U as ie,V as C,n as w,o as T,p as ae}from"./index-mN60lSc2.js";import{t as oe}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as E}from"./BaseSwitch-gjOaAbzm.js";import{t as se}from"./BaseEmptyState-D5jlq4nS.js";import{t as ce}from"./catalogImage-DbusXpop.js";import{t as D}from"./AdminSelect-Bw3z0TPQ.js";import{t as O}from"./ActiveSwitchCell-BaPmkdOq.js";import{t as le}from"./AdminCurrencyInput-Dej5qU24.js";var ue={class:`products-page`},de={class:`products-page__filters admin-card`},fe={class:`products-page__search`},pe={key:2,class:`products-page__table admin-card desktop-only`},me={class:`admin-table-wrap`},he={class:`admin-table`},ge={class:`numeric`},_e={class:`numeric`},ve={class:`numeric`},ye={class:`numeric`},be={class:`status`},xe={class:`actions`},k=[`onClick`],A={key:3,class:`compact-only admin-card-list`},j={class:`admin-card-item__header`},M={class:`admin-card-item__title`},Se={class:`admin-card-item__header-actions`},Ce=[`onClick`],we={class:`admin-card-item__meta`},Te={key:0,class:`admin-form__error`,role:`alert`},Ee={class:`admin-form__field`},De={class:`admin-form__row`},Oe={class:`admin-form__field`},ke={class:`admin-form__field`},Ae={class:`admin-form__field`},je={class:`admin-form__row`},Me={class:`admin-form__field`},Ne={class:`admin-form__field`},Pe={class:`admin-form__row`},Fe={class:`admin-form__field`},Ie={class:`admin-form__field`},Le={class:`admin-form__row`},Re={class:`admin-form__field`},ze={class:`admin-form__field`},Be={class:`admin-form__row`},Ve={class:`admin-form__field`},He={class:`admin-form__field`},Ue={class:`admin-form__row`},We={class:`admin-form__field`},Ge={class:`admin-form__field`},Ke={class:`admin-form__field`},qe={class:`admin-form__field`},Je={class:`product-images`},Ye=[`onClick`],Xe={class:`product-images__add`},Ze=[`disabled`],Qe={class:`admin-form__field`},$e={class:`admin-form__field`},et=[`disabled`],N=te(y({__name:`ProductsView`,setup(te){let y=h([]),N=h([]),P=h(``),F=h(`all`),I=h(!0),L=h(null),R=h(null),z=h(``),B=h(!1),V=c(),tt=d(()=>[{value:`all`,label:`همه کالیته‌ها`},...N.value.map(e=>({value:e.id,label:`${e.code} — ${e.name}`}))]),nt=d(()=>N.value.map(e=>({value:e.id,label:`${e.code} — ${e.name} (${e.companyName})`}))),H=()=>({catalogId:N.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,colorsText:``,imageUrls:[]}),U=ee(H()),rt=d(()=>L.value!==null),W=d(()=>L.value===`edit`?`ویرایش محصول`:`افزودن محصول`),G=d(()=>U.name.trim()&&U.catalogId&&U.minMeterage>0),K=d(()=>P.value.trim().length>0||F.value!==`all`),q=d(()=>{let e=y.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 it(){I.value=!0;try{let[e,t]=await Promise.all([S.list(),ae.list()]);y.value=e,N.value=t}catch(e){V.error(e instanceof _?e.message:`بارگذاری محصولات انجام نشد.`)}finally{I.value=!1}}e(()=>{it()});function at(e){return N.value.find(t=>t.id===e)}function J(){L.value=`add`,R.value=null,Object.assign(U,H()),z.value=``}function Y(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,U.colorsText=(e.colors??[]).join(`, `),U.imageUrls=[...e.imageUrls??[]],z.value=``}function ot(e){return e.split(`,`).map(e=>e.trim()).filter(Boolean)}let X=h(!1);async function st(e){let t=e.target,n=[...t.files??[]];if(t.value=``,n.length){X.value=!0,z.value=``;try{let e=await Promise.all(n.map(e=>ce(e)));U.imageUrls=[...U.imageUrls,...e]}catch(e){z.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`}finally{X.value=!1}}}function ct(e){U.imageUrls.splice(e,1)}function Z(){L.value=null,R.value=null,z.value=``}async function Q(){if(!G.value){z.value=`نام محصول، کالیته و حداقل متراژ الزامی هستند.`;return}let e=at(U.catalogId);if(!e){z.value=`کالیته معتبر انتخاب کنید.`;return}let t={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:ot(U.colorsText),imageUrlsJson:U.imageUrls},n=U.productCode.trim()||`${e.code}-NEW`;B.value=!0;try{if(L.value===`edit`&&R.value){let e=await S.update(R.value,{catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||`—`,code:n,productCode:n,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...t}),r=y.value.findIndex(e=>e.id===R.value);r!==-1&&(y.value[r]={...y.value[r],...e}),V.success(`اطلاعات محصول به‌روزرسانی شد.`)}else{let r=await S.create({companyId:e.companyId,catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||`—`,code:n,productCode:n,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...t});y.value.push(r),V.success(`محصول جدید ثبت شد.`)}Z()}catch(e){V.error(e instanceof _?e.message:`ذخیره محصول انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await S.setActive(e,t)}function lt(){P.value=``,F.value=`all`}return(e,c)=>(o(),f(`div`,ue,[g(`div`,{class:`admin-page-header`},[c[19]||=g(`div`,null,[g(`h1`,{class:`admin-page-header__title`},`محصولات`)],-1),g(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:J},` افزودن محصول `)]),g(`div`,de,[g(`div`,fe,[l(re,{name:`search`,size:18}),i(g(`input`,{"onUpdate:modelValue":c[0]||=e=>P.value=e,type:`search`,class:`products-page__search-input`,placeholder:`جستجو در نام، رنگ، کد...`},null,512),[[C,P.value]])]),l(D,{modelValue:F.value,"onUpdate:modelValue":c[1]||=e=>F.value=e,class:`products-page__catalog-filter`,"aria-label":`فیلتر کالیته`,options:tt.value},null,8,[`modelValue`,`options`])]),I.value?(o(),m(oe,{key:0,variant:`table`})):q.value.length?(o(),f(`div`,pe,[g(`div`,me,[g(`table`,he,[c[20]||=g(`thead`,null,[g(`tr`,null,[g(`th`,null,`تصویر`),g(`th`,null,`کد محصول`),g(`th`,null,`نام`),g(`th`,null,`رنگ`),g(`th`,null,`کالیته`),g(`th`,null,`شرکت`),g(`th`,{class:`numeric`},`حداقل متراژ`),g(`th`,{class:`numeric`},`ضریب`),g(`th`,{class:`numeric`},`قیمت`),g(`th`,{class:`numeric`},`موجودی`),g(`th`,{class:`status`},`وضعیت`),g(`th`,{class:`actions`},`عملیات`)])],-1),g(`tbody`,null,[(o(!0),f(u,null,r(q.value,e=>(o(),f(`tr`,{key:e.id},[g(`td`,null,[g(`span`,{class:t([`product-thumb`,{"product-thumb--empty":!e.imageUrls?.[0]}]),style:a(e.imageUrls?.[0]?{backgroundImage:`url(${e.imageUrls[0]})`}:void 0)},null,6)]),g(`td`,null,s(e.productCode),1),g(`td`,null,s(e.name),1),g(`td`,null,s(e.color),1),g(`td`,null,s(e.catalogCode),1),g(`td`,null,s(e.companyName),1),g(`td`,ge,s(v(T)(e.minMeterage))+` متر`,1),g(`td`,_e,s(v(T)(e.orderStep)),1),g(`td`,ve,s(e.price?v(w)(e.price):`—`),1),g(`td`,ye,s(v(T)(e.internalStock))+` متر`,1),g(`td`,be,[l(O,{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`])]),g(`td`,xe,[g(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>Y(e)},` ویرایش `,8,k)])]))),128))])])])])):(o(),m(se,{key:1,class:`admin-card`,icon:`products`,title:K.value?`نتیجه‌ای یافت نشد`:`محصولی ثبت نشده`,description:K.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین محصول را ثبت کنید.`},{default:n(()=>[K.value?(o(),f(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:lt},` پاک کردن فیلترها `)):(o(),f(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:J},` افزودن محصول `))]),_:1},8,[`title`,`description`])),!I.value&&q.value.length?(o(),f(`div`,A,[(o(!0),f(u,null,r(q.value,e=>(o(),f(`article`,{key:e.id,class:`admin-card-item`},[g(`div`,j,[g(`p`,M,s(e.name),1),g(`div`,Se,[l(O,{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`]),g(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>Y(e)},` ویرایش `,8,Ce)])]),g(`div`,we,[g(`span`,null,s(e.productCode),1),g(`span`,null,s(e.color),1),g(`span`,null,`کالیته `+s(e.catalogCode),1),g(`span`,null,s(e.price?v(w)(e.price):`بدون قیمت`),1)])]))),128))])):p(``,!0),l(ne,{open:rt.value,title:W.value,size:`lg`,onClose:Z},{footer:n(()=>[g(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),g(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!G.value||B.value,onClick:Q},s(L.value===`edit`?`ذخیره تغییرات`:`ثبت محصول`),9,et)]),default:n(()=>[g(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[z.value?(o(),f(`p`,Te,s(z.value),1)):p(``,!0),g(`div`,Ee,[c[21]||=g(`label`,null,[b(`کالیته `),g(`span`,{class:`admin-form__required`},`*`)],-1),l(D,{modelValue:U.catalogId,"onUpdate:modelValue":c[2]||=e=>U.catalogId=e,block:``,"aria-label":`انتخاب کالیته`,placeholder:`انتخاب کالیته`,options:nt.value},null,8,[`modelValue`,`options`])]),g(`div`,De,[g(`div`,Oe,[c[22]||=g(`label`,{for:`product-name`},[b(`نام محصول `),g(`span`,{class:`admin-form__required`},`*`)],-1),i(g(`input`,{id:`product-name`,"onUpdate:modelValue":c[3]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[C,U.name]])]),g(`div`,ke,[c[23]||=g(`label`,{for:`product-color`},`رنگ / نوع`,-1),i(g(`input`,{id:`product-color`,"onUpdate:modelValue":c[4]||=e=>U.color=e,type:`text`,class:`admin-input`},null,512),[[C,U.color]])])]),g(`div`,Ae,[c[24]||=g(`label`,{for:`product-code`},`کد محصول`,-1),i(g(`input`,{id:`product-code`,"onUpdate:modelValue":c[5]||=e=>U.productCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[C,U.productCode]])]),g(`div`,je,[g(`div`,Me,[c[25]||=g(`label`,{for:`product-min`},`حداقل متراژ`,-1),i(g(`input`,{id:`product-min`,"onUpdate:modelValue":c[6]||=e=>U.minMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.minMeterage,void 0,{number:!0}]])]),g(`div`,Ne,[c[26]||=g(`label`,{for:`product-step`},`ضریب سفارش`,-1),i(g(`input`,{id:`product-step`,"onUpdate:modelValue":c[7]||=e=>U.orderStep=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.orderStep,void 0,{number:!0}]])])]),g(`div`,Pe,[g(`div`,Fe,[c[27]||=g(`label`,{for:`product-price`},`قیمت (تومان)`,-1),l(le,{id:`product-price`,modelValue:U.price,"onUpdate:modelValue":c[8]||=e=>U.price=e},null,8,[`modelValue`])]),g(`div`,Ie,[c[28]||=g(`label`,{for:`product-stock`},`موجودی داخلی (متر)`,-1),i(g(`input`,{id:`product-stock`,"onUpdate:modelValue":c[9]||=e=>U.internalStock=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[C,U.internalStock,void 0,{number:!0}]])])]),g(`div`,Le,[g(`div`,Re,[c[30]||=g(`label`,{for:`product-usage`},`کاربرد`,-1),i(g(`select`,{id:`product-usage`,"onUpdate:modelValue":c[10]||=e=>U.usageCategory=e,class:`admin-input`},[...c[29]||=[g(`option`,{value:`trousers`},`شلوار`,-1),g(`option`,{value:`suit`},`کت‌وشلوار`,-1),g(`option`,{value:`shirt`},`پیراهن`,-1),g(`option`,{value:`other`},`سایر`,-1)]],512),[[x,U.usageCategory]])]),g(`div`,ze,[c[32]||=g(`label`,{for:`product-season`},`فصل`,-1),i(g(`select`,{id:`product-season`,"onUpdate:modelValue":c[11]||=e=>U.season=e,class:`admin-input`},[...c[31]||=[g(`option`,{value:`summer`},`تابستان`,-1),g(`option`,{value:`winter`},`زمستان`,-1),g(`option`,{value:`all_season`},`چهارفصل`,-1)]],512),[[x,U.season]])])]),g(`div`,Be,[g(`div`,Ve,[c[33]||=g(`label`,{for:`product-composition`},`جنس / ترکیب`,-1),i(g(`input`,{id:`product-composition`,"onUpdate:modelValue":c[12]||=e=>U.composition=e,type:`text`,class:`admin-input`},null,512),[[C,U.composition]])]),g(`div`,He,[c[34]||=g(`label`,{for:`product-weave`},`نوع بافت`,-1),i(g(`input`,{id:`product-weave`,"onUpdate:modelValue":c[13]||=e=>U.weaveType=e,type:`text`,class:`admin-input`},null,512),[[C,U.weaveType]])])]),g(`div`,Ue,[g(`div`,We,[c[35]||=g(`label`,{for:`product-subtitle`},`زیرعنوان`,-1),i(g(`input`,{id:`product-subtitle`,"onUpdate:modelValue":c[14]||=e=>U.subtitle=e,type:`text`,class:`admin-input`},null,512),[[C,U.subtitle]])]),g(`div`,Ge,[c[36]||=g(`label`,{for:`product-roll`},`متراژ طاقه`,-1),i(g(`input`,{id:`product-roll`,"onUpdate:modelValue":c[15]||=e=>U.rollMeters=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.rollMeters,void 0,{number:!0}]])])]),g(`div`,Ke,[c[37]||=g(`label`,{for:`product-colors`},`رنگ‌ها (با ویرگول)`,-1),i(g(`input`,{id:`product-colors`,"onUpdate:modelValue":c[16]||=e=>U.colorsText=e,type:`text`,class:`admin-input`,placeholder:`مثلاً: سرمه‌ای، خاکستری، بژ`},null,512),[[C,U.colorsText]])]),g(`div`,qe,[c[38]||=g(`label`,null,`تصاویر محصول`,-1),g(`div`,Je,[(o(!0),f(u,null,r(U.imageUrls,(e,t)=>(o(),f(`div`,{key:`${t}-${e.slice(0,24)}`,class:`product-images__item`},[g(`span`,{class:`product-images__thumb`,style:a({backgroundImage:`url(${e})`})},null,4),g(`button`,{type:`button`,class:`product-images__remove`,onClick:e=>ct(t)},` حذف `,8,Ye)]))),128)),g(`label`,Xe,[g(`input`,{type:`file`,accept:`image/*`,multiple:``,hidden:``,disabled:X.value,onChange:st},null,40,Ze),b(` `+s(X.value?`...`:`+ افزودن تصویر`),1)])])]),g(`div`,Qe,[l(E,{modelValue:U.isNew,"onUpdate:modelValue":c[17]||=e=>U.isNew=e,label:`محصول جدید`},null,8,[`modelValue`])]),g(`div`,$e,[l(E,{modelValue:U.isActive,"onUpdate:modelValue":c[18]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-89b21e26`]]);export{N as default}; \ No newline at end of file diff --git a/dist/assets/ReportsView-DyBGvZCc.js b/dist/assets/ReportsView-u9EnobV7.js similarity index 99% rename from dist/assets/ReportsView-DyBGvZCc.js rename to dist/assets/ReportsView-u9EnobV7.js index 0bab389..f777257 100644 --- a/dist/assets/ReportsView-DyBGvZCc.js +++ b/dist/assets/ReportsView-u9EnobV7.js @@ -1 +1 @@ -import{A as e,I as t,N as n,Nt as r,a as i,b as ee,c as a,g as o,h as s,m as c,nt as l,o as te,p as u,t as d,ut as f,x as p,y as ne}from"./http-WTIyGIuL.js";import{N as re,_ as m,a as h,n as g,o as _}from"./index-senPc5aL.js";import{t as ie}from"./AdminPageSkeleton-D-u-8bBz.js";var ae={class:`reports-page`},oe={class:`admin-page-header`},se={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`},ce={class:`admin-card reports-page__section`},V={class:`admin-table-wrap desktop-only`},H={class:`admin-table`},U={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=te(p({__name:`ReportsView`,setup(te){let p=i(),K=l(!0),q=l({newOrders:0,pendingReview:0,pendingCheck:0,finalApproval:0,todaySales:0,todaySalesGrowth:0,monthSales:0}),J=l([]),Y=l([]),X=l([]),Z=l([]),Q=l([]),$=l(null);e(async()=>{K.value=!0;try{let[e,t]=await Promise.all([m.get(),m.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){p.error(e instanceof d?e.message:`بارگذاری گزارش‌ها انجام نشد.`)}finally{K.value=!1}});function Te(){window.print()}return(e,i)=>(n(),o(`div`,ae,[u(`div`,oe,[i[1]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`گزارش‌ها`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Te},[ee(re,{name:`print`,size:16}),i[0]||=ne(` چاپ گزارش `,-1)])]),K.value?(n(),c(ie,{key:0,variant:`table`})):(n(),o(a,{key:1},[u(`div`,se,[u(`div`,v,[i[2]||=u(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),u(`p`,y,r(f(g)(q.value.todaySales)),1),u(`span`,b,`+`+r(q.value.todaySalesGrowth)+`% نسبت به دیروز`,1)]),u(`div`,x,[i[3]||=u(`p`,{class:`admin-stat-card__label`},`فروش ماه جاری`,-1),u(`p`,S,r(f(g)(q.value.monthSales)),1)]),u(`div`,C,[i[4]||=u(`p`,{class:`admin-stat-card__label`},`سفارش‌های جدید`,-1),u(`p`,w,r(f(_)(q.value.newOrders)),1)]),u(`div`,T,[i[5]||=u(`p`,{class:`admin-stat-card__label`},`در انتظار بررسی`,-1),u(`p`,E,r(f(_)(q.value.pendingReview)),1)])]),$.value?(n(),o(`div`,D,[u(`div`,O,[i[6]||=u(`p`,{class:`admin-stat-card__label`},`مشتریان فعال`,-1),u(`p`,k,r(f(_)($.value.active)),1)]),u(`div`,A,[i[7]||=u(`p`,{class:`admin-stat-card__label`},`غیرفعال`,-1),u(`p`,j,r(f(_)($.value.inactive)),1)]),u(`div`,M,[i[8]||=u(`p`,{class:`admin-stat-card__label`},`جدید ۳۰ روز`,-1),u(`p`,N,r(f(_)($.value.newLast30Days)),1)]),u(`div`,P,[i[9]||=u(`p`,{class:`admin-stat-card__label`},`بدون خرید`,-1),u(`p`,F,r(f(_)($.value.noPurchase)),1)]),u(`div`,I,[i[10]||=u(`p`,{class:`admin-stat-card__label`},`بدون خرید ۹۰ روز`,-1),u(`p`,L,r(f(_)($.value.noPurchase90Days)),1)]),u(`div`,R,[i[11]||=u(`p`,{class:`admin-stat-card__label`},`دارای واسطه`,-1),u(`p`,z,r(f(_)($.value.withAgent)),1)])])):s(``,!0),u(`div`,B,[u(`section`,ce,[i[13]||=u(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک شرکت`,-1),u(`div`,V,[u(`table`,H,[i[12]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`شرکت`),u(`th`,null,`تعداد سفارش`),u(`th`,null,`مجموع متراژ`),u(`th`,null,`مجموع مبلغ`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(J.value,e=>(n(),o(`tr`,{key:e.companyName},[u(`td`,null,r(e.companyName),1),u(`td`,null,r(f(_)(e.orderCount)),1),u(`td`,null,r(f(h)(e.meterage)),1),u(`td`,null,r(f(g)(e.totalAmount)),1)]))),128))])])]),u(`div`,U,[(n(!0),o(a,null,t(J.value,e=>(n(),o(`article`,{key:e.companyName,class:`admin-card-item`},[u(`p`,W,r(e.companyName),1),u(`div`,G,[u(`span`,null,r(e.orderCount)+` سفارش`,1),u(`span`,null,r(f(h)(e.meterage)),1),u(`span`,null,r(f(g)(e.totalAmount)),1)])]))),128))])]),u(`section`,le,[i[15]||=u(`h2`,{class:`reports-page__section-title`},`سفارش‌ها به تفکیک وضعیت`,-1),u(`div`,ue,[u(`table`,de,[i[14]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`وضعیت`),u(`th`,null,`تعداد`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(Y.value,e=>(n(),o(`tr`,{key:e.status},[u(`td`,null,r(e.status),1),u(`td`,null,r(f(_)(e.count)),1)]))),128))])])]),u(`ul`,fe,[(n(!0),o(a,null,t(Y.value,e=>(n(),o(`li`,{key:e.status},[u(`span`,null,r(e.status),1),u(`strong`,null,r(f(_)(e.count)),1)]))),128))])])]),X.value.length?(n(),o(`div`,pe,[u(`section`,me,[i[17]||=u(`h2`,{class:`reports-page__section-title`},`فروش ماهانه`,-1),u(`div`,he,[u(`table`,ge,[i[16]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`ماه`),u(`th`,null,`تعداد سفارش`),u(`th`,null,`مجموع متراژ`),u(`th`,null,`مجموع مبلغ`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(X.value,e=>(n(),o(`tr`,{key:e.month},[u(`td`,null,r(e.month),1),u(`td`,null,r(f(_)(e.orderCount)),1),u(`td`,null,r(f(h)(e.meterage)),1),u(`td`,null,r(f(g)(e.totalAmount)),1)]))),128))])])])])])):s(``,!0),Z.value.length||Q.value.length?(n(),o(`div`,_e,[Z.value.length?(n(),o(`section`,ve,[i[19]||=u(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک محصول`,-1),u(`div`,ye,[u(`table`,be,[i[18]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`محصول`),u(`th`,null,`کد`),u(`th`,null,`تعداد سفارش`),u(`th`,null,`متراژ`),u(`th`,null,`مبلغ`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(Z.value,e=>(n(),o(`tr`,{key:e.productId},[u(`td`,null,r(e.productName),1),u(`td`,xe,r(e.productCode),1),u(`td`,null,r(f(_)(e.orderCount)),1),u(`td`,null,r(f(h)(e.meterage)),1),u(`td`,null,r(f(g)(e.totalAmount)),1)]))),128))])])])])):s(``,!0),Q.value.length?(n(),o(`section`,Se,[i[21]||=u(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک مشتری`,-1),u(`div`,Ce,[u(`table`,we,[i[20]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`مشتری`),u(`th`,null,`تعداد سفارش`),u(`th`,null,`متراژ`),u(`th`,null,`مبلغ`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(Q.value,e=>(n(),o(`tr`,{key:e.customerName},[u(`td`,null,r(e.customerName),1),u(`td`,null,r(f(_)(e.orderCount)),1),u(`td`,null,r(f(h)(e.meterage)),1),u(`td`,null,r(f(g)(e.totalAmount)),1)]))),128))])])])])):s(``,!0)])):s(``,!0)],64))]))}}),[[`__scopeId`,`data-v-6618f331`]]);export{K as default}; \ No newline at end of file +import{A as e,I as t,N as n,Nt as r,a as i,b as ee,c as a,g as o,h as s,m as c,nt as l,o as te,p as u,t as d,ut as f,x as p,y as ne}from"./http-WTIyGIuL.js";import{N as re,_ as m,a as h,n as g,o as _}from"./index-mN60lSc2.js";import{t as ie}from"./AdminPageSkeleton-D-u-8bBz.js";var ae={class:`reports-page`},oe={class:`admin-page-header`},se={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`},ce={class:`admin-card reports-page__section`},V={class:`admin-table-wrap desktop-only`},H={class:`admin-table`},U={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=te(p({__name:`ReportsView`,setup(te){let p=i(),K=l(!0),q=l({newOrders:0,pendingReview:0,pendingCheck:0,finalApproval:0,todaySales:0,todaySalesGrowth:0,monthSales:0}),J=l([]),Y=l([]),X=l([]),Z=l([]),Q=l([]),$=l(null);e(async()=>{K.value=!0;try{let[e,t]=await Promise.all([m.get(),m.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){p.error(e instanceof d?e.message:`بارگذاری گزارش‌ها انجام نشد.`)}finally{K.value=!1}});function Te(){window.print()}return(e,i)=>(n(),o(`div`,ae,[u(`div`,oe,[i[1]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`گزارش‌ها`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Te},[ee(re,{name:`print`,size:16}),i[0]||=ne(` چاپ گزارش `,-1)])]),K.value?(n(),c(ie,{key:0,variant:`table`})):(n(),o(a,{key:1},[u(`div`,se,[u(`div`,v,[i[2]||=u(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),u(`p`,y,r(f(g)(q.value.todaySales)),1),u(`span`,b,`+`+r(q.value.todaySalesGrowth)+`% نسبت به دیروز`,1)]),u(`div`,x,[i[3]||=u(`p`,{class:`admin-stat-card__label`},`فروش ماه جاری`,-1),u(`p`,S,r(f(g)(q.value.monthSales)),1)]),u(`div`,C,[i[4]||=u(`p`,{class:`admin-stat-card__label`},`سفارش‌های جدید`,-1),u(`p`,w,r(f(_)(q.value.newOrders)),1)]),u(`div`,T,[i[5]||=u(`p`,{class:`admin-stat-card__label`},`در انتظار بررسی`,-1),u(`p`,E,r(f(_)(q.value.pendingReview)),1)])]),$.value?(n(),o(`div`,D,[u(`div`,O,[i[6]||=u(`p`,{class:`admin-stat-card__label`},`مشتریان فعال`,-1),u(`p`,k,r(f(_)($.value.active)),1)]),u(`div`,A,[i[7]||=u(`p`,{class:`admin-stat-card__label`},`غیرفعال`,-1),u(`p`,j,r(f(_)($.value.inactive)),1)]),u(`div`,M,[i[8]||=u(`p`,{class:`admin-stat-card__label`},`جدید ۳۰ روز`,-1),u(`p`,N,r(f(_)($.value.newLast30Days)),1)]),u(`div`,P,[i[9]||=u(`p`,{class:`admin-stat-card__label`},`بدون خرید`,-1),u(`p`,F,r(f(_)($.value.noPurchase)),1)]),u(`div`,I,[i[10]||=u(`p`,{class:`admin-stat-card__label`},`بدون خرید ۹۰ روز`,-1),u(`p`,L,r(f(_)($.value.noPurchase90Days)),1)]),u(`div`,R,[i[11]||=u(`p`,{class:`admin-stat-card__label`},`دارای واسطه`,-1),u(`p`,z,r(f(_)($.value.withAgent)),1)])])):s(``,!0),u(`div`,B,[u(`section`,ce,[i[13]||=u(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک شرکت`,-1),u(`div`,V,[u(`table`,H,[i[12]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`شرکت`),u(`th`,null,`تعداد سفارش`),u(`th`,null,`مجموع متراژ`),u(`th`,null,`مجموع مبلغ`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(J.value,e=>(n(),o(`tr`,{key:e.companyName},[u(`td`,null,r(e.companyName),1),u(`td`,null,r(f(_)(e.orderCount)),1),u(`td`,null,r(f(h)(e.meterage)),1),u(`td`,null,r(f(g)(e.totalAmount)),1)]))),128))])])]),u(`div`,U,[(n(!0),o(a,null,t(J.value,e=>(n(),o(`article`,{key:e.companyName,class:`admin-card-item`},[u(`p`,W,r(e.companyName),1),u(`div`,G,[u(`span`,null,r(e.orderCount)+` سفارش`,1),u(`span`,null,r(f(h)(e.meterage)),1),u(`span`,null,r(f(g)(e.totalAmount)),1)])]))),128))])]),u(`section`,le,[i[15]||=u(`h2`,{class:`reports-page__section-title`},`سفارش‌ها به تفکیک وضعیت`,-1),u(`div`,ue,[u(`table`,de,[i[14]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`وضعیت`),u(`th`,null,`تعداد`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(Y.value,e=>(n(),o(`tr`,{key:e.status},[u(`td`,null,r(e.status),1),u(`td`,null,r(f(_)(e.count)),1)]))),128))])])]),u(`ul`,fe,[(n(!0),o(a,null,t(Y.value,e=>(n(),o(`li`,{key:e.status},[u(`span`,null,r(e.status),1),u(`strong`,null,r(f(_)(e.count)),1)]))),128))])])]),X.value.length?(n(),o(`div`,pe,[u(`section`,me,[i[17]||=u(`h2`,{class:`reports-page__section-title`},`فروش ماهانه`,-1),u(`div`,he,[u(`table`,ge,[i[16]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`ماه`),u(`th`,null,`تعداد سفارش`),u(`th`,null,`مجموع متراژ`),u(`th`,null,`مجموع مبلغ`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(X.value,e=>(n(),o(`tr`,{key:e.month},[u(`td`,null,r(e.month),1),u(`td`,null,r(f(_)(e.orderCount)),1),u(`td`,null,r(f(h)(e.meterage)),1),u(`td`,null,r(f(g)(e.totalAmount)),1)]))),128))])])])])])):s(``,!0),Z.value.length||Q.value.length?(n(),o(`div`,_e,[Z.value.length?(n(),o(`section`,ve,[i[19]||=u(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک محصول`,-1),u(`div`,ye,[u(`table`,be,[i[18]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`محصول`),u(`th`,null,`کد`),u(`th`,null,`تعداد سفارش`),u(`th`,null,`متراژ`),u(`th`,null,`مبلغ`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(Z.value,e=>(n(),o(`tr`,{key:e.productId},[u(`td`,null,r(e.productName),1),u(`td`,xe,r(e.productCode),1),u(`td`,null,r(f(_)(e.orderCount)),1),u(`td`,null,r(f(h)(e.meterage)),1),u(`td`,null,r(f(g)(e.totalAmount)),1)]))),128))])])])])):s(``,!0),Q.value.length?(n(),o(`section`,Se,[i[21]||=u(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک مشتری`,-1),u(`div`,Ce,[u(`table`,we,[i[20]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`مشتری`),u(`th`,null,`تعداد سفارش`),u(`th`,null,`متراژ`),u(`th`,null,`مبلغ`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(Q.value,e=>(n(),o(`tr`,{key:e.customerName},[u(`td`,null,r(e.customerName),1),u(`td`,null,r(f(_)(e.orderCount)),1),u(`td`,null,r(f(h)(e.meterage)),1),u(`td`,null,r(f(g)(e.totalAmount)),1)]))),128))])])])])):s(``,!0)])):s(``,!0)],64))]))}}),[[`__scopeId`,`data-v-6618f331`]]);export{K as default}; \ No newline at end of file diff --git a/dist/assets/SettingsView-BXC0CbHB.js b/dist/assets/SettingsView-BtXHQ1G1.js similarity index 80% rename from dist/assets/SettingsView-BXC0CbHB.js rename to dist/assets/SettingsView-BtXHQ1G1.js index 9c1c18f..c143c18 100644 --- a/dist/assets/SettingsView-BXC0CbHB.js +++ b/dist/assets/SettingsView-BtXHQ1G1.js @@ -1 +1 @@ -import{A as e,I as t,K as n,N as r,Nt as i,a,c as ee,et as o,f as te,g as s,h as c,m as ne,nt as l,o as re,p as u,x as d,y as f}from"./http-WTIyGIuL.js";import{C as p,R as m,V as h,b as ie,g as ae}from"./index-senPc5aL.js";import{t as g}from"./AdminPageSkeleton-D-u-8bBz.js";var oe={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`},P={class:`settings-page__check`},F={class:`settings-page__check`},se={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=re(d({__name:`SettingsView`,setup(re){let d=a(),q=o({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=o({title:``,body:``}),Y=l(!1),X=l([]),Z=l([]),Q=l(!0),$=l(!1),le=te(()=>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)}e(async()=>{Q.value=!0;try{let[e,t]=await Promise.all([p.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 p.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(e,a)=>(r(),s(`div`,oe,[u(`div`,_,[a[17]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`تنظیمات`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:Q.value||$.value,onClick:de},i($.value?`در حال ذخیره…`:`ذخیره تنظیمات`),9,v)]),Q.value?(r(),ne(g,{key:0,variant:`form`,rows:8})):(r(),s(`div`,y,[u(`section`,b,[a[26]||=u(`h2`,{class:`settings-page__title`},`تنظیمات عمومی سفارش`,-1),u(`div`,x,[a[18]||=u(`label`,{for:`max-meterage`},`حداکثر متراژ هر فاکتور (متر)`,-1),n(u(`input`,{id:`max-meterage`,"onUpdate:modelValue":a[0]||=e=>q.maxMeteragePerInvoice=e,type:`number`,min:`1000`,class:`admin-input`},null,512),[[h,q.maxMeteragePerInvoice,void 0,{number:!0}]])]),u(`div`,S,[a[19]||=u(`label`,{for:`validity-hours`},`اعتبار فاکتور نقدی (ساعت)`,-1),n(u(`input`,{id:`validity-hours`,"onUpdate:modelValue":a[1]||=e=>q.cashInvoiceValidityHours=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[h,q.cashInvoiceValidityHours,void 0,{number:!0}]])]),u(`div`,C,[a[20]||=u(`label`,{for:`min-rolls`},`حداقل طاقه از هر محصول`,-1),n(u(`input`,{id:`min-rolls`,"onUpdate:modelValue":a[2]||=e=>q.minOrderRollsPerProduct=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[h,q.minOrderRollsPerProduct,void 0,{number:!0}]])]),u(`label`,w,[n(u(`input`,{"onUpdate:modelValue":a[3]||=e=>q.showCatalogPublicPrice=e,type:`checkbox`},null,512),[[m,q.showCatalogPublicPrice]]),a[21]||=f(` نمایش قیمت عمومی در کاتالوگ `,-1)]),u(`label`,T,[n(u(`input`,{"onUpdate:modelValue":a[4]||=e=>q.allowAgentPricing=e,type:`checkbox`},null,512),[[m,q.allowAgentPricing]]),a[22]||=f(` اجازه قیمت‌گذاری توسط واسطه `,-1)]),u(`div`,E,[a[23]||=u(`label`,{for:`agent-min-price`},`حداقل قیمت واحد واسطه (تومان)`,-1),n(u(`input`,{id:`agent-min-price`,"onUpdate:modelValue":a[5]||=e=>q.agentMinUnitPrice=e,type:`number`,min:`0`,class:`admin-input`,disabled:!q.allowAgentPricing},null,8,D),[[h,q.agentMinUnitPrice,void 0,{number:!0}]])]),u(`div`,O,[u(`label`,k,[n(u(`input`,{"onUpdate:modelValue":a[6]||=e=>q.defaultSettlementCheck=e,type:`checkbox`},null,512),[[m,q.defaultSettlementCheck]]),a[24]||=u(`span`,null,`فعال‌سازی تسویه چکی`,-1)]),u(`label`,A,[n(u(`input`,{"onUpdate:modelValue":a[7]||=e=>q.defaultSettlementCash=e,type:`checkbox`},null,512),[[m,q.defaultSettlementCash]]),a[25]||=u(`span`,null,`فعال‌سازی تسویه نقدی`,-1)])])]),u(`section`,j,[a[32]||=u(`h2`,{class:`settings-page__title`},`پیامک و اعلان`,-1),u(`div`,M,[u(`label`,N,[n(u(`input`,{"onUpdate:modelValue":a[8]||=e=>q.smsOrderRegistered=e,type:`checkbox`},null,512),[[m,q.smsOrderRegistered]]),a[27]||=u(`span`,null,`پیامک ثبت سفارش`,-1)]),u(`label`,P,[n(u(`input`,{"onUpdate:modelValue":a[9]||=e=>q.smsPricingReady=e,type:`checkbox`},null,512),[[m,q.smsPricingReady]]),a[28]||=u(`span`,null,`پیامک صدور فاکتور و آماده‌بودن قیمت`,-1)]),u(`label`,F,[n(u(`input`,{"onUpdate:modelValue":a[10]||=e=>q.smsPaymentReminder=e,type:`checkbox`},null,512),[[m,q.smsPaymentReminder]]),a[29]||=u(`span`,null,`یادآوری پایان اعتبار فاکتور`,-1)]),u(`label`,se,[n(u(`input`,{"onUpdate:modelValue":a[11]||=e=>q.smsCheckReview=e,type:`checkbox`},null,512),[[m,q.smsCheckReview]]),a[30]||=u(`span`,null,`اعلان بررسی چک`,-1)]),u(`label`,I,[n(u(`input`,{"onUpdate:modelValue":a[12]||=e=>q.smsShippingUpdate=e,type:`checkbox`},null,512),[[m,q.smsShippingUpdate]]),a[31]||=u(`span`,null,`اعلان وضعیت ارسال`,-1)])])]),u(`section`,L,[a[35]||=u(`h2`,{class:`settings-page__title`},`اطلاعات تماس پشتیبانی`,-1),u(`div`,R,[a[33]||=u(`label`,{for:`support-phone`},`تلفن پشتیبانی`,-1),n(u(`input`,{id:`support-phone`,"onUpdate:modelValue":a[13]||=e=>q.supportPhone=e,type:`text`,class:`admin-input`},null,512),[[h,q.supportPhone]])]),u(`div`,z,[a[34]||=u(`label`,{for:`support-email`},`ایمیل پشتیبانی`,-1),n(u(`input`,{id:`support-email`,"onUpdate:modelValue":a[14]||=e=>q.supportEmail=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[h,q.supportEmail]])])]),u(`section`,B,[a[39]||=u(`h2`,{class:`settings-page__title`},`اعلان هدفمند`,-1),u(`div`,V,[a[36]||=u(`label`,{for:`broadcast-title`},`عنوان`,-1),n(u(`input`,{id:`broadcast-title`,"onUpdate:modelValue":a[15]||=e=>J.title=e,type:`text`,class:`admin-input`},null,512),[[h,J.title]])]),u(`div`,H,[a[37]||=u(`label`,{for:`broadcast-body`},`متن`,-1),n(u(`textarea`,{id:`broadcast-body`,"onUpdate:modelValue":a[16]||=e=>J.body=e,class:`admin-input`,rows:`4`},null,512),[[h,J.body]])]),X.value.length?(r(),s(`div`,U,[a[38]||=u(`label`,null,`گیرندگان (بدون انتخاب = همه)`,-1),u(`div`,W,[(r(!0),s(ee,null,t(X.value,e=>(r(),s(`label`,{key:e.id,class:`settings-page__check`},[u(`input`,{type:`checkbox`,checked:Z.value.includes(e.id),onChange:t=>ue(e.id,t.target.checked)},null,40,G),u(`span`,null,[f(i(e.name)+` `,1),u(`span`,K,i(e.phone),1)])]))),128))])])):c(``,!0),u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:Y.value||!J.title.trim()||!J.body.trim(),onClick:fe},i(le.value),9,ce)])]))]))}}),[[`__scopeId`,`data-v-17b1bbf3`]]);export{q as default}; \ No newline at end of file +import{A as e,I as t,K as n,N as r,Nt as i,a,c as ee,et as o,f as te,g as s,h as c,m as ne,nt as l,o as re,p as u,x as d,y as f}from"./http-WTIyGIuL.js";import{C as p,R as m,V as h,b as ie,g as ae}from"./index-mN60lSc2.js";import{t as g}from"./AdminPageSkeleton-D-u-8bBz.js";var oe={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`},P={class:`settings-page__check`},F={class:`settings-page__check`},se={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=re(d({__name:`SettingsView`,setup(re){let d=a(),q=o({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=o({title:``,body:``}),Y=l(!1),X=l([]),Z=l([]),Q=l(!0),$=l(!1),le=te(()=>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)}e(async()=>{Q.value=!0;try{let[e,t]=await Promise.all([p.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 p.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(e,a)=>(r(),s(`div`,oe,[u(`div`,_,[a[17]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`تنظیمات`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:Q.value||$.value,onClick:de},i($.value?`در حال ذخیره…`:`ذخیره تنظیمات`),9,v)]),Q.value?(r(),ne(g,{key:0,variant:`form`,rows:8})):(r(),s(`div`,y,[u(`section`,b,[a[26]||=u(`h2`,{class:`settings-page__title`},`تنظیمات عمومی سفارش`,-1),u(`div`,x,[a[18]||=u(`label`,{for:`max-meterage`},`حداکثر متراژ هر فاکتور (متر)`,-1),n(u(`input`,{id:`max-meterage`,"onUpdate:modelValue":a[0]||=e=>q.maxMeteragePerInvoice=e,type:`number`,min:`1000`,class:`admin-input`},null,512),[[h,q.maxMeteragePerInvoice,void 0,{number:!0}]])]),u(`div`,S,[a[19]||=u(`label`,{for:`validity-hours`},`اعتبار فاکتور نقدی (ساعت)`,-1),n(u(`input`,{id:`validity-hours`,"onUpdate:modelValue":a[1]||=e=>q.cashInvoiceValidityHours=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[h,q.cashInvoiceValidityHours,void 0,{number:!0}]])]),u(`div`,C,[a[20]||=u(`label`,{for:`min-rolls`},`حداقل طاقه از هر محصول`,-1),n(u(`input`,{id:`min-rolls`,"onUpdate:modelValue":a[2]||=e=>q.minOrderRollsPerProduct=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[h,q.minOrderRollsPerProduct,void 0,{number:!0}]])]),u(`label`,w,[n(u(`input`,{"onUpdate:modelValue":a[3]||=e=>q.showCatalogPublicPrice=e,type:`checkbox`},null,512),[[m,q.showCatalogPublicPrice]]),a[21]||=f(` نمایش قیمت عمومی در کاتالوگ `,-1)]),u(`label`,T,[n(u(`input`,{"onUpdate:modelValue":a[4]||=e=>q.allowAgentPricing=e,type:`checkbox`},null,512),[[m,q.allowAgentPricing]]),a[22]||=f(` اجازه قیمت‌گذاری توسط واسطه `,-1)]),u(`div`,E,[a[23]||=u(`label`,{for:`agent-min-price`},`حداقل قیمت واحد واسطه (تومان)`,-1),n(u(`input`,{id:`agent-min-price`,"onUpdate:modelValue":a[5]||=e=>q.agentMinUnitPrice=e,type:`number`,min:`0`,class:`admin-input`,disabled:!q.allowAgentPricing},null,8,D),[[h,q.agentMinUnitPrice,void 0,{number:!0}]])]),u(`div`,O,[u(`label`,k,[n(u(`input`,{"onUpdate:modelValue":a[6]||=e=>q.defaultSettlementCheck=e,type:`checkbox`},null,512),[[m,q.defaultSettlementCheck]]),a[24]||=u(`span`,null,`فعال‌سازی تسویه چکی`,-1)]),u(`label`,A,[n(u(`input`,{"onUpdate:modelValue":a[7]||=e=>q.defaultSettlementCash=e,type:`checkbox`},null,512),[[m,q.defaultSettlementCash]]),a[25]||=u(`span`,null,`فعال‌سازی تسویه نقدی`,-1)])])]),u(`section`,j,[a[32]||=u(`h2`,{class:`settings-page__title`},`پیامک و اعلان`,-1),u(`div`,M,[u(`label`,N,[n(u(`input`,{"onUpdate:modelValue":a[8]||=e=>q.smsOrderRegistered=e,type:`checkbox`},null,512),[[m,q.smsOrderRegistered]]),a[27]||=u(`span`,null,`پیامک ثبت سفارش`,-1)]),u(`label`,P,[n(u(`input`,{"onUpdate:modelValue":a[9]||=e=>q.smsPricingReady=e,type:`checkbox`},null,512),[[m,q.smsPricingReady]]),a[28]||=u(`span`,null,`پیامک صدور فاکتور و آماده‌بودن قیمت`,-1)]),u(`label`,F,[n(u(`input`,{"onUpdate:modelValue":a[10]||=e=>q.smsPaymentReminder=e,type:`checkbox`},null,512),[[m,q.smsPaymentReminder]]),a[29]||=u(`span`,null,`یادآوری پایان اعتبار فاکتور`,-1)]),u(`label`,se,[n(u(`input`,{"onUpdate:modelValue":a[11]||=e=>q.smsCheckReview=e,type:`checkbox`},null,512),[[m,q.smsCheckReview]]),a[30]||=u(`span`,null,`اعلان بررسی چک`,-1)]),u(`label`,I,[n(u(`input`,{"onUpdate:modelValue":a[12]||=e=>q.smsShippingUpdate=e,type:`checkbox`},null,512),[[m,q.smsShippingUpdate]]),a[31]||=u(`span`,null,`اعلان وضعیت ارسال`,-1)])])]),u(`section`,L,[a[36]||=u(`h2`,{class:`settings-page__title`},`اطلاعات تماس پشتیبانی`,-1),u(`div`,R,[a[33]||=u(`label`,{for:`support-phone`},`تلفن پشتیبانی`,-1),n(u(`input`,{id:`support-phone`,"onUpdate:modelValue":a[13]||=e=>q.supportPhone=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[h,q.supportPhone]]),a[34]||=u(`p`,{class:`settings-page__hint`},`این شماره در صفحه ورود اپ (پشتیبانی و تماس با ما) نمایش داده می‌شود.`,-1)]),u(`div`,z,[a[35]||=u(`label`,{for:`support-email`},`ایمیل پشتیبانی`,-1),n(u(`input`,{id:`support-email`,"onUpdate:modelValue":a[14]||=e=>q.supportEmail=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[h,q.supportEmail]])])]),u(`section`,B,[a[40]||=u(`h2`,{class:`settings-page__title`},`اعلان هدفمند`,-1),u(`div`,V,[a[37]||=u(`label`,{for:`broadcast-title`},`عنوان`,-1),n(u(`input`,{id:`broadcast-title`,"onUpdate:modelValue":a[15]||=e=>J.title=e,type:`text`,class:`admin-input`},null,512),[[h,J.title]])]),u(`div`,H,[a[38]||=u(`label`,{for:`broadcast-body`},`متن`,-1),n(u(`textarea`,{id:`broadcast-body`,"onUpdate:modelValue":a[16]||=e=>J.body=e,class:`admin-input`,rows:`4`},null,512),[[h,J.body]])]),X.value.length?(r(),s(`div`,U,[a[39]||=u(`label`,null,`گیرندگان (بدون انتخاب = همه)`,-1),u(`div`,W,[(r(!0),s(ee,null,t(X.value,e=>(r(),s(`label`,{key:e.id,class:`settings-page__check`},[u(`input`,{type:`checkbox`,checked:Z.value.includes(e.id),onChange:t=>ue(e.id,t.target.checked)},null,40,G),u(`span`,null,[f(i(e.name)+` `,1),u(`span`,K,i(e.phone),1)])]))),128))])])):c(``,!0),u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:Y.value||!J.title.trim()||!J.body.trim(),onClick:fe},i(le.value),9,ce)])]))]))}}),[[`__scopeId`,`data-v-1b47466e`]]);export{q as default}; \ No newline at end of file diff --git a/dist/assets/SettingsView-BxjDb3Mp.css b/dist/assets/SettingsView-BxjDb3Mp.css deleted file mode 100644 index 33b5b2c..0000000 --- a/dist/assets/SettingsView-BxjDb3Mp.css +++ /dev/null @@ -1 +0,0 @@ -.settings-page__grid[data-v-17b1bbf3]{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.settings-page__section[data-v-17b1bbf3]{padding:20px}.settings-page__title[data-v-17b1bbf3]{margin:0 0 16px;font-size:1rem;font-weight:700}.settings-page__checks[data-v-17b1bbf3]{flex-direction:column;gap:12px;display:flex}.settings-page__check[data-v-17b1bbf3]{cursor:pointer;align-items:center;gap:10px;font-size:.875rem;display:flex}.settings-page__check input[data-v-17b1bbf3]{width:16px;height:16px;accent-color:var(--color-primary)}.settings-page__customers[data-v-17b1bbf3]{flex-direction:column;gap:8px;max-height:220px;padding:8px 0;display:flex;overflow:auto}.settings-page__phone[data-v-17b1bbf3]{color:var(--color-text-muted);margin-right:6px;font-size:.8125rem}@media (width<=1279px){.settings-page__grid[data-v-17b1bbf3]{grid-template-columns:1fr}} diff --git a/dist/assets/SettingsView-COlo0e0z.css b/dist/assets/SettingsView-COlo0e0z.css new file mode 100644 index 0000000..30307e6 --- /dev/null +++ b/dist/assets/SettingsView-COlo0e0z.css @@ -0,0 +1 @@ +.settings-page__grid[data-v-1b47466e]{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.settings-page__section[data-v-1b47466e]{padding:20px}.settings-page__title[data-v-1b47466e]{margin:0 0 16px;font-size:1rem;font-weight:700}.settings-page__checks[data-v-1b47466e]{flex-direction:column;gap:12px;display:flex}.settings-page__check[data-v-1b47466e]{cursor:pointer;align-items:center;gap:10px;font-size:.875rem;display:flex}.settings-page__check input[data-v-1b47466e]{width:16px;height:16px;accent-color:var(--color-primary)}.settings-page__customers[data-v-1b47466e]{flex-direction:column;gap:8px;max-height:220px;padding:8px 0;display:flex;overflow:auto}.settings-page__phone[data-v-1b47466e]{color:var(--color-text-muted);margin-right:6px;font-size:.8125rem}.settings-page__hint[data-v-1b47466e]{color:var(--color-text-muted);margin:6px 0 0;font-size:.75rem;line-height:1.5}@media (width<=1279px){.settings-page__grid[data-v-1b47466e]{grid-template-columns:1fr}} diff --git a/dist/assets/ShippingView-U8liSwBL.js b/dist/assets/ShippingView-BH50PpZU.js similarity index 98% rename from dist/assets/ShippingView-U8liSwBL.js rename to dist/assets/ShippingView-BH50PpZU.js index c42c4ff..5c57d80 100644 --- a/dist/assets/ShippingView-U8liSwBL.js +++ b/dist/assets/ShippingView-BH50PpZU.js @@ -1 +1 @@ -import{A as e,At as t,G as n,I as r,K as i,N as a,Nt as o,U as s,a as ee,b as c,c as l,et as te,f as u,g as d,h as f,m as ne,nt as p,o as re,p as m,t as h,ut as g,x as _,y as v}from"./http-WTIyGIuL.js";import{L as ie,N as ae,P as oe,U as se,V as y,a as b,i as x,w as S,x as ce,y as le}from"./index-senPc5aL.js";import{t as ue}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as C}from"./AdminSelect-Bi0VQHva.js";import{a as w,i as T}from"./adminLabels-Cz9ccm1Z.js";import{a as de}from"./orderStatus-CYVblRJB.js";var fe={class:`shipping-page`},pe={class:`shipping-page__filters admin-card`},me={class:`shipping-page__search`},he={class:`shipping-page__table admin-card desktop-only`},ge={class:`admin-table-wrap`},_e={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`},L={class:`admin-form__field`},ve={class:`admin-form__row`},ye={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=re(_({__name:`ShippingView`,setup(re){let _=oe(),R=p([]),z=p([]),B=p(typeof _.query.order==`string`?_.query.order:``),V=p(`all`),H=p(!0),U=p(!1),W=p(``),G=p(!1),K=ee(),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=u(()=>{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=u(()=>J.orderId.trim()&&J.carrier.trim()),De=u(()=>{let e=new Set(R.value.map(e=>e.orderId));return z.value.filter(t=>!e.has(t.id)&&de(t))}),Oe=u(()=>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([S.list(),ce.list()]);R.value=e,z.value=t.map(e=>le(e))}catch(e){K.error(e instanceof h?e.message:`بارگذاری ارسال‌ها انجام نشد.`)}finally{H.value=!1}}e(()=>{ke()}),s(()=>_.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 S.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 h?e.message:`ثبت بارنامه انجام نشد.`)}finally{G.value=!1}}async function $(e){try{let t=await S.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 h?e.message:`به‌روزرسانی وضعیت انجام نشد.`)}}return(e,s)=>(a(),d(`div`,fe,[m(`div`,{class:`admin-page-header`},[s[7]||=m(`div`,null,[m(`h1`,{class:`admin-page-header__title`},`ارسال و باربری`)],-1),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:je},` ثبت بارنامه `)]),m(`div`,pe,[m(`div`,me,[c(ae,{name:`search`,size:18}),i(m(`input`,{"onUpdate:modelValue":s[0]||=e=>B.value=e,type:`search`,class:`shipping-page__search-input`,placeholder:`جستجو در سفارش، مشتری، باربری...`},null,512),[[y,B.value]])]),c(C,{modelValue:V.value,"onUpdate:modelValue":s[1]||=e=>V.value=e,class:`shipping-page__status-select`,"aria-label":`فیلتر وضعیت ارسال`,options:Te},null,8,[`modelValue`])]),H.value?(a(),ne(ue,{key:0,variant:`table`})):(a(),d(l,{key:1},[m(`div`,he,[m(`div`,ge,[m(`table`,_e,[s[8]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`شماره سفارش`),m(`th`,null,`مشتری`),m(`th`,null,`باربری`),m(`th`,null,`شماره بارنامه`),m(`th`,null,`متراژ`),m(`th`,null,`وضعیت`),m(`th`,null,`تاریخ ارسال`),m(`th`,null,`تاریخ تحویل`),m(`th`,null,`عملیات`)])],-1),m(`tbody`,null,[(a(!0),d(l,null,r(Y.value,e=>(a(),d(`tr`,{key:e.id},[m(`td`,null,o(e.orderNumber),1),m(`td`,null,o(e.customerName),1),m(`td`,null,o(e.carrier),1),m(`td`,E,o(e.trackingNumber),1),m(`td`,null,o(g(b)(e.meterage)),1),m(`td`,null,[m(`span`,{class:t([`admin-badge`,g(T)[e.status]])},o(g(w)[e.status]),3)]),m(`td`,null,o(e.shippedAt?g(x)(e.shippedAt):`—`),1),m(`td`,null,o(e.deliveredAt?g(x)(e.deliveredAt):`—`),1),m(`td`,null,[e.status===`delivered`?(a(),d(`span`,O,`—`)):(a(),d(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,D))])]))),128))])])])]),m(`div`,k,[(a(!0),d(l,null,r(Y.value,e=>(a(),d(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,A,[m(`p`,j,o(e.orderNumber),1),m(`span`,{class:t([`admin-badge`,g(T)[e.status]])},o(g(w)[e.status]),3)]),m(`div`,M,[m(`span`,null,o(e.customerName),1),m(`span`,null,o(e.carrier),1),m(`span`,null,o(g(b)(e.meterage)),1),m(`span`,N,o(e.trackingNumber),1)]),e.status===`delivered`?f(``,!0):(a(),d(`div`,P,[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,F)]))]))),128))])],64)),c(ie,{open:U.value,title:`ثبت بارنامه`,size:`lg`,onClose:Z},{footer:n(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.value||G.value,onClick:Q},` ثبت بارنامه `,8,we)]),default:n(()=>[m(`form`,{class:`admin-form`,onSubmit:se(Q,[`prevent`])},[W.value?(a(),d(`p`,I,o(W.value),1)):f(``,!0),m(`div`,L,[s[9]||=m(`label`,{id:`ship-order-label`},[v(`سفارش `),m(`span`,{class:`admin-form__required`},`*`)],-1),c(C,{modelValue:J.orderId,"onUpdate:modelValue":[s[2]||=e=>J.orderId=e,Ae],block:``,"aria-label":`انتخاب سفارش`,placeholder:`انتخاب سفارش`,options:Oe.value},null,8,[`modelValue`,`options`])]),m(`div`,ve,[m(`div`,ye,[s[10]||=m(`label`,{for:`ship-carrier`},[v(`باربری `),m(`span`,{class:`admin-form__required`},`*`)],-1),i(m(`input`,{id:`ship-carrier`,"onUpdate:modelValue":s[3]||=e=>J.carrier=e,type:`text`,class:`admin-input`},null,512),[[y,J.carrier]])]),m(`div`,be,[s[11]||=m(`label`,{for:`ship-tracking`},`شماره بارنامه`,-1),i(m(`input`,{id:`ship-tracking`,"onUpdate:modelValue":s[4]||=e=>J.trackingNumber=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[y,J.trackingNumber]])])]),m(`div`,xe,[m(`div`,Se,[s[12]||=m(`label`,{for:`ship-meterage`},`متراژ`,-1),i(m(`input`,{id:`ship-meterage`,"onUpdate:modelValue":s[5]||=e=>J.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[y,J.meterage,void 0,{number:!0}]])]),m(`div`,Ce,[s[13]||=m(`label`,{id:`ship-status-label`},`وضعیت`,-1),c(C,{modelValue:J.status,"onUpdate:modelValue":s[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 +import{A as e,At as t,G as n,I as r,K as i,N as a,Nt as o,U as s,a as ee,b as c,c as l,et as te,f as u,g as d,h as f,m as ne,nt as p,o as re,p as m,t as h,ut as g,x as _,y as v}from"./http-WTIyGIuL.js";import{L as ie,N as ae,P as oe,U as se,V as y,a as b,i as x,w as S,x as ce,y as le}from"./index-mN60lSc2.js";import{t as ue}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as C}from"./AdminSelect-Bw3z0TPQ.js";import{a as w,i as T}from"./adminLabels-Cz9ccm1Z.js";import{a as de}from"./orderStatus-CYVblRJB.js";var fe={class:`shipping-page`},pe={class:`shipping-page__filters admin-card`},me={class:`shipping-page__search`},he={class:`shipping-page__table admin-card desktop-only`},ge={class:`admin-table-wrap`},_e={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`},L={class:`admin-form__field`},ve={class:`admin-form__row`},ye={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=re(_({__name:`ShippingView`,setup(re){let _=oe(),R=p([]),z=p([]),B=p(typeof _.query.order==`string`?_.query.order:``),V=p(`all`),H=p(!0),U=p(!1),W=p(``),G=p(!1),K=ee(),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=u(()=>{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=u(()=>J.orderId.trim()&&J.carrier.trim()),De=u(()=>{let e=new Set(R.value.map(e=>e.orderId));return z.value.filter(t=>!e.has(t.id)&&de(t))}),Oe=u(()=>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([S.list(),ce.list()]);R.value=e,z.value=t.map(e=>le(e))}catch(e){K.error(e instanceof h?e.message:`بارگذاری ارسال‌ها انجام نشد.`)}finally{H.value=!1}}e(()=>{ke()}),s(()=>_.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 S.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 h?e.message:`ثبت بارنامه انجام نشد.`)}finally{G.value=!1}}async function $(e){try{let t=await S.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 h?e.message:`به‌روزرسانی وضعیت انجام نشد.`)}}return(e,s)=>(a(),d(`div`,fe,[m(`div`,{class:`admin-page-header`},[s[7]||=m(`div`,null,[m(`h1`,{class:`admin-page-header__title`},`ارسال و باربری`)],-1),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:je},` ثبت بارنامه `)]),m(`div`,pe,[m(`div`,me,[c(ae,{name:`search`,size:18}),i(m(`input`,{"onUpdate:modelValue":s[0]||=e=>B.value=e,type:`search`,class:`shipping-page__search-input`,placeholder:`جستجو در سفارش، مشتری، باربری...`},null,512),[[y,B.value]])]),c(C,{modelValue:V.value,"onUpdate:modelValue":s[1]||=e=>V.value=e,class:`shipping-page__status-select`,"aria-label":`فیلتر وضعیت ارسال`,options:Te},null,8,[`modelValue`])]),H.value?(a(),ne(ue,{key:0,variant:`table`})):(a(),d(l,{key:1},[m(`div`,he,[m(`div`,ge,[m(`table`,_e,[s[8]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`شماره سفارش`),m(`th`,null,`مشتری`),m(`th`,null,`باربری`),m(`th`,null,`شماره بارنامه`),m(`th`,null,`متراژ`),m(`th`,null,`وضعیت`),m(`th`,null,`تاریخ ارسال`),m(`th`,null,`تاریخ تحویل`),m(`th`,null,`عملیات`)])],-1),m(`tbody`,null,[(a(!0),d(l,null,r(Y.value,e=>(a(),d(`tr`,{key:e.id},[m(`td`,null,o(e.orderNumber),1),m(`td`,null,o(e.customerName),1),m(`td`,null,o(e.carrier),1),m(`td`,E,o(e.trackingNumber),1),m(`td`,null,o(g(b)(e.meterage)),1),m(`td`,null,[m(`span`,{class:t([`admin-badge`,g(T)[e.status]])},o(g(w)[e.status]),3)]),m(`td`,null,o(e.shippedAt?g(x)(e.shippedAt):`—`),1),m(`td`,null,o(e.deliveredAt?g(x)(e.deliveredAt):`—`),1),m(`td`,null,[e.status===`delivered`?(a(),d(`span`,O,`—`)):(a(),d(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,D))])]))),128))])])])]),m(`div`,k,[(a(!0),d(l,null,r(Y.value,e=>(a(),d(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,A,[m(`p`,j,o(e.orderNumber),1),m(`span`,{class:t([`admin-badge`,g(T)[e.status]])},o(g(w)[e.status]),3)]),m(`div`,M,[m(`span`,null,o(e.customerName),1),m(`span`,null,o(e.carrier),1),m(`span`,null,o(g(b)(e.meterage)),1),m(`span`,N,o(e.trackingNumber),1)]),e.status===`delivered`?f(``,!0):(a(),d(`div`,P,[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,F)]))]))),128))])],64)),c(ie,{open:U.value,title:`ثبت بارنامه`,size:`lg`,onClose:Z},{footer:n(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.value||G.value,onClick:Q},` ثبت بارنامه `,8,we)]),default:n(()=>[m(`form`,{class:`admin-form`,onSubmit:se(Q,[`prevent`])},[W.value?(a(),d(`p`,I,o(W.value),1)):f(``,!0),m(`div`,L,[s[9]||=m(`label`,{id:`ship-order-label`},[v(`سفارش `),m(`span`,{class:`admin-form__required`},`*`)],-1),c(C,{modelValue:J.orderId,"onUpdate:modelValue":[s[2]||=e=>J.orderId=e,Ae],block:``,"aria-label":`انتخاب سفارش`,placeholder:`انتخاب سفارش`,options:Oe.value},null,8,[`modelValue`,`options`])]),m(`div`,ve,[m(`div`,ye,[s[10]||=m(`label`,{for:`ship-carrier`},[v(`باربری `),m(`span`,{class:`admin-form__required`},`*`)],-1),i(m(`input`,{id:`ship-carrier`,"onUpdate:modelValue":s[3]||=e=>J.carrier=e,type:`text`,class:`admin-input`},null,512),[[y,J.carrier]])]),m(`div`,be,[s[11]||=m(`label`,{for:`ship-tracking`},`شماره بارنامه`,-1),i(m(`input`,{id:`ship-tracking`,"onUpdate:modelValue":s[4]||=e=>J.trackingNumber=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[y,J.trackingNumber]])])]),m(`div`,xe,[m(`div`,Se,[s[12]||=m(`label`,{for:`ship-meterage`},`متراژ`,-1),i(m(`input`,{id:`ship-meterage`,"onUpdate:modelValue":s[5]||=e=>J.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[y,J.meterage,void 0,{number:!0}]])]),m(`div`,Ce,[s[13]||=m(`label`,{id:`ship-status-label`},`وضعیت`,-1),c(C,{modelValue:J.status,"onUpdate:modelValue":s[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/StockAlertsView-ByyE4I3s.js b/dist/assets/StockAlertsView-QdcvkdiB.js similarity index 93% rename from dist/assets/StockAlertsView-ByyE4I3s.js rename to dist/assets/StockAlertsView-QdcvkdiB.js index 3d13ced..0233a77 100644 --- a/dist/assets/StockAlertsView-ByyE4I3s.js +++ b/dist/assets/StockAlertsView-QdcvkdiB.js @@ -1 +1 @@ -import{A as e,I as t,N as n,Nt as r,a as i,c as a,g as o,m as s,nt as c,o as l,p as u,t as d,x as f,y as p}from"./http-WTIyGIuL.js";import{E as m}from"./index-senPc5aL.js";import{t as h}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as g}from"./BaseEmptyState-P-TMfHGI.js";var _={class:`admin-page`},v={key:2,class:`admin-table`},y={class:`muted`,dir:`ltr`},b={class:`muted`,dir:`ltr`},x=[`onClick`],S=l(f({__name:`StockAlertsView`,setup(l){let f=c([]),S=c(!0),C=i();async function w(){S.value=!0;try{f.value=await m.list()}catch(e){C.error(e instanceof d?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 d?e.message:`ارسال ناموفق بود`)}}return e(()=>{w()}),(e,i)=>(n(),o(`div`,_,[i[1]||=u(`header`,{class:`admin-page__head`},[u(`div`,null,[u(`h1`,null,`درخواست خبر موجودی`),u(`p`,null,`مشتریانی که برای محصول ناموجود درخواست اطلاع داده‌اند`)])],-1),S.value?(n(),s(h,{key:0,variant:`table`})):f.value.length?(n(),o(`table`,v,[i[0]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`مشتری`),u(`th`,null,`محصول`),u(`th`,null,`موجودی فعلی`),u(`th`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(f.value,e=>(n(),o(`tr`,{key:e.id},[u(`td`,null,[p(r(e.customerName)+` `,1),u(`span`,y,r(e.customerPhone),1)]),u(`td`,null,[p(r(e.productName)+` `,1),u(`span`,b,`(`+r(e.productCode)+`)`,1)]),u(`td`,null,r(e.stock??`—`),1),u(`td`,null,[u(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:t=>T(e.id)},`ارسال اعلان`,8,x)])]))),128))])])):(n(),s(g,{key:1,title:`درخواستی فعال نیست`}))]))}}),[[`__scopeId`,`data-v-61131544`]]);export{S as default}; \ No newline at end of file +import{A as e,I as t,N as n,Nt as r,a as i,c as a,g as o,m as s,nt as c,o as l,p as u,t as d,x as f,y as p}from"./http-WTIyGIuL.js";import{E as m}from"./index-mN60lSc2.js";import{t as h}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as g}from"./BaseEmptyState-D5jlq4nS.js";var _={class:`admin-page`},v={key:2,class:`admin-table`},y={class:`muted`,dir:`ltr`},b={class:`muted`,dir:`ltr`},x=[`onClick`],S=l(f({__name:`StockAlertsView`,setup(l){let f=c([]),S=c(!0),C=i();async function w(){S.value=!0;try{f.value=await m.list()}catch(e){C.error(e instanceof d?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 d?e.message:`ارسال ناموفق بود`)}}return e(()=>{w()}),(e,i)=>(n(),o(`div`,_,[i[1]||=u(`header`,{class:`admin-page__head`},[u(`div`,null,[u(`h1`,null,`درخواست خبر موجودی`),u(`p`,null,`مشتریانی که برای محصول ناموجود درخواست اطلاع داده‌اند`)])],-1),S.value?(n(),s(h,{key:0,variant:`table`})):f.value.length?(n(),o(`table`,v,[i[0]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`مشتری`),u(`th`,null,`محصول`),u(`th`,null,`موجودی فعلی`),u(`th`)])],-1),u(`tbody`,null,[(n(!0),o(a,null,t(f.value,e=>(n(),o(`tr`,{key:e.id},[u(`td`,null,[p(r(e.customerName)+` `,1),u(`span`,y,r(e.customerPhone),1)]),u(`td`,null,[p(r(e.productName)+` `,1),u(`span`,b,`(`+r(e.productCode)+`)`,1)]),u(`td`,null,r(e.stock??`—`),1),u(`td`,null,[u(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:t=>T(e.id)},`ارسال اعلان`,8,x)])]))),128))])])):(n(),s(g,{key:1,title:`درخواستی فعال نیست`}))]))}}),[[`__scopeId`,`data-v-61131544`]]);export{S as default}; \ No newline at end of file diff --git a/dist/assets/SuggestionsView-B9eEUT1E.js b/dist/assets/SuggestionsView-CdS7IuYt.js similarity index 94% rename from dist/assets/SuggestionsView-B9eEUT1E.js rename to dist/assets/SuggestionsView-CdS7IuYt.js index 909dfe1..1e48d9e 100644 --- a/dist/assets/SuggestionsView-B9eEUT1E.js +++ b/dist/assets/SuggestionsView-CdS7IuYt.js @@ -1 +1 @@ -import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as l,f as u,g as d,m as f,nt as p,o as m,p as h,t as g,x as _,y as v}from"./http-WTIyGIuL.js";import{D as y,L as b,S as x,V as S,g as C}from"./index-senPc5aL.js";import{t as w}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as T}from"./BaseEmptyState-P-TMfHGI.js";import{t as E}from"./AdminSelect-Bi0VQHva.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=m(_({__name:`SuggestionsView`,setup(m){let _=p([]),I=p(!0),L=p([]),R=p([]),z=p(!1),B=o(),V=l({customerId:``,productId:``,note:``}),H=u(()=>L.value.map(e=>({value:e.id,label:e.name?.trim()||e.phone}))),U=u(()=>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([y.list(),C.list(),x.list()]);_.value=e,L.value=t,R.value=n}catch(e){B.error(e instanceof g?e.message:`بارگذاری ناموفق بود`)}finally{I.value=!1}}async function G(){try{await y.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 g?e.message:`ثبت ناموفق بود`)}}async function K(e){try{await y.setActive(e.id,!e.isActive),await W()}catch(e){B.error(e instanceof g?e.message:`به‌روزرسانی ناموفق بود`)}}return e(()=>{W()}),(e,o)=>(i(),d(`div`,D,[h(`header`,O,[o[5]||=h(`div`,null,[h(`h1`,null,`پیشنهاد محصول`),h(`p`,null,`پیشنهاد دستی محصول به مشتری`)],-1),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:o[0]||=e=>z.value=!0},`پیشنهاد جدید`)]),I.value?(i(),f(w,{key:0,variant:`table`})):_.value.length?(i(),d(`table`,k,[o[6]||=h(`thead`,null,[h(`tr`,null,[h(`th`,null,`مشتری`),h(`th`,null,`محصول`),h(`th`,null,`یادداشت`),h(`th`,null,`وضعیت`),h(`th`)])],-1),h(`tbody`,null,[(i(!0),d(c,null,n(_.value,e=>(i(),d(`tr`,{key:e.id},[h(`td`,null,a(e.customerName),1),h(`td`,null,[v(a(e.productName)+` `,1),h(`span`,A,`(`+a(e.productCode)+`)`,1)]),h(`td`,null,a(e.note||`—`),1),h(`td`,null,a(e.isActive?`فعال`:`غیرفعال`),1),h(`td`,null,[h(`button`,{type:`button`,class:`link`,onClick:t=>K(e)},a(e.isActive?`غیرفعال`:`فعال`),9,j)])]))),128))])])):(i(),f(T,{key:1,title:`پیشنهادی ثبت نشده`})),s(b,{open:z.value,title:`پیشنهاد محصول`,onClose:o[4]||=e=>z.value=!1},{footer:t(()=>[h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!V.customerId||!V.productId,onClick:G},` ثبت `,8,F)]),default:t(()=>[h(`label`,M,[o[7]||=v(`مشتری `,-1),s(E,{modelValue:V.customerId,"onUpdate:modelValue":o[1]||=e=>V.customerId=e,options:H.value},null,8,[`modelValue`,`options`])]),h(`label`,N,[o[8]||=v(`محصول `,-1),s(E,{modelValue:V.productId,"onUpdate:modelValue":o[2]||=e=>V.productId=e,options:U.value},null,8,[`modelValue`,`options`])]),h(`label`,P,[o[9]||=v(`یادداشت`,-1),r(h(`textarea`,{"onUpdate:modelValue":o[3]||=e=>V.note=e,class:`admin-input`,rows:`3`},null,512),[[S,V.note]])])]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-56e3e728`]]);export{I as default}; \ No newline at end of file +import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as l,f as u,g as d,m as f,nt as p,o as m,p as h,t as g,x as _,y as v}from"./http-WTIyGIuL.js";import{D as y,L as b,S as x,V as S,g as C}from"./index-mN60lSc2.js";import{t as w}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as T}from"./BaseEmptyState-D5jlq4nS.js";import{t as E}from"./AdminSelect-Bw3z0TPQ.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=m(_({__name:`SuggestionsView`,setup(m){let _=p([]),I=p(!0),L=p([]),R=p([]),z=p(!1),B=o(),V=l({customerId:``,productId:``,note:``}),H=u(()=>L.value.map(e=>({value:e.id,label:e.name?.trim()||e.phone}))),U=u(()=>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([y.list(),C.list(),x.list()]);_.value=e,L.value=t,R.value=n}catch(e){B.error(e instanceof g?e.message:`بارگذاری ناموفق بود`)}finally{I.value=!1}}async function G(){try{await y.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 g?e.message:`ثبت ناموفق بود`)}}async function K(e){try{await y.setActive(e.id,!e.isActive),await W()}catch(e){B.error(e instanceof g?e.message:`به‌روزرسانی ناموفق بود`)}}return e(()=>{W()}),(e,o)=>(i(),d(`div`,D,[h(`header`,O,[o[5]||=h(`div`,null,[h(`h1`,null,`پیشنهاد محصول`),h(`p`,null,`پیشنهاد دستی محصول به مشتری`)],-1),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:o[0]||=e=>z.value=!0},`پیشنهاد جدید`)]),I.value?(i(),f(w,{key:0,variant:`table`})):_.value.length?(i(),d(`table`,k,[o[6]||=h(`thead`,null,[h(`tr`,null,[h(`th`,null,`مشتری`),h(`th`,null,`محصول`),h(`th`,null,`یادداشت`),h(`th`,null,`وضعیت`),h(`th`)])],-1),h(`tbody`,null,[(i(!0),d(c,null,n(_.value,e=>(i(),d(`tr`,{key:e.id},[h(`td`,null,a(e.customerName),1),h(`td`,null,[v(a(e.productName)+` `,1),h(`span`,A,`(`+a(e.productCode)+`)`,1)]),h(`td`,null,a(e.note||`—`),1),h(`td`,null,a(e.isActive?`فعال`:`غیرفعال`),1),h(`td`,null,[h(`button`,{type:`button`,class:`link`,onClick:t=>K(e)},a(e.isActive?`غیرفعال`:`فعال`),9,j)])]))),128))])])):(i(),f(T,{key:1,title:`پیشنهادی ثبت نشده`})),s(b,{open:z.value,title:`پیشنهاد محصول`,onClose:o[4]||=e=>z.value=!1},{footer:t(()=>[h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!V.customerId||!V.productId,onClick:G},` ثبت `,8,F)]),default:t(()=>[h(`label`,M,[o[7]||=v(`مشتری `,-1),s(E,{modelValue:V.customerId,"onUpdate:modelValue":o[1]||=e=>V.customerId=e,options:H.value},null,8,[`modelValue`,`options`])]),h(`label`,N,[o[8]||=v(`محصول `,-1),s(E,{modelValue:V.productId,"onUpdate:modelValue":o[2]||=e=>V.productId=e,options:U.value},null,8,[`modelValue`,`options`])]),h(`label`,P,[o[9]||=v(`یادداشت`,-1),r(h(`textarea`,{"onUpdate:modelValue":o[3]||=e=>V.note=e,class:`admin-input`,rows:`3`},null,512),[[S,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-DDVrgBRB.js b/dist/assets/UsersView-OoZZqmAT.js similarity index 96% rename from dist/assets/UsersView-DDVrgBRB.js rename to dist/assets/UsersView-OoZZqmAT.js index c3a8626..3a3570e 100644 --- a/dist/assets/UsersView-DDVrgBRB.js +++ b/dist/assets/UsersView-OoZZqmAT.js @@ -1 +1 @@ -import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as ee,f as l,g as u,h as d,m as f,nt as p,o as te,p as m,t as h,ut as g,x as _,y as v}from"./http-WTIyGIuL.js";import{L as ne,N as re,U as ie,V as y,i as ae,s as b}from"./index-senPc5aL.js";import{t as oe}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as se}from"./BaseSwitch-gjOaAbzm.js";import{t as ce}from"./BaseEmptyState-P-TMfHGI.js";import{t as x}from"./AdminSelect-Bi0VQHva.js";import{o as S}from"./adminLabels-Cz9ccm1Z.js";import{t as C}from"./ActiveSwitchCell-CU-04sUE.js";var le={class:`users-page`},ue={class:`users-page__search admin-card`},de={key:2,class:`users-page__table admin-card desktop-only`},fe={class:`admin-table-wrap`},pe={class:`admin-table`},me={dir:`ltr`},he={class:`status`},ge={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=te(_({__name:`UsersView`,setup(te){let _=p([]),R=p(``),z=p(!0),B=p(null),V=p(null),H=p(``),U=p(!1),W=o(),be=[{value:`admin`,label:`مدیر سیستم`},{value:`sales`,label:`واحد فروش`},{value:`finance`,label:`واحد مالی`},{value:`warehouse`,label:`انبار`}],G=()=>({fullName:``,phone:``,email:``,role:`sales`,isActive:!0}),K=ee(G()),xe=l(()=>B.value!==null),Se=l(()=>B.value===`edit`?`ویرایش کاربر`:`افزودن کاربر`),q=l(()=>K.fullName.trim()&&K.phone.trim()),J=l(()=>{let e=R.value.trim();return e?_.value.filter(t=>t.fullName.includes(e)||t.phone.includes(e)||t.email.includes(e)||S[t.role].includes(e)):_.value});async function Ce(){z.value=!0;try{_.value=await b.list()}catch(e){W.error(e instanceof h?e.message:`بارگذاری کاربران انجام نشد.`)}finally{z.value=!1}}e(()=>{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=_.value.findIndex(e=>e.id===V.value);n!==-1&&(_.value[n]={..._.value[n],...t})}else{let t=await b.create(e);_.value.push(t)}W.success(B.value===`edit`?`اطلاعات کاربر به‌روزرسانی شد.`:`کاربر جدید ثبت شد.`),Z()}catch(e){W.error(e instanceof h?e.message:`ذخیره کاربر انجام نشد.`)}finally{U.value=!1}}async function $(e,t){await b.setActive(e,t)}function we(){R.value=``}return(e,o)=>(i(),u(`div`,le,[m(`div`,{class:`admin-page-header`},[o[6]||=m(`div`,null,[m(`h1`,{class:`admin-page-header__title`},`کاربران و دسترسی‌ها`)],-1),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کاربر `)]),m(`div`,ue,[s(re,{name:`search`,size:18}),r(m(`input`,{"onUpdate:modelValue":o[0]||=e=>R.value=e,type:`search`,class:`users-page__search-input`,placeholder:`جستجو در نام، تلفن، ایمیل...`},null,512),[[y,R.value]])]),z.value?(i(),f(oe,{key:0,variant:`table`})):J.value.length?(i(),u(`div`,de,[m(`div`,fe,[m(`table`,pe,[o[7]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`نام`),m(`th`,null,`تلفن`),m(`th`,null,`ایمیل`),m(`th`,null,`نقش`),m(`th`,{class:`status`},`وضعیت`),m(`th`,null,`آخرین ورود`),m(`th`,{class:`actions`},`عملیات`)])],-1),m(`tbody`,null,[(i(!0),u(c,null,n(J.value,e=>(i(),u(`tr`,{key:e.id},[m(`td`,null,a(e.fullName),1),m(`td`,null,a(e.phone),1),m(`td`,me,a(e.email),1),m(`td`,null,a(g(S)[e.role]),1),m(`td`,he,[s(C,{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`])]),m(`td`,null,a(e.lastLoginAt?g(ae)(e.lastLoginAt):`—`),1),m(`td`,ge,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,w)])]))),128))])])])])):(i(),f(ce,{key:1,class:`admin-card`,icon:`users`,title:R.value.trim()?`نتیجه‌ای یافت نشد`:`کاربری ثبت نشده`,description:R.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کاربر را ثبت کنید.`},{default:t(()=>[R.value.trim()?(i(),u(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:we},` پاک کردن جستجو `)):(i(),u(`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?(i(),u(`div`,T,[(i(!0),u(c,null,n(J.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,E,[m(`p`,D,a(e.fullName),1),s(C,{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`])]),m(`div`,O,[m(`span`,null,a(g(S)[e.role]),1),m(`span`,null,a(e.phone),1),m(`span`,k,a(e.email),1)]),m(`div`,A,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,j)])]))),128))])):d(``,!0),s(ne,{open:xe.value,title:Se.value,size:`lg`,onClose:Z},{footer:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!q.value||U.value,onClick:Q},[U.value?(i(),u(`span`,ye)):d(``,!0),v(` `+a(B.value===`edit`?`ذخیره تغییرات`:`ثبت کاربر`),1)],8,ve)]),default:t(()=>[m(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[H.value?(i(),u(`p`,M,a(H.value),1)):d(``,!0),m(`div`,N,[o[8]||=m(`label`,{for:`user-name`},[v(`نام کامل `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`user-name`,"onUpdate:modelValue":o[1]||=e=>K.fullName=e,type:`text`,class:`admin-input`},null,512),[[y,K.fullName]])]),m(`div`,P,[m(`div`,F,[o[9]||=m(`label`,{for:`user-phone`},[v(`تلفن `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`user-phone`,"onUpdate:modelValue":o[2]||=e=>K.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[y,K.phone]])]),m(`div`,I,[o[10]||=m(`label`,{for:`user-email`},`ایمیل`,-1),r(m(`input`,{id:`user-email`,"onUpdate:modelValue":o[3]||=e=>K.email=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[y,K.email]])])]),m(`div`,L,[o[11]||=m(`label`,null,`نقش`,-1),s(x,{modelValue:K.role,"onUpdate:modelValue":o[4]||=e=>K.role=e,block:``,"aria-label":`نقش کاربر`,options:be},null,8,[`modelValue`])]),m(`div`,_e,[s(se,{modelValue:K.isActive,"onUpdate:modelValue":o[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 +import{A as e,G as t,I as n,K as r,N as i,Nt as a,a as o,b as s,c,et as ee,f as l,g as u,h as d,m as f,nt as p,o as te,p as m,t as h,ut as g,x as _,y as v}from"./http-WTIyGIuL.js";import{L as ne,N as re,U as ie,V as y,i as ae,s as b}from"./index-mN60lSc2.js";import{t as oe}from"./AdminPageSkeleton-D-u-8bBz.js";import{t as se}from"./BaseSwitch-gjOaAbzm.js";import{t as ce}from"./BaseEmptyState-D5jlq4nS.js";import{t as x}from"./AdminSelect-Bw3z0TPQ.js";import{o as S}from"./adminLabels-Cz9ccm1Z.js";import{t as C}from"./ActiveSwitchCell-BaPmkdOq.js";var le={class:`users-page`},ue={class:`users-page__search admin-card`},de={key:2,class:`users-page__table admin-card desktop-only`},fe={class:`admin-table-wrap`},pe={class:`admin-table`},me={dir:`ltr`},he={class:`status`},ge={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=te(_({__name:`UsersView`,setup(te){let _=p([]),R=p(``),z=p(!0),B=p(null),V=p(null),H=p(``),U=p(!1),W=o(),be=[{value:`admin`,label:`مدیر سیستم`},{value:`sales`,label:`واحد فروش`},{value:`finance`,label:`واحد مالی`},{value:`warehouse`,label:`انبار`}],G=()=>({fullName:``,phone:``,email:``,role:`sales`,isActive:!0}),K=ee(G()),xe=l(()=>B.value!==null),Se=l(()=>B.value===`edit`?`ویرایش کاربر`:`افزودن کاربر`),q=l(()=>K.fullName.trim()&&K.phone.trim()),J=l(()=>{let e=R.value.trim();return e?_.value.filter(t=>t.fullName.includes(e)||t.phone.includes(e)||t.email.includes(e)||S[t.role].includes(e)):_.value});async function Ce(){z.value=!0;try{_.value=await b.list()}catch(e){W.error(e instanceof h?e.message:`بارگذاری کاربران انجام نشد.`)}finally{z.value=!1}}e(()=>{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=_.value.findIndex(e=>e.id===V.value);n!==-1&&(_.value[n]={..._.value[n],...t})}else{let t=await b.create(e);_.value.push(t)}W.success(B.value===`edit`?`اطلاعات کاربر به‌روزرسانی شد.`:`کاربر جدید ثبت شد.`),Z()}catch(e){W.error(e instanceof h?e.message:`ذخیره کاربر انجام نشد.`)}finally{U.value=!1}}async function $(e,t){await b.setActive(e,t)}function we(){R.value=``}return(e,o)=>(i(),u(`div`,le,[m(`div`,{class:`admin-page-header`},[o[6]||=m(`div`,null,[m(`h1`,{class:`admin-page-header__title`},`کاربران و دسترسی‌ها`)],-1),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کاربر `)]),m(`div`,ue,[s(re,{name:`search`,size:18}),r(m(`input`,{"onUpdate:modelValue":o[0]||=e=>R.value=e,type:`search`,class:`users-page__search-input`,placeholder:`جستجو در نام، تلفن، ایمیل...`},null,512),[[y,R.value]])]),z.value?(i(),f(oe,{key:0,variant:`table`})):J.value.length?(i(),u(`div`,de,[m(`div`,fe,[m(`table`,pe,[o[7]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`نام`),m(`th`,null,`تلفن`),m(`th`,null,`ایمیل`),m(`th`,null,`نقش`),m(`th`,{class:`status`},`وضعیت`),m(`th`,null,`آخرین ورود`),m(`th`,{class:`actions`},`عملیات`)])],-1),m(`tbody`,null,[(i(!0),u(c,null,n(J.value,e=>(i(),u(`tr`,{key:e.id},[m(`td`,null,a(e.fullName),1),m(`td`,null,a(e.phone),1),m(`td`,me,a(e.email),1),m(`td`,null,a(g(S)[e.role]),1),m(`td`,he,[s(C,{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`])]),m(`td`,null,a(e.lastLoginAt?g(ae)(e.lastLoginAt):`—`),1),m(`td`,ge,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,w)])]))),128))])])])])):(i(),f(ce,{key:1,class:`admin-card`,icon:`users`,title:R.value.trim()?`نتیجه‌ای یافت نشد`:`کاربری ثبت نشده`,description:R.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کاربر را ثبت کنید.`},{default:t(()=>[R.value.trim()?(i(),u(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:we},` پاک کردن جستجو `)):(i(),u(`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?(i(),u(`div`,T,[(i(!0),u(c,null,n(J.value,e=>(i(),u(`article`,{key:e.id,class:`admin-card-item`},[m(`div`,E,[m(`p`,D,a(e.fullName),1),s(C,{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`])]),m(`div`,O,[m(`span`,null,a(g(S)[e.role]),1),m(`span`,null,a(e.phone),1),m(`span`,k,a(e.email),1)]),m(`div`,A,[m(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,j)])]))),128))])):d(``,!0),s(ne,{open:xe.value,title:Se.value,size:`lg`,onClose:Z},{footer:t(()=>[m(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),m(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!q.value||U.value,onClick:Q},[U.value?(i(),u(`span`,ye)):d(``,!0),v(` `+a(B.value===`edit`?`ذخیره تغییرات`:`ثبت کاربر`),1)],8,ve)]),default:t(()=>[m(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[H.value?(i(),u(`p`,M,a(H.value),1)):d(``,!0),m(`div`,N,[o[8]||=m(`label`,{for:`user-name`},[v(`نام کامل `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`user-name`,"onUpdate:modelValue":o[1]||=e=>K.fullName=e,type:`text`,class:`admin-input`},null,512),[[y,K.fullName]])]),m(`div`,P,[m(`div`,F,[o[9]||=m(`label`,{for:`user-phone`},[v(`تلفن `),m(`span`,{class:`admin-form__required`},`*`)],-1),r(m(`input`,{id:`user-phone`,"onUpdate:modelValue":o[2]||=e=>K.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[y,K.phone]])]),m(`div`,I,[o[10]||=m(`label`,{for:`user-email`},`ایمیل`,-1),r(m(`input`,{id:`user-email`,"onUpdate:modelValue":o[3]||=e=>K.email=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[y,K.email]])])]),m(`div`,L,[o[11]||=m(`label`,null,`نقش`,-1),s(x,{modelValue:K.role,"onUpdate:modelValue":o[4]||=e=>K.role=e,block:``,"aria-label":`نقش کاربر`,options:be},null,8,[`modelValue`])]),m(`div`,_e,[s(se,{modelValue:K.isActive,"onUpdate:modelValue":o[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/index-senPc5aL.js b/dist/assets/index-mN60lSc2.js similarity index 97% rename from dist/assets/index-senPc5aL.js rename to dist/assets/index-mN60lSc2.js index 63cd46d..354e51e 100644 --- a/dist/assets/index-senPc5aL.js +++ b/dist/assets/index-mN60lSc2.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-CG-fIPqO.js","assets/http-WTIyGIuL.js","assets/LoginView-BIWJ8gRk.css","assets/DashboardView-DB8d_Lkp.js","assets/StatusBadge-C_awmXg1.js","assets/orderStatus-CYVblRJB.js","assets/StatusBadge-D4wGJ-Ud.css","assets/DashboardView-Tmb__ujh.css","assets/OrdersView-DEb47ybi.js","assets/AdminSelect-Bi0VQHva.js","assets/AdminSelect-MhRL2LFC.css","assets/adminLabels-Cz9ccm1Z.js","assets/OrdersView-BdQzhX-C.css","assets/OrderPricingView-D6ELkOQs.js","assets/AdminPageSkeleton-D-u-8bBz.js","assets/AdminPageSkeleton-Gm3IJwUK.css","assets/AdminCurrencyInput-DEYWjQBL.js","assets/AdminCurrencyInput-QPh70it7.css","assets/OrderPricingView-D4tU9mWx.css","assets/ChecksListView-B2lM1Mri.js","assets/ChecksListView-DeOu1gFo.css","assets/CheckManagementView-BLeaEEuT.js","assets/CheckManagementView-BXeKB26U.css","assets/CompaniesView-Dr0i2DgE.js","assets/BaseSwitch-gjOaAbzm.js","assets/BaseSwitch-CCZjYqBV.css","assets/BaseEmptyState-P-TMfHGI.js","assets/BaseEmptyState-Df57vCUi.css","assets/ActiveSwitchCell-CU-04sUE.js","assets/CompaniesView-BubE_GYW.css","assets/BankAccountsView-bjQn6OKl.js","assets/BankAccountsView-jIdT6saw.css","assets/CustomersView-BZ2XNcSp.js","assets/CustomersView-BZe629uZ.css","assets/ProductsView-DeAxfx2Z.js","assets/catalogImage-DbusXpop.js","assets/ProductsView-BI4U2eG5.css","assets/CategoriesView-DodASqYI.js","assets/AdminImagePicker-DcFp1rIR.js","assets/AdminImagePicker-DYQRk81o.css","assets/CategoriesView-CL20Eino.css","assets/BannersView-CSVhu69t.js","assets/BannersView-DlJtlA4V.css","assets/CatalogsView-JnHYSqVw.js","assets/CatalogsView-Dj5TmI-2.css","assets/CatalogRequestsView-DmuxccLi.js","assets/CatalogRequestsView-DmO_C6eq.css","assets/BrandsView-BgcQt9a9.js","assets/BrandsView-B85xOFCI.css","assets/SuggestionsView-B9eEUT1E.js","assets/SuggestionsView-ztSfUAsG.css","assets/StockAlertsView-ByyE4I3s.js","assets/StockAlertsView-CBkZ5P6m.css","assets/LevelsView-C9cD642-.js","assets/LevelsView-Bwpvfee6.css","assets/CashPaymentsView-BKRIGKw1.js","assets/CashPaymentsView-DDBlTRfX.css","assets/ShippingView-U8liSwBL.js","assets/ShippingView-G0QuXsX0.css","assets/ReportsView-DyBGvZCc.js","assets/ReportsView-dONYkP5k.css","assets/SettingsView-BXC0CbHB.js","assets/SettingsView-BxjDb3Mp.css","assets/UsersView-DDVrgBRB.js","assets/UsersView-DSH2HjHE.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-Cwr3-bag.js","assets/http-WTIyGIuL.js","assets/LoginView-BIWJ8gRk.css","assets/DashboardView-WAVxdnr5.js","assets/StatusBadge-C_awmXg1.js","assets/orderStatus-CYVblRJB.js","assets/StatusBadge-D4wGJ-Ud.css","assets/DashboardView-Tmb__ujh.css","assets/OrdersView-syyGE4fv.js","assets/AdminSelect-Bw3z0TPQ.js","assets/AdminSelect-MhRL2LFC.css","assets/adminLabels-Cz9ccm1Z.js","assets/OrdersView-BdQzhX-C.css","assets/OrderPricingView-DAA-KKtU.js","assets/AdminPageSkeleton-D-u-8bBz.js","assets/AdminPageSkeleton-Gm3IJwUK.css","assets/AdminCurrencyInput-Dej5qU24.js","assets/AdminCurrencyInput-QPh70it7.css","assets/OrderPricingView-D4tU9mWx.css","assets/ChecksListView-DM6EfJQS.js","assets/ChecksListView-DeOu1gFo.css","assets/CheckManagementView-DdfJ7mM8.js","assets/CheckManagementView-BXeKB26U.css","assets/CompaniesView-EUwI0EET.js","assets/BaseSwitch-gjOaAbzm.js","assets/BaseSwitch-CCZjYqBV.css","assets/BaseEmptyState-D5jlq4nS.js","assets/BaseEmptyState-Df57vCUi.css","assets/ActiveSwitchCell-BaPmkdOq.js","assets/CompaniesView-BubE_GYW.css","assets/BankAccountsView-qPkZErp-.js","assets/BankAccountsView-jIdT6saw.css","assets/CustomersView-BKoe-p99.js","assets/CustomersView-BZe629uZ.css","assets/ProductsView-BpIWai3T.js","assets/catalogImage-DbusXpop.js","assets/ProductsView-BI4U2eG5.css","assets/CategoriesView-Bg7zpqeN.js","assets/AdminImagePicker-DcFp1rIR.js","assets/AdminImagePicker-DYQRk81o.css","assets/CategoriesView-CL20Eino.css","assets/BannersView-BrJxBz6a.js","assets/BannersView-DlJtlA4V.css","assets/CatalogsView-CUtcg7TE.js","assets/CatalogsView-Dj5TmI-2.css","assets/CatalogRequestsView-Bhd1ii66.js","assets/CatalogRequestsView-DmO_C6eq.css","assets/BrandsView-BgRB_dnQ.js","assets/BrandsView-B85xOFCI.css","assets/SuggestionsView-CdS7IuYt.js","assets/SuggestionsView-ztSfUAsG.css","assets/StockAlertsView-QdcvkdiB.js","assets/StockAlertsView-CBkZ5P6m.css","assets/LevelsView-Dt4PYLXr.js","assets/LevelsView-Bwpvfee6.css","assets/CashPaymentsView-uwiw3eFd.js","assets/CashPaymentsView-DDBlTRfX.css","assets/ShippingView-BH50PpZU.js","assets/ShippingView-G0QuXsX0.css","assets/ReportsView-u9EnobV7.js","assets/ReportsView-dONYkP5k.css","assets/SettingsView-BtXHQ1G1.js","assets/SettingsView-COlo0e0z.css","assets/UsersView-OoZZqmAT.js","assets/UsersView-DSH2HjHE.css"])))=>i.map(i=>d[i]); import{$ as e,A as t,At as n,B as r,C as i,Ct as a,D as o,Dt as s,E as c,Et as l,F as u,G as d,H as f,I as p,J as m,L as h,M as g,N as _,Nt as v,O as y,Ot as b,P as x,Pt as ee,Q as S,R as C,S as w,St as T,T as te,Tt as E,U as D,V as ne,W as re,X as ie,Y as ae,Z as O,_ as oe,_t as se,a as ce,at as le,b as k,bt as ue,c as A,ct as de,d as fe,dt as pe,et as me,f as j,ft as he,g as M,gt as ge,h as N,ht as _e,i as ve,it as ye,j as be,jt as xe,k as Se,kt as Ce,l as we,lt as P,m as Te,mt as Ee,n as F,nt as I,o as L,ot as De,p as R,pt as Oe,q as ke,r as Ae,rt as je,s as Me,st as Ne,t as Pe,tt as Fe,u as Ie,ut as z,vt as B,w as Le,wt as Re,x as V,xt as ze,y as Be,yt as Ve,z as He}from"./http-WTIyGIuL.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 Ue=void 0,We=typeof window<`u`&&window.trustedTypes;if(We)try{Ue=We.createPolicy(`vue`,{createHTML:e=>e})}catch{}var Ge=Ue?e=>Ue.createHTML(e):e=>e,Ke=`http://www.w3.org/2000/svg`,qe=`http://www.w3.org/1998/Math/MathML`,H=typeof document<`u`?document:null,Je=H&&H.createElement(`template`),Ye={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`?H.createElementNS(Ke,e):t===`mathml`?H.createElementNS(qe,e):n?H.createElement(e,{is:n}):H.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>H.createTextNode(e),createComment:e=>H.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>H.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{Je.innerHTML=Ge(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=Je.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]}},U=`transition`,Xe=`animation`,Ze=Symbol(`_vtc`),Qe={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},$e=Ee({},Me,Qe),et=(e,t=[])=>{B(e)?e.forEach(e=>e(...t)):e&&e(...t)},tt=e=>e?B(e)?e.some(e=>e.length>1):e.length>1:!1;function nt(e){let t={};for(let n in e)n in Qe||(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=rt(i),h=m&&m[0],g=m&&m[1],{onBeforeEnter:_,onEnter:v,onEnterCancelled:y,onLeave:b,onLeaveCancelled:x,onBeforeAppear:ee=_,onAppear:S=v,onAppearCancelled:C=y}=t,w=(e,t,n,r)=>{e._enterCancelled=r,G(e,t?u:s),G(e,t?l:o),n&&n()},T=(e,t)=>{e._isLeaving=!1,G(e,d),G(e,p),G(e,f),t&&t()},te=e=>(t,n)=>{let i=e?S:v,o=()=>w(t,e,n);et(i,[t,o]),at(()=>{G(t,e?c:a),W(t,e?u:s),tt(i)||st(t,r,h,o)})};return Ee(t,{onBeforeEnter(e){et(_,[e]),W(e,a),W(e,o)},onBeforeAppear(e){et(ee,[e]),W(e,c),W(e,l)},onEnter:te(!1),onAppear:te(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>T(e,t);W(e,d),e._enterCancelled?(W(e,f),dt(e)):(dt(e),W(e,f)),at(()=>{e._isLeaving&&(G(e,d),W(e,p),tt(b)||st(e,r,g,n))}),et(b,[e,n])},onEnterCancelled(e){w(e,!1,void 0,!0),et(y,[e])},onAppearCancelled(e){w(e,!0,void 0,!0),et(C,[e])},onLeaveCancelled(e){T(e),et(x,[e])}})}function rt(e){if(e==null)return null;if(ze(e))return[it(e.enter),it(e.leave)];{let t=it(e);return[t,t]}}function it(e){return ee(e)}function W(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[Ze]||(e[Ze]=new Set)).add(t)}function G(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[Ze];n&&(n.delete(t),n.size||(e[Ze]=void 0))}function at(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var ot=0;function st(e,t,n,r){let i=e._endId=++ot,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=ct(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(`${U}Delay`),a=r(`${U}Duration`),o=lt(i,a),s=r(`${Xe}Delay`),c=r(`${Xe}Duration`),l=lt(s,c),u=null,d=0,f=0;t===U?o>0&&(u=U,d=o,f=a.length):t===Xe?l>0&&(u=Xe,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?U:Xe:null,f=u?u===U?a.length:c.length:0);let p=u===U&&/\b(?:transform|all)(?:,|$)/.test(r(`${U}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function lt(e,t){for(;e.lengthut(t)+ut(e[n])))}function ut(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function dt(e){return(e?e.ownerDocument:document).body.offsetHeight}function ft(e,t,n){let r=e[Ze];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var pt=Symbol(`_vod`),mt=Symbol(`_vsh`),ht=Symbol(``);function gt(e){let n=w();if(!n)return;let r=n.ut=(t=e(n.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${n.uid}"]`)).forEach(e=>vt(e,t))},i=()=>{let t=e(n.proxy);n.ce?vt(n.ce,t):_t(n.subTree,t),r(t)};Se(()=>{u(i)}),t(()=>{D(i,pe,{flush:`post`});let e=new MutationObserver(i);e.observe(n.subTree.el.parentNode,{childList:!0}),be(()=>e.disconnect())})}function _t(e,t){if(e.shapeFlag&128){let n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{_t(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)vt(e.el,t);else if(e.type===A)e.children.forEach(e=>_t(e,t));else if(e.type===we){let{el:n,anchor:r}=e;for(;n&&(vt(n,t),n!==r);)n=n.nextSibling}}function vt(e,t){if(e.nodeType===1){let n=e.style,r=``;for(let e in t){let i=xe(t[e]);n.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}n[ht]=r}}var yt=/(?:^|;)\s*display\s*:/;function bt(e,t,n){let r=e.style,i=E(n),a=!1;if(n&&!i){if(t)if(E(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??St(r,t,``)}else for(let e in t)n[e]??St(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?St(r,i,``):Et(e,i,!E(t)&&t?t[i]:void 0,o)||St(r,i,o)}}else if(i){if(t!==n){let e=r[ht];e&&(n+=`;`+e),r.cssText=n,a=yt.test(n)}}else t&&e.removeAttribute(`style`);pt in e&&(e[pt]=a?r.display:``,e[mt]&&(r.display=`none`))}var xt=/\s*!important$/;function St(e,t,n){if(B(n))n.forEach(n=>St(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=Tt(e,t);xt.test(n)?e.setProperty(_e(r),n.replace(xt,``),`important`):e[r]=n}}var Ct=[`Webkit`,`Moz`,`ms`],wt={};function Tt(e,t){let n=wt[t];if(n)return n;let r=he(t);if(r!==`filter`&&r in e)return wt[t]=r;r=Oe(r);for(let n=0;nIt||=(Lt.then(()=>It=0),Date.now());function zt(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(B(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,Vt=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?ft(e,r,o):t===`style`?bt(e,n,r):T(t)?ue(t)||Mt(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):Ht(e,t,r,o))?(kt(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&Ot(e,t,r,o,a,t!==`value`)):e._isVueCE&&(Ut(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!E(r)))?kt(e,he(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Ot(e,t,r,o))};function Ht(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&Bt(t)&&Ve(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 Bt(t)&&E(n)?!1:t in e}function Ut(e,t){let n=e._def.props;if(!n)return!1;let r=he(t);return Array.isArray(n)?n.some(e=>he(e)===r):Object.keys(n).some(e=>he(e)===r)}var Wt=new WeakMap,Gt=new WeakMap,Kt=Symbol(`_moveCb`),qt=Symbol(`_enterCb`),Jt=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:Ee({},$e,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=w(),a=f(),o,s;return g(()=>{if(!o.length)return;let t=e.moveClass||`${e.name||`v`}-move`;if(!$t(o[0].el,n.vnode.el,t)){o=[];return}o.forEach(Yt),o.forEach(Xt);let r=o.filter(Zt);dt(n.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;W(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[Kt]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[Kt]=null,G(n,t))};n.addEventListener(`transitionend`,i)}),o=[]}),()=>{let c=De(e),l=nt(c),u=c.tag||A;if(o=[],s)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}=ct(r);return a.removeChild(r),o}var q=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return B(t)?e=>se(t,e):t};function en(e){e.target.composing=!0}function tn(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var J=Symbol(`_assign`);function nn(e,t,n){return t&&(e=e.trim()),n&&(e=Ce(e)),e}var rn={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[J]=q(i);let a=r||i.props&&i.props.type===`number`;K(e,t?`change`:`input`,t=>{t.target.composing||e[J](nn(e.value,n,a))}),(n||a)&&K(e,`change`,()=>{e.value=nn(e.value,n,a)}),t||(K(e,`compositionstart`,en),K(e,`compositionend`,tn),K(e,`change`,tn))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[J]=q(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?Ce(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)}},an={deep:!0,created(e,t,n){e[J]=q(n),K(e,`change`,()=>{let t=e._modelValue,n=un(e),r=e.checked,i=e[J];if(B(t)){let e=b(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(a(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(dn(e,r))})},mounted:on,beforeUpdate(e,t,n){e[J]=q(n),on(e,t,n)}};function on(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(B(t))i=b(t,r.props.value)>-1;else if(a(t))i=t.has(r.props.value);else{if(t===n)return;i=s(t,dn(e,!0))}e.checked!==i&&(e.checked=i)}var sn={created(e,{value:t},n){e.checked=s(t,n.props.value),e[J]=q(n),K(e,`change`,()=>{e[J](un(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[J]=q(r),t!==n&&(e.checked=s(t,r.props.value))}},cn={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,K(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?Ce(un(e)):un(e));e[J](e.multiple?a(e._modelValue)?new Set(t):t:t[0]),e._assigning=!0,y(()=>{e._assigning=!1})}),e[J]=q(r)},mounted(e,{value:t}){ln(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[J]=q(n)},updated(e,{value:t}){e._assigning||ln(e,t)}};function ln(e,t){let n=e.multiple,r=B(t);if(!(n&&!r&&!a(t))){for(let i=0,a=e.options.length;iString(e)===String(o)):b(t,o)>-1}else a.selected=t.has(o);else if(s(un(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function un(e){return`_value`in e?e._value:e.value}function dn(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var fn={created(e,t,n){mn(e,t,n,null,`created`)},mounted(e,t,n){mn(e,t,n,null,`mounted`)},beforeUpdate(e,t,n,r){mn(e,t,n,r,`beforeUpdate`)},updated(e,t,n,r){mn(e,t,n,r,`updated`)}};function pn(e,t){switch(e){case`SELECT`:return cn;case`TEXTAREA`:return rn;default:switch(t){case`checkbox`:return an;case`radio`:return sn;default:return rn}}}function mn(e,t,n,r,i){let a=pn(e.tagName,n.props&&n.props.type)[i];a&&a(e,t,n,r)}var hn=[`ctrl`,`shift`,`alt`,`meta`],gn={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)=>hn.some(n=>e[`${n}Key`]&&!t.includes(n))},_n=(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||vn[e]===r))return e(n)}))},bn=Ee({patchProp:Vt},Ye),xn;function Sn(){return xn||=oe(bn)}var Cn=((...e)=>{let t=Sn().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Tn(e);if(!r)return;let i=t._component;!Ve(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,wn(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function wn(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Tn(e){return E(e)?document.querySelector(e):e}var En=typeof window<`u`,Dn,On=e=>Dn=e,kn=Symbol();function An(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var jn=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 Mn(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 Nn(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Rn(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function Pn(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Fn(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 In=typeof navigator==`object`?navigator:{userAgent:``},Ln=/Macintosh/.test(In.userAgent)&&/AppleWebKit/.test(In.userAgent)&&!/Safari/.test(In.userAgent),Rn=En?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Ln?zn:`msSaveOrOpenBlob`in In?Bn:Vn:()=>{};function zn(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?Fn(r):Pn(r.href)?Nn(e,t,n):(r.target=`_blank`,Fn(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Fn(r)},0))}function Bn(e,t=`download`,n){if(typeof e==`string`)if(Pn(e))Nn(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){Fn(t)})}else navigator.msSaveOrOpenBlob(Mn(e,n),t)}function Vn(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return Nn(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(jn.HTMLElement))||`safari`in jn,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||Ln)&&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:Hn}=Object;function Un(){let e=m(!0),t=e.run(()=>I({})),n=[],r=[],i=S({install(e){On(i),i._a=e,e.provide(kn,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 Wn=()=>{};function Gn(t,n,r,i=Wn){t.add(n);let a=()=>{t.delete(n)&&i()};return!r&&ae()&&e(a),a}function Kn(e,...t){e.forEach(e=>{e(...t)})}var qn=e=>e(),Jn=Symbol(),Yn=Symbol();function Xn(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]=An(i)&&An(r)&&Object.hasOwn(e,n)&&!O(r)&&!ie(r)?Xn(i,r):r}return e}var Zn=Symbol();function Qn(e){return!e||typeof e!=`object`||!Object.hasOwn(e,Zn)}var{assign:$n}=Object;function er(e){return!!(O(e)&&e.effect)}function tr(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():{}),$n(de(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=S(j(()=>{On(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=nr(e,l,t,n,r,!0),c}function nr(e,t,n={},r,i,a){let o,s=$n({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p,h=r.state.value[e];!a&&!h&&(r.state.value[e]={});let g;function _(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:`patch function`,storeId:e,events:p}):(Xn(r.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:p});let i=g=Symbol();y().then(()=>{g===i&&(l=!0)}),u=!0,Kn(d,n,r.state.value[e])}let v=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{$n(e,t)})}:Wn;function b(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let x=(t,n=``)=>{if(Jn in t)return t[Yn]=n,t;let i=function(){On(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}Kn(f,{args:n,name:i[Yn],store:S,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:S,n)}catch(e){throw Kn(o,e),e}return l instanceof Promise?l.then(e=>(Kn(a,e),e)).catch(e=>(Kn(o,e),Promise.reject(e))):(Kn(a,l),l)};return i[Jn]=!0,i[Yn]=n,i},ee={_p:r,$id:e,$onAction:Gn.bind(null,f),$patch:_,$reset:v,$subscribe(t,n={}){if(d.has(t))return Wn;let i=Gn(d,t,n.detached,()=>a()),a=o.run(()=>D(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:`direct`,events:p},r)},$n({},c,n)));return i},$dispose:b},S=me(ee);r._s.set(e,S);let C=(r._a&&r._a.runWithContext||qn)(()=>r._e.run(()=>(o=m()).run(()=>t({action:x}))));for(let t in C){let n=C[t];O(n)&&!er(n)||ie(n)?a||(h&&Qn(n)&&(O(n)?n.value=h[t]:Xn(n,h[t])),r.state.value[e][t]=n):typeof n==`function`&&(C[t]=x(n,t),s.actions[t]=n)}return $n(S,C),$n(De(S),C),Object.defineProperty(S,"$state",{get:()=>r.state.value[e],set:e=>{_(t=>{$n(t,e)})}}),r._p.forEach(e=>{let t=o.run(()=>e({store:S,app:r._a,pinia:r,options:s}));$n(S,t)}),h&&a&&n.hydrate&&n.hydrate(S.$state,h),l=!0,u=!0,S}function rr(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=te();return n||=o?c(kn,null):null,n&&On(n),n=Dn,n._s.has(e)||(i?nr(e,t,r,n):tr(e,r,n)),n._s.get(e)}return a.$id=e,a}var ir={"vuesax-linear:add":` @@ -379,4 +379,4 @@ import{$ as e,A as t,At as n,B as r,C as i,Ct as a,D as o,Dt as s,E as c,Et as l -`},ar=[`aria-hidden`,`innerHTML`],or=L(V({inheritAttrs:!1,__name:`BasicIcon`,props:{icon:{},color:{default:null},size:{default:24},strokeWidth:{default:1.5}},setup(e){gt(e=>({v196ba43b:String(t.strokeWidth)}));let t=e,n=ne(),r=j(()=>{let e=ir[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=j(()=>({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=j(()=>n[`aria-hidden`]??!0);return(e,t)=>(_(),M(`span`,o({class:`basic-icon`},z(n),{style:i.value,"aria-hidden":a.value,innerHTML:r.value}),null,16,ar))}}),[[`__scopeId`,`data-v-159253ae`]]),sr={class:`toast-container`,"aria-live":`polite`,"aria-relevant":`additions`},cr={class:`toast__icon`,"aria-hidden":`true`},lr={class:`toast__message`},ur=[`onClick`],dr=L(V({__name:`ToastContainer`,setup(e){let{toasts:t,dismiss:r}=ce(),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)=>(_(),M(`div`,sr,[k(Jt,{name:`toast`,tag:`div`,class:`toast-container__list`},{default:d(()=>[(_(!0),M(A,null,p(z(t),e=>(_(),M(`div`,{key:e.id,class:n([`toast`,`toast--${e.tone}`]),role:`status`},[R(`span`,cr,[k(or,{icon:i[e.tone]||`vuesax-linear:info-circle`,size:20,"stroke-width":1.5},null,8,[`icon`])]),R(`p`,lr,v(e.message),1),R(`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=L(V({__name:`BaseModal`,props:{open:{type:Boolean},title:{},size:{}},emits:[`close`],setup(e,{emit:t}){let r=t;function i(e){e.target===e.currentTarget&&r(`close`)}return(t,a)=>(_(),Te(Ie,{to:`body`},[e.open?(_(),M(`div`,{key:0,class:`admin-modal-backdrop`,role:`presentation`,onClick:i},[R(`div`,{class:n([`admin-modal`,{"admin-modal--lg":e.size===`lg`,"admin-modal--xl":e.size===`xl`}]),role:`dialog`,"aria-modal":`true`,"aria-label":e.title,onClick:a[1]||=_n(()=>{},[`stop`])},[R(`header`,pr,[R(`h2`,mr,v(e.title),1),R(`button`,{type:`button`,class:`admin-modal__close`,"aria-label":`بستن`,onClick:a[0]||=e=>r(`close`)},` × `)]),R(`div`,hr,[h(t.$slots,`default`,{},void 0,!0)]),t.$slots.footer?(_(),M(`footer`,gr,[h(t.$slots,`footer`,{},void 0,!0)])):N(``,!0)],10,fr)])):N(``,!0)]))}}),[[`__scopeId`,`data-v-a52d3eeb`]]),vr=me({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=L(V({__name:`ConfirmDialog`,setup(e){let t=yr();function r(){xr(!1)}function i(){Sr(!0),xr(!0)}return(e,a)=>(_(),Te(_r,{open:z(t).open,title:z(t).title,size:`md`,onClose:r},{footer:d(()=>[R(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:z(t).loading,onClick:r},v(z(t).cancelLabel),9,wr),R(`button`,{type:`button`,class:n([`admin-btn`,z(t).tone===`danger`?`admin-btn--danger`:`admin-btn--primary`]),disabled:z(t).loading,onClick:i},[z(t).loading?(_(),M(`span`,Er)):N(``,!0),Be(` `+v(z(t).confirmLabel),1)],10,Tr)]),default:d(()=>[R(`p`,Cr,v(z(t).message),1)]),_:1},8,[`open`,`title`]))}}),[[`__scopeId`,`data-v-47354e67`]]),Or=V({__name:`App`,setup(e){return(e,t)=>{let n=C(`RouterView`);return _(),M(A,null,[k(n),k(dr),k(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 Y=Object.assign;function jr(e,t){let n={};for(let r in t){let i=t[r];n[r]=X(i)?i.map(e):e(i)}return n}var Mr=()=>{},X=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 Y(Error(),{type:e,[Pr]:!0},t)}function Z(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 c(Rr)}function Hr(e){return c(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 X(e)?bi(e,t):X(t)?bi(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function bi(e,t){return X(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]=X(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(Y({},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,Y({},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=Y({},i.value,t.state,{forward:e,scroll:Di()});a(o.current,o,!0),a(e,Y({},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=Y({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=Y(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(Y({},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=Y(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=Y({},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)=>Y(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=c(Rr),n=c(zr),r=j(()=>{let n=z(e.to);return t.resolve(n)}),i=j(()=>{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=j(()=>i.value>-1&&ya(n.params,r.value.params)),o=j(()=>i.value>-1&&i.value===n.matched.length-1&&vi(n.params,r.value.params));function s(n={}){if(va(n)){let n=t[z(e.replace)?`replace`:`push`](z(e.to)).catch(Mr);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:j(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function ga(e){return e.length===1?e[0]:e}var _a=V({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=me(ha(e)),{options:r}=c(Rr),i=j(()=>({[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(!X(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=V({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=c(Br),i=j(()=>e.route||r.value),a=c(Lr,0),o=j(()=>{let e=z(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=j(()=>i.value.matched[o.value]);x(Lr,j(()=>o.value+1)),x(Ir,s),x(Br,i);let l=I();return D(()=>[l.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,c=o&&o.components[a];if(!c)return Ca(n.default,{Component:c,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=Le(c,Y({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:l}));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,r=e.stringifyQuery||Ii,i=e.history,a=Ri(),o=Ri(),s=Ri(),c=le(Si),l=Si;Ur&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=jr.bind(null,e=>``+e),d=jr.bind(null,li),f=jr.bind(null,ui);function p(e,n){let r,i;return Pi(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=Y({},a||c.value),typeof e==`string`){let r=pi(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return Y(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=Y({},e,{path:pi(n,e.path,a.path).path});else{let t=Y({},e.params);for(let e in t)t[e]??delete t[e];o=Y({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=mi(r,Y({},e,{hash:ai(l),path:s.path})),m=i.createHref(p);return Y({fullPath:p,hash:l,query:r===Ii?Li(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?pi(n,e,c.value.path):Y({},e)}function b(e,t){if(l!==e)return Fr(8,{from:t,to:e})}function x(e){return C(e)}function ee(e){return x(Y(v(e),{replace:!0}))}function S(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=v(i):{path:i},i.params={}),Y({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(Y(v(u),{state:typeof u==`object`?Y({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&gi(r,i,n)&&(f=Fr(16,{to:d,from:i}),k(i,i,!0,!1)),(f?Promise.resolve(f):te(d,i)).catch(e=>Z(e)?Z(e,2)?e:ce(e):oe(e,d,i)).then(e=>{if(e){if(Z(e,2))return C(Y({replace:s},v(e.to),{state:typeof e.to==`object`?Y({},a,e.to.state):a,force:o}),t||d)}else e=D(d,i,!0,s,a);return E(d,i,e),e})}function w(e,t){let n=b(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=de.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function te(e,t){let n,[r,i,s]=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=w.bind(null,e,t);return n.push(c),pe(n).then(()=>{n=[];for(let r of a.list())n.push(zi(r,e,t));return n.push(c),pe(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),pe(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(X(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),pe(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Bi(s,`beforeRouteEnter`,e,t,T),n.push(c),pe(n))).then(()=>{n=[];for(let r of o.list())n.push(zi(r,e,t));return n.push(c),pe(n)}).catch(e=>Z(e,8)?e:Promise.reject(e))}function E(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function D(e,t,n,r,a){let o=b(e,t);if(o)return o;let s=t===Si,l=Ur?history.state:{};n&&(r||s?i.replace(e.fullPath,Y({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,k(e,t,n,s),ce()}let ne;function re(){ne||=i.listen((e,t,n)=>{if(!fe.listening)return;let r=_(e),a=S(r,fe.currentRoute.value);if(a){C(Y(a,{replace:!0,force:!0}),r).catch(Mr);return}l=r;let o=c.value;Ur&&ji(ki(o.fullPath,n.delta),Di()),te(r,o).catch(e=>Z(e,12)?e:Z(e,2)?(C(Y(v(e.to),{force:!0}),r).then(e=>{Z(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(Mr),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=D(r,o,!1),e&&(n.delta&&!Z(e,8)?i.go(-n.delta,!1):n.type===`pop`&&Z(e,20)&&i.go(-1,!1)),E(r,o,e)}).catch(Mr)})}let ie=Ri(),ae=Ri(),O;function oe(e,t,n){ce(e);let r=ae.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return O&&c.value!==Si?Promise.resolve():new Promise((e,t)=>{ie.add([e,t])})}function ce(e){return O||(O=!e,re(),ie.list().forEach(([t,n])=>e?n(e):t()),ie.reset()),e}function k(t,n,r,i){let{scrollBehavior:a}=e;if(!Ur||!a)return Promise.resolve();let o=!r&&Mi(ki(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return y().then(()=>a(t,n,o)).then(e=>t===c.value&&e&&Oi(e)).catch(e=>t===c.value&&oe(e,t,n))}let ue=e=>i.go(e),A,de=new Set,fe={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:x,replace:ee,go:ue,back:()=>ue(-1),forward:()=>ue(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ae.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:()=>z(c)}),Ur&&!A&&c.value===Si&&(A=!0,x(i.location).catch(e=>{}));let t={};for(let e in Si)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(Rr,fe),e.provide(zr,je(t)),e.provide(Br,c);let n=e.unmount;de.add(e),e.unmount=function(){de.delete(e),de.size<1&&(l=Si,ne&&ne(),ne=null,c.value=Si,A=!1,O=!1),n()}}};function pe(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=V({__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=j(()=>t.name.startsWith(`vuesax-linear:`)?t.name:n[t.name]??`vuesax-linear:info-circle`);return(t,n)=>(_(),Te(or,{icon:r.value,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`icon`,`size`,`stroke-width`,`color`]))}}),ka=`fabric-admin-session`,Aa=`fabric-admin-token`,ja=!1,Ma={phone:`09128081392`,password:`123456`,session:{id:`mock-admin-1`,fullName:`مدیر سیستم (موک)`,phone:`09128081392`,email:`admin@parche.ir`,role:`admin`}};function Na(){try{let e=localStorage.getItem(ka)??sessionStorage.getItem(ka);return e?JSON.parse(e):null}catch{return null}}function Pa(e,t){let n=JSON.stringify(e);localStorage.removeItem(ka),sessionStorage.removeItem(ka),t?localStorage.setItem(ka,n):sessionStorage.setItem(ka,n)}function Fa(){localStorage.removeItem(ka),sessionStorage.removeItem(ka)}function Ia(){return!!localStorage.getItem(Aa)}function La(e){return{id:e.id,fullName:e.fullName,phone:e.phone,email:e.email,role:e.role}}function Ra(){return Na()}function za(){return ja}async function Ba(e){let t=e.phone.trim(),n=e.password;if(!t||!n)return{success:!1,message:`شماره موبایل و رمز عبور الزامی است.`};try{let r=await F(`/admin/auth/login`,{method:`POST`,body:{phone:t,password:n},auth:!1});return ve(r.accessToken,e.remember),Pa(La(r.user),e.remember),{success:!0}}catch(e){return e instanceof Pe?{success:!1,message:e.message}:{success:!1,message:`ورود انجام نشد.`}}}async function Va(){let e=Ae();if(!e)return Na();if(e===`mock-admin-token`){let e=Na()??Ma.session;return Pa(e,Ia()),e}try{let e=La(await F(`/auth/me`));return Pa(e,Ia()),e}catch{return Na()}}function Ha(){ve(null),Fa()}var Ua=rr(`auth`,()=>{let e=I(Ra()),t=I(!1),n=I(null),r=j(()=>!!e.value),i=j(()=>e.value?.fullName??``),a=j(()=>e.value?{admin:`مدیر سیستم`,sales:`واحد فروش`,finance:`واحد مالی`,warehouse:`انبار`}[e.value.role]:``);function o(){n.value=null}function s(){e.value=Ra(),Va().then(t=>{t&&(e.value=t)})}async function c(r,i,a){t.value=!0,n.value=null;let o=await Ba({phone:r,password:i,remember:a});return t.value=!1,o.success?(e.value=Ra(),!0):(n.value=o.message??`ورود انجام نشد.`,!1)}function l(){Ha(),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}}),Wa={class:`admin-sidebar`,"aria-label":`ناوبری پنل مدیریت`},Ga={class:`admin-sidebar__nav`},Ka=[`onClick`],qa=L(V({__name:`AdminSidebar`,setup(e){let t=Hr(),r=Vr(),i=Ua();function a(e){r.push(e)}function o(){i.logout(),r.push(`/login`)}return(e,r)=>(_(),M(`aside`,Wa,[r[1]||=R(`div`,{class:`admin-sidebar__brand`},[R(`strong`,{class:`admin-sidebar__title`},`پارچه`),R(`span`,{class:`admin-sidebar__subtitle`},`پنل مدیریت`)],-1),R(`nav`,Ga,[(_(!0),M(A,null,p(z(Ea),e=>(_(),M(`button`,{key:e.name,type:`button`,class:n([`admin-sidebar__item`,{active:z(Da)(e.path,z(t).path)}]),onClick:t=>a(e.path)},[k(Oa,{name:e.icon,size:20},null,8,[`name`]),R(`span`,null,v(e.label),1)],10,Ka))),128))]),R(`button`,{type:`button`,class:`admin-sidebar__logout`,onClick:o},[k(Oa,{name:`logout`,size:20}),r[0]||=R(`span`,null,`خروج`,-1)])]))}}),[[`__scopeId`,`data-v-bcc6586c`]]),Ja=new WeakMap,Ya=(...e)=>{let t=e[0],n=w()?.proxy??ae();if(n==null&&!te())throw Error(`injectLocal must be called in setup`);return n&&Ja.has(n)&&t in Ja.get(n)?Ja.get(n)[t]:c(...e)},Xa=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var Za=Object.prototype.toString,Qa=e=>Za.call(e)===`[object Object]`,$a=()=>{},eo=to();function to(){var e,t;return Xa&&!!((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 no(...e){if(e.length!==1)return Ne(...e);let t=e[0];return typeof t==`function`?Fe(ke(()=>({get:t,set:$a}))):I(t)}function ro(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 io=e=>e();function ao(e=io,t={}){let{initialState:n=`active`}=t,r=no(n===`active`);function i(){r.value=!1}function a(){r.value=!0}return{isActive:ye(r),pause:i,resume:a,eventFilter:(...t)=>{r.value&&e(...t)}}}function oo(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function so(e){return Array.isArray(e)?e:[e]}function co(e){return e||w()}function lo(e,t,n={}){let{eventFilter:r=io,...i}=n;return D(e,ro(r,t),i)}function uo(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=ao(r,{initialState:i});return{stop:lo(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function fo(e,n=!0,r){co(r)?t(e,r):n?e():y(e)}function po(e,t,n){return D(e,t,{...n,immediate:!0})}var mo=Xa?window:void 0;Xa&&window.document,Xa&&window.navigator,Xa&&window.location;function ho(e){let t=P(e);return t?.$el??t}function go(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=j(()=>{let t=so(P(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return po(()=>[n.value?.map(e=>ho(e))??[mo].filter(e=>e!=null),so(P(n.value?e[1]:e[0])),so(z(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=Qa(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 _o=!1;function vo(e,t,n={}){let{window:r=mo,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:$a,cancel:$a,trigger:$a}:$a;if(eo&&!_o){_o=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,$a,e)),r.document.documentElement.addEventListener(`click`,$a,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=ho(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=ho(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=[go(r,`click`,e=>{p||(p=!0,setTimeout(()=>{p=!1},0),f(e))},{passive:!0,capture:a}),go(r,`pointerdown`,t=>{let n=ho(e);c=!l(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),o&&go(r,`blur`,n=>{setTimeout(()=>{let i=ho(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 yo(){let e=le(!1),n=w();return n&&t(()=>{e.value=!0},n),e}function bo(e){let t=yo();return j(()=>(t.value,!!e()))}var xo=Symbol(`vueuse-ssr-width`);function So(){let e=te()?Ya(xo,null):null;return typeof e==`number`?e:void 0}function Co(e,t={}){let{window:n=mo,ssrWidth:r=So()}=t,i=bo(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),a=le(typeof r==`number`),o=le(),s=le(!1);return re(()=>{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>=oo(n[1])),i&&a&&(a=r<=oo(i[1])),t?!a:a});return}i.value&&(o.value=n.matchMedia(P(e)),s.value=o.value.matches)}),go(o,`change`,e=>{s.value=e.matches},{passive:!0}),j(()=>s.value)}var wo=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},To=`__vueuse_ssr_handlers__`,Eo=Do();function Do(){return To in wo||(wo[To]=wo[To]||{}),wo[To]}function Oo(e,t){return Eo[e]||t}function ko(e){return Co(`(prefers-color-scheme: dark)`,e)}function Ao(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 jo={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()}},Mo=`vueuse-storage`;function No(e,t,n,r={}){let{flush:i=`pre`,deep:a=!0,listenToStorageChanges:o=!0,writeDefaults:s=!0,mergeDefaults:c=!1,shallow:l,window:u=mo,eventFilter:d,onError:f=e=>{console.error(e)},initOnMounted:p}=r,m=(l?le:I)(typeof t==`function`?t():t),h=j(()=>P(e));if(!n)try{n=Oo(`getDefaultStorage`,()=>mo?.localStorage)()}catch(e){f(e)}if(!n)return m;let g=P(t),_=Ao(g),v=r.serializer??jo[_],{pause:b,resume:x}=uo(m,e=>C(e),{flush:i,deep:a,eventFilter:d});D(h,()=>T(),{flush:i});let ee=!1;u&&o&&(n instanceof Storage?go(u,`storage`,e=>{p&&!ee||T(e)},{passive:!0}):go(u,Mo,e=>{p&&!ee||te(e)})),p?fo(()=>{ee=!0,T()}):T();function S(e,t){if(u){let r={key:h.value,oldValue:e,newValue:t,storageArea:n};u.dispatchEvent(n instanceof Storage?new StorageEvent(`storage`,r):new CustomEvent(Mo,{detail:r}))}}function C(e){try{let t=n.getItem(h.value);if(e==null)S(t,null),n.removeItem(h.value);else{let r=v.write(e);t!==r&&(n.setItem(h.value,r),S(t,r))}}catch(e){f(e)}}function w(e){let t=e?e.newValue:n.getItem(h.value);if(t==null)return s&&g!=null&&n.setItem(h.value,v.write(g)),g;if(!e&&c){let e=v.read(t);return typeof c==`function`?c(e,g):_===`object`&&!Array.isArray(e)?{...g,...e}:e}return typeof t==`string`?v.read(t):t}function T(e){if(!(e&&e.storageArea!==n)){if(e&&e.key==null){m.value=g;return}if(!(e&&e.key!==h.value)){b();try{let t=v.write(m.value);(e===void 0||e?.newValue!==t)&&(m.value=w(e))}catch(e){f(e)}finally{e?y(x):x()}}}}function te(e){T(e.detail)}return m}function Po(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 Fo(e){return e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``)||`c-${Date.now()}`}var Io={list:e=>F(`/companies`,{query:{activeOnly:e?`true`:void 0}}),get:e=>F(`/companies/${e}`),create:e=>F(`/companies`,{body:e}),update:(e,t)=>F(`/companies/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/companies/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Lo={listByCompany:e=>F(`/companies/${e}/bank-accounts`),create:(e,t)=>F(`/companies/${e}/bank-accounts`,{body:t}),update:(e,t)=>F(`/bank-accounts/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/bank-accounts/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Ro={list:e=>F(`/catalogs`,{query:{companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>F(`/catalogs`,{body:e}),update:(e,t)=>F(`/catalogs/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/catalogs/${e}/active`,{method:`PATCH`,body:{isActive:t}})},zo={list:e=>F(`/products`,{query:{catalogId:e?.catalogId,companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>F(`/products`,{body:e}),update:(e,t)=>F(`/products/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/products/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Bo={list:(e,t)=>F(`/admin/customers`,{query:{q:e,appRole:t}}),create:e=>F(`/admin/customers`,{body:e}),update:(e,t)=>F(`/admin/customers/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/admin/customers/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Vo={list:e=>F(`/admin/orders`,{query:{status:e?.status,q:e?.q}}),get:e=>F(`/admin/orders/${e}`),create:e=>F(`/admin/orders`,{body:e}),updatePricing:(e,t)=>F(`/admin/orders/${e}/pricing`,{method:`PATCH`,body:t}),updateStatus:(e,t)=>F(`/admin/orders/${e}/status`,{method:`PATCH`,body:t})},Ho={list:e=>F(`/admin/checks`,{query:{status:e}}),listByOrder:e=>F(`/admin/orders/${e}/checks`),updateStatus:(e,t)=>F(`/admin/checks/${e}/status`,{method:`PATCH`,body:t})},Uo={list:e=>F(`/admin/cash-payments`,{query:{status:e}}),updateStatus:(e,t)=>F(`/admin/cash-payments/${e}/status`,{method:`PATCH`,body:t})},Wo={list:e=>F(`/admin/shipments`,{query:{status:e}}),create:e=>F(`/admin/shipments`,{body:e}),update:(e,t)=>F(`/admin/shipments/${e}`,{method:`PATCH`,body:t}),advanceStatus:(e,t)=>F(`/admin/shipments/${e}/status`,{method:`PATCH`,body:t??{}})},Go={list:()=>F(`/admin/users`),create:e=>F(`/admin/users`,{body:e}),update:(e,t)=>F(`/admin/users/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/admin/users/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Ko={get:()=>F(`/admin/dashboard`),reports:()=>F(`/admin/reports`)},qo={get:()=>F(`/admin/settings`),update:e=>F(`/admin/settings`,{method:`PATCH`,body:e})},Jo={markRead:e=>F(`/admin/notifications/${e}/read`,{method:`PATCH`}),markAllRead:()=>F(`/admin/notifications/read-all`,{method:`PATCH`}),broadcast:e=>F(`/admin/notifications/broadcast`,{method:`POST`,body:e})},Yo={list:e=>F(`/admin/catalog-requests`,{query:{status:e}}),updateStatus:(e,t)=>F(`/admin/catalog-requests/${e}/status`,{method:`PATCH`,body:{status:t}}),updateHolder:(e,t)=>F(`/admin/catalog-request-items/${e}/holder`,{method:`PATCH`,body:t})},Xo={list:e=>F(`/admin/banners`,{query:{slot:e}}),create:e=>F(`/admin/banners`,{body:e}),update:(e,t)=>F(`/admin/banners/${e}`,{method:`PATCH`,body:t}),remove:e=>F(`/admin/banners/${e}`,{method:`DELETE`})},Zo={list:()=>F(`/admin/brands`),create:e=>F(`/admin/brands`,{body:e}),update:(e,t)=>F(`/admin/brands/${e}`,{method:`PATCH`,body:t})},Qo={list:()=>F(`/admin/levels`),create:e=>F(`/admin/levels`,{body:e}),update:(e,t)=>F(`/admin/levels/${e}`,{method:`PATCH`,body:t})},$o={list:e=>F(`/admin/suggestions`,{query:{customerId:e}}),create:e=>F(`/admin/suggestions`,{body:e}),setActive:(e,t)=>F(`/admin/suggestions/${e}/active`,{method:`PATCH`,body:{isActive:t}})},es={list:()=>F(`/admin/stock-alerts`),notify:e=>F(`/admin/stock-alerts/${e}/notify`,{method:`PATCH`})},ts=`۰۱۲۳۴۵۶۷۸۹`,ns=new Intl.NumberFormat(`fa-IR`,{useGrouping:!0});function rs(e){return e.replace(/[۰-۹]/g,e=>String(ts.indexOf(e)))}function is(e){return rs(e).replace(/[^\d]/g,``)}function as(e){return Number.isFinite(e)?ns.format(e):`—`}function os(e){return`${as(e)} تومان`}function ss(e){return`${as(e)} متر`}function cs(e){return String(e).replace(/\d/g,e=>ts[Number(e)])}var ls=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`}),us=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`});function ds(e){let t=rs(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 fs(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 ps(e){if(!e)return`—`;if(typeof e==`string`&&ds(e)){let t=rs(e.trim()).replace(/-/g,`/`),n=t.match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!n)return cs(t);let[,r,i,a]=n;return cs(`${r}/${i.padStart(2,`0`)}/${a.padStart(2,`0`)}`)}let t=fs(e);return Number.isNaN(t.getTime())?`—`:ls.format(t)}function ms(e){if(!e)return`—`;if(typeof e==`string`&&ds(e)&&!/[T\s]\d/.test(e))return ps(e);let t=fs(e);return Number.isNaN(t.getTime())?`—`:us.format(t)}var hs=/ORD-?\d{2,4}-?\d{2,6}/i,gs=/^\/?(?:admin\/)?orders\/([^/?#]+)\/?$/i,_s=/^\/?(?:admin\/)?orders\/([^/?#]+)\/(pricing|checks)\/?$/i;function vs(e){let t=e.match(hs);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 ys(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(_s);if(n?.[1]&&n[2])return`/orders/${n[1]}/${n[2]}`;let r=t.match(gs);return r?.[1]?`/orders?order=${encodeURIComponent(r[1])}`:t}function bs(e){let t=e.link?.trim();if(t)return ys(t);let n=`${e.title?.trim()??``} ${e.body?.trim()??``}`,r=e.orderId?.trim()||null,i=vs(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 xs=rr(`theme`,()=>{let e=No(`ft_admin_theme`,`system`),t=ko(),n=j(()=>e.value===`system`?t.value?`dark`:`light`:e.value),r=j(()=>n.value===`dark`);re(()=>{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}}),Ss={class:`admin-header`},Cs={class:`admin-header__right`},ws={class:`admin-header__dropdown`},Ts=[`aria-label`,`aria-expanded`],Es={key:0,class:`admin-header__badge`,"aria-hidden":`true`},Ds={class:`admin-header__panel-header`},Os={key:0,class:`admin-header__panel-list`},ks=[`onClick`],As={class:`admin-header__panel-item-top`},js=[`datetime`],Ms={class:`admin-header__panel-item-sender`},Ns={class:`admin-header__panel-item-body`},Ps={key:1,class:`admin-header__panel-empty`},Fs={class:`admin-header__dropdown`},Is=[`aria-label`,`aria-expanded`],Ls={key:0,class:`admin-header__badge`,"aria-hidden":`true`},Rs={class:`admin-header__panel-header`},zs={key:0,class:`admin-header__panel-list`},Bs=[`onClick`],Vs={class:`admin-header__panel-item-top`},Hs=[`datetime`],Us={class:`admin-header__panel-item-body`},Ws={key:1,class:`admin-header__panel-empty`},Gs={class:`admin-header__dropdown`},Ks=[`aria-label`,`aria-expanded`],qs={class:`admin-header__theme-glyph`,"aria-hidden":`true`},Js={class:`admin-header__theme-list`},Ys=[`onClick`],Xs={class:`admin-header__theme-option-icon`,"aria-hidden":`true`},Zs={class:`admin-header__theme-option-label`},Qs={class:`admin-header__user`},$s={class:`admin-header__avatar`},ec={class:`admin-header__user-info`},tc=L(V({__name:`AdminHeader`,emits:[`menuClick`],setup(e){let t=Vr(),r=Ua(),i=xs(),a=I(null),o=I(null),s=I([]),c=I([]),l=j(()=>s.value.filter(e=>!e.isRead).length),u=j(()=>c.value.filter(e=>!e.isRead).length),d=[{value:`light`,label:`روشن`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,icon:`vuesax-linear:mobile`}],f=j(()=>d.find(e=>e.value===i.preference)?.label??`سیستم`),m=j(()=>d.find(e=>e.value===i.preference)?.icon??`vuesax-linear:sun-1`);Ko.get().then(e=>{s.value=e.messages??[],c.value=e.notifications??[]}).catch(()=>{s.value=[],c.value=[]}),vo(o,()=>{a.value=null}),go(document,`keydown`,e=>{e.key===`Escape`&&(a.value=null)});function h(e){a.value=a.value===e?null:e}function g(){a.value=null}function y(e){e.isRead=!0}function b(e){e.isRead||(e.isRead=!0,Jo.markRead(e.id).catch(()=>{e.isRead=!1}))}function x(){s.value.forEach(e=>{e.isRead=!0})}function ee(){let e=c.value.filter(e=>!e.isRead);e.length&&(e.forEach(e=>{e.isRead=!0}),Jo.markAllRead().catch(()=>{e.forEach(e=>{e.isRead=!1})}))}function S(e){g(),e&&t.push(e)}function C(e){y(e),S(bs({link:e.link,orderId:e.orderId,title:e.subject,body:e.preview}))}function w(e){b(e),S(bs({link:e.link,orderId:e.orderId,title:e.title,body:e.body}))}function T(e){i.setPreference(e),g()}return(e,t)=>(_(),M(`header`,Ss,[R(`div`,Cs,[R(`button`,{type:`button`,class:`admin-header__menu-btn compact-only`,"aria-label":`باز کردن منو`,onClick:t[0]||=t=>e.$emit(`menuClick`)},[k(Oa,{name:`menu`,size:22})])]),R(`div`,{ref_key:`actionsRef`,ref:o,class:`admin-header__left`},[R(`div`,ws,[R(`button`,{type:`button`,class:n([`admin-header__icon-btn`,{"admin-header__icon-btn--active":a.value===`messages`}]),title:`پیام‌های داخلی`,"aria-label":`پیام‌های داخلی — ${l.value} پیام خوانده‌نشده`,"aria-expanded":a.value===`messages`,"aria-haspopup":`true`,onClick:t[1]||=_n(e=>h(`messages`),[`stop`])},[k(Oa,{name:`message`,size:22}),l.value?(_(),M(`span`,Es,v(l.value),1)):N(``,!0),t[7]||=R(`span`,{class:`admin-header__icon-label`},`پیام`,-1)],10,Ts),a.value===`messages`?(_(),M(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`پیام‌های داخلی`,onClick:t[2]||=_n(()=>{},[`stop`])},[R(`div`,Ds,[t[8]||=R(`h2`,{class:`admin-header__panel-title`},`پیام‌های داخلی`,-1),l.value?(_(),M(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:x},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):N(``,!0)]),s.value.length?(_(),M(`ul`,Os,[(_(!0),M(A,null,p(s.value,e=>(_(),M(`li`,{key:e.id,class:n([`admin-header__panel-item`,{unread:!e.isRead}])},[R(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>C(e)},[R(`span`,As,[R(`strong`,null,v(e.subject),1),R(`time`,{datetime:e.sentAt},v(z(ms)(e.sentAt)),9,js)]),R(`span`,Ms,`از `+v(e.senderName),1),R(`span`,Ns,v(e.preview),1)],8,ks)],2))),128))])):(_(),M(`p`,Ps,`پیامی وجود ندارد.`))])):N(``,!0)]),R(`div`,Fs,[R(`button`,{type:`button`,class:n([`admin-header__icon-btn`,{"admin-header__icon-btn--active":a.value===`notifications`}]),title:`اعلان‌ها`,"aria-label":`اعلان‌ها — ${u.value} اعلان جدید`,"aria-expanded":a.value===`notifications`,"aria-haspopup":`true`,onClick:t[3]||=_n(e=>h(`notifications`),[`stop`])},[k(Oa,{name:`bell`,size:22}),u.value?(_(),M(`span`,Ls,v(u.value),1)):N(``,!0),t[9]||=R(`span`,{class:`admin-header__icon-label`},`اعلان`,-1)],10,Is),a.value===`notifications`?(_(),M(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`اعلان‌ها`,onClick:t[4]||=_n(()=>{},[`stop`])},[R(`div`,Rs,[t[10]||=R(`h2`,{class:`admin-header__panel-title`},`اعلان‌ها`,-1),u.value?(_(),M(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:ee},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):N(``,!0)]),c.value.length?(_(),M(`ul`,zs,[(_(!0),M(A,null,p(c.value,e=>(_(),M(`li`,{key:e.id,class:n([`admin-header__panel-item`,[{unread:!e.isRead},e.tone?`admin-header__panel-item--${e.tone}`:``]])},[R(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>w(e)},[R(`span`,Vs,[R(`strong`,null,v(e.title),1),R(`time`,{datetime:e.sentAt},v(z(ms)(e.sentAt)),9,Hs)]),R(`span`,Us,v(e.body),1)],8,Bs)],2))),128))])):(_(),M(`p`,Ws,`اعلانی وجود ندارد.`))])):N(``,!0)]),R(`div`,Gs,[R(`button`,{type:`button`,class:n([`admin-header__icon-btn`,{"admin-header__icon-btn--active":a.value===`theme`}]),title:`حالت نمایش`,"aria-label":`حالت نمایش — ${f.value}`,"aria-expanded":a.value===`theme`,"aria-haspopup":`true`,onClick:t[5]||=_n(e=>h(`theme`),[`stop`])},[R(`span`,qs,[k(or,{icon:m.value,size:20,"stroke-width":1.5},null,8,[`icon`])]),t[11]||=R(`span`,{class:`admin-header__icon-label`},`تم`,-1)],10,Ks),a.value===`theme`?(_(),M(`div`,{key:0,class:`admin-header__panel admin-header__panel--theme`,role:`dialog`,"aria-label":`انتخاب حالت نمایش`,onClick:t[6]||=_n(()=>{},[`stop`])},[t[12]||=R(`div`,{class:`admin-header__panel-header`},[R(`h2`,{class:`admin-header__panel-title`},`حالت نمایش`)],-1),R(`ul`,Js,[(_(),M(A,null,p(d,e=>R(`li`,{key:e.value},[R(`button`,{type:`button`,class:n([`admin-header__theme-option`,{"admin-header__theme-option--active":z(i).preference===e.value}]),onClick:t=>T(e.value)},[R(`span`,Xs,[k(or,{icon:e.icon,size:18,"stroke-width":1.5},null,8,[`icon`])]),R(`span`,Zs,v(e.label),1),z(i).preference===e.value?(_(),Te(or,{key:0,class:`admin-header__theme-option-check`,icon:`vuesax-linear:tick-circle`,size:16,"stroke-width":1.75})):N(``,!0)],10,Ys)])),64))])])):N(``,!0)]),R(`div`,Qs,[R(`div`,$s,v(z(r).fullName.charAt(0)||`؟`),1),R(`div`,ec,[R(`strong`,null,v(z(r).fullName||`مدیر`),1),R(`span`,null,v(z(r).roleLabel||`پنل مدیریت`),1)])])],512)]))}}),[[`__scopeId`,`data-v-7fec14ae`]]),nc=[`aria-hidden`],rc={class:`admin-drawer__brand`},ic={class:`admin-drawer__nav`},ac=[`onClick`],oc=L(V({__name:`AdminMobileDrawer`,props:{open:{type:Boolean}},emits:[`close`],setup(e,{emit:t}){let r=t,i=Hr(),a=Vr(),o=Ua();function s(e){a.push(e),r(`close`)}function c(){o.logout(),a.push(`/login`),r(`close`)}return(t,a)=>(_(),M(A,null,[R(`div`,{class:n([`admin-drawer-backdrop`,{open:e.open}]),role:`presentation`,onClick:a[0]||=e=>r(`close`)},null,2),R(`aside`,{class:n([`admin-drawer`,{open:e.open}]),"aria-label":`منوی ناوبری`,"aria-hidden":!e.open},[R(`div`,rc,[a[2]||=R(`strong`,null,`پارچه`,-1),a[3]||=R(`span`,null,`پنل مدیریت`,-1),R(`button`,{type:`button`,class:`admin-drawer__close`,"aria-label":`بستن منو`,onClick:a[1]||=e=>r(`close`)},` × `)]),R(`nav`,ic,[(_(!0),M(A,null,p(z(Ea),e=>(_(),M(`button`,{key:e.name,type:`button`,class:n([`admin-drawer__item`,{active:z(Da)(e.path,z(i).path)}]),onClick:t=>s(e.path)},[k(Oa,{name:e.icon,size:20},null,8,[`name`]),R(`span`,null,v(e.label),1)],10,ac))),128))]),R(`button`,{type:`button`,class:`admin-drawer__logout`,onClick:c},[k(Oa,{name:`logout`,size:20}),a[4]||=R(`span`,null,`خروج`,-1)])],10,nc)],64))}}),[[`__scopeId`,`data-v-7a746e66`]]),sc={class:`admin-shell`},cc={class:`admin-shell__main`},lc={class:`admin-shell__content`},uc=L(V({__name:`AdminShell`,setup(e){let t=Hr(),n=I(!1);function r(){n.value=!0}function i(){n.value=!1}return D(()=>t.path,()=>{n.value=!1}),(e,t)=>{let a=C(`RouterView`);return _(),M(`div`,sc,[k(qa,{class:`desktop-only admin-shell__sidebar`}),k(oc,{open:n.value,onClose:i},null,8,[`open`]),R(`div`,cc,[k(tc,{onMenuClick:r}),R(`main`,lc,[k(a)])])])}}}),[[`__scopeId`,`data-v-435fffac`]]),dc=`modulepreload`,fc=function(e){return`/admin/`+e},pc={},$=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=fc(t,n),t=s(t),t in pc)return;pc[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`:dc,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)})},mc=Ta({history:qi(`/admin/`),routes:[{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-CG-fIPqO.js`),__vite__mapDeps([0,1,2])),meta:{public:!0,title:`ورود به پنل مدیریت`}},{path:`/`,component:uc,meta:{requiresAuth:!0},children:[{path:``,name:`dashboard`,component:()=>$(()=>import(`./DashboardView-DB8d_Lkp.js`),__vite__mapDeps([3,1,4,5,6,7])),meta:{title:`داشبورد مدیریتی`}},{path:`orders`,name:`orders`,component:()=>$(()=>import(`./OrdersView-DEb47ybi.js`),__vite__mapDeps([8,1,9,10,11,5,4,6,12])),meta:{title:`سفارش‌ها`}},{path:`orders/:id/pricing`,name:`order-pricing`,component:()=>$(()=>import(`./OrderPricingView-D6ELkOQs.js`),__vite__mapDeps([13,1,14,15,9,10,5,4,6,16,17,18])),meta:{title:`قیمت‌گذاری سفارش`}},{path:`checks`,name:`checks`,component:()=>$(()=>import(`./ChecksListView-B2lM1Mri.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-BLeaEEuT.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-Dr0i2DgE.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-bjQn6OKl.js`),__vite__mapDeps([30,1,24,25,26,27,28,31])),meta:{title:`حساب‌های بانکی`}},{path:`customers`,name:`customers`,component:()=>$(()=>import(`./CustomersView-BZ2XNcSp.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-DeAxfx2Z.js`),__vite__mapDeps([34,1,14,15,24,25,26,27,35,9,10,28,16,17,36])),meta:{title:`محصولات`}},{path:`categories`,name:`categories`,component:()=>$(()=>import(`./CategoriesView-DodASqYI.js`),__vite__mapDeps([37,1,14,15,38,35,39,40])),meta:{title:`دسته‌بندی‌ها`}},{path:`banners`,name:`banners`,component:()=>$(()=>import(`./BannersView-CSVhu69t.js`),__vite__mapDeps([41,1,14,15,24,25,26,27,38,35,39,9,10,42])),meta:{title:`بنرها`}},{path:`catalogs`,name:`catalogs`,component:()=>$(()=>import(`./CatalogsView-JnHYSqVw.js`),__vite__mapDeps([43,1,14,15,24,25,26,27,9,10,28,44])),meta:{title:`کالیته‌ها`}},{path:`catalog-requests`,name:`catalog-requests`,component:()=>$(()=>import(`./CatalogRequestsView-DmuxccLi.js`),__vite__mapDeps([45,1,14,15,26,27,9,10,46])),meta:{title:`درخواست کالیته فیزیکی`}},{path:`brands`,name:`brands`,component:()=>$(()=>import(`./BrandsView-BgcQt9a9.js`),__vite__mapDeps([47,1,14,15,24,25,26,27,48])),meta:{title:`برندها`}},{path:`suggestions`,name:`suggestions`,component:()=>$(()=>import(`./SuggestionsView-B9eEUT1E.js`),__vite__mapDeps([49,1,14,15,26,27,9,10,50])),meta:{title:`پیشنهاد محصول`}},{path:`stock-alerts`,name:`stock-alerts`,component:()=>$(()=>import(`./StockAlertsView-ByyE4I3s.js`),__vite__mapDeps([51,1,14,15,26,27,52])),meta:{title:`خبر موجودی`}},{path:`levels`,name:`levels`,component:()=>$(()=>import(`./LevelsView-C9cD642-.js`),__vite__mapDeps([53,1,14,15,26,27,54])),meta:{title:`سطوح مشتری`}},{path:`cash-payments`,name:`cash-payments`,component:()=>$(()=>import(`./CashPaymentsView-BKRIGKw1.js`),__vite__mapDeps([55,1,14,15,9,10,11,56])),meta:{title:`پرداخت‌های نقدی`}},{path:`shipping`,name:`shipping`,component:()=>$(()=>import(`./ShippingView-U8liSwBL.js`),__vite__mapDeps([57,1,14,15,9,10,11,5,58])),meta:{title:`ارسال و باربری`}},{path:`reports`,name:`reports`,component:()=>$(()=>import(`./ReportsView-DyBGvZCc.js`),__vite__mapDeps([59,1,14,15,60])),meta:{title:`گزارش‌ها`}},{path:`settings`,name:`settings`,component:()=>$(()=>import(`./SettingsView-BXC0CbHB.js`),__vite__mapDeps([61,1,14,15,62])),meta:{title:`تنظیمات`}},{path:`users`,name:`users`,component:()=>$(()=>import(`./UsersView-DDVrgBRB.js`),__vite__mapDeps([63,1,14,15,24,25,26,27,9,10,11,28,64])),meta:{title:`کاربران و دسترسی‌ها`}}]}]});mc.beforeEach(e=>{let t=Ua();return 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 hc=Cn(Or),gc=Un();hc.use(gc),hc.use(mc),xs(gc),Ua(gc).hydrate(),hc.mount(`#app`);export{Ua as A,cn as B,qo as C,$o as D,es as E,Vr as F,yn as H,br as I,_r as L,za as M,Oa as N,vo as O,Hr as P,an as R,zo as S,Fo as T,_n as U,rn as V,Ko as _,ss as a,Jo as b,Lo as c,Uo as d,Yo as f,Bo as g,Io as h,ms as i,Ma as j,Co as k,Xo as l,Ho as m,os as n,as as o,Ro as p,ps as r,Go as s,is as t,Zo as u,Qo as v,Wo as w,Vo as x,Po as y,fn as z}; \ No newline at end of file +`},ar=[`aria-hidden`,`innerHTML`],or=L(V({inheritAttrs:!1,__name:`BasicIcon`,props:{icon:{},color:{default:null},size:{default:24},strokeWidth:{default:1.5}},setup(e){gt(e=>({v196ba43b:String(t.strokeWidth)}));let t=e,n=ne(),r=j(()=>{let e=ir[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=j(()=>({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=j(()=>n[`aria-hidden`]??!0);return(e,t)=>(_(),M(`span`,o({class:`basic-icon`},z(n),{style:i.value,"aria-hidden":a.value,innerHTML:r.value}),null,16,ar))}}),[[`__scopeId`,`data-v-159253ae`]]),sr={class:`toast-container`,"aria-live":`polite`,"aria-relevant":`additions`},cr={class:`toast__icon`,"aria-hidden":`true`},lr={class:`toast__message`},ur=[`onClick`],dr=L(V({__name:`ToastContainer`,setup(e){let{toasts:t,dismiss:r}=ce(),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)=>(_(),M(`div`,sr,[k(Jt,{name:`toast`,tag:`div`,class:`toast-container__list`},{default:d(()=>[(_(!0),M(A,null,p(z(t),e=>(_(),M(`div`,{key:e.id,class:n([`toast`,`toast--${e.tone}`]),role:`status`},[R(`span`,cr,[k(or,{icon:i[e.tone]||`vuesax-linear:info-circle`,size:20,"stroke-width":1.5},null,8,[`icon`])]),R(`p`,lr,v(e.message),1),R(`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=L(V({__name:`BaseModal`,props:{open:{type:Boolean},title:{},size:{}},emits:[`close`],setup(e,{emit:t}){let r=t;function i(e){e.target===e.currentTarget&&r(`close`)}return(t,a)=>(_(),Te(Ie,{to:`body`},[e.open?(_(),M(`div`,{key:0,class:`admin-modal-backdrop`,role:`presentation`,onClick:i},[R(`div`,{class:n([`admin-modal`,{"admin-modal--lg":e.size===`lg`,"admin-modal--xl":e.size===`xl`}]),role:`dialog`,"aria-modal":`true`,"aria-label":e.title,onClick:a[1]||=_n(()=>{},[`stop`])},[R(`header`,pr,[R(`h2`,mr,v(e.title),1),R(`button`,{type:`button`,class:`admin-modal__close`,"aria-label":`بستن`,onClick:a[0]||=e=>r(`close`)},` × `)]),R(`div`,hr,[h(t.$slots,`default`,{},void 0,!0)]),t.$slots.footer?(_(),M(`footer`,gr,[h(t.$slots,`footer`,{},void 0,!0)])):N(``,!0)],10,fr)])):N(``,!0)]))}}),[[`__scopeId`,`data-v-a52d3eeb`]]),vr=me({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=L(V({__name:`ConfirmDialog`,setup(e){let t=yr();function r(){xr(!1)}function i(){Sr(!0),xr(!0)}return(e,a)=>(_(),Te(_r,{open:z(t).open,title:z(t).title,size:`md`,onClose:r},{footer:d(()=>[R(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:z(t).loading,onClick:r},v(z(t).cancelLabel),9,wr),R(`button`,{type:`button`,class:n([`admin-btn`,z(t).tone===`danger`?`admin-btn--danger`:`admin-btn--primary`]),disabled:z(t).loading,onClick:i},[z(t).loading?(_(),M(`span`,Er)):N(``,!0),Be(` `+v(z(t).confirmLabel),1)],10,Tr)]),default:d(()=>[R(`p`,Cr,v(z(t).message),1)]),_:1},8,[`open`,`title`]))}}),[[`__scopeId`,`data-v-47354e67`]]),Or=V({__name:`App`,setup(e){return(e,t)=>{let n=C(`RouterView`);return _(),M(A,null,[k(n),k(dr),k(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 Y=Object.assign;function jr(e,t){let n={};for(let r in t){let i=t[r];n[r]=X(i)?i.map(e):e(i)}return n}var Mr=()=>{},X=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 Y(Error(),{type:e,[Pr]:!0},t)}function Z(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 c(Rr)}function Hr(e){return c(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 X(e)?bi(e,t):X(t)?bi(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function bi(e,t){return X(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]=X(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(Y({},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,Y({},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=Y({},i.value,t.state,{forward:e,scroll:Di()});a(o.current,o,!0),a(e,Y({},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=Y({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=Y(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(Y({},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=Y(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=Y({},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)=>Y(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=c(Rr),n=c(zr),r=j(()=>{let n=z(e.to);return t.resolve(n)}),i=j(()=>{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=j(()=>i.value>-1&&ya(n.params,r.value.params)),o=j(()=>i.value>-1&&i.value===n.matched.length-1&&vi(n.params,r.value.params));function s(n={}){if(va(n)){let n=t[z(e.replace)?`replace`:`push`](z(e.to)).catch(Mr);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:j(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function ga(e){return e.length===1?e[0]:e}var _a=V({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=me(ha(e)),{options:r}=c(Rr),i=j(()=>({[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(!X(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=V({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=c(Br),i=j(()=>e.route||r.value),a=c(Lr,0),o=j(()=>{let e=z(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=j(()=>i.value.matched[o.value]);x(Lr,j(()=>o.value+1)),x(Ir,s),x(Br,i);let l=I();return D(()=>[l.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,c=o&&o.components[a];if(!c)return Ca(n.default,{Component:c,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=Le(c,Y({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:l}));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,r=e.stringifyQuery||Ii,i=e.history,a=Ri(),o=Ri(),s=Ri(),c=le(Si),l=Si;Ur&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=jr.bind(null,e=>``+e),d=jr.bind(null,li),f=jr.bind(null,ui);function p(e,n){let r,i;return Pi(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=Y({},a||c.value),typeof e==`string`){let r=pi(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return Y(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=Y({},e,{path:pi(n,e.path,a.path).path});else{let t=Y({},e.params);for(let e in t)t[e]??delete t[e];o=Y({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=mi(r,Y({},e,{hash:ai(l),path:s.path})),m=i.createHref(p);return Y({fullPath:p,hash:l,query:r===Ii?Li(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?pi(n,e,c.value.path):Y({},e)}function b(e,t){if(l!==e)return Fr(8,{from:t,to:e})}function x(e){return C(e)}function ee(e){return x(Y(v(e),{replace:!0}))}function S(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=v(i):{path:i},i.params={}),Y({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(Y(v(u),{state:typeof u==`object`?Y({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&gi(r,i,n)&&(f=Fr(16,{to:d,from:i}),k(i,i,!0,!1)),(f?Promise.resolve(f):te(d,i)).catch(e=>Z(e)?Z(e,2)?e:ce(e):oe(e,d,i)).then(e=>{if(e){if(Z(e,2))return C(Y({replace:s},v(e.to),{state:typeof e.to==`object`?Y({},a,e.to.state):a,force:o}),t||d)}else e=D(d,i,!0,s,a);return E(d,i,e),e})}function w(e,t){let n=b(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=de.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function te(e,t){let n,[r,i,s]=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=w.bind(null,e,t);return n.push(c),pe(n).then(()=>{n=[];for(let r of a.list())n.push(zi(r,e,t));return n.push(c),pe(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),pe(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(X(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),pe(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Bi(s,`beforeRouteEnter`,e,t,T),n.push(c),pe(n))).then(()=>{n=[];for(let r of o.list())n.push(zi(r,e,t));return n.push(c),pe(n)}).catch(e=>Z(e,8)?e:Promise.reject(e))}function E(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function D(e,t,n,r,a){let o=b(e,t);if(o)return o;let s=t===Si,l=Ur?history.state:{};n&&(r||s?i.replace(e.fullPath,Y({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,k(e,t,n,s),ce()}let ne;function re(){ne||=i.listen((e,t,n)=>{if(!fe.listening)return;let r=_(e),a=S(r,fe.currentRoute.value);if(a){C(Y(a,{replace:!0,force:!0}),r).catch(Mr);return}l=r;let o=c.value;Ur&&ji(ki(o.fullPath,n.delta),Di()),te(r,o).catch(e=>Z(e,12)?e:Z(e,2)?(C(Y(v(e.to),{force:!0}),r).then(e=>{Z(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(Mr),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=D(r,o,!1),e&&(n.delta&&!Z(e,8)?i.go(-n.delta,!1):n.type===`pop`&&Z(e,20)&&i.go(-1,!1)),E(r,o,e)}).catch(Mr)})}let ie=Ri(),ae=Ri(),O;function oe(e,t,n){ce(e);let r=ae.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return O&&c.value!==Si?Promise.resolve():new Promise((e,t)=>{ie.add([e,t])})}function ce(e){return O||(O=!e,re(),ie.list().forEach(([t,n])=>e?n(e):t()),ie.reset()),e}function k(t,n,r,i){let{scrollBehavior:a}=e;if(!Ur||!a)return Promise.resolve();let o=!r&&Mi(ki(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return y().then(()=>a(t,n,o)).then(e=>t===c.value&&e&&Oi(e)).catch(e=>t===c.value&&oe(e,t,n))}let ue=e=>i.go(e),A,de=new Set,fe={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:x,replace:ee,go:ue,back:()=>ue(-1),forward:()=>ue(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ae.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:()=>z(c)}),Ur&&!A&&c.value===Si&&(A=!0,x(i.location).catch(e=>{}));let t={};for(let e in Si)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(Rr,fe),e.provide(zr,je(t)),e.provide(Br,c);let n=e.unmount;de.add(e),e.unmount=function(){de.delete(e),de.size<1&&(l=Si,ne&&ne(),ne=null,c.value=Si,A=!1,O=!1),n()}}};function pe(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=V({__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=j(()=>t.name.startsWith(`vuesax-linear:`)?t.name:n[t.name]??`vuesax-linear:info-circle`);return(t,n)=>(_(),Te(or,{icon:r.value,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`icon`,`size`,`stroke-width`,`color`]))}}),ka=`fabric-admin-session`,Aa=`fabric-admin-token`,ja=!1,Ma={phone:`09128081392`,password:`123456`,session:{id:`mock-admin-1`,fullName:`مدیر سیستم (موک)`,phone:`09128081392`,email:`admin@parche.ir`,role:`admin`}};function Na(){try{let e=localStorage.getItem(ka)??sessionStorage.getItem(ka);return e?JSON.parse(e):null}catch{return null}}function Pa(e,t){let n=JSON.stringify(e);localStorage.removeItem(ka),sessionStorage.removeItem(ka),t?localStorage.setItem(ka,n):sessionStorage.setItem(ka,n)}function Fa(){localStorage.removeItem(ka),sessionStorage.removeItem(ka)}function Ia(){return!!localStorage.getItem(Aa)}function La(e){return{id:e.id,fullName:e.fullName,phone:e.phone,email:e.email,role:e.role}}function Ra(){return Na()}function za(){return ja}async function Ba(e){let t=e.phone.trim(),n=e.password;if(!t||!n)return{success:!1,message:`شماره موبایل و رمز عبور الزامی است.`};try{let r=await F(`/admin/auth/login`,{method:`POST`,body:{phone:t,password:n},auth:!1});return ve(r.accessToken,e.remember),Pa(La(r.user),e.remember),{success:!0}}catch(e){return e instanceof Pe?{success:!1,message:e.message}:{success:!1,message:`ورود انجام نشد.`}}}async function Va(){let e=Ae();if(!e)return Na();if(e===`mock-admin-token`){let e=Na()??Ma.session;return Pa(e,Ia()),e}try{let e=La(await F(`/auth/me`));return Pa(e,Ia()),e}catch{return Na()}}function Ha(){ve(null),Fa()}var Ua=rr(`auth`,()=>{let e=I(Ra()),t=I(!1),n=I(null),r=j(()=>!!e.value),i=j(()=>e.value?.fullName??``),a=j(()=>e.value?{admin:`مدیر سیستم`,sales:`واحد فروش`,finance:`واحد مالی`,warehouse:`انبار`}[e.value.role]:``);function o(){n.value=null}function s(){e.value=Ra(),Va().then(t=>{t&&(e.value=t)})}async function c(r,i,a){t.value=!0,n.value=null;let o=await Ba({phone:r,password:i,remember:a});return t.value=!1,o.success?(e.value=Ra(),!0):(n.value=o.message??`ورود انجام نشد.`,!1)}function l(){Ha(),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}}),Wa={class:`admin-sidebar`,"aria-label":`ناوبری پنل مدیریت`},Ga={class:`admin-sidebar__nav`},Ka=[`onClick`],qa=L(V({__name:`AdminSidebar`,setup(e){let t=Hr(),r=Vr(),i=Ua();function a(e){r.push(e)}function o(){i.logout(),r.push(`/login`)}return(e,r)=>(_(),M(`aside`,Wa,[r[1]||=R(`div`,{class:`admin-sidebar__brand`},[R(`strong`,{class:`admin-sidebar__title`},`پارچه`),R(`span`,{class:`admin-sidebar__subtitle`},`پنل مدیریت`)],-1),R(`nav`,Ga,[(_(!0),M(A,null,p(z(Ea),e=>(_(),M(`button`,{key:e.name,type:`button`,class:n([`admin-sidebar__item`,{active:z(Da)(e.path,z(t).path)}]),onClick:t=>a(e.path)},[k(Oa,{name:e.icon,size:20},null,8,[`name`]),R(`span`,null,v(e.label),1)],10,Ka))),128))]),R(`button`,{type:`button`,class:`admin-sidebar__logout`,onClick:o},[k(Oa,{name:`logout`,size:20}),r[0]||=R(`span`,null,`خروج`,-1)])]))}}),[[`__scopeId`,`data-v-bcc6586c`]]),Ja=new WeakMap,Ya=(...e)=>{let t=e[0],n=w()?.proxy??ae();if(n==null&&!te())throw Error(`injectLocal must be called in setup`);return n&&Ja.has(n)&&t in Ja.get(n)?Ja.get(n)[t]:c(...e)},Xa=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var Za=Object.prototype.toString,Qa=e=>Za.call(e)===`[object Object]`,$a=()=>{},eo=to();function to(){var e,t;return Xa&&!!((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 no(...e){if(e.length!==1)return Ne(...e);let t=e[0];return typeof t==`function`?Fe(ke(()=>({get:t,set:$a}))):I(t)}function ro(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 io=e=>e();function ao(e=io,t={}){let{initialState:n=`active`}=t,r=no(n===`active`);function i(){r.value=!1}function a(){r.value=!0}return{isActive:ye(r),pause:i,resume:a,eventFilter:(...t)=>{r.value&&e(...t)}}}function oo(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function so(e){return Array.isArray(e)?e:[e]}function co(e){return e||w()}function lo(e,t,n={}){let{eventFilter:r=io,...i}=n;return D(e,ro(r,t),i)}function uo(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=ao(r,{initialState:i});return{stop:lo(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function fo(e,n=!0,r){co(r)?t(e,r):n?e():y(e)}function po(e,t,n){return D(e,t,{...n,immediate:!0})}var mo=Xa?window:void 0;Xa&&window.document,Xa&&window.navigator,Xa&&window.location;function ho(e){let t=P(e);return t?.$el??t}function go(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=j(()=>{let t=so(P(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return po(()=>[n.value?.map(e=>ho(e))??[mo].filter(e=>e!=null),so(P(n.value?e[1]:e[0])),so(z(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=Qa(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 _o=!1;function vo(e,t,n={}){let{window:r=mo,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:$a,cancel:$a,trigger:$a}:$a;if(eo&&!_o){_o=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,$a,e)),r.document.documentElement.addEventListener(`click`,$a,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=ho(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=ho(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=[go(r,`click`,e=>{p||(p=!0,setTimeout(()=>{p=!1},0),f(e))},{passive:!0,capture:a}),go(r,`pointerdown`,t=>{let n=ho(e);c=!l(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),o&&go(r,`blur`,n=>{setTimeout(()=>{let i=ho(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 yo(){let e=le(!1),n=w();return n&&t(()=>{e.value=!0},n),e}function bo(e){let t=yo();return j(()=>(t.value,!!e()))}var xo=Symbol(`vueuse-ssr-width`);function So(){let e=te()?Ya(xo,null):null;return typeof e==`number`?e:void 0}function Co(e,t={}){let{window:n=mo,ssrWidth:r=So()}=t,i=bo(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),a=le(typeof r==`number`),o=le(),s=le(!1);return re(()=>{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>=oo(n[1])),i&&a&&(a=r<=oo(i[1])),t?!a:a});return}i.value&&(o.value=n.matchMedia(P(e)),s.value=o.value.matches)}),go(o,`change`,e=>{s.value=e.matches},{passive:!0}),j(()=>s.value)}var wo=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},To=`__vueuse_ssr_handlers__`,Eo=Do();function Do(){return To in wo||(wo[To]=wo[To]||{}),wo[To]}function Oo(e,t){return Eo[e]||t}function ko(e){return Co(`(prefers-color-scheme: dark)`,e)}function Ao(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 jo={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()}},Mo=`vueuse-storage`;function No(e,t,n,r={}){let{flush:i=`pre`,deep:a=!0,listenToStorageChanges:o=!0,writeDefaults:s=!0,mergeDefaults:c=!1,shallow:l,window:u=mo,eventFilter:d,onError:f=e=>{console.error(e)},initOnMounted:p}=r,m=(l?le:I)(typeof t==`function`?t():t),h=j(()=>P(e));if(!n)try{n=Oo(`getDefaultStorage`,()=>mo?.localStorage)()}catch(e){f(e)}if(!n)return m;let g=P(t),_=Ao(g),v=r.serializer??jo[_],{pause:b,resume:x}=uo(m,e=>C(e),{flush:i,deep:a,eventFilter:d});D(h,()=>T(),{flush:i});let ee=!1;u&&o&&(n instanceof Storage?go(u,`storage`,e=>{p&&!ee||T(e)},{passive:!0}):go(u,Mo,e=>{p&&!ee||te(e)})),p?fo(()=>{ee=!0,T()}):T();function S(e,t){if(u){let r={key:h.value,oldValue:e,newValue:t,storageArea:n};u.dispatchEvent(n instanceof Storage?new StorageEvent(`storage`,r):new CustomEvent(Mo,{detail:r}))}}function C(e){try{let t=n.getItem(h.value);if(e==null)S(t,null),n.removeItem(h.value);else{let r=v.write(e);t!==r&&(n.setItem(h.value,r),S(t,r))}}catch(e){f(e)}}function w(e){let t=e?e.newValue:n.getItem(h.value);if(t==null)return s&&g!=null&&n.setItem(h.value,v.write(g)),g;if(!e&&c){let e=v.read(t);return typeof c==`function`?c(e,g):_===`object`&&!Array.isArray(e)?{...g,...e}:e}return typeof t==`string`?v.read(t):t}function T(e){if(!(e&&e.storageArea!==n)){if(e&&e.key==null){m.value=g;return}if(!(e&&e.key!==h.value)){b();try{let t=v.write(m.value);(e===void 0||e?.newValue!==t)&&(m.value=w(e))}catch(e){f(e)}finally{e?y(x):x()}}}}function te(e){T(e.detail)}return m}function Po(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 Fo(e){return e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``)||`c-${Date.now()}`}var Io={list:e=>F(`/companies`,{query:{activeOnly:e?`true`:void 0}}),get:e=>F(`/companies/${e}`),create:e=>F(`/companies`,{body:e}),update:(e,t)=>F(`/companies/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/companies/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Lo={listByCompany:e=>F(`/companies/${e}/bank-accounts`),create:(e,t)=>F(`/companies/${e}/bank-accounts`,{body:t}),update:(e,t)=>F(`/bank-accounts/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/bank-accounts/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Ro={list:e=>F(`/catalogs`,{query:{companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>F(`/catalogs`,{body:e}),update:(e,t)=>F(`/catalogs/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/catalogs/${e}/active`,{method:`PATCH`,body:{isActive:t}})},zo={list:e=>F(`/products`,{query:{catalogId:e?.catalogId,companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>F(`/products`,{body:e}),update:(e,t)=>F(`/products/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/products/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Bo={list:(e,t)=>F(`/admin/customers`,{query:{q:e,appRole:t}}),create:e=>F(`/admin/customers`,{body:e}),update:(e,t)=>F(`/admin/customers/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/admin/customers/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Vo={list:e=>F(`/admin/orders`,{query:{status:e?.status,q:e?.q}}),get:e=>F(`/admin/orders/${e}`),create:e=>F(`/admin/orders`,{body:e}),updatePricing:(e,t)=>F(`/admin/orders/${e}/pricing`,{method:`PATCH`,body:t}),updateStatus:(e,t)=>F(`/admin/orders/${e}/status`,{method:`PATCH`,body:t})},Ho={list:e=>F(`/admin/checks`,{query:{status:e}}),listByOrder:e=>F(`/admin/orders/${e}/checks`),updateStatus:(e,t)=>F(`/admin/checks/${e}/status`,{method:`PATCH`,body:t})},Uo={list:e=>F(`/admin/cash-payments`,{query:{status:e}}),updateStatus:(e,t)=>F(`/admin/cash-payments/${e}/status`,{method:`PATCH`,body:t})},Wo={list:e=>F(`/admin/shipments`,{query:{status:e}}),create:e=>F(`/admin/shipments`,{body:e}),update:(e,t)=>F(`/admin/shipments/${e}`,{method:`PATCH`,body:t}),advanceStatus:(e,t)=>F(`/admin/shipments/${e}/status`,{method:`PATCH`,body:t??{}})},Go={list:()=>F(`/admin/users`),create:e=>F(`/admin/users`,{body:e}),update:(e,t)=>F(`/admin/users/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>F(`/admin/users/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Ko={get:()=>F(`/admin/dashboard`),reports:()=>F(`/admin/reports`)},qo={get:()=>F(`/admin/settings`),update:e=>F(`/admin/settings`,{method:`PATCH`,body:e})},Jo={markRead:e=>F(`/admin/notifications/${e}/read`,{method:`PATCH`}),markAllRead:()=>F(`/admin/notifications/read-all`,{method:`PATCH`}),broadcast:e=>F(`/admin/notifications/broadcast`,{method:`POST`,body:e})},Yo={list:e=>F(`/admin/catalog-requests`,{query:{status:e}}),updateStatus:(e,t)=>F(`/admin/catalog-requests/${e}/status`,{method:`PATCH`,body:{status:t}}),updateHolder:(e,t)=>F(`/admin/catalog-request-items/${e}/holder`,{method:`PATCH`,body:t})},Xo={list:e=>F(`/admin/banners`,{query:{slot:e}}),create:e=>F(`/admin/banners`,{body:e}),update:(e,t)=>F(`/admin/banners/${e}`,{method:`PATCH`,body:t}),remove:e=>F(`/admin/banners/${e}`,{method:`DELETE`})},Zo={list:()=>F(`/admin/brands`),create:e=>F(`/admin/brands`,{body:e}),update:(e,t)=>F(`/admin/brands/${e}`,{method:`PATCH`,body:t})},Qo={list:()=>F(`/admin/levels`),create:e=>F(`/admin/levels`,{body:e}),update:(e,t)=>F(`/admin/levels/${e}`,{method:`PATCH`,body:t})},$o={list:e=>F(`/admin/suggestions`,{query:{customerId:e}}),create:e=>F(`/admin/suggestions`,{body:e}),setActive:(e,t)=>F(`/admin/suggestions/${e}/active`,{method:`PATCH`,body:{isActive:t}})},es={list:()=>F(`/admin/stock-alerts`),notify:e=>F(`/admin/stock-alerts/${e}/notify`,{method:`PATCH`})},ts=`۰۱۲۳۴۵۶۷۸۹`,ns=new Intl.NumberFormat(`fa-IR`,{useGrouping:!0});function rs(e){return e.replace(/[۰-۹]/g,e=>String(ts.indexOf(e)))}function is(e){return rs(e).replace(/[^\d]/g,``)}function as(e){return Number.isFinite(e)?ns.format(e):`—`}function os(e){return`${as(e)} تومان`}function ss(e){return`${as(e)} متر`}function cs(e){return String(e).replace(/\d/g,e=>ts[Number(e)])}var ls=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`}),us=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`});function ds(e){let t=rs(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 fs(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 ps(e){if(!e)return`—`;if(typeof e==`string`&&ds(e)){let t=rs(e.trim()).replace(/-/g,`/`),n=t.match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!n)return cs(t);let[,r,i,a]=n;return cs(`${r}/${i.padStart(2,`0`)}/${a.padStart(2,`0`)}`)}let t=fs(e);return Number.isNaN(t.getTime())?`—`:ls.format(t)}function ms(e){if(!e)return`—`;if(typeof e==`string`&&ds(e)&&!/[T\s]\d/.test(e))return ps(e);let t=fs(e);return Number.isNaN(t.getTime())?`—`:us.format(t)}var hs=/ORD-?\d{2,4}-?\d{2,6}/i,gs=/^\/?(?:admin\/)?orders\/([^/?#]+)\/?$/i,_s=/^\/?(?:admin\/)?orders\/([^/?#]+)\/(pricing|checks)\/?$/i;function vs(e){let t=e.match(hs);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 ys(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(_s);if(n?.[1]&&n[2])return`/orders/${n[1]}/${n[2]}`;let r=t.match(gs);return r?.[1]?`/orders?order=${encodeURIComponent(r[1])}`:t}function bs(e){let t=e.link?.trim();if(t)return ys(t);let n=`${e.title?.trim()??``} ${e.body?.trim()??``}`,r=e.orderId?.trim()||null,i=vs(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 xs=rr(`theme`,()=>{let e=No(`ft_admin_theme`,`system`),t=ko(),n=j(()=>e.value===`system`?t.value?`dark`:`light`:e.value),r=j(()=>n.value===`dark`);re(()=>{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}}),Ss={class:`admin-header`},Cs={class:`admin-header__right`},ws={class:`admin-header__dropdown`},Ts=[`aria-label`,`aria-expanded`],Es={key:0,class:`admin-header__badge`,"aria-hidden":`true`},Ds={class:`admin-header__panel-header`},Os={key:0,class:`admin-header__panel-list`},ks=[`onClick`],As={class:`admin-header__panel-item-top`},js=[`datetime`],Ms={class:`admin-header__panel-item-sender`},Ns={class:`admin-header__panel-item-body`},Ps={key:1,class:`admin-header__panel-empty`},Fs={class:`admin-header__dropdown`},Is=[`aria-label`,`aria-expanded`],Ls={key:0,class:`admin-header__badge`,"aria-hidden":`true`},Rs={class:`admin-header__panel-header`},zs={key:0,class:`admin-header__panel-list`},Bs=[`onClick`],Vs={class:`admin-header__panel-item-top`},Hs=[`datetime`],Us={class:`admin-header__panel-item-body`},Ws={key:1,class:`admin-header__panel-empty`},Gs={class:`admin-header__dropdown`},Ks=[`aria-label`,`aria-expanded`],qs={class:`admin-header__theme-glyph`,"aria-hidden":`true`},Js={class:`admin-header__theme-list`},Ys=[`onClick`],Xs={class:`admin-header__theme-option-icon`,"aria-hidden":`true`},Zs={class:`admin-header__theme-option-label`},Qs={class:`admin-header__user`},$s={class:`admin-header__avatar`},ec={class:`admin-header__user-info`},tc=L(V({__name:`AdminHeader`,emits:[`menuClick`],setup(e){let t=Vr(),r=Ua(),i=xs(),a=I(null),o=I(null),s=I([]),c=I([]),l=j(()=>s.value.filter(e=>!e.isRead).length),u=j(()=>c.value.filter(e=>!e.isRead).length),d=[{value:`light`,label:`روشن`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,icon:`vuesax-linear:mobile`}],f=j(()=>d.find(e=>e.value===i.preference)?.label??`سیستم`),m=j(()=>d.find(e=>e.value===i.preference)?.icon??`vuesax-linear:sun-1`);Ko.get().then(e=>{s.value=e.messages??[],c.value=e.notifications??[]}).catch(()=>{s.value=[],c.value=[]}),vo(o,()=>{a.value=null}),go(document,`keydown`,e=>{e.key===`Escape`&&(a.value=null)});function h(e){a.value=a.value===e?null:e}function g(){a.value=null}function y(e){e.isRead=!0}function b(e){e.isRead||(e.isRead=!0,Jo.markRead(e.id).catch(()=>{e.isRead=!1}))}function x(){s.value.forEach(e=>{e.isRead=!0})}function ee(){let e=c.value.filter(e=>!e.isRead);e.length&&(e.forEach(e=>{e.isRead=!0}),Jo.markAllRead().catch(()=>{e.forEach(e=>{e.isRead=!1})}))}function S(e){g(),e&&t.push(e)}function C(e){y(e),S(bs({link:e.link,orderId:e.orderId,title:e.subject,body:e.preview}))}function w(e){b(e),S(bs({link:e.link,orderId:e.orderId,title:e.title,body:e.body}))}function T(e){i.setPreference(e),g()}return(e,t)=>(_(),M(`header`,Ss,[R(`div`,Cs,[R(`button`,{type:`button`,class:`admin-header__menu-btn compact-only`,"aria-label":`باز کردن منو`,onClick:t[0]||=t=>e.$emit(`menuClick`)},[k(Oa,{name:`menu`,size:22})])]),R(`div`,{ref_key:`actionsRef`,ref:o,class:`admin-header__left`},[R(`div`,ws,[R(`button`,{type:`button`,class:n([`admin-header__icon-btn`,{"admin-header__icon-btn--active":a.value===`messages`}]),title:`پیام‌های داخلی`,"aria-label":`پیام‌های داخلی — ${l.value} پیام خوانده‌نشده`,"aria-expanded":a.value===`messages`,"aria-haspopup":`true`,onClick:t[1]||=_n(e=>h(`messages`),[`stop`])},[k(Oa,{name:`message`,size:22}),l.value?(_(),M(`span`,Es,v(l.value),1)):N(``,!0),t[7]||=R(`span`,{class:`admin-header__icon-label`},`پیام`,-1)],10,Ts),a.value===`messages`?(_(),M(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`پیام‌های داخلی`,onClick:t[2]||=_n(()=>{},[`stop`])},[R(`div`,Ds,[t[8]||=R(`h2`,{class:`admin-header__panel-title`},`پیام‌های داخلی`,-1),l.value?(_(),M(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:x},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):N(``,!0)]),s.value.length?(_(),M(`ul`,Os,[(_(!0),M(A,null,p(s.value,e=>(_(),M(`li`,{key:e.id,class:n([`admin-header__panel-item`,{unread:!e.isRead}])},[R(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>C(e)},[R(`span`,As,[R(`strong`,null,v(e.subject),1),R(`time`,{datetime:e.sentAt},v(z(ms)(e.sentAt)),9,js)]),R(`span`,Ms,`از `+v(e.senderName),1),R(`span`,Ns,v(e.preview),1)],8,ks)],2))),128))])):(_(),M(`p`,Ps,`پیامی وجود ندارد.`))])):N(``,!0)]),R(`div`,Fs,[R(`button`,{type:`button`,class:n([`admin-header__icon-btn`,{"admin-header__icon-btn--active":a.value===`notifications`}]),title:`اعلان‌ها`,"aria-label":`اعلان‌ها — ${u.value} اعلان جدید`,"aria-expanded":a.value===`notifications`,"aria-haspopup":`true`,onClick:t[3]||=_n(e=>h(`notifications`),[`stop`])},[k(Oa,{name:`bell`,size:22}),u.value?(_(),M(`span`,Ls,v(u.value),1)):N(``,!0),t[9]||=R(`span`,{class:`admin-header__icon-label`},`اعلان`,-1)],10,Is),a.value===`notifications`?(_(),M(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`اعلان‌ها`,onClick:t[4]||=_n(()=>{},[`stop`])},[R(`div`,Rs,[t[10]||=R(`h2`,{class:`admin-header__panel-title`},`اعلان‌ها`,-1),u.value?(_(),M(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:ee},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):N(``,!0)]),c.value.length?(_(),M(`ul`,zs,[(_(!0),M(A,null,p(c.value,e=>(_(),M(`li`,{key:e.id,class:n([`admin-header__panel-item`,[{unread:!e.isRead},e.tone?`admin-header__panel-item--${e.tone}`:``]])},[R(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>w(e)},[R(`span`,Vs,[R(`strong`,null,v(e.title),1),R(`time`,{datetime:e.sentAt},v(z(ms)(e.sentAt)),9,Hs)]),R(`span`,Us,v(e.body),1)],8,Bs)],2))),128))])):(_(),M(`p`,Ws,`اعلانی وجود ندارد.`))])):N(``,!0)]),R(`div`,Gs,[R(`button`,{type:`button`,class:n([`admin-header__icon-btn`,{"admin-header__icon-btn--active":a.value===`theme`}]),title:`حالت نمایش`,"aria-label":`حالت نمایش — ${f.value}`,"aria-expanded":a.value===`theme`,"aria-haspopup":`true`,onClick:t[5]||=_n(e=>h(`theme`),[`stop`])},[R(`span`,qs,[k(or,{icon:m.value,size:20,"stroke-width":1.5},null,8,[`icon`])]),t[11]||=R(`span`,{class:`admin-header__icon-label`},`تم`,-1)],10,Ks),a.value===`theme`?(_(),M(`div`,{key:0,class:`admin-header__panel admin-header__panel--theme`,role:`dialog`,"aria-label":`انتخاب حالت نمایش`,onClick:t[6]||=_n(()=>{},[`stop`])},[t[12]||=R(`div`,{class:`admin-header__panel-header`},[R(`h2`,{class:`admin-header__panel-title`},`حالت نمایش`)],-1),R(`ul`,Js,[(_(),M(A,null,p(d,e=>R(`li`,{key:e.value},[R(`button`,{type:`button`,class:n([`admin-header__theme-option`,{"admin-header__theme-option--active":z(i).preference===e.value}]),onClick:t=>T(e.value)},[R(`span`,Xs,[k(or,{icon:e.icon,size:18,"stroke-width":1.5},null,8,[`icon`])]),R(`span`,Zs,v(e.label),1),z(i).preference===e.value?(_(),Te(or,{key:0,class:`admin-header__theme-option-check`,icon:`vuesax-linear:tick-circle`,size:16,"stroke-width":1.75})):N(``,!0)],10,Ys)])),64))])])):N(``,!0)]),R(`div`,Qs,[R(`div`,$s,v(z(r).fullName.charAt(0)||`؟`),1),R(`div`,ec,[R(`strong`,null,v(z(r).fullName||`مدیر`),1),R(`span`,null,v(z(r).roleLabel||`پنل مدیریت`),1)])])],512)]))}}),[[`__scopeId`,`data-v-7fec14ae`]]),nc=[`aria-hidden`],rc={class:`admin-drawer__brand`},ic={class:`admin-drawer__nav`},ac=[`onClick`],oc=L(V({__name:`AdminMobileDrawer`,props:{open:{type:Boolean}},emits:[`close`],setup(e,{emit:t}){let r=t,i=Hr(),a=Vr(),o=Ua();function s(e){a.push(e),r(`close`)}function c(){o.logout(),a.push(`/login`),r(`close`)}return(t,a)=>(_(),M(A,null,[R(`div`,{class:n([`admin-drawer-backdrop`,{open:e.open}]),role:`presentation`,onClick:a[0]||=e=>r(`close`)},null,2),R(`aside`,{class:n([`admin-drawer`,{open:e.open}]),"aria-label":`منوی ناوبری`,"aria-hidden":!e.open},[R(`div`,rc,[a[2]||=R(`strong`,null,`پارچه`,-1),a[3]||=R(`span`,null,`پنل مدیریت`,-1),R(`button`,{type:`button`,class:`admin-drawer__close`,"aria-label":`بستن منو`,onClick:a[1]||=e=>r(`close`)},` × `)]),R(`nav`,ic,[(_(!0),M(A,null,p(z(Ea),e=>(_(),M(`button`,{key:e.name,type:`button`,class:n([`admin-drawer__item`,{active:z(Da)(e.path,z(i).path)}]),onClick:t=>s(e.path)},[k(Oa,{name:e.icon,size:20},null,8,[`name`]),R(`span`,null,v(e.label),1)],10,ac))),128))]),R(`button`,{type:`button`,class:`admin-drawer__logout`,onClick:c},[k(Oa,{name:`logout`,size:20}),a[4]||=R(`span`,null,`خروج`,-1)])],10,nc)],64))}}),[[`__scopeId`,`data-v-7a746e66`]]),sc={class:`admin-shell`},cc={class:`admin-shell__main`},lc={class:`admin-shell__content`},uc=L(V({__name:`AdminShell`,setup(e){let t=Hr(),n=I(!1);function r(){n.value=!0}function i(){n.value=!1}return D(()=>t.path,()=>{n.value=!1}),(e,t)=>{let a=C(`RouterView`);return _(),M(`div`,sc,[k(qa,{class:`desktop-only admin-shell__sidebar`}),k(oc,{open:n.value,onClose:i},null,8,[`open`]),R(`div`,cc,[k(tc,{onMenuClick:r}),R(`main`,lc,[k(a)])])])}}}),[[`__scopeId`,`data-v-435fffac`]]),dc=`modulepreload`,fc=function(e){return`/admin/`+e},pc={},$=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=fc(t,n),t=s(t),t in pc)return;pc[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`:dc,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)})},mc=Ta({history:qi(`/admin/`),routes:[{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-Cwr3-bag.js`),__vite__mapDeps([0,1,2])),meta:{public:!0,title:`ورود به پنل مدیریت`}},{path:`/`,component:uc,meta:{requiresAuth:!0},children:[{path:``,name:`dashboard`,component:()=>$(()=>import(`./DashboardView-WAVxdnr5.js`),__vite__mapDeps([3,1,4,5,6,7])),meta:{title:`داشبورد مدیریتی`}},{path:`orders`,name:`orders`,component:()=>$(()=>import(`./OrdersView-syyGE4fv.js`),__vite__mapDeps([8,1,9,10,11,5,4,6,12])),meta:{title:`سفارش‌ها`}},{path:`orders/:id/pricing`,name:`order-pricing`,component:()=>$(()=>import(`./OrderPricingView-DAA-KKtU.js`),__vite__mapDeps([13,1,14,15,9,10,5,4,6,16,17,18])),meta:{title:`قیمت‌گذاری سفارش`}},{path:`checks`,name:`checks`,component:()=>$(()=>import(`./ChecksListView-DM6EfJQS.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-DdfJ7mM8.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-EUwI0EET.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-qPkZErp-.js`),__vite__mapDeps([30,1,24,25,26,27,28,31])),meta:{title:`حساب‌های بانکی`}},{path:`customers`,name:`customers`,component:()=>$(()=>import(`./CustomersView-BKoe-p99.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-BpIWai3T.js`),__vite__mapDeps([34,1,14,15,24,25,26,27,35,9,10,28,16,17,36])),meta:{title:`محصولات`}},{path:`categories`,name:`categories`,component:()=>$(()=>import(`./CategoriesView-Bg7zpqeN.js`),__vite__mapDeps([37,1,14,15,38,35,39,40])),meta:{title:`دسته‌بندی‌ها`}},{path:`banners`,name:`banners`,component:()=>$(()=>import(`./BannersView-BrJxBz6a.js`),__vite__mapDeps([41,1,14,15,24,25,26,27,38,35,39,9,10,42])),meta:{title:`بنرها`}},{path:`catalogs`,name:`catalogs`,component:()=>$(()=>import(`./CatalogsView-CUtcg7TE.js`),__vite__mapDeps([43,1,14,15,24,25,26,27,9,10,28,44])),meta:{title:`کالیته‌ها`}},{path:`catalog-requests`,name:`catalog-requests`,component:()=>$(()=>import(`./CatalogRequestsView-Bhd1ii66.js`),__vite__mapDeps([45,1,14,15,26,27,9,10,46])),meta:{title:`درخواست کالیته فیزیکی`}},{path:`brands`,name:`brands`,component:()=>$(()=>import(`./BrandsView-BgRB_dnQ.js`),__vite__mapDeps([47,1,14,15,24,25,26,27,48])),meta:{title:`برندها`}},{path:`suggestions`,name:`suggestions`,component:()=>$(()=>import(`./SuggestionsView-CdS7IuYt.js`),__vite__mapDeps([49,1,14,15,26,27,9,10,50])),meta:{title:`پیشنهاد محصول`}},{path:`stock-alerts`,name:`stock-alerts`,component:()=>$(()=>import(`./StockAlertsView-QdcvkdiB.js`),__vite__mapDeps([51,1,14,15,26,27,52])),meta:{title:`خبر موجودی`}},{path:`levels`,name:`levels`,component:()=>$(()=>import(`./LevelsView-Dt4PYLXr.js`),__vite__mapDeps([53,1,14,15,26,27,54])),meta:{title:`سطوح مشتری`}},{path:`cash-payments`,name:`cash-payments`,component:()=>$(()=>import(`./CashPaymentsView-uwiw3eFd.js`),__vite__mapDeps([55,1,14,15,9,10,11,56])),meta:{title:`پرداخت‌های نقدی`}},{path:`shipping`,name:`shipping`,component:()=>$(()=>import(`./ShippingView-BH50PpZU.js`),__vite__mapDeps([57,1,14,15,9,10,11,5,58])),meta:{title:`ارسال و باربری`}},{path:`reports`,name:`reports`,component:()=>$(()=>import(`./ReportsView-u9EnobV7.js`),__vite__mapDeps([59,1,14,15,60])),meta:{title:`گزارش‌ها`}},{path:`settings`,name:`settings`,component:()=>$(()=>import(`./SettingsView-BtXHQ1G1.js`),__vite__mapDeps([61,1,14,15,62])),meta:{title:`تنظیمات`}},{path:`users`,name:`users`,component:()=>$(()=>import(`./UsersView-OoZZqmAT.js`),__vite__mapDeps([63,1,14,15,24,25,26,27,9,10,11,28,64])),meta:{title:`کاربران و دسترسی‌ها`}}]}]});mc.beforeEach(e=>{let t=Ua();return 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 hc=Cn(Or),gc=Un();hc.use(gc),hc.use(mc),xs(gc),Ua(gc).hydrate(),hc.mount(`#app`);export{Ua as A,cn as B,qo as C,$o as D,es as E,Vr as F,yn as H,br as I,_r as L,za as M,Oa as N,vo as O,Hr as P,an as R,zo as S,Fo as T,_n as U,rn as V,Ko as _,ss as a,Jo as b,Lo as c,Uo as d,Yo as f,Bo as g,Io as h,ms as i,Ma as j,Co as k,Xo as l,Ho as m,os as n,as as o,Ro as p,ps as r,Go as s,is as t,Zo as u,Qo as v,Wo as w,Vo as x,Po as y,fn as z}; \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index cd92d22..c1a8c6e 100644 --- a/dist/index.html +++ b/dist/index.html @@ -5,7 +5,7 @@ پنل مدیریت | پارچه - + diff --git a/src/views/settings/SettingsView.vue b/src/views/settings/SettingsView.vue index 061e05f..eef3a09 100644 --- a/src/views/settings/SettingsView.vue +++ b/src/views/settings/SettingsView.vue @@ -240,7 +240,8 @@ async function sendBroadcast() {
- + +

این شماره در صفحه ورود اپ (پشتیبانی و تماس با ما) نمایش داده می‌شود.

@@ -337,6 +338,13 @@ async function sendBroadcast() { margin-right: 6px; } +.settings-page__hint { + margin: 6px 0 0; + color: var(--color-text-muted); + font-size: 0.75rem; + line-height: 1.5; +} + @media (max-width: 1279px) { .settings-page__grid { grid-template-columns: 1fr;