Files
tehran_taj/apps/admin-panel/dist/assets/OmdeList-D9vpTgel.js
T
s.esmaeiliandClaude Opus 5 53436ec855 chore(release): prepare release/delivery + fix docker env passthrough
DEPLOY-01: docker-compose.yml passed only DATABASE_URL and PORT to the api
service, so JWT_SECRET, JWT_CUSTOMER_SECRET, OTP_MASTER_CODE and every SMS_TREZ_*
variable were silently dropped in Docker. A deployed build would have used the
development JWT fallback and would not have had the delivery master code at all,
so the demo login would have failed with no obvious cause. All are now forwarded,
defaulting to empty (which the code treats as unset); verified with
`docker compose config`.

TEST-01: test-sales-expert-roundtrip.cjs had localhost:3077 hardcoded and could
only connect by accident. Now defaults to the repo's API_PORT. 33/33.

DELIVERY.md documents env vars (names only), run/deploy commands, how migrations
run inside the container, the verification results and the known issues.

release/delivery contains both parity branches with no conflicts (fast-forward).
build 5/5, jest 45/45, admin smoke 43/43, apps smoke 43/43, B2B scan 34/34,
B2B writes 25/25, auth-smoke 32/32, typecheck clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 00:30:09 +03:30

2 lines
7.4 KiB
JavaScript

import{u as X,d as Y,b as c,c as n,w as o,r as _,o as a,h as Z,f as d,t as l,A as ee,i as p,n as b,a as k,F as U,e as F,l as j,x as L,z as h}from"./index-JKzARUiG.js";import{a as te,b as f,X as oe}from"./model-DOsh9ZRP.js";import{_ as V}from"./TooltipBtn.vue_vue_type_script_setup_true_lang-D_q9Um7S.js";import{j as ne}from"./filters-Xxl3NQYx.js";import{_ as se}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./SettingOutlined-7WAqpvd6.js";import"./icons-CwsTCmB2.js";import"./TeamOutlined-C5THHLk7.js";import"./UnorderedListOutlined-B1ZzTECl.js";import"./CreditCardOutlined-D3QvbK_r.js";import"./index-DbDK8cBI.js";function ae(){const g=X();Object.keys(g.cityFilters).length<1&&g.getCities();const r=new te("admin/orders/wholesale/list","لیست سفارش های عمده");return r.add(new f("id","شماره").filterNumber()),r.add(new f("customer.name","مشتری").filterKey("customer.fullName").filterText()),r.add(new f("customer.mobile","موبایل").filterText().hidden().noSort()),r.add(new f("input","جمع کل سفارش").filterKey("totalGoldWeightGrams").filterText()),r.add(new f("discount","جمع کل تخفیف (درصد)").filterText()),r.add(new f("customer.city_id","شهر").hidden().renderSlot("city")),r.add(new f("items","تعداد آیتم ها").renderSlot("items_len").noSort()),r.add(new f("caj","تاریخ ثبت").filterKey("createdAt").filterDate().noSort()),r.add(new f("uaj","تاریخ ویرایش").hidden().filterKey("updatedAt").filterDate().noSort()),g.roles&&g.roles.includes("order.omde.state")&&r.add(new f("sts","وضعیت").renderSlot("sts_str").noSort().filterKey("status").filterSelect({0:"معلق",1:"ثبت سفارش",2:"تایید مدیر سیستم",3:"در حال تامین",4:"در حال آماده سازی ",5:"تحویل مسئول فروش",6:"تحویل مشتری "})),r.add(new f("confirmed","وضعیت تایید مشتری").renderSlot("confirmed_str").noSort().filterSelect({1:"تایید شده",2:"در انتظار تایید"})),r.add(new f("opt","عملیات").noSort().renderSlot("opt")),r}const le={id:"page-user-list"},re={key:0},ie={key:1},de={class:"flex"},ue={key:0},ce=["onClick"],_e={key:1},fe={class:"flex flex-col"},me={key:0},pe={class:"flex"},ve={class:"flex-1"},ye={key:1,class:"flex items-center"},ke={key:2},we={key:0},be=Y({__name:"OmdeList",setup(g){const r=X(),S=s=>!!r.hasPermission(s),z=ae(),x=j(null),i=j(void 0),$=j(!1),w=j(!1),O=s=>s?ne(s):"";function A(s){return r.cityFilters[s]??"-"}function G(s){return s.proceed?"green":"gray"}async function B(s){const{data:t}=await L.get(`admin/orders/${s}`);return t}async function M(s){i.value=await B(s.id),$.value=!0}async function P(s){i.value=await B(s.id),w.value=!0}async function q(s){var t,u;try{await L.post("order-sts/edit",{orderId:(t=i.value)==null?void 0:t.id,status:s.status,note:s.note}),w.value=!1,h.info("ویرایش موفق آمیز"),(u=x.value)==null||u.fetch()}catch{h.error("خطا در ویرایش")}}async function E(s){var t,u,m,T;try{await L.post("order-sts/edit",{orderId:(t=i.value)==null?void 0:t.id,status:s.status,remove:!0}),w.value=!1,h.info("ویرایش موفق آمیز"),(u=x.value)==null||u.fetch()}catch(C){h.error(((T=(m=C==null?void 0:C.response)==null?void 0:m.data)==null?void 0:T.message)??"خطا در ویرایش")}}function R(s){L.post("delete-order",{id:s.id}).then(()=>{var t;h.info("سفارش با موفقیت حذف گردید"),(t=x.value)==null||t.fetch()}).catch(t=>{var u,m;console.log(t),h.error(((m=(u=t==null?void 0:t.response)==null?void 0:u.data)==null?void 0:m.message)??"خطا در حذف")})}return(s,t)=>{const u=_("a-tag"),m=_("a-button"),T=_("a-popconfirm"),C=_("a-input"),W=_("a-timeline-item"),H=_("a-timeline"),D=_("a-modal"),v=_("a-descriptions-item"),I=_("a-descriptions"),J=_("a-divider"),K=_("a-card"),Q=_("a-empty");return a(),c("div",le,[n(K,{title:"لیست سفارش های عمده"},{default:o(()=>[n(oe,{ref_key:"tbl",ref:x,model:Z(z)},{city:o(({text:e})=>[e?(a(),c("div",re,l(A(e)),1)):(a(),c("div",ie,"-"))]),opt:o(({record:e})=>[b("div",de,[S("order.omde.view")?(a(),k(V,{key:0,"icon-class":"w-5 h-5 text-primary",class:"mr-3",icon:"ListIcon",title:"مشاهده سفارش",onClick:y=>M(e)},null,8,["onClick"])):p("",!0),S("order.omde.remove")?(a(),k(V,{key:1,"icon-class":"w-5 h-5 text-danger",class:"mr-3",icon:"TrashIcon",title:"حذف","pop-title":"آیا مطمئن به حدف رکورد مورد نظر هستید؟",onClick:y=>R(e)},null,8,["onClick"])):p("",!0)])]),items_len:o(({text:e})=>[e?(a(),c("div",ue,l(e.length),1)):p("",!0)]),sts_str:o(({record:e})=>[S("order.omde.state")?(a(),c("a",{key:0,href:"",onClick:ee(y=>P(e),["prevent"])},l(e.sts_str),9,ce)):(a(),c("span",_e,l(e.sts_str),1))]),confirmed_str:o(({record:e})=>[d(l(e.confirmed_str),1)]),_:1},8,["model"]),n(D,{open:w.value,"onUpdate:open":t[1]||(t[1]=e=>w.value=e),title:"وضعیت سفارش"},{footer:o(()=>[n(m,{onClick:t[0]||(t[0]=e=>w.value=!1)},{default:o(()=>[...t[7]||(t[7]=[d("باشه",-1)])]),_:1})]),default:o(()=>[i.value?(a(),k(H,{key:0},{default:o(()=>[(a(!0),c(U,null,F(i.value.activity,(e,y)=>(a(),k(W,{key:y,color:G(e)},{default:o(()=>[b("div",fe,[b("div",null,l(e.title),1),e.proceed?(a(),c("div",me,[b("div",pe,[b("div",ve,[n(u,null,{default:o(()=>[d(l(O(e.uaj)),1)]),_:2},1024)]),y>0&&S("order.omde.state.remove")?(a(),k(T,{key:0,"ok-text":"بله","cancel-text":"بی خیال",onConfirm:N=>E(e)},{title:o(()=>[...t[4]||(t[4]=[b("p",null,"آیا مطمئن به حذف وضعیت مورد نظر هستید ؟",-1)])]),default:o(()=>[n(m,{size:"small",danger:""},{default:o(()=>[...t[5]||(t[5]=[d("حذف وضعیت",-1)])]),_:1})]),_:1},8,["onConfirm"])):p("",!0)])])):p("",!0),!e.proceed&&S("order.omde.state.submit")?(a(),c("div",ye,[n(C,{value:e.note,"onUpdate:value":N=>e.note=N,placeholder:"یادداشت"},null,8,["value","onUpdate:value"]),n(m,{type:"text",size:"small",onClick:N=>q(e)},{default:o(()=>[...t[6]||(t[6]=[d("ثبت وضعیت",-1)])]),_:1},8,["onClick"])])):p("",!0),e.proceed?(a(),c("div",ke,l(e.note),1)):p("",!0)])]),_:2},1032,["color"]))),128))]),_:1})):p("",!0)]),_:1},8,["open"]),n(D,{open:$.value,"onUpdate:open":t[3]||(t[3]=e=>$.value=e),title:"مشاهده سفارش",width:"80%"},{footer:o(()=>[n(m,{onClick:t[2]||(t[2]=e=>$.value=!1)},{default:o(()=>[...t[8]||(t[8]=[d("باشه",-1)])]),_:1})]),default:o(()=>[i.value?(a(),c("div",we,[n(I,null,{default:o(()=>[n(v,{label:"مشتری"},{default:o(()=>[d(l(i.value.customer.fname)+" "+l(i.value.customer.lname),1)]),_:1}),n(v,{label:"تلفن همراه"},{default:o(()=>[d(l(i.value.customer.phone),1)]),_:1}),n(v,{label:"تاریخ ثبت"},{default:o(()=>[d(l(O(i.value.caj)),1)]),_:1}),n(v,{label:"وضعیت"},{default:o(()=>[d(l(i.value.sts_str),1)]),_:1})]),_:1}),n(K,{title:"آیتم های سفارش"},{default:o(()=>[(a(!0),c(U,null,F(i.value.items,(e,y)=>(a(),c("div",{key:y},[n(I,null,{default:o(()=>[n(v,{label:"نام محصول"},{default:o(()=>[n(u,{color:"blue"},{default:o(()=>[d(l(e.title),1)]),_:2},1024)]),_:2},1024),n(v,{label:"عنوان تنوع"},{default:o(()=>[d(l(e.variant_title),1)]),_:2},1024),n(v,{label:"وزن نهایی"},{default:o(()=>[n(u,{color:"red"},{default:o(()=>[d(l(e.grams),1)]),_:2},1024)]),_:2},1024),n(v,{label:"تعداد"},{default:o(()=>[n(u,{color:"orange"},{default:o(()=>[d(l(e.qty),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),y<i.value.items.length-1?(a(),k(J,{key:0})):p("",!0)]))),128))]),_:1})])):(a(),k(Q,{key:1}))]),_:1},8,["open"])]),_:1})])}}}),Be=se(be,[["__scopeId","data-v-4a771f61"]]);export{Be as default};