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>
1 line
9.0 KiB
JavaScript
1 line
9.0 KiB
JavaScript
import{$ as e,C as t,Ct as n,G as r,H as i,J as a,Q as ee,V as o,X as s,Z as c,b as te,dt as ne,et as l,g as re,gt as u,it as d,lt as f,nt as p,st as ie,vt as m,yt as h,z as ae}from"./index-B2VD3zy8.js";import{t as oe}from"./AdminPageSkeleton-BJpm6oxf.js";var g={class:`settings-page`},_={class:`admin-page-header`},v=[`disabled`],y={key:1,class:`settings-page__grid`},b={class:`admin-card settings-page__section`},x={class:`admin-form__field`},S={class:`admin-form__field`},C={class:`admin-form__field`},w={class:`settings-page__check`},T={class:`settings-page__check`},E={class:`admin-form__field`},D=[`disabled`],O={class:`settings-page__checks`},k={class:`settings-page__check`},A={class:`settings-page__check`},j={class:`admin-card settings-page__section`},M={class:`settings-page__checks`},N={class:`settings-page__check`},P={class:`settings-page__check`},se={class:`settings-page__check`},F={class:`settings-page__check`},I={class:`settings-page__check`},L={class:`admin-card settings-page__section`},R={class:`admin-form__field`},z={class:`admin-form__field`},B={class:`admin-card settings-page__section`},V={class:`admin-form__field`},H={class:`admin-form__field`},U={key:0,class:`admin-form__field`},W={class:`settings-page__customers`},G=[`checked`,`onChange`],K={class:`settings-page__phone`,dir:`ltr`},ce=[`disabled`],q=o(d({__name:`SettingsView`,setup(o){let d=ae(),q=m({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=m({title:``,body:``}),Y=h(!1),X=h([]),Z=h([]),Q=h(!0),$=h(!1),le=s(()=>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)}ie(async()=>{Q.value=!0;try{let[e,n]=await Promise.all([t.get(),re.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=n}catch(e){d.error(e instanceof Error?e.message:`دریافت تنظیمات ناموفق بود.`)}finally{Q.value=!1}});async function de(){if(!$.value){$.value=!0;try{await t.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 te.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(t,o)=>(f(),l(`div`,g,[c(`div`,_,[o[17]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`تنظیمات`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:Q.value||$.value,onClick:de},n($.value?`در حال ذخیره…`:`ذخیره تنظیمات`),9,v)]),Q.value?(f(),ee(oe,{key:0,variant:`form`,rows:8})):(f(),l(`div`,y,[c(`section`,b,[o[26]||=c(`h2`,{class:`settings-page__title`},`تنظیمات عمومی سفارش`,-1),c(`div`,x,[o[18]||=c(`label`,{for:`max-meterage`},`حداکثر متراژ هر فاکتور (متر)`,-1),u(c(`input`,{id:`max-meterage`,"onUpdate:modelValue":o[0]||=e=>q.maxMeteragePerInvoice=e,type:`number`,min:`1000`,class:`admin-input`},null,512),[[r,q.maxMeteragePerInvoice,void 0,{number:!0}]])]),c(`div`,S,[o[19]||=c(`label`,{for:`validity-hours`},`اعتبار فاکتور نقدی (ساعت)`,-1),u(c(`input`,{id:`validity-hours`,"onUpdate:modelValue":o[1]||=e=>q.cashInvoiceValidityHours=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[r,q.cashInvoiceValidityHours,void 0,{number:!0}]])]),c(`div`,C,[o[20]||=c(`label`,{for:`min-rolls`},`حداقل طاقه از هر محصول`,-1),u(c(`input`,{id:`min-rolls`,"onUpdate:modelValue":o[2]||=e=>q.minOrderRollsPerProduct=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[r,q.minOrderRollsPerProduct,void 0,{number:!0}]])]),c(`label`,w,[u(c(`input`,{"onUpdate:modelValue":o[3]||=e=>q.showCatalogPublicPrice=e,type:`checkbox`},null,512),[[i,q.showCatalogPublicPrice]]),o[21]||=p(` نمایش قیمت عمومی در کاتالوگ `,-1)]),c(`label`,T,[u(c(`input`,{"onUpdate:modelValue":o[4]||=e=>q.allowAgentPricing=e,type:`checkbox`},null,512),[[i,q.allowAgentPricing]]),o[22]||=p(` اجازه قیمتگذاری توسط واسطه `,-1)]),c(`div`,E,[o[23]||=c(`label`,{for:`agent-min-price`},`حداقل قیمت واحد واسطه (تومان)`,-1),u(c(`input`,{id:`agent-min-price`,"onUpdate:modelValue":o[5]||=e=>q.agentMinUnitPrice=e,type:`number`,min:`0`,class:`admin-input`,disabled:!q.allowAgentPricing},null,8,D),[[r,q.agentMinUnitPrice,void 0,{number:!0}]])]),c(`div`,O,[c(`label`,k,[u(c(`input`,{"onUpdate:modelValue":o[6]||=e=>q.defaultSettlementCheck=e,type:`checkbox`},null,512),[[i,q.defaultSettlementCheck]]),o[24]||=c(`span`,null,`فعالسازی تسویه چکی`,-1)]),c(`label`,A,[u(c(`input`,{"onUpdate:modelValue":o[7]||=e=>q.defaultSettlementCash=e,type:`checkbox`},null,512),[[i,q.defaultSettlementCash]]),o[25]||=c(`span`,null,`فعالسازی تسویه نقدی`,-1)])])]),c(`section`,j,[o[32]||=c(`h2`,{class:`settings-page__title`},`پیامک و اعلان`,-1),c(`div`,M,[c(`label`,N,[u(c(`input`,{"onUpdate:modelValue":o[8]||=e=>q.smsOrderRegistered=e,type:`checkbox`},null,512),[[i,q.smsOrderRegistered]]),o[27]||=c(`span`,null,`پیامک ثبت سفارش`,-1)]),c(`label`,P,[u(c(`input`,{"onUpdate:modelValue":o[9]||=e=>q.smsPricingReady=e,type:`checkbox`},null,512),[[i,q.smsPricingReady]]),o[28]||=c(`span`,null,`پیامک صدور فاکتور و آمادهبودن قیمت`,-1)]),c(`label`,se,[u(c(`input`,{"onUpdate:modelValue":o[10]||=e=>q.smsPaymentReminder=e,type:`checkbox`},null,512),[[i,q.smsPaymentReminder]]),o[29]||=c(`span`,null,`یادآوری پایان اعتبار فاکتور`,-1)]),c(`label`,F,[u(c(`input`,{"onUpdate:modelValue":o[11]||=e=>q.smsCheckReview=e,type:`checkbox`},null,512),[[i,q.smsCheckReview]]),o[30]||=c(`span`,null,`اعلان بررسی چک`,-1)]),c(`label`,I,[u(c(`input`,{"onUpdate:modelValue":o[12]||=e=>q.smsShippingUpdate=e,type:`checkbox`},null,512),[[i,q.smsShippingUpdate]]),o[31]||=c(`span`,null,`اعلان وضعیت ارسال`,-1)])])]),c(`section`,L,[o[36]||=c(`h2`,{class:`settings-page__title`},`اطلاعات تماس پشتیبانی`,-1),c(`div`,R,[o[33]||=c(`label`,{for:`support-phone`},`تلفن پشتیبانی`,-1),u(c(`input`,{id:`support-phone`,"onUpdate:modelValue":o[13]||=e=>q.supportPhone=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[r,q.supportPhone]]),o[34]||=c(`p`,{class:`settings-page__hint`},` این شماره در صفحه ورود اپ و بخش پشتیبانی سایدبار دسکتاپ نمایش داده میشود. `,-1)]),c(`div`,z,[o[35]||=c(`label`,{for:`support-email`},`ایمیل پشتیبانی`,-1),u(c(`input`,{id:`support-email`,"onUpdate:modelValue":o[14]||=e=>q.supportEmail=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[r,q.supportEmail]])])]),c(`section`,B,[o[40]||=c(`h2`,{class:`settings-page__title`},`اعلان هدفمند`,-1),c(`div`,V,[o[37]||=c(`label`,{for:`broadcast-title`},`عنوان`,-1),u(c(`input`,{id:`broadcast-title`,"onUpdate:modelValue":o[15]||=e=>J.title=e,type:`text`,class:`admin-input`},null,512),[[r,J.title]])]),c(`div`,H,[o[38]||=c(`label`,{for:`broadcast-body`},`متن`,-1),u(c(`textarea`,{id:`broadcast-body`,"onUpdate:modelValue":o[16]||=e=>J.body=e,class:`admin-input`,rows:`4`},null,512),[[r,J.body]])]),X.value.length?(f(),l(`div`,U,[o[39]||=c(`label`,null,`گیرندگان (بدون انتخاب = همه)`,-1),c(`div`,W,[(f(!0),l(a,null,ne(X.value,e=>(f(),l(`label`,{key:e.id,class:`settings-page__check`},[c(`input`,{type:`checkbox`,checked:Z.value.includes(e.id),onChange:t=>ue(e.id,t.target.checked)},null,40,G),c(`span`,null,[p(n(e.name)+` `,1),c(`span`,K,n(e.phone),1)])]))),128))])])):e(``,!0),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:Y.value||!J.title.trim()||!J.body.trim(),onClick:fe},n(le.value),9,ce)])]))]))}}),[[`__scopeId`,`data-v-85da5885`]]);export{q as default}; |