1 line
14 KiB
JavaScript
1 line
14 KiB
JavaScript
import{$ as e,At as t,B as n,D as r,Dt as i,E as a,M as o,U as s,Z as c,a as l,c as u,d,g as f,h as p,k as m,kt as h,l as g,m as _,r as v,s as y,t as b,u as x,w as S}from"./_plugin-vue_export-helper-QrIvvHC8.js";import{a as C,f as w,l as T,m as E,p as D}from"./http-BjLkjdQu.js";import{D as O,N as k,R as A,w as j,y as M}from"./index-BzcByePp.js";import{t as N}from"./AdminPageSkeleton-oWhHYjl4.js";var P=[`id`],F=[`aria-label`,`aria-expanded`,`disabled`],I={class:`admin-multi-select__value`},L={class:`admin-multi-select__chevron`,"aria-hidden":`true`},R={key:0,class:`admin-multi-select__chips`},z={class:`admin-multi-select__chip-label`},B=[`onClick`],V=[`aria-label`],ee={key:0,class:`admin-multi-select__search`,role:`presentation`},te=[`placeholder`],H={key:1,class:`admin-multi-select__empty`,role:`presentation`},U=[`aria-selected`,`onClick`],W={class:`admin-multi-select__option-label`},G=b(f({__name:`AdminMultiSelect`,props:{modelValue:{},options:{},placeholder:{default:`انتخاب کنید`},ariaLabel:{default:`انتخاب چندگانه`},block:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},searchPlaceholder:{default:`جستجو…`},disabled:{type:Boolean,default:!1},id:{default:void 0}},emits:[`update:modelValue`],setup(a,{emit:c}){let f=a,_=c,b=e(!1),C=e(``),T=e(null),O=e(null),j=e(null),M=e({});k(T,()=>{b.value=!1,C.value=``},{ignore:[O]});let N=y(()=>new Set(f.modelValue)),G=y(()=>f.options.filter(e=>N.value.has(e.value))),K=y(()=>{let e=f.modelValue.length;return e?e===1?G.value[0]?.label??f.placeholder:`${e} مورد انتخاب شده`:f.placeholder}),q=y(()=>{let e=C.value.trim().toLowerCase();return e?f.options.filter(t=>t.label.toLowerCase().includes(e)):f.options});function J(){let e=T.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));M.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(){f.disabled||(b.value=!b.value,b.value&&(await S(),J(),f.searchable&&(C.value=``,await S(),j.value?.focus())))}function Z(e){let t=new Set(f.modelValue);t.has(e)?t.delete(e):t.add(e),_(`update:modelValue`,[...t])}function Q(e){_(`update:modelValue`,f.modelValue.filter(t=>t!==e))}return n(b,e=>{Y(e),e&&S(()=>J())}),r(()=>{Y(!1)}),(e,n)=>(m(),d(`div`,{id:a.id,ref_key:`rootRef`,ref:T,class:i([`admin-multi-select`,{"admin-multi-select--open":b.value,"admin-multi-select--block":a.block,"admin-multi-select--disabled":a.disabled}])},[u(`button`,{type:`button`,class:`admin-multi-select__trigger`,"aria-label":a.ariaLabel,"aria-expanded":b.value,"aria-haspopup":`listbox`,disabled:a.disabled,onClick:X},[u(`span`,I,t(K.value),1),u(`span`,L,[p(A,{name:`chevron-down`,size:16})])],8,F),G.value.length&&!a.disabled?(m(),d(`ul`,R,[(m(!0),d(v,null,o(G.value,e=>(m(),d(`li`,{key:e.value,class:`admin-multi-select__chip`},[u(`span`,z,t(e.label),1),u(`button`,{type:`button`,class:`admin-multi-select__chip-remove`,"aria-label":`حذف`,onClick:t=>Q(e.value)},` × `,8,B)]))),128))])):x(``,!0),(m(),g(l,{to:`body`},[b.value?(m(),d(`ul`,{key:0,ref_key:`menuRef`,ref:O,class:`admin-multi-select__menu`,role:`listbox`,"aria-label":a.ariaLabel,style:h(M.value),"aria-multiselectable":`true`},[a.searchable?(m(),d(`li`,ee,[s(u(`input`,{ref_key:`searchInputRef`,ref:j,"onUpdate:modelValue":n[0]||=e=>C.value=e,type:`search`,class:`admin-multi-select__search-input`,placeholder:a.searchPlaceholder,onClick:n[1]||=E(()=>{},[`stop`]),onKeydown:n[2]||=D(E(e=>b.value=!1,[`stop`]),[`esc`])},null,40,te),[[w,C.value]])])):x(``,!0),q.value.length?x(``,!0):(m(),d(`li`,H,` موردی یافت نشد `)),(m(!0),d(v,null,o(q.value,e=>(m(),d(`li`,{key:e.value,role:`presentation`},[u(`button`,{type:`button`,class:i([`admin-multi-select__option`,{"admin-multi-select__option--active":N.value.has(e.value)}]),role:`option`,"aria-selected":N.value.has(e.value),onClick:t=>Z(e.value)},[u(`span`,W,t(e.label),1),N.value.has(e.value)?(m(),g(A,{key:0,name:`check`,size:16,class:`admin-multi-select__check`})):x(``,!0)],10,U)]))),128))],12,V)):x(``,!0)]))],10,P))}}),[[`__scopeId`,`data-v-9a22912b`]]),K={class:`settings-page`},q={class:`admin-page-header`},J=[`disabled`],Y={key:1,class:`settings-page__grid`},X={class:`admin-card settings-page__section`},Z={class:`admin-form__field`},Q={class:`admin-form__field`},ne={class:`admin-form__field`},re={class:`settings-page__check`},ie={class:`settings-page__check`},ae={class:`admin-form__field`},oe=[`disabled`],se={class:`settings-page__checks`},ce={class:`settings-page__check`},le={class:`settings-page__check`},ue={class:`admin-card settings-page__section`},de={class:`settings-page__checks`},fe={class:`settings-page__check`},pe={class:`settings-page__check`},me={class:`settings-page__check`},he={class:`settings-page__check`},ge={class:`settings-page__check`},_e={class:`admin-card settings-page__section`},ve={class:`admin-form__field`},ye={class:`admin-form__field`},be={class:`admin-card settings-page__section`},$={class:`admin-form__field`},xe={class:`admin-form__field`},Se={class:`settings-page__check settings-page__check--block`},Ce={class:`admin-form__field`},we=[`disabled`],Te=b(f({__name:`SettingsView`,setup(r){let i=C(),o=c({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:``}),l=c({title:``,body:``}),f=e(!1),h=e([]),v=e([]),b=e(!1),x=e(!0),S=e(!1),E=y(()=>h.value.filter(e=>e.isActive).map(e=>({value:e.id,label:`${e.name} · ${e.phone}${e.appRole===`agent`?` (واسطه)`:``}`})));n(b,e=>{e&&(v.value=[])}),a(async()=>{x.value=!0;try{let[e,t]=await Promise.all([O.get(),M.list()]);Object.assign(o,{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??``}),h.value=t}catch(e){i.error(e instanceof Error?e.message:`دریافت تنظیمات ناموفق بود.`)}finally{x.value=!1}});async function D(){if(!S.value){S.value=!0;try{await O.update({...o}),i.success(`تنظیمات با موفقیت ذخیره شد.`)}catch(e){i.error(e instanceof Error?e.message:`ذخیره تنظیمات ناموفق بود.`)}finally{S.value=!1}}}async function k(){if(f.value)return;let e=l.title.trim(),t=l.body.trim();if(!e||!t){i.error(`عنوان و متن اعلان را وارد کنید.`);return}if(!b.value&&!v.value.length){i.error(`حداقل یک مشتری انتخاب کنید یا «ارسال به همه مشتریان فعال» را فعال کنید.`);return}f.value=!0;try{let n={title:e,body:t};b.value?n.allActive=!0:n.customerIds=[...v.value];let r=await j.broadcast(n);if(!r.sent){i.warning(`هیچ مشتری فعالی برای ارسال پیدا نشد.`);return}i.success(`اعلان برای ${r.sent} مشتری ارسال شد.`),l.title=``,l.body=``,v.value=[],b.value=!1}catch(e){i.error(e instanceof Error?e.message:`ارسال اعلان ناموفق بود.`)}finally{f.value=!1}}return(e,n)=>(m(),d(`div`,K,[u(`div`,q,[n[19]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`تنظیمات`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:x.value||S.value,onClick:D},t(S.value?`در حال ذخیره…`:`ذخیره تنظیمات`),9,J)]),x.value?(m(),g(N,{key:0,variant:`form`,rows:8})):(m(),d(`div`,Y,[u(`section`,X,[n[28]||=u(`h2`,{class:`settings-page__title`},`تنظیمات عمومی سفارش`,-1),u(`div`,Z,[n[20]||=u(`label`,{for:`max-meterage`},`حداکثر متراژ هر فاکتور (متر)`,-1),s(u(`input`,{id:`max-meterage`,"onUpdate:modelValue":n[0]||=e=>o.maxMeteragePerInvoice=e,type:`number`,min:`1000`,class:`admin-input`},null,512),[[w,o.maxMeteragePerInvoice,void 0,{number:!0}]])]),u(`div`,Q,[n[21]||=u(`label`,{for:`validity-hours`},`اعتبار فاکتور نقدی (ساعت)`,-1),s(u(`input`,{id:`validity-hours`,"onUpdate:modelValue":n[1]||=e=>o.cashInvoiceValidityHours=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[w,o.cashInvoiceValidityHours,void 0,{number:!0}]])]),u(`div`,ne,[n[22]||=u(`label`,{for:`min-rolls`},`حداقل طاقه از هر محصول`,-1),s(u(`input`,{id:`min-rolls`,"onUpdate:modelValue":n[2]||=e=>o.minOrderRollsPerProduct=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[w,o.minOrderRollsPerProduct,void 0,{number:!0}]])]),u(`label`,re,[s(u(`input`,{"onUpdate:modelValue":n[3]||=e=>o.showCatalogPublicPrice=e,type:`checkbox`},null,512),[[T,o.showCatalogPublicPrice]]),n[23]||=_(` نمایش قیمت عمومی در کاتالوگ `,-1)]),u(`label`,ie,[s(u(`input`,{"onUpdate:modelValue":n[4]||=e=>o.allowAgentPricing=e,type:`checkbox`},null,512),[[T,o.allowAgentPricing]]),n[24]||=_(` اجازه قیمتگذاری توسط واسطه `,-1)]),u(`div`,ae,[n[25]||=u(`label`,{for:`agent-min-price`},`حداقل قیمت واحد واسطه (تومان)`,-1),s(u(`input`,{id:`agent-min-price`,"onUpdate:modelValue":n[5]||=e=>o.agentMinUnitPrice=e,type:`number`,min:`0`,class:`admin-input`,disabled:!o.allowAgentPricing},null,8,oe),[[w,o.agentMinUnitPrice,void 0,{number:!0}]])]),u(`div`,se,[u(`label`,ce,[s(u(`input`,{"onUpdate:modelValue":n[6]||=e=>o.defaultSettlementCheck=e,type:`checkbox`},null,512),[[T,o.defaultSettlementCheck]]),n[26]||=u(`span`,null,`فعالسازی تسویه چکی`,-1)]),u(`label`,le,[s(u(`input`,{"onUpdate:modelValue":n[7]||=e=>o.defaultSettlementCash=e,type:`checkbox`},null,512),[[T,o.defaultSettlementCash]]),n[27]||=u(`span`,null,`فعالسازی تسویه نقدی`,-1)])])]),u(`section`,ue,[n[34]||=u(`h2`,{class:`settings-page__title`},`پیامک و اعلان`,-1),u(`div`,de,[u(`label`,fe,[s(u(`input`,{"onUpdate:modelValue":n[8]||=e=>o.smsOrderRegistered=e,type:`checkbox`},null,512),[[T,o.smsOrderRegistered]]),n[29]||=u(`span`,null,`پیامک ثبت سفارش`,-1)]),u(`label`,pe,[s(u(`input`,{"onUpdate:modelValue":n[9]||=e=>o.smsPricingReady=e,type:`checkbox`},null,512),[[T,o.smsPricingReady]]),n[30]||=u(`span`,null,`پیامک صدور فاکتور و آمادهبودن قیمت`,-1)]),u(`label`,me,[s(u(`input`,{"onUpdate:modelValue":n[10]||=e=>o.smsPaymentReminder=e,type:`checkbox`},null,512),[[T,o.smsPaymentReminder]]),n[31]||=u(`span`,null,`یادآوری پایان اعتبار فاکتور`,-1)]),u(`label`,he,[s(u(`input`,{"onUpdate:modelValue":n[11]||=e=>o.smsCheckReview=e,type:`checkbox`},null,512),[[T,o.smsCheckReview]]),n[32]||=u(`span`,null,`اعلان بررسی چک`,-1)]),u(`label`,ge,[s(u(`input`,{"onUpdate:modelValue":n[12]||=e=>o.smsShippingUpdate=e,type:`checkbox`},null,512),[[T,o.smsShippingUpdate]]),n[33]||=u(`span`,null,`اعلان وضعیت ارسال`,-1)])])]),u(`section`,_e,[n[38]||=u(`h2`,{class:`settings-page__title`},`اطلاعات تماس پشتیبانی`,-1),u(`div`,ve,[n[35]||=u(`label`,{for:`support-phone`},`تلفن پشتیبانی`,-1),s(u(`input`,{id:`support-phone`,"onUpdate:modelValue":n[13]||=e=>o.supportPhone=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[w,o.supportPhone]]),n[36]||=u(`p`,{class:`settings-page__hint`},` این شماره در صفحه ورود اپ و بخش پشتیبانی سایدبار دسکتاپ نمایش داده میشود. `,-1)]),u(`div`,ye,[n[37]||=u(`label`,{for:`support-email`},`ایمیل پشتیبانی`,-1),s(u(`input`,{id:`support-email`,"onUpdate:modelValue":n[14]||=e=>o.supportEmail=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[w,o.supportEmail]])])]),u(`section`,be,[n[44]||=u(`h2`,{class:`settings-page__title`},`اعلان هدفمند`,-1),u(`div`,$,[n[39]||=u(`label`,{for:`broadcast-title`},`عنوان`,-1),s(u(`input`,{id:`broadcast-title`,"onUpdate:modelValue":n[15]||=e=>l.title=e,type:`text`,class:`admin-input`},null,512),[[w,l.title]])]),u(`div`,xe,[n[40]||=u(`label`,{for:`broadcast-body`},`متن`,-1),s(u(`textarea`,{id:`broadcast-body`,"onUpdate:modelValue":n[16]||=e=>l.body=e,class:`admin-input`,rows:`4`},null,512),[[w,l.body]])]),u(`label`,Se,[s(u(`input`,{"onUpdate:modelValue":n[17]||=e=>b.value=e,type:`checkbox`},null,512),[[T,b.value]]),n[41]||=u(`span`,null,`ارسال به همه مشتریان فعال (نقش مشتری در اپ)`,-1)]),u(`div`,Ce,[n[42]||=u(`label`,{for:`broadcast-recipients`},`گیرندگان`,-1),p(G,{id:`broadcast-recipients`,modelValue:v.value,"onUpdate:modelValue":n[18]||=e=>v.value=e,options:E.value,disabled:b.value||!E.value.length,block:``,placeholder:`انتخاب مشتریان…`,"aria-label":`گیرندگان اعلان`},null,8,[`modelValue`,`options`,`disabled`]),n[43]||=u(`p`,{class:`settings-page__hint`},` با غیرفعال بودن «ارسال به همه»، یک یا چند مشتری فعال را انتخاب کنید. اعلان در بخش اعلانهای اپ مشتری نمایش داده میشود. `,-1)]),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary settings-page__broadcast-submit`,disabled:f.value,onClick:k},t(f.value?`در حال ارسال…`:`ثبت و ارسال اعلان`),9,we)])]))]))}}),[[`__scopeId`,`data-v-e84a2579`]]);export{Te as default}; |