fix(auth): secure sessions and app routing
Validate sessions against the API, honor configurable base paths, and route unknown pages to 404. Keep development ports stable so user and admin apps cannot be confused. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
||||
import{L as e,Q as t,bt as n,it as r,lt as i,yt as a,z as o}from"./index-Ce0o2VuJ.js";import{t as s}from"./BaseSwitch-C9HY6KUs.js";function c(e=480){return new Promise(t=>{window.setTimeout(t,e)})}function l(e){let t=a(null),n=a(null),r=o();async function i(i,a){if(t.value)return a;let o=!a;if(!o&&e.confirmOff&&!await e.confirmOff())return a;t.value=i,n.value=null;let s=a;try{return await e.onPersist(o),r.success(e.successMessage?.(o)??(o?`وضعیت فعال شد.`:`وضعیت غیرفعال شد.`)),o}catch{return n.value=i,r.error(e.errorMessage??`بهروزرسانی وضعیت انجام نشد.`),s}finally{t.value=null}}function s(e){return t.value===e}function c(e){return n.value===e}return{toggle:i,isLoading:s,hasError:c}}var u=r({__name:`ActiveSwitchCell`,props:{id:{},modelValue:{type:Boolean},entityName:{},entityType:{},persist:{type:Function}},emits:[`update:modelValue`],setup(r,{emit:a}){let o=r,u=a,{toggle:d,isLoading:f,hasError:p}=l({onPersist:async e=>{o.persist?await o.persist(o.id,e):await c()},successMessage:e=>e?`${o.entityType??`مورد`} «${o.entityName}» فعال شد.`:`${o.entityType??`مورد`} «${o.entityName}» غیرفعال شد.`});async function m(t){if(t===o.modelValue)return;let n=o.entityType??`مورد`;if(!await e({title:t?`فعالسازی ${n}`:`غیرفعالسازی ${n}`,message:t?`آیا از فعال کردن «${o.entityName}» مطمئن هستید؟`:`آیا از غیرفعال کردن «${o.entityName}» مطمئن هستید؟`,tone:t?`primary`:`danger`,confirmLabel:t?`فعال کردن`:`غیرفعال کردن`,cancelLabel:`انصراف`}))return;let r=await d(o.id,o.modelValue);u(`update:modelValue`,r)}return(e,a)=>(i(),t(s,{"model-value":r.modelValue,loading:n(f)(r.id),error:n(p)(r.id),"onUpdate:modelValue":m},null,8,[`model-value`,`loading`,`error`]))}});export{u as t};
|
||||
import{L as e,Q as t,bt as n,it as r,lt as i,yt as a,z as o}from"./index-B2VD3zy8.js";import{t as s}from"./BaseSwitch-dp2xMemS.js";function c(e=480){return new Promise(t=>{window.setTimeout(t,e)})}function l(e){let t=a(null),n=a(null),r=o();async function i(i,a){if(t.value)return a;let o=!a;if(!o&&e.confirmOff&&!await e.confirmOff())return a;t.value=i,n.value=null;let s=a;try{return await e.onPersist(o),r.success(e.successMessage?.(o)??(o?`وضعیت فعال شد.`:`وضعیت غیرفعال شد.`)),o}catch{return n.value=i,r.error(e.errorMessage??`بهروزرسانی وضعیت انجام نشد.`),s}finally{t.value=null}}function s(e){return t.value===e}function c(e){return n.value===e}return{toggle:i,isLoading:s,hasError:c}}var u=r({__name:`ActiveSwitchCell`,props:{id:{},modelValue:{type:Boolean},entityName:{},entityType:{},persist:{type:Function}},emits:[`update:modelValue`],setup(r,{emit:a}){let o=r,u=a,{toggle:d,isLoading:f,hasError:p}=l({onPersist:async e=>{o.persist?await o.persist(o.id,e):await c()},successMessage:e=>e?`${o.entityType??`مورد`} «${o.entityName}» فعال شد.`:`${o.entityType??`مورد`} «${o.entityName}» غیرفعال شد.`});async function m(t){if(t===o.modelValue)return;let n=o.entityType??`مورد`;if(!await e({title:t?`فعالسازی ${n}`:`غیرفعالسازی ${n}`,message:t?`آیا از فعال کردن «${o.entityName}» مطمئن هستید؟`:`آیا از غیرفعال کردن «${o.entityName}» مطمئن هستید؟`,tone:t?`primary`:`danger`,confirmLabel:t?`فعال کردن`:`غیرفعال کردن`,cancelLabel:`انصراف`}))return;let r=await d(o.id,o.modelValue);u(`update:modelValue`,r)}return(e,a)=>(i(),t(s,{"model-value":r.modelValue,loading:n(f)(r.id),error:n(p)(r.id),"onUpdate:modelValue":m},null,8,[`model-value`,`loading`,`error`]))}});export{u as t};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{V as e,X as t,et as n,it as r,lt as i,o as a,t as o,xt as s}from"./index-Ce0o2VuJ.js";var c=[`id`,`value`,`placeholder`,`disabled`],l=e(r({__name:`AdminCurrencyInput`,props:{modelValue:{default:null},placeholder:{default:``},disabled:{type:Boolean,default:!1},id:{},inputClass:{default:`admin-input`},allowEmpty:{type:Boolean,default:!0}},emits:[`update:modelValue`],setup(e,{emit:r}){let l=e,u=r,d=t(()=>l.modelValue==null||!Number.isFinite(l.modelValue)?``:a(l.modelValue));function f(e){let t=e.target,n=o(t.value);if(!n){u(`update:modelValue`,l.allowEmpty?null:0),t.value=``;return}let r=Number(n);u(`update:modelValue`,r),t.value=a(r)}return(t,r)=>(i(),n(`input`,{id:e.id,type:`text`,inputmode:`numeric`,dir:`ltr`,class:s([`admin-currency-input`,e.inputClass]),value:d.value,placeholder:e.placeholder,disabled:e.disabled,onInput:f},null,42,c))}}),[[`__scopeId`,`data-v-56435fc8`]]);export{l as t};
|
||||
import{V as e,X as t,et as n,it as r,lt as i,o as a,t as o,xt as s}from"./index-B2VD3zy8.js";var c=[`id`,`value`,`placeholder`,`disabled`],l=e(r({__name:`AdminCurrencyInput`,props:{modelValue:{default:null},placeholder:{default:``},disabled:{type:Boolean,default:!1},id:{},inputClass:{default:`admin-input`},allowEmpty:{type:Boolean,default:!0}},emits:[`update:modelValue`],setup(e,{emit:r}){let l=e,u=r,d=t(()=>l.modelValue==null||!Number.isFinite(l.modelValue)?``:a(l.modelValue));function f(e){let t=e.target,n=o(t.value);if(!n){u(`update:modelValue`,l.allowEmpty?null:0),t.value=``;return}let r=Number(n);u(`update:modelValue`,r),t.value=a(r)}return(t,r)=>(i(),n(`input`,{id:e.id,type:`text`,inputmode:`numeric`,dir:`ltr`,class:s([`admin-currency-input`,e.inputClass]),value:d.value,placeholder:e.placeholder,disabled:e.disabled,onInput:f},null,42,c))}}),[[`__scopeId`,`data-v-56435fc8`]]);export{l as t};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{$ as e,Ct as t,St as n,V as r,Z as i,bt as a,et as o,it as s,lt as c,xt as l,yt as u}from"./index-Ce0o2VuJ.js";var d=960,f=.82;function p(e){let t=e.trim();return t?`url("${t.replace(/"/g,`\\"`)}")`:``}async function m(e){if(!e.type.startsWith(`image/`))throw Error(`فقط فایل تصویری مجاز است.`);if(e.size>8388608)throw Error(`حجم تصویر نباید بیشتر از ۸ مگابایت باشد.`);return g(await h(e))}function h(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`خواندن تصویر ناموفق بود.`)),r.readAsDataURL(e)})}function g(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{let e=Math.min(1,d/Math.max(r.width,r.height)),i=Math.max(1,Math.round(r.width*e)),a=Math.max(1,Math.round(r.height*e)),o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s){n(Error(`پردازش تصویر ناموفق بود.`));return}s.drawImage(r,0,0,i,a),t(o.toDataURL(`image/jpeg`,f))},r.onerror=()=>n(Error(`تصویر نامعتبر است.`)),r.src=e})}var _={class:`image-picker`},v={key:0,class:`image-picker__label`},y={class:`image-picker__row`},b={class:`image-picker__actions`},x=[`disabled`],S=[`disabled`],C={key:1,class:`image-picker__error`},w={key:2,class:`image-picker__ok`},T=r(s({__name:`AdminImagePicker`,props:{modelValue:{},label:{}},emits:[`update:modelValue`],setup(r,{emit:s}){let d=r,f=s,h=u(null),g=u(!1),T=u(``),E=u(!1);function D(){h.value?.click()}async function O(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){g.value=!0,T.value=``,E.value=!1;try{f(`update:modelValue`,await m(n)),E.value=!0}catch(e){T.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`}finally{g.value=!1}}}function k(){f(`update:modelValue`,null)}return(s,u)=>(c(),o(`div`,_,[r.label?(c(),o(`p`,v,t(r.label),1)):e(``,!0),i(`div`,y,[i(`div`,{class:l([`image-picker__preview`,{"image-picker__preview--empty":!d.modelValue}]),style:n(d.modelValue?{backgroundImage:a(p)(d.modelValue)}:void 0)},null,6),i(`div`,b,[i(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,disabled:g.value,onClick:D},t(d.modelValue?`تغییر تصویر`:`افزودن تصویر`),9,x),d.modelValue?(c(),o(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,disabled:g.value,onClick:k},` حذف `,8,S)):e(``,!0),T.value?(c(),o(`p`,C,t(T.value),1)):E.value?(c(),o(`p`,w,`تصویر انتخاب شد — برای ثبت نهایی «ذخیره» را بزنید.`)):e(``,!0)])]),i(`input`,{ref_key:`inputRef`,ref:h,type:`file`,accept:`image/*`,class:`image-picker__file`,onChange:O},null,544)]))}}),[[`__scopeId`,`data-v-05db5be7`]]);export{m as n,p as r,T as t};
|
||||
import{$ as e,Ct as t,St as n,V as r,Z as i,bt as a,et as o,it as s,lt as c,xt as l,yt as u}from"./index-B2VD3zy8.js";var d=960,f=.82;function p(e){let t=e.trim();return t?`url("${t.replace(/"/g,`\\"`)}")`:``}async function m(e){if(!e.type.startsWith(`image/`))throw Error(`فقط فایل تصویری مجاز است.`);if(e.size>8388608)throw Error(`حجم تصویر نباید بیشتر از ۸ مگابایت باشد.`);return g(await h(e))}function h(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`خواندن تصویر ناموفق بود.`)),r.readAsDataURL(e)})}function g(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{let e=Math.min(1,d/Math.max(r.width,r.height)),i=Math.max(1,Math.round(r.width*e)),a=Math.max(1,Math.round(r.height*e)),o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s){n(Error(`پردازش تصویر ناموفق بود.`));return}s.drawImage(r,0,0,i,a),t(o.toDataURL(`image/jpeg`,f))},r.onerror=()=>n(Error(`تصویر نامعتبر است.`)),r.src=e})}var _={class:`image-picker`},v={key:0,class:`image-picker__label`},y={class:`image-picker__row`},b={class:`image-picker__actions`},x=[`disabled`],S=[`disabled`],C={key:1,class:`image-picker__error`},w={key:2,class:`image-picker__ok`},T=r(s({__name:`AdminImagePicker`,props:{modelValue:{},label:{}},emits:[`update:modelValue`],setup(r,{emit:s}){let d=r,f=s,h=u(null),g=u(!1),T=u(``),E=u(!1);function D(){h.value?.click()}async function O(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){g.value=!0,T.value=``,E.value=!1;try{f(`update:modelValue`,await m(n)),E.value=!0}catch(e){T.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`}finally{g.value=!1}}}function k(){f(`update:modelValue`,null)}return(s,u)=>(c(),o(`div`,_,[r.label?(c(),o(`p`,v,t(r.label),1)):e(``,!0),i(`div`,y,[i(`div`,{class:l([`image-picker__preview`,{"image-picker__preview--empty":!d.modelValue}]),style:n(d.modelValue?{backgroundImage:a(p)(d.modelValue)}:void 0)},null,6),i(`div`,b,[i(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,disabled:g.value,onClick:D},t(d.modelValue?`تغییر تصویر`:`افزودن تصویر`),9,x),d.modelValue?(c(),o(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,disabled:g.value,onClick:k},` حذف `,8,S)):e(``,!0),T.value?(c(),o(`p`,C,t(T.value),1)):E.value?(c(),o(`p`,w,`تصویر انتخاب شد — برای ثبت نهایی «ذخیره» را بزنید.`)):e(``,!0)])]),i(`input`,{ref_key:`inputRef`,ref:h,type:`file`,accept:`image/*`,class:`image-picker__file`,onChange:O},null,544)]))}}),[[`__scopeId`,`data-v-05db5be7`]]);export{m as n,p as r,T as t};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{J as e,V as t,Z as n,dt as r,et as i,it as a,lt as o,tt as s}from"./index-Ce0o2VuJ.js";var c={class:`admin-page-skeleton`,role:`status`,"aria-live":`polite`,"aria-busy":`true`,"aria-label":`در حال بارگذاری`},l={class:`admin-card admin-page-skeleton__table`},u={key:1,class:`admin-card admin-page-skeleton__form`},d={key:2,class:`admin-card admin-page-skeleton__detail`},f={key:3,class:`admin-page-skeleton__cards`},p=t(a({__name:`AdminPageSkeleton`,props:{variant:{default:`cards`},rows:{default:5}},setup(t){return(a,p)=>(o(),i(`div`,c,[t.variant===`table`?(o(),i(e,{key:0},[p[1]||=n(`div`,{class:`admin-page-skeleton__toolbar`},[n(`span`,{class:`admin-skeleton admin-page-skeleton__search`}),n(`span`,{class:`admin-skeleton admin-page-skeleton__btn`})],-1),n(`div`,l,[(o(!0),i(e,null,r(t.rows,e=>(o(),i(`div`,{key:e,class:`admin-page-skeleton__tr`},[...p[0]||=[s(`<span class="admin-skeleton" style="width:18%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:22%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:14%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:16%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:12%;height:12px;" data-v-8283cd1d></span>`,5)]]))),128))])],64)):t.variant===`form`?(o(),i(`div`,u,[(o(!0),i(e,null,r(t.rows,e=>(o(),i(`div`,{key:e,class:`admin-page-skeleton__field`},[...p[2]||=[n(`span`,{class:`admin-skeleton`,style:{width:`28%`,height:`10px`}},null,-1),n(`span`,{class:`admin-skeleton`,style:{width:`100%`,height:`40px`,"border-radius":`10px`}},null,-1)]]))),128))])):t.variant===`detail`?(o(),i(`div`,d,[...p[3]||=[s(`<span class="admin-skeleton" style="width:40%;height:18px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:70%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:100%;height:120px;border-radius:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:100%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:88%;height:12px;" data-v-8283cd1d></span>`,5)]])):(o(),i(`div`,f,[(o(!0),i(e,null,r(t.rows,e=>(o(),i(`div`,{key:e,class:`admin-card admin-page-skeleton__card`},[...p[4]||=[n(`span`,{class:`admin-skeleton`,style:{width:`45%`,height:`14px`}},null,-1),n(`span`,{class:`admin-skeleton`,style:{width:`70%`,height:`11px`}},null,-1),n(`span`,{class:`admin-skeleton`,style:{width:`35%`,height:`11px`}},null,-1)]]))),128))]))]))}}),[[`__scopeId`,`data-v-8283cd1d`]]);export{p as t};
|
||||
import{J as e,V as t,Z as n,dt as r,et as i,it as a,lt as o,tt as s}from"./index-B2VD3zy8.js";var c={class:`admin-page-skeleton`,role:`status`,"aria-live":`polite`,"aria-busy":`true`,"aria-label":`در حال بارگذاری`},l={class:`admin-card admin-page-skeleton__table`},u={key:1,class:`admin-card admin-page-skeleton__form`},d={key:2,class:`admin-card admin-page-skeleton__detail`},f={key:3,class:`admin-page-skeleton__cards`},p=t(a({__name:`AdminPageSkeleton`,props:{variant:{default:`cards`},rows:{default:5}},setup(t){return(a,p)=>(o(),i(`div`,c,[t.variant===`table`?(o(),i(e,{key:0},[p[1]||=n(`div`,{class:`admin-page-skeleton__toolbar`},[n(`span`,{class:`admin-skeleton admin-page-skeleton__search`}),n(`span`,{class:`admin-skeleton admin-page-skeleton__btn`})],-1),n(`div`,l,[(o(!0),i(e,null,r(t.rows,e=>(o(),i(`div`,{key:e,class:`admin-page-skeleton__tr`},[...p[0]||=[s(`<span class="admin-skeleton" style="width:18%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:22%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:14%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:16%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:12%;height:12px;" data-v-8283cd1d></span>`,5)]]))),128))])],64)):t.variant===`form`?(o(),i(`div`,u,[(o(!0),i(e,null,r(t.rows,e=>(o(),i(`div`,{key:e,class:`admin-page-skeleton__field`},[...p[2]||=[n(`span`,{class:`admin-skeleton`,style:{width:`28%`,height:`10px`}},null,-1),n(`span`,{class:`admin-skeleton`,style:{width:`100%`,height:`40px`,"border-radius":`10px`}},null,-1)]]))),128))])):t.variant===`detail`?(o(),i(`div`,d,[...p[3]||=[s(`<span class="admin-skeleton" style="width:40%;height:18px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:70%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:100%;height:120px;border-radius:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:100%;height:12px;" data-v-8283cd1d></span><span class="admin-skeleton" style="width:88%;height:12px;" data-v-8283cd1d></span>`,5)]])):(o(),i(`div`,f,[(o(!0),i(e,null,r(t.rows,e=>(o(),i(`div`,{key:e,class:`admin-card admin-page-skeleton__card`},[...p[4]||=[n(`span`,{class:`admin-skeleton`,style:{width:`45%`,height:`14px`}},null,-1),n(`span`,{class:`admin-skeleton`,style:{width:`70%`,height:`11px`}},null,-1),n(`span`,{class:`admin-skeleton`,style:{width:`35%`,height:`11px`}},null,-1)]]))),128))]))]))}}),[[`__scopeId`,`data-v-8283cd1d`]]);export{p as t};
|
||||
@@ -1 +1 @@
|
||||
import{$ as e,Ct as t,G as n,J as r,K as i,O as a,P as o,Q as s,St as c,V as l,X as u,Y as d,Z as f,ct as p,dt as m,et as h,ft as g,gt as _,it as v,lt as y,mt as b,ot as x,q as S,rt as C,xt as w,yt as T}from"./index-Ce0o2VuJ.js";var E=[`id`],D=[`aria-label`,`aria-expanded`],O={class:`admin-select__trigger-content`},k={class:`admin-select__value`},A={class:`admin-select__chevron`,"aria-hidden":`true`},j=[`aria-label`],M={key:0,class:`admin-select__search`,role:`presentation`},N=[`placeholder`],P={key:1,class:`admin-select__empty`,role:`presentation`},F=[`aria-selected`,`onClick`],I={class:`admin-select__option-label`},L=l(v({__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(l,{emit:v}){let L=l,R=v,z=T(!1),B=T(``),V=T(null),H=T(null),U=T(null),W=T({});a(V,()=>{z.value=!1,B.value=``},{ignore:[H]});let G=u(()=>L.options.find(e=>e.value===L.modelValue)),K=u(()=>G.value?.label??L.placeholder),q=u(()=>{let e=B.value.trim().toLowerCase();return e?L.options.filter(t=>t.label.toLowerCase().includes(e)):L.options});function J(){let e=V.value;if(!e)return;let t=e.getBoundingClientRect(),n=Math.min(320,window.innerHeight*.5),r=window.innerHeight-t.bottom-6,i=t.top-6,a=r<Math.min(160,n)&&i>r,o=Math.max(120,Math.min(n,a?i:r));W.value={position:`fixed`,left:`${Math.max(8,Math.min(t.left,window.innerWidth-Math.max(t.width,220)-8))}px`,width:`${Math.max(t.width,220)}px`,zIndex:`1100`,maxHeight:`${o}px`,...a?{top:`auto`,bottom:`${window.innerHeight-t.top+6}px`}:{top:`${t.bottom+6}px`,bottom:`auto`}}}function Y(e){e?(window.addEventListener(`resize`,J),window.addEventListener(`scroll`,J,!0)):(window.removeEventListener(`resize`,J),window.removeEventListener(`scroll`,J,!0))}async function X(){z.value=!z.value,z.value&&(await x(),J(),L.searchable&&(B.value=``,await x(),U.value?.focus()))}function Z(e){R(`update:modelValue`,e),z.value=!1,B.value=``}return b(z,e=>{Y(e),e&&x(()=>J())}),p(()=>{Y(!1)}),(a,u)=>(y(),h(`div`,{id:l.id,ref_key:`rootRef`,ref:V,class:w([`admin-select`,{"admin-select--open":z.value,"admin-select--block":l.block}])},[f(`button`,{type:`button`,class:`admin-select__trigger`,"aria-label":l.ariaLabel,"aria-expanded":z.value,"aria-haspopup":`listbox`,onClick:X},[f(`span`,O,[g(a.$slots,`option-leading`,{option:G.value},void 0,!0),f(`span`,k,t(K.value),1)]),f(`span`,A,[C(o,{name:`chevron-down`,size:16})])],8,D),(y(),s(d,{to:`body`},[z.value?(y(),h(`ul`,{key:0,ref_key:`menuRef`,ref:H,class:`admin-select__menu`,role:`listbox`,"aria-label":l.ariaLabel,style:c(W.value)},[l.searchable?(y(),h(`li`,M,[_(f(`input`,{ref_key:`searchInputRef`,ref:U,"onUpdate:modelValue":u[0]||=e=>B.value=e,type:`search`,class:`admin-select__search-input`,placeholder:l.searchPlaceholder,onClick:u[1]||=S(()=>{},[`stop`]),onKeydown:u[2]||=i(S(e=>z.value=!1,[`stop`]),[`esc`])},null,40,N),[[n,B.value]])])):e(``,!0),q.value.length?e(``,!0):(y(),h(`li`,P,` موردی یافت نشد `)),(y(!0),h(r,null,m(q.value,n=>(y(),h(`li`,{key:n.value,role:`presentation`},[f(`button`,{type:`button`,class:w([`admin-select__option`,{"admin-select__option--active":n.value===l.modelValue}]),role:`option`,"aria-selected":n.value===l.modelValue,onClick:e=>Z(n.value)},[f(`span`,I,[g(a.$slots,`option-leading`,{option:n},void 0,!0),f(`span`,null,t(n.label),1)]),n.value===l.modelValue?(y(),s(o,{key:0,name:`check`,size:16,class:`admin-select__check`})):e(``,!0)],10,F)]))),128))],12,j)):e(``,!0)]))],10,E))}}),[[`__scopeId`,`data-v-4623e322`]]);export{L as t};
|
||||
import{$ as e,Ct as t,G as n,J as r,K as i,O as a,P as o,Q as s,St as c,V as l,X as u,Y as d,Z as f,ct as p,dt as m,et as h,ft as g,gt as _,it as v,lt as y,mt as b,ot as x,q as S,rt as C,xt as w,yt as T}from"./index-B2VD3zy8.js";var E=[`id`],D=[`aria-label`,`aria-expanded`],O={class:`admin-select__trigger-content`},k={class:`admin-select__value`},A={class:`admin-select__chevron`,"aria-hidden":`true`},j=[`aria-label`],M={key:0,class:`admin-select__search`,role:`presentation`},N=[`placeholder`],P={key:1,class:`admin-select__empty`,role:`presentation`},F=[`aria-selected`,`onClick`],I={class:`admin-select__option-label`},L=l(v({__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(l,{emit:v}){let L=l,R=v,z=T(!1),B=T(``),V=T(null),H=T(null),U=T(null),W=T({});a(V,()=>{z.value=!1,B.value=``},{ignore:[H]});let G=u(()=>L.options.find(e=>e.value===L.modelValue)),K=u(()=>G.value?.label??L.placeholder),q=u(()=>{let e=B.value.trim().toLowerCase();return e?L.options.filter(t=>t.label.toLowerCase().includes(e)):L.options});function J(){let e=V.value;if(!e)return;let t=e.getBoundingClientRect(),n=Math.min(320,window.innerHeight*.5),r=window.innerHeight-t.bottom-6,i=t.top-6,a=r<Math.min(160,n)&&i>r,o=Math.max(120,Math.min(n,a?i:r));W.value={position:`fixed`,left:`${Math.max(8,Math.min(t.left,window.innerWidth-Math.max(t.width,220)-8))}px`,width:`${Math.max(t.width,220)}px`,zIndex:`1100`,maxHeight:`${o}px`,...a?{top:`auto`,bottom:`${window.innerHeight-t.top+6}px`}:{top:`${t.bottom+6}px`,bottom:`auto`}}}function Y(e){e?(window.addEventListener(`resize`,J),window.addEventListener(`scroll`,J,!0)):(window.removeEventListener(`resize`,J),window.removeEventListener(`scroll`,J,!0))}async function X(){z.value=!z.value,z.value&&(await x(),J(),L.searchable&&(B.value=``,await x(),U.value?.focus()))}function Z(e){R(`update:modelValue`,e),z.value=!1,B.value=``}return b(z,e=>{Y(e),e&&x(()=>J())}),p(()=>{Y(!1)}),(a,u)=>(y(),h(`div`,{id:l.id,ref_key:`rootRef`,ref:V,class:w([`admin-select`,{"admin-select--open":z.value,"admin-select--block":l.block}])},[f(`button`,{type:`button`,class:`admin-select__trigger`,"aria-label":l.ariaLabel,"aria-expanded":z.value,"aria-haspopup":`listbox`,onClick:X},[f(`span`,O,[g(a.$slots,`option-leading`,{option:G.value},void 0,!0),f(`span`,k,t(K.value),1)]),f(`span`,A,[C(o,{name:`chevron-down`,size:16})])],8,D),(y(),s(d,{to:`body`},[z.value?(y(),h(`ul`,{key:0,ref_key:`menuRef`,ref:H,class:`admin-select__menu`,role:`listbox`,"aria-label":l.ariaLabel,style:c(W.value)},[l.searchable?(y(),h(`li`,M,[_(f(`input`,{ref_key:`searchInputRef`,ref:U,"onUpdate:modelValue":u[0]||=e=>B.value=e,type:`search`,class:`admin-select__search-input`,placeholder:l.searchPlaceholder,onClick:u[1]||=S(()=>{},[`stop`]),onKeydown:u[2]||=i(S(e=>z.value=!1,[`stop`]),[`esc`])},null,40,N),[[n,B.value]])])):e(``,!0),q.value.length?e(``,!0):(y(),h(`li`,P,` موردی یافت نشد `)),(y(!0),h(r,null,m(q.value,n=>(y(),h(`li`,{key:n.value,role:`presentation`},[f(`button`,{type:`button`,class:w([`admin-select__option`,{"admin-select__option--active":n.value===l.modelValue}]),role:`option`,"aria-selected":n.value===l.modelValue,onClick:e=>Z(n.value)},[f(`span`,I,[g(a.$slots,`option-leading`,{option:n},void 0,!0),f(`span`,null,t(n.label),1)]),n.value===l.modelValue?(y(),s(o,{key:0,name:`check`,size:16,class:`admin-select__check`})):e(``,!0)],10,F)]))),128))],12,j)):e(``,!0)]))],10,E))}}),[[`__scopeId`,`data-v-4623e322`]]);export{L as t};
|
||||
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
import{$ as e,Ct as t,P as n,V as r,Z as i,et as a,ft as o,it as s,lt as c,rt as l,xt as u}from"./index-Ce0o2VuJ.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=r(s({__name:`BaseEmptyState`,props:{icon:{default:`file`},title:{},description:{},compact:{type:Boolean}},emits:[`action`,`secondary`],setup(r){return(s,h)=>(c(),a(`div`,{class:u([`base-empty`,{"base-empty--compact":r.compact}])},[i(`div`,d,[l(n,{name:r.icon,size:r.compact?28:36},null,8,[`name`,`size`])]),i(`h3`,f,t(r.title),1),r.description?(c(),a(`p`,p,t(r.description),1)):e(``,!0),s.$slots.default||s.$slots.secondary?(c(),a(`div`,m,[o(s.$slots,`default`,{},void 0,!0),o(s.$slots,`secondary`,{},void 0,!0)])):e(``,!0)],2))}}),[[`__scopeId`,`data-v-47ea81e4`]]);export{h as t};
|
||||
import{$ as e,Ct as t,P as n,V as r,Z as i,et as a,ft as o,it as s,lt as c,rt as l,xt as u}from"./index-B2VD3zy8.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=r(s({__name:`BaseEmptyState`,props:{icon:{default:`file`},title:{},description:{},compact:{type:Boolean}},emits:[`action`,`secondary`],setup(r){return(s,h)=>(c(),a(`div`,{class:u([`base-empty`,{"base-empty--compact":r.compact}])},[i(`div`,d,[l(n,{name:r.icon,size:r.compact?28:36},null,8,[`name`,`size`])]),i(`h3`,f,t(r.title),1),r.description?(c(),a(`p`,p,t(r.description),1)):e(``,!0),s.$slots.default||s.$slots.secondary?(c(),a(`div`,m,[o(s.$slots,`default`,{},void 0,!0),o(s.$slots,`secondary`,{},void 0,!0)])):e(``,!0)],2))}}),[[`__scopeId`,`data-v-47ea81e4`]]);export{h as t};
|
||||
@@ -1 +1 @@
|
||||
import{$ as e,Ct as t,V as n,X as r,Z as i,et as a,it as o,lt as s,xt as c}from"./index-Ce0o2VuJ.js";var l=[`title`],u={key:0,class:`base-switch__label`},d={class:`base-switch__control`},f=[`id`,`checked`,`disabled`,`aria-checked`,`aria-label`],p={class:`base-switch__track`,"aria-hidden":`true`},m={class:`base-switch__thumb`},h={key:0,class:`base-switch__spinner`},g=n(o({__name:`BaseSwitch`,props:{modelValue:{type:Boolean},disabled:{type:Boolean},loading:{type:Boolean},error:{type:Boolean},label:{},activeText:{default:`فعال`},inactiveText:{default:`غیرفعال`},id:{}},emits:[`update:modelValue`],setup(n,{emit:o}){let g=n,_=o,v=r(()=>g.id??`switch-${crypto.randomUUID().slice(0,8)}`),y=r(()=>g.modelValue?g.activeText:g.inactiveText);function b(e){let t=e.target,n=t.checked;t.checked=g.modelValue,!(g.disabled||g.loading)&&_(`update:modelValue`,n)}return(r,o)=>(s(),a(`label`,{class:c([`base-switch`,{"base-switch--disabled":n.disabled||n.loading,"base-switch--error":n.error}]),title:y.value},[n.label?(s(),a(`span`,u,t(n.label),1)):e(``,!0),i(`span`,d,[i(`input`,{id:v.value,class:`base-switch__input`,type:`checkbox`,role:`switch`,checked:n.modelValue,disabled:n.disabled||n.loading,"aria-checked":n.modelValue,"aria-label":n.label||y.value,onChange:b},null,40,f),i(`span`,p,[i(`span`,m,[n.loading?(s(),a(`span`,h)):e(``,!0)])])])],10,l))}}),[[`__scopeId`,`data-v-0410eed4`]]);export{g as t};
|
||||
import{$ as e,Ct as t,V as n,X as r,Z as i,et as a,it as o,lt as s,xt as c}from"./index-B2VD3zy8.js";var l=[`title`],u={key:0,class:`base-switch__label`},d={class:`base-switch__control`},f=[`id`,`checked`,`disabled`,`aria-checked`,`aria-label`],p={class:`base-switch__track`,"aria-hidden":`true`},m={class:`base-switch__thumb`},h={key:0,class:`base-switch__spinner`},g=n(o({__name:`BaseSwitch`,props:{modelValue:{type:Boolean},disabled:{type:Boolean},loading:{type:Boolean},error:{type:Boolean},label:{},activeText:{default:`فعال`},inactiveText:{default:`غیرفعال`},id:{}},emits:[`update:modelValue`],setup(n,{emit:o}){let g=n,_=o,v=r(()=>g.id??`switch-${crypto.randomUUID().slice(0,8)}`),y=r(()=>g.modelValue?g.activeText:g.inactiveText);function b(e){let t=e.target,n=t.checked;t.checked=g.modelValue,!(g.disabled||g.loading)&&_(`update:modelValue`,n)}return(r,o)=>(s(),a(`label`,{class:c([`base-switch`,{"base-switch--disabled":n.disabled||n.loading,"base-switch--error":n.error}]),title:y.value},[n.label?(s(),a(`span`,u,t(n.label),1)):e(``,!0),i(`span`,d,[i(`input`,{id:v.value,class:`base-switch__input`,type:`checkbox`,role:`switch`,checked:n.modelValue,disabled:n.disabled||n.loading,"aria-checked":n.modelValue,"aria-label":n.label||y.value,onChange:b},null,40,f),i(`span`,p,[i(`span`,m,[n.loading?(s(),a(`span`,h)):e(``,!0)])])])],10,l))}}),[[`__scopeId`,`data-v-0410eed4`]]);export{g as t};
|
||||
@@ -1 +1 @@
|
||||
import{Ct as e,G as t,J as n,N as r,Q as i,R as a,V as o,X as s,Z as c,dt as l,et as u,gt as d,ht as f,it as p,lt as m,nt as h,rt as g,st as _,u as v,vt as y,yt as b,z as x}from"./index-Ce0o2VuJ.js";import{t as S}from"./AdminPageSkeleton-CeCa2h-t.js";import{t as C}from"./BaseSwitch-C9HY6KUs.js";import{t as w}from"./BaseEmptyState-SjEY4tIJ.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=o(p({__name:`BrandsView`,setup(o){let p=b([]),P=b(!0),F=b(!1),I=b(null),L=x(),R=y({name:``,slug:``,description:``,displayOrder:0,isActive:!0}),z=s(()=>I.value?`ویرایش برند`:`افزودن برند`);async function B(){P.value=!0;try{p.value=await v.list()}catch(e){L.error(e instanceof r?e.message:`بارگذاری برندها ناموفق بود`)}finally{P.value=!1}}function V(){I.value=null,Object.assign(R,{name:``,slug:``,description:``,displayOrder:p.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 v.update(I.value,e):await v.create(e),F.value=!1,L.success(`ذخیره شد`),await B()}catch(e){L.error(e instanceof r?e.message:`ذخیره ناموفق بود`)}}return _(()=>{B()}),(r,o)=>(m(),u(`div`,T,[c(`header`,{class:`admin-page__head`},[o[6]||=c(`div`,null,[c(`h1`,null,`برندها`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`افزودن برند`)]),P.value?(m(),i(S,{key:0,variant:`table`})):p.value.length?(m(),u(`table`,E,[o[7]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`نام`),c(`th`,null,`شناسه لاتین`),c(`th`,null,`مشتریان`),c(`th`,null,`فعال`),c(`th`)])],-1),c(`tbody`,null,[(m(!0),u(n,null,l(p.value,t=>(m(),u(`tr`,{key:t.id},[c(`td`,null,e(t.name),1),c(`td`,D,e(t.slug||`—`),1),c(`td`,null,e(t.customersCount??0),1),c(`td`,null,e(t.isActive?`بله`:`خیر`),1),c(`td`,null,[c(`button`,{type:`button`,class:`link`,onClick:e=>H(t)},`ویرایش`,8,O)])]))),128))])])):(m(),i(w,{key:1,title:`برندی ثبت نشده`})),g(a,{open:F.value,title:z.value,onClose:o[5]||=e=>F.value=!1},{footer:f(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!R.name.trim(),onClick:U},`ذخیره`,8,N)]),default:f(()=>[c(`label`,k,[o[8]||=h(`نام`,-1),d(c(`input`,{"onUpdate:modelValue":o[0]||=e=>R.name=e,class:`admin-input`},null,512),[[t,R.name]])]),c(`label`,A,[o[9]||=h(`شناسه لاتین`,-1),d(c(`input`,{"onUpdate:modelValue":o[1]||=e=>R.slug=e,class:`admin-input`,dir:`ltr`,placeholder:`مثلاً nademi-silk`},null,512),[[t,R.slug]])]),c(`label`,j,[o[10]||=h(`توضیح`,-1),d(c(`textarea`,{"onUpdate:modelValue":o[2]||=e=>R.description=e,class:`admin-input`,rows:`3`},null,512),[[t,R.description]])]),c(`label`,M,[o[11]||=h(`ترتیب`,-1),d(c(`input`,{"onUpdate:modelValue":o[3]||=e=>R.displayOrder=e,type:`number`,class:`admin-input`},null,512),[[t,R.displayOrder,void 0,{number:!0}]])]),g(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};
|
||||
import{Ct as e,G as t,J as n,N as r,Q as i,R as a,V as o,X as s,Z as c,dt as l,et as u,gt as d,ht as f,it as p,lt as m,nt as h,rt as g,st as _,u as v,vt as y,yt as b,z as x}from"./index-B2VD3zy8.js";import{t as S}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as C}from"./BaseSwitch-dp2xMemS.js";import{t as w}from"./BaseEmptyState-DGu6Pfui.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=o(p({__name:`BrandsView`,setup(o){let p=b([]),P=b(!0),F=b(!1),I=b(null),L=x(),R=y({name:``,slug:``,description:``,displayOrder:0,isActive:!0}),z=s(()=>I.value?`ویرایش برند`:`افزودن برند`);async function B(){P.value=!0;try{p.value=await v.list()}catch(e){L.error(e instanceof r?e.message:`بارگذاری برندها ناموفق بود`)}finally{P.value=!1}}function V(){I.value=null,Object.assign(R,{name:``,slug:``,description:``,displayOrder:p.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 v.update(I.value,e):await v.create(e),F.value=!1,L.success(`ذخیره شد`),await B()}catch(e){L.error(e instanceof r?e.message:`ذخیره ناموفق بود`)}}return _(()=>{B()}),(r,o)=>(m(),u(`div`,T,[c(`header`,{class:`admin-page__head`},[o[6]||=c(`div`,null,[c(`h1`,null,`برندها`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`افزودن برند`)]),P.value?(m(),i(S,{key:0,variant:`table`})):p.value.length?(m(),u(`table`,E,[o[7]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`نام`),c(`th`,null,`شناسه لاتین`),c(`th`,null,`مشتریان`),c(`th`,null,`فعال`),c(`th`)])],-1),c(`tbody`,null,[(m(!0),u(n,null,l(p.value,t=>(m(),u(`tr`,{key:t.id},[c(`td`,null,e(t.name),1),c(`td`,D,e(t.slug||`—`),1),c(`td`,null,e(t.customersCount??0),1),c(`td`,null,e(t.isActive?`بله`:`خیر`),1),c(`td`,null,[c(`button`,{type:`button`,class:`link`,onClick:e=>H(t)},`ویرایش`,8,O)])]))),128))])])):(m(),i(w,{key:1,title:`برندی ثبت نشده`})),g(a,{open:F.value,title:z.value,onClose:o[5]||=e=>F.value=!1},{footer:f(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!R.name.trim(),onClick:U},`ذخیره`,8,N)]),default:f(()=>[c(`label`,k,[o[8]||=h(`نام`,-1),d(c(`input`,{"onUpdate:modelValue":o[0]||=e=>R.name=e,class:`admin-input`},null,512),[[t,R.name]])]),c(`label`,A,[o[9]||=h(`شناسه لاتین`,-1),d(c(`input`,{"onUpdate:modelValue":o[1]||=e=>R.slug=e,class:`admin-input`,dir:`ltr`,placeholder:`مثلاً nademi-silk`},null,512),[[t,R.slug]])]),c(`label`,j,[o[10]||=h(`توضیح`,-1),d(c(`textarea`,{"onUpdate:modelValue":o[2]||=e=>R.description=e,class:`admin-input`,rows:`3`},null,512),[[t,R.description]])]),c(`label`,M,[o[11]||=h(`ترتیب`,-1),d(c(`input`,{"onUpdate:modelValue":o[3]||=e=>R.displayOrder=e,type:`number`,class:`admin-input`},null,512),[[t,R.displayOrder,void 0,{number:!0}]])]),g(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};
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
import{$ as e,Ct as t,J as n,N as r,Q as i,V as a,Z as o,bt as s,dt as c,et as l,f as u,i as d,it as f,lt as p,nt as m,rt as h,st as g,yt as _,z as v}from"./index-Ce0o2VuJ.js";import{t as y}from"./AdminPageSkeleton-CeCa2h-t.js";import{t as b}from"./BaseEmptyState-SjEY4tIJ.js";import{t as x}from"./AdminSelect-DW0RlAc0.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=a(f({__name:`CatalogRequestsView`,setup(a){let f=[{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(f.filter(e=>e.value).map(e=>[e.value,e.label])),P=Object.fromEntries(M.map(e=>[e.value,e.label])),F=_([]),I=_(``),L=_(!0),R=_(null),z=v();async function B(){L.value=!0;try{F.value=await u.list(I.value||void 0)}catch(e){z.error(e instanceof r?e.message:`بارگذاری انجام نشد`)}finally{L.value=!1}}async function V(e,t){try{await u.updateStatus(e,t),z.success(`وضعیت بهروز شد`),await B()}catch(e){z.error(e instanceof r?e.message:`بهروزرسانی ناموفق بود`)}}async function H(e,t){if(!R.value){R.value=e;try{await u.updateHolder(e,{holderType:t}),z.success(`محل نگهداری بهروز شد`),await B()}catch(e){z.error(e instanceof r?e.message:`بهروزرسانی محل ناموفق بود`)}finally{R.value=null}}}function U(e){return P[e]??e}return g(()=>{B()}),(r,a)=>(p(),l(`div`,S,[o(`header`,C,[a[1]||=o(`div`,null,[o(`h1`,null,`درخواست کالیته فیزیکی`),o(`p`,null,`بررسی، گردش وضعیت و محل نگهداری اقلام`)],-1),h(x,{modelValue:I.value,"onUpdate:modelValue":[a[0]||=e=>I.value=e,B],options:f},null,8,[`modelValue`])]),L.value?(p(),i(y,{key:0,variant:`cards`})):F.value.length?(p(!0),l(n,{key:2},c(F.value,r=>(p(),l(`div`,{key:r.id,class:`request-card`},[o(`div`,w,[o(`div`,null,[o(`strong`,null,t(r.customerName),1),o(`span`,T,t(r.customerPhone),1),o(`span`,E,t(s(N)[r.status]??r.status),1)]),h(x,{"model-value":r.status,options:f.filter(e=>e.value),"onUpdate:modelValue":e=>V(r.id,String(e))},null,8,[`model-value`,`options`,`onUpdate:modelValue`])]),r.note?(p(),l(`p`,D,t(r.note),1)):e(``,!0),o(`table`,O,[a[2]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`محصول`),o(`th`,null,`کد`),o(`th`,null,`تعداد`),o(`th`,null,`محل`)])],-1),o(`tbody`,null,[(p(!0),l(n,null,c(r.items,r=>(p(),l(`tr`,{key:r.id},[o(`td`,null,t(r.productName),1),o(`td`,k,t(r.productCode),1),o(`td`,null,t(r.quantity),1),o(`td`,null,[h(x,{"model-value":r.holderType,options:M,"onUpdate:modelValue":e=>H(r.id,String(e))},null,8,[`model-value`,`onUpdate:modelValue`]),r.movements?.length?(p(),l(`ul`,A,[(p(!0),l(n,null,c(r.movements,e=>(p(),l(`li`,{key:e.id},[m(t(U(e.fromHolder))+` → `+t(U(e.toHolder))+` `,1),o(`span`,j,t(s(d)(e.movedAt)),1)]))),128))])):e(``,!0)])]))),128))])])]))),128)):(p(),i(b,{key:1,title:`درخواستی نیست`}))]))}}),[[`__scopeId`,`data-v-747d8f88`]]);export{M as default};
|
||||
import{$ as e,Ct as t,J as n,N as r,Q as i,V as a,Z as o,bt as s,dt as c,et as l,f as u,i as d,it as f,lt as p,nt as m,rt as h,st as g,yt as _,z as v}from"./index-B2VD3zy8.js";import{t as y}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as b}from"./BaseEmptyState-DGu6Pfui.js";import{t as x}from"./AdminSelect-BeLNl2Qz.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=a(f({__name:`CatalogRequestsView`,setup(a){let f=[{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(f.filter(e=>e.value).map(e=>[e.value,e.label])),P=Object.fromEntries(M.map(e=>[e.value,e.label])),F=_([]),I=_(``),L=_(!0),R=_(null),z=v();async function B(){L.value=!0;try{F.value=await u.list(I.value||void 0)}catch(e){z.error(e instanceof r?e.message:`بارگذاری انجام نشد`)}finally{L.value=!1}}async function V(e,t){try{await u.updateStatus(e,t),z.success(`وضعیت بهروز شد`),await B()}catch(e){z.error(e instanceof r?e.message:`بهروزرسانی ناموفق بود`)}}async function H(e,t){if(!R.value){R.value=e;try{await u.updateHolder(e,{holderType:t}),z.success(`محل نگهداری بهروز شد`),await B()}catch(e){z.error(e instanceof r?e.message:`بهروزرسانی محل ناموفق بود`)}finally{R.value=null}}}function U(e){return P[e]??e}return g(()=>{B()}),(r,a)=>(p(),l(`div`,S,[o(`header`,C,[a[1]||=o(`div`,null,[o(`h1`,null,`درخواست کالیته فیزیکی`),o(`p`,null,`بررسی، گردش وضعیت و محل نگهداری اقلام`)],-1),h(x,{modelValue:I.value,"onUpdate:modelValue":[a[0]||=e=>I.value=e,B],options:f},null,8,[`modelValue`])]),L.value?(p(),i(y,{key:0,variant:`cards`})):F.value.length?(p(!0),l(n,{key:2},c(F.value,r=>(p(),l(`div`,{key:r.id,class:`request-card`},[o(`div`,w,[o(`div`,null,[o(`strong`,null,t(r.customerName),1),o(`span`,T,t(r.customerPhone),1),o(`span`,E,t(s(N)[r.status]??r.status),1)]),h(x,{"model-value":r.status,options:f.filter(e=>e.value),"onUpdate:modelValue":e=>V(r.id,String(e))},null,8,[`model-value`,`options`,`onUpdate:modelValue`])]),r.note?(p(),l(`p`,D,t(r.note),1)):e(``,!0),o(`table`,O,[a[2]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`محصول`),o(`th`,null,`کد`),o(`th`,null,`تعداد`),o(`th`,null,`محل`)])],-1),o(`tbody`,null,[(p(!0),l(n,null,c(r.items,r=>(p(),l(`tr`,{key:r.id},[o(`td`,null,t(r.productName),1),o(`td`,k,t(r.productCode),1),o(`td`,null,t(r.quantity),1),o(`td`,null,[h(x,{"model-value":r.holderType,options:M,"onUpdate:modelValue":e=>H(r.id,String(e))},null,8,[`model-value`,`onUpdate:modelValue`]),r.movements?.length?(p(),l(`ul`,A,[(p(!0),l(n,null,c(r.movements,e=>(p(),l(`li`,{key:e.id},[m(t(U(e.fromHolder))+` → `+t(U(e.toHolder))+` `,1),o(`span`,j,t(s(d)(e.movedAt)),1)]))),128))])):e(``,!0)])]))),128))])])]))),128)):(p(),i(b,{key:1,title:`درخواستی نیست`}))]))}}),[[`__scopeId`,`data-v-747d8f88`]]);export{M as default};
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -1,3 +1,3 @@
|
||||
import{Ct as e,G as t,J as n,N as r,Q as i,R as a,V as o,X as s,Z as c,dt as l,et as u,gt as d,ht as f,it as p,lt as m,nt as h,rt as g,st as _,v,vt as y,yt as b,z as x}from"./index-Ce0o2VuJ.js";import{t as S}from"./AdminPageSkeleton-CeCa2h-t.js";import{t as C}from"./BaseEmptyState-SjEY4tIJ.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=o(p({__name:`LevelsView`,setup(o){let p=b([]),N=b(!0),P=b(!1),F=b(null),I=x(),L=y({code:``,label:``,sortOrder:0,benefitsText:``}),R=s(()=>F.value?`ویرایش سطح`:`سطح جدید`);function z(e){return e.split(`
|
||||
import{Ct as e,G as t,J as n,N as r,Q as i,R as a,V as o,X as s,Z as c,dt as l,et as u,gt as d,ht as f,it as p,lt as m,nt as h,rt as g,st as _,v,vt as y,yt as b,z as x}from"./index-B2VD3zy8.js";import{t as S}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as C}from"./BaseEmptyState-DGu6Pfui.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=o(p({__name:`LevelsView`,setup(o){let p=b([]),N=b(!0),P=b(!1),F=b(null),I=x(),L=y({code:``,label:``,sortOrder:0,benefitsText:``}),R=s(()=>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{p.value=await v.list()}catch(e){I.error(e instanceof r?e.message:`بارگذاری سطوح ناموفق بود`)}finally{N.value=!1}}function V(){F.value=null,Object.assign(L,{code:``,label:``,sortOrder:p.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 v.update(F.value,e):await v.create(e),P.value=!1,I.success(`ذخیره شد`),await B()}catch(e){I.error(e instanceof r?e.message:`ذخیره ناموفق بود`)}}return _(()=>{B()}),(r,o)=>(m(),u(`div`,w,[c(`header`,{class:`admin-page__head`},[o[5]||=c(`div`,null,[c(`h1`,null,`سطوح و مزایای مشتری`),c(`p`,null,`تعریف Level داخلی CRM و مزایای هر سطح (نمایش فقط در ادمین)`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`سطح جدید`)]),N.value?(m(),i(S,{key:0,variant:`table`})):p.value.length?(m(),u(`table`,T,[o[6]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`کد`),c(`th`,null,`عنوان`),c(`th`,null,`مزایا`),c(`th`,null,`مشتریان`),c(`th`)])],-1),c(`tbody`,null,[(m(!0),u(n,null,l(p.value,t=>(m(),u(`tr`,{key:t.id},[c(`td`,E,e(t.code),1),c(`td`,null,e(t.label),1),c(`td`,null,e(t.benefits.map(e=>e.title).join(`، `)||`—`),1),c(`td`,null,e(t.customersCount),1),c(`td`,null,[c(`button`,{type:`button`,class:`link`,onClick:e=>H(t)},`ویرایش`,8,D)])]))),128))])])):(m(),i(C,{key:1,title:`سطحی تعریف نشده`})),g(a,{open:P.value,title:R.value,onClose:o[4]||=e=>P.value=!1},{footer:f(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!L.code.trim()||!L.label.trim(),onClick:U},` ذخیره `,8,M)]),default:f(()=>[c(`label`,O,[o[7]||=h(`کد`,-1),d(c(`input`,{"onUpdate:modelValue":o[0]||=e=>L.code=e,class:`admin-input`,dir:`ltr`},null,512),[[t,L.code]])]),c(`label`,k,[o[8]||=h(`عنوان`,-1),d(c(`input`,{"onUpdate:modelValue":o[1]||=e=>L.label=e,class:`admin-input`},null,512),[[t,L.label]])]),c(`label`,A,[o[9]||=h(`ترتیب`,-1),d(c(`input`,{"onUpdate:modelValue":o[2]||=e=>L.sortOrder=e,type:`number`,class:`admin-input`},null,512),[[t,L.sortOrder,void 0,{number:!0}]])]),c(`label`,j,[o[10]||=h(` مزایا (هر خط یک مورد) `,-1),d(c(`textarea`,{"onUpdate:modelValue":o[3]||=e=>L.benefitsText=e,class:`admin-input`,rows:`4`},null,512),[[t,L.benefitsText]])])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-44c7f808`]]);export{N as default};
|
||||
@@ -1 +1 @@
|
||||
import{$ as e,A as t,Ct as n,F as r,G as i,H as a,I as o,M as s,P as c,U as l,V as u,X as d,Z as f,bt as p,et as m,gt as h,it as g,j as _,lt as v,nt as y,q as b,rt as x,tt as S,yt as C,z as w}from"./index-Ce0o2VuJ.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=u(g({__name:`LoginView`,setup(u){let g=o(),W=r(),G=t(),K=w(),q=C(s()?_.phone:``),J=C(s()?_.password:``),Y=C(!0),X=C(!1),Z=s(),Q=d(()=>q.value.trim().length>0&&J.value.length>0);function $(e){return e.replace(/[۰-۹]/g,e=>String(`۰۱۲۳۴۵۶۷۸۹`.indexOf(e))).replace(/[٠-٩]/g,e=>String(`٠١٢٣٤٥٦٧٨٩`.indexOf(e)))}async function ee(){if(!Q.value){G.error=`لطفاً شماره موبایل و رمز عبور را وارد کنید.`;return}if(!await G.login($(q.value.trim()),J.value,Y.value))return;K.success(`خوش آمدید، ${G.fullName}`);let e=typeof W.query.redirect==`string`?W.query.redirect:`/`;g.replace(e)}return(t,r)=>(v(),m(`div`,T,[f(`div`,E,[f(`div`,D,[f(`div`,O,[r[8]||=f(`h2`,{class:`login-page__title`},`ورود به پنل مدیریت`,-1),r[9]||=f(`p`,{class:`login-page__subtitle`},`برای ادامه، اطلاعات حساب کاربری خود را وارد کنید.`,-1),p(Z)?(v(),m(`p`,k,[r[6]||=y(` حالت موک فعال است — `,-1),f(`span`,A,n(p(_).phone),1),r[7]||=y(` / `,-1),f(`span`,j,n(p(_).password),1)])):e(``,!0)]),f(`form`,{class:`admin-form login-page__form`,onSubmit:b(ee,[`prevent`])},[p(G).error?(v(),m(`p`,M,n(p(G).error),1)):e(``,!0),f(`div`,N,[r[10]||=f(`label`,{for:`login-phone`},`شماره موبایل`,-1),f(`div`,P,[f(`span`,F,[x(c,{name:`phone`,size:18})]),h(f(`input`,{id:`login-phone`,"onUpdate:modelValue":r[0]||=e=>q.value=e,type:`tel`,class:`admin-input login-page__input`,placeholder:`۰۹۱۲۱۱۱۱۲۲۲۲`,autocomplete:`username`,inputmode:`tel`,dir:`ltr`,onInput:r[1]||=e=>p(G).clearError()},null,544),[[i,q.value]])])]),f(`div`,I,[r[11]||=f(`label`,{for:`login-password`},`رمز عبور`,-1),f(`div`,L,[f(`span`,R,[x(c,{name:`lock`,size:18})]),h(f(`input`,{id:`login-password`,"onUpdate:modelValue":r[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:r[3]||=e=>p(G).clearError()},null,40,z),[[l,J.value]]),f(`button`,{type:`button`,class:`login-page__toggle-password`,"aria-label":X.value?`پنهان کردن رمز`:`نمایش رمز`,onClick:r[4]||=e=>X.value=!X.value},[x(c,{name:X.value?`eye-off`:`eye`,size:18},null,8,[`name`])],8,B)])]),f(`label`,V,[h(f(`input`,{"onUpdate:modelValue":r[5]||=e=>Y.value=e,type:`checkbox`},null,512),[[a,Y.value]]),r[12]||=f(`span`,null,`مرا به خاطر بسپار`,-1)]),f(`button`,{type:`submit`,class:`admin-btn admin-btn--primary login-page__submit`,disabled:!Q.value||p(G).loading},[p(G).loading?(v(),m(`span`,U)):e(``,!0),r[13]||=y(` ورود به پنل `,-1)],8,H)],32)])]),r[14]||=S(`<div class="login-page__brand" data-v-3c4fbd85><div class="login-page__brand-inner" data-v-3c4fbd85><p class="login-page__brand-badge" data-v-3c4fbd85>پارچه</p><h1 class="login-page__brand-title" data-v-3c4fbd85>پنل مدیریت سفارشهای عمده</h1><p class="login-page__brand-text" data-v-3c4fbd85> مدیریت سفارشها، مشتریان، قیمتگذاری، چکها و گزارشهای فروش در یک محیط یکپارچه. </p></div></div>`,1)]))}}),[[`__scopeId`,`data-v-3c4fbd85`]]);export{W as default};
|
||||
import{$ as e,A as t,Ct as n,F as r,G as i,H as a,I as o,M as s,P as c,U as l,V as u,X as d,Z as f,bt as p,et as m,gt as h,it as g,j as _,lt as v,nt as y,q as b,rt as x,tt as S,yt as C,z as w}from"./index-B2VD3zy8.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=u(g({__name:`LoginView`,setup(u){let g=o(),W=r(),G=t(),K=w(),q=C(s()?_.phone:``),J=C(s()?_.password:``),Y=C(!0),X=C(!1),Z=s(),Q=d(()=>q.value.trim().length>0&&J.value.length>0);function $(e){return e.replace(/[۰-۹]/g,e=>String(`۰۱۲۳۴۵۶۷۸۹`.indexOf(e))).replace(/[٠-٩]/g,e=>String(`٠١٢٣٤٥٦٧٨٩`.indexOf(e)))}async function ee(){if(!Q.value){G.error=`لطفاً شماره موبایل و رمز عبور را وارد کنید.`;return}if(!await G.login($(q.value.trim()),J.value,Y.value))return;K.success(`خوش آمدید، ${G.fullName}`);let e=typeof W.query.redirect==`string`?W.query.redirect:`/`;g.replace(e)}return(t,r)=>(v(),m(`div`,T,[f(`div`,E,[f(`div`,D,[f(`div`,O,[r[8]||=f(`h2`,{class:`login-page__title`},`ورود به پنل مدیریت`,-1),r[9]||=f(`p`,{class:`login-page__subtitle`},`برای ادامه، اطلاعات حساب کاربری خود را وارد کنید.`,-1),p(Z)?(v(),m(`p`,k,[r[6]||=y(` حالت موک فعال است — `,-1),f(`span`,A,n(p(_).phone),1),r[7]||=y(` / `,-1),f(`span`,j,n(p(_).password),1)])):e(``,!0)]),f(`form`,{class:`admin-form login-page__form`,onSubmit:b(ee,[`prevent`])},[p(G).error?(v(),m(`p`,M,n(p(G).error),1)):e(``,!0),f(`div`,N,[r[10]||=f(`label`,{for:`login-phone`},`شماره موبایل`,-1),f(`div`,P,[f(`span`,F,[x(c,{name:`phone`,size:18})]),h(f(`input`,{id:`login-phone`,"onUpdate:modelValue":r[0]||=e=>q.value=e,type:`tel`,class:`admin-input login-page__input`,placeholder:`۰۹۱۲۱۱۱۱۲۲۲۲`,autocomplete:`username`,inputmode:`tel`,dir:`ltr`,onInput:r[1]||=e=>p(G).clearError()},null,544),[[i,q.value]])])]),f(`div`,I,[r[11]||=f(`label`,{for:`login-password`},`رمز عبور`,-1),f(`div`,L,[f(`span`,R,[x(c,{name:`lock`,size:18})]),h(f(`input`,{id:`login-password`,"onUpdate:modelValue":r[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:r[3]||=e=>p(G).clearError()},null,40,z),[[l,J.value]]),f(`button`,{type:`button`,class:`login-page__toggle-password`,"aria-label":X.value?`پنهان کردن رمز`:`نمایش رمز`,onClick:r[4]||=e=>X.value=!X.value},[x(c,{name:X.value?`eye-off`:`eye`,size:18},null,8,[`name`])],8,B)])]),f(`label`,V,[h(f(`input`,{"onUpdate:modelValue":r[5]||=e=>Y.value=e,type:`checkbox`},null,512),[[a,Y.value]]),r[12]||=f(`span`,null,`مرا به خاطر بسپار`,-1)]),f(`button`,{type:`submit`,class:`admin-btn admin-btn--primary login-page__submit`,disabled:!Q.value||p(G).loading},[p(G).loading?(v(),m(`span`,U)):e(``,!0),r[13]||=y(` ورود به پنل `,-1)],8,H)],32)])]),r[14]||=S(`<div class="login-page__brand" data-v-3c4fbd85><div class="login-page__brand-inner" data-v-3c4fbd85><p class="login-page__brand-badge" data-v-3c4fbd85>پارچه</p><h1 class="login-page__brand-title" data-v-3c4fbd85>پنل مدیریت سفارشهای عمده</h1><p class="login-page__brand-text" data-v-3c4fbd85> مدیریت سفارشها، مشتریان، قیمتگذاری، چکها و گزارشهای فروش در یک محیط یکپارچه. </p></div></div>`,1)]))}}),[[`__scopeId`,`data-v-3c4fbd85`]]);export{W as default};
|
||||
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{Ct as e,V as t,bt as n,et as r,it as i,lt as a,xt as o}from"./index-Ce0o2VuJ.js";import{t as s}from"./orderStatus-CYVblRJB.js";var c=t(i({__name:`StatusBadge`,props:{status:{}},setup(t){let i={active:{label:`فعال`,tone:`success`},inactive:{label:`غیرفعال`,tone:`neutral`},pending_check_review:{label:`در انتظار بررسی`,tone:`warning`},check_approved:{label:`تأیید شده`,tone:`success`},check_rejected:{label:`رد شده`,tone:`danger`}};return(c,l)=>(a(),r(`span`,{class:o([`admin-badge status-badge`,`admin-badge--${(n(s)[t.status]??i[t.status])?.tone??`neutral`}`])},e((n(s)[t.status]??i[t.status])?.label??t.status),3))}}),[[`__scopeId`,`data-v-23aa055a`]]);export{c as t};
|
||||
import{Ct as e,V as t,bt as n,et as r,it as i,lt as a,xt as o}from"./index-B2VD3zy8.js";import{t as s}from"./orderStatus-CYVblRJB.js";var c=t(i({__name:`StatusBadge`,props:{status:{}},setup(t){let i={active:{label:`فعال`,tone:`success`},inactive:{label:`غیرفعال`,tone:`neutral`},pending_check_review:{label:`در انتظار بررسی`,tone:`warning`},check_approved:{label:`تأیید شده`,tone:`success`},check_rejected:{label:`رد شده`,tone:`danger`}};return(c,l)=>(a(),r(`span`,{class:o([`admin-badge status-badge`,`admin-badge--${(n(s)[t.status]??i[t.status])?.tone??`neutral`}`])},e((n(s)[t.status]??i[t.status])?.label??t.status),3))}}),[[`__scopeId`,`data-v-23aa055a`]]);export{c as t};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{Ct as e,E as t,J as n,N as r,Q as i,V as a,Z as o,dt as s,et as c,it as l,lt as u,nt as d,st as f,yt as p,z as m}from"./index-Ce0o2VuJ.js";import{t as h}from"./AdminPageSkeleton-CeCa2h-t.js";import{t as g}from"./BaseEmptyState-SjEY4tIJ.js";var _={class:`admin-page`},v={key:2,class:`admin-table`},y={class:`muted`,dir:`ltr`},b={class:`muted`,dir:`ltr`},x=[`onClick`],S=a(l({__name:`StockAlertsView`,setup(a){let l=p([]),S=p(!0),C=m();async function w(){S.value=!0;try{l.value=await t.list()}catch(e){C.error(e instanceof r?e.message:`بارگذاری ناموفق بود`)}finally{S.value=!1}}async function T(e){try{await t.notify(e),C.success(`اعلان موجودی ارسال شد`),await w()}catch(e){C.error(e instanceof r?e.message:`ارسال ناموفق بود`)}}return f(()=>{w()}),(t,r)=>(u(),c(`div`,_,[r[1]||=o(`header`,{class:`admin-page__head`},[o(`div`,null,[o(`h1`,null,`درخواست خبر موجودی`),o(`p`,null,`مشتریانی که برای محصول ناموجود درخواست اطلاع دادهاند`)])],-1),S.value?(u(),i(h,{key:0,variant:`table`})):l.value.length?(u(),c(`table`,v,[r[0]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`مشتری`),o(`th`,null,`محصول`),o(`th`,null,`موجودی فعلی`),o(`th`)])],-1),o(`tbody`,null,[(u(!0),c(n,null,s(l.value,t=>(u(),c(`tr`,{key:t.id},[o(`td`,null,[d(e(t.customerName)+` `,1),o(`span`,y,e(t.customerPhone),1)]),o(`td`,null,[d(e(t.productName)+` `,1),o(`span`,b,`(`+e(t.productCode)+`)`,1)]),o(`td`,null,e(t.stock??`—`),1),o(`td`,null,[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:e=>T(t.id)},`ارسال اعلان`,8,x)])]))),128))])])):(u(),i(g,{key:1,title:`درخواستی فعال نیست`}))]))}}),[[`__scopeId`,`data-v-61131544`]]);export{S as default};
|
||||
import{Ct as e,E as t,J as n,N as r,Q as i,V as a,Z as o,dt as s,et as c,it as l,lt as u,nt as d,st as f,yt as p,z as m}from"./index-B2VD3zy8.js";import{t as h}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as g}from"./BaseEmptyState-DGu6Pfui.js";var _={class:`admin-page`},v={key:2,class:`admin-table`},y={class:`muted`,dir:`ltr`},b={class:`muted`,dir:`ltr`},x=[`onClick`],S=a(l({__name:`StockAlertsView`,setup(a){let l=p([]),S=p(!0),C=m();async function w(){S.value=!0;try{l.value=await t.list()}catch(e){C.error(e instanceof r?e.message:`بارگذاری ناموفق بود`)}finally{S.value=!1}}async function T(e){try{await t.notify(e),C.success(`اعلان موجودی ارسال شد`),await w()}catch(e){C.error(e instanceof r?e.message:`ارسال ناموفق بود`)}}return f(()=>{w()}),(t,r)=>(u(),c(`div`,_,[r[1]||=o(`header`,{class:`admin-page__head`},[o(`div`,null,[o(`h1`,null,`درخواست خبر موجودی`),o(`p`,null,`مشتریانی که برای محصول ناموجود درخواست اطلاع دادهاند`)])],-1),S.value?(u(),i(h,{key:0,variant:`table`})):l.value.length?(u(),c(`table`,v,[r[0]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`مشتری`),o(`th`,null,`محصول`),o(`th`,null,`موجودی فعلی`),o(`th`)])],-1),o(`tbody`,null,[(u(!0),c(n,null,s(l.value,t=>(u(),c(`tr`,{key:t.id},[o(`td`,null,[d(e(t.customerName)+` `,1),o(`span`,y,e(t.customerPhone),1)]),o(`td`,null,[d(e(t.productName)+` `,1),o(`span`,b,`(`+e(t.productCode)+`)`,1)]),o(`td`,null,e(t.stock??`—`),1),o(`td`,null,[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:e=>T(t.id)},`ارسال اعلان`,8,x)])]))),128))])])):(u(),i(g,{key:1,title:`درخواستی فعال نیست`}))]))}}),[[`__scopeId`,`data-v-61131544`]]);export{S as default};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{Ct as e,D as t,G as n,J as r,N as i,Q as a,R as o,S as s,V as c,X as l,Z as u,dt as d,et as f,g as p,gt as m,ht as h,it as g,lt as _,nt as v,rt as y,st as b,vt as x,yt as S,z as C}from"./index-Ce0o2VuJ.js";import{t as w}from"./AdminPageSkeleton-CeCa2h-t.js";import{t as T}from"./BaseEmptyState-SjEY4tIJ.js";import{t as E}from"./AdminSelect-DW0RlAc0.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=c(g({__name:`SuggestionsView`,setup(c){let g=S([]),I=S(!0),L=S([]),R=S([]),z=S(!1),B=C(),V=x({customerId:``,productId:``,note:``}),H=l(()=>L.value.map(e=>({value:e.id,label:e.name?.trim()||e.phone}))),U=l(()=>R.value.map(e=>({value:e.id,label:`${e.name} (${e.productCode})`})));async function W(){I.value=!0;try{let[e,n,r]=await Promise.all([t.list(),p.list(),s.list()]);g.value=e,L.value=n,R.value=r}catch(e){B.error(e instanceof i?e.message:`بارگذاری ناموفق بود`)}finally{I.value=!1}}async function G(){try{await t.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 i?e.message:`ثبت ناموفق بود`)}}async function K(e){try{await t.setActive(e.id,!e.isActive),await W()}catch(e){B.error(e instanceof i?e.message:`بهروزرسانی ناموفق بود`)}}return b(()=>{W()}),(t,i)=>(_(),f(`div`,D,[u(`header`,O,[i[5]||=u(`div`,null,[u(`h1`,null,`پیشنهاد محصول`),u(`p`,null,`پیشنهاد دستی محصول به مشتری`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:i[0]||=e=>z.value=!0},`پیشنهاد جدید`)]),I.value?(_(),a(w,{key:0,variant:`table`})):g.value.length?(_(),f(`table`,k,[i[6]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`مشتری`),u(`th`,null,`محصول`),u(`th`,null,`یادداشت`),u(`th`,null,`وضعیت`),u(`th`)])],-1),u(`tbody`,null,[(_(!0),f(r,null,d(g.value,t=>(_(),f(`tr`,{key:t.id},[u(`td`,null,e(t.customerName),1),u(`td`,null,[v(e(t.productName)+` `,1),u(`span`,A,`(`+e(t.productCode)+`)`,1)]),u(`td`,null,e(t.note||`—`),1),u(`td`,null,e(t.isActive?`فعال`:`غیرفعال`),1),u(`td`,null,[u(`button`,{type:`button`,class:`link`,onClick:e=>K(t)},e(t.isActive?`غیرفعال`:`فعال`),9,j)])]))),128))])])):(_(),a(T,{key:1,title:`پیشنهادی ثبت نشده`})),y(o,{open:z.value,title:`پیشنهاد محصول`,onClose:i[4]||=e=>z.value=!1},{footer:h(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!V.customerId||!V.productId,onClick:G},` ثبت `,8,F)]),default:h(()=>[u(`label`,M,[i[7]||=v(`مشتری `,-1),y(E,{modelValue:V.customerId,"onUpdate:modelValue":i[1]||=e=>V.customerId=e,options:H.value},null,8,[`modelValue`,`options`])]),u(`label`,N,[i[8]||=v(`محصول `,-1),y(E,{modelValue:V.productId,"onUpdate:modelValue":i[2]||=e=>V.productId=e,options:U.value},null,8,[`modelValue`,`options`])]),u(`label`,P,[i[9]||=v(`یادداشت`,-1),m(u(`textarea`,{"onUpdate:modelValue":i[3]||=e=>V.note=e,class:`admin-input`,rows:`3`},null,512),[[n,V.note]])])]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-56e3e728`]]);export{I as default};
|
||||
import{Ct as e,D as t,G as n,J as r,N as i,Q as a,R as o,S as s,V as c,X as l,Z as u,dt as d,et as f,g as p,gt as m,ht as h,it as g,lt as _,nt as v,rt as y,st as b,vt as x,yt as S,z as C}from"./index-B2VD3zy8.js";import{t as w}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as T}from"./BaseEmptyState-DGu6Pfui.js";import{t as E}from"./AdminSelect-BeLNl2Qz.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=c(g({__name:`SuggestionsView`,setup(c){let g=S([]),I=S(!0),L=S([]),R=S([]),z=S(!1),B=C(),V=x({customerId:``,productId:``,note:``}),H=l(()=>L.value.map(e=>({value:e.id,label:e.name?.trim()||e.phone}))),U=l(()=>R.value.map(e=>({value:e.id,label:`${e.name} (${e.productCode})`})));async function W(){I.value=!0;try{let[e,n,r]=await Promise.all([t.list(),p.list(),s.list()]);g.value=e,L.value=n,R.value=r}catch(e){B.error(e instanceof i?e.message:`بارگذاری ناموفق بود`)}finally{I.value=!1}}async function G(){try{await t.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 i?e.message:`ثبت ناموفق بود`)}}async function K(e){try{await t.setActive(e.id,!e.isActive),await W()}catch(e){B.error(e instanceof i?e.message:`بهروزرسانی ناموفق بود`)}}return b(()=>{W()}),(t,i)=>(_(),f(`div`,D,[u(`header`,O,[i[5]||=u(`div`,null,[u(`h1`,null,`پیشنهاد محصول`),u(`p`,null,`پیشنهاد دستی محصول به مشتری`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:i[0]||=e=>z.value=!0},`پیشنهاد جدید`)]),I.value?(_(),a(w,{key:0,variant:`table`})):g.value.length?(_(),f(`table`,k,[i[6]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`مشتری`),u(`th`,null,`محصول`),u(`th`,null,`یادداشت`),u(`th`,null,`وضعیت`),u(`th`)])],-1),u(`tbody`,null,[(_(!0),f(r,null,d(g.value,t=>(_(),f(`tr`,{key:t.id},[u(`td`,null,e(t.customerName),1),u(`td`,null,[v(e(t.productName)+` `,1),u(`span`,A,`(`+e(t.productCode)+`)`,1)]),u(`td`,null,e(t.note||`—`),1),u(`td`,null,e(t.isActive?`فعال`:`غیرفعال`),1),u(`td`,null,[u(`button`,{type:`button`,class:`link`,onClick:e=>K(t)},e(t.isActive?`غیرفعال`:`فعال`),9,j)])]))),128))])])):(_(),a(T,{key:1,title:`پیشنهادی ثبت نشده`})),y(o,{open:z.value,title:`پیشنهاد محصول`,onClose:i[4]||=e=>z.value=!1},{footer:h(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!V.customerId||!V.productId,onClick:G},` ثبت `,8,F)]),default:h(()=>[u(`label`,M,[i[7]||=v(`مشتری `,-1),y(E,{modelValue:V.customerId,"onUpdate:modelValue":i[1]||=e=>V.customerId=e,options:H.value},null,8,[`modelValue`,`options`])]),u(`label`,N,[i[8]||=v(`محصول `,-1),y(E,{modelValue:V.productId,"onUpdate:modelValue":i[2]||=e=>V.productId=e,options:U.value},null,8,[`modelValue`,`options`])]),u(`label`,P,[i[9]||=v(`یادداشت`,-1),m(u(`textarea`,{"onUpdate:modelValue":i[3]||=e=>V.note=e,class:`admin-input`,rows:`3`},null,512),[[n,V.note]])])]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-56e3e728`]]);export{I as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user