Files
tehran_tala/apps/admin-panel/dist/assets/omdeListModel-DOqKF7hN.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
12 KiB
JavaScript

import{c as a,I as fe,d as _e,u as R,b as $,w as o,r as g,o as u,f as A,t as y,n as i,i as h,W as pe,h as m,H as me,a as p,E as ve,Q as we,O as ye,s as I,g as j,K as E,l as B,X as he,x as D,z as C,k as Ce}from"./index-JKzARUiG.js";import{X as Se,a as xe,b as l}from"./model-DOsh9ZRP.js";import{_ as ge}from"./ListPageHeader.vue_vue_type_script_setup_true_lang-DIOKotFA.js";import{_ as ke}from"./bulkCustomer.vue_vue_type_script_setup_true_lang-Cn4JS3I3.js";import{S as be}from"./SettingOutlined-7WAqpvd6.js";import{U as Oe,S as H}from"./UnorderedListOutlined-B1ZzTECl.js";var Te={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M624 706.3h-74.1V464c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v242.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.7a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9z"}},{tag:"path",attrs:{d:"M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 01-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z"}}]},name:"cloud-download",theme:"outlined"};function Q(c){for(var r=1;r<arguments.length;r++){var d=arguments[r]!=null?Object(arguments[r]):{},w=Object.keys(d);typeof Object.getOwnPropertySymbols=="function"&&(w=w.concat(Object.getOwnPropertySymbols(d).filter(function(n){return Object.getOwnPropertyDescriptor(d,n).enumerable}))),w.forEach(function(n){$e(c,n,d[n])})}return c}function $e(c,r,d){return r in c?Object.defineProperty(c,r,{value:d,enumerable:!0,configurable:!0,writable:!0}):c[r]=d,c}var V=function(r,d){var w=Q({},r,d.attrs);return a(fe,Q({},w,{icon:Te}),null)};V.displayName="CloudDownloadOutlined";V.inheritAttrs=!1;const Ie={id:"page-user-list"},je={key:0},Be={class:"text-danger"},De={key:0},Ne={key:1},Ae={class:"flex"},Ee={class:"cursor-pointer flex items-center"},He={class:"flex gap-2"},Ve={class:"flex gap-2"},Pe={class:"flex gap-2"},ze={class:"flex gap-2"},Me={class:"flex gap-2"},Ue={class:"flex gap-2"},Xe={class:"flex gap-2"},Fe={class:"flex gap-2"},Le={class:"flex gap-2"},Ye=_e({__name:"OmdeCustomerList",props:{title:{},model:{},rejectOnlyStepOne:{type:Boolean,default:!1},showAddButton:{type:Boolean,default:!1}},setup(c){const r=c,d=Ce(),w=R(),n=e=>!!w.hasPermission(e),S=B(null),b=B(!1),O=B(void 0),x=B(void 0);function q(e){const s=e;x.value={count:s&&s.count?s.count:void 0,total:s&&s.total?s.total:void 0}}function W(e,s){const _=String(e.key);return _==="5"||_==="6"||_==="7"||_==="8"||_==="9"}function G(e){switch(e.sts_verify_step_one){case 1:return"در انتظار تایید ورود مشتری";case 2:return"رد ورود مشتری";case 3:return"تایید ورود مشتری"}}function P(e){switch(e.sts_verify_step_one){case 1:return"HelpCircleIcon";case 2:return"SlashIcon";case 3:return"CheckIcon"}}function J(e){switch(e.sts_verify_step_two){case 1:return"در انتظار فعال سازی";case 2:return"غیر فعال سازی";case 3:return"فعال سازی"}}function z(e){switch(e.sts_verify_step_two){case 1:return"HelpCircleIcon";case 2:return"SlashIcon";case 3:return"CheckIcon"}}function M(e){return e==="HelpCircleIcon"?he:e==="CheckIcon"?E:H}function U(e){return e==="HelpCircleIcon"?"text-primary":e==="CheckIcon"?"text-success":"text-danger"}async function T(e,s){var _;try{await D.post("major/verify",e),C.info("تغییرات ثبت شد "),(_=S.value)==null||_.fetch()}catch{C.error(s)}}const X=e=>T({customer_id:e,sts_verify_step_one:2},"خطا در تغییر وضعیت اولیه مشتری"),N=e=>T({customer_id:e,sts_verify_step_one:3},"خطا در تغییر وضعیت اولیه مشتری"),F=e=>T({customer_id:e,sts_verify_step_two:2},"خطا در تغییر وضعیت سفارش مشتری"),L=e=>T({customer_id:e,sts_verify_step_two:3},"خطا در تغییر وضعیت سفارش مشتری");function K(e){return e.sts_verify_step_one===1?r.rejectOnlyStepOne?N(e.id):X(e.id):e.sts_verify_step_one===2?N(e.id):X(e.id)}function Y(e){if(e.sts_verify_step_one===1)return N(e.id)}function Z(e){return e.sts_verify_step_two===1?F(e.id):e.sts_verify_step_two===2?L(e.id):F(e.id)}function ee(e){if(e.sts_verify_step_two===1)return L(e.id)}async function te(e){var s;try{await D.post("customer/toggle-active",{id:e.id}),C.info("تغییرات ثبت شد "),await((s=S.value)==null?void 0:s.fetch())}catch{C.error("خطا در تغییر وضعیت")}}async function ne(e){var s;try{await D.post("customer/toggle-sts",{id:e.id,sts:e.sts}),C.info("تغییرات ثبت شد "),await((s=S.value)==null?void 0:s.fetch())}catch{C.error("خطا در تغییر وضعیت")}}async function se(e){var s;try{await D.get(`major/archive/${e}`),C.info("تغییرات ثبت شد "),await((s=S.value)==null?void 0:s.fetch())}catch{C.error("خطا در بایگانی")}}function oe(e){r.showAddButton?(O.value=e,b.value=!0):d.push(`/bulkCustomer/edit/${e}`)}function ie(){O.value=void 0,b.value=!0}function le(e){d.push(`/bulkCustomer/view/${e}`)}function ae(e){d.push(`/bulkCustomer/view/${e.id}?tab=orders`)}function re(e){d.push(`/bulkCustomer/view/${e.id}?tab=documents`)}return(e,s)=>{const _=g("a-tag"),v=g("a-menu-item"),k=g("a-popconfirm"),ce=g("a-menu"),de=g("a-dropdown"),ue=g("a-card");return u(),$("div",Ie,[a(ue,{title:c.title},{default:o(()=>[x.value&&x.value.count&&x.value.total?(u(),$("div",je,[A(y(x.value.total)+" رکورد یافت شد - ",1),i("span",Be,y(x.value.count)+" رکورد غیر فعال",1)])):h("",!0),a(Se,{ref_key:"tbl",ref:S,model:c.model,onQuery:q},pe({city:o(({record:t})=>[t.city&&t.city.title?(u(),$("div",De,y(t.city.title),1)):(u(),$("div",Ne,"-"))]),sts:o(({record:t})=>[A(y(t.sts_str),1)]),active:o(({record:t})=>[a(_,{color:t.active===1?"green":"red"},{default:o(()=>[A(y(t.active===1?"فعال":"غیر فعال"),1)]),_:2},1032,["color"])]),opt:o(({record:t})=>[i("div",Ae,[a(de,null,{overlay:o(()=>[a(ce,{onClick:f=>W(f,t.id)},{default:o(()=>[n("persons.list.client.omde.edit")?(u(),p(v,{key:"1",onClick:f=>oe(t.id)},{default:o(()=>[i("div",He,[a(m(ve),{class:"cursor-pointer w-5 ml-1"}),s[2]||(s[2]=i("div",null,"ویرایش",-1))])]),_:1},8,["onClick"])):h("",!0),n("persons.list.client.omde.view")?(u(),p(v,{key:"2",onClick:f=>le(t.id)},{default:o(()=>[i("div",Ve,[a(m(we),{class:"cursor-pointer w-5 ml-1"}),s[3]||(s[3]=i("div",null,"مشاهده اطلاعات",-1))])]),_:1},8,["onClick"])):h("",!0),n("persons.list.client.omde.view.orders")?(u(),p(v,{key:"3",onClick:f=>ae(t)},{default:o(()=>[i("div",Pe,[a(m(Oe),{class:"cursor-pointer w-5 ml-1"}),s[4]||(s[4]=i("div",null,"مشاهده سفارش",-1))])]),_:1},8,["onClick"])):h("",!0),n("persons.list.client.omde.view.documents")?(u(),p(v,{key:"4",onClick:f=>re(t)},{default:o(()=>[i("div",ze,[a(m(ye),{class:"cursor-pointer w-5 ml-1"}),s[5]||(s[5]=i("div",null,"سند های مالی",-1))])]),_:1},8,["onClick"])):h("",!0),n("persons.list.client.omde.able")?(u(),p(v,{key:"7"},{default:o(()=>[a(k,{"ok-text":"بله","cancel-text":"خیر",title:"آیا مطمئن هستید؟",onConfirm:f=>se(t.id)},{default:o(()=>[i("div",Me,[a(m(V),{class:"cursor-pointer w-5 ml-1"}),s[6]||(s[6]=i("div",null,"بایگانی کردن",-1))])]),_:1},8,["onConfirm"])]),_:2},1024)):h("",!0),a(v,{key:"8"},{default:o(()=>[a(k,{"ok-text":t.sts_verify_step_one===1?"تایید":"بله","cancel-text":t.sts_verify_step_one===1?"رد":"خیر",title:t.sts_verify_step_one===1?"وضعیت تایید اولیه مشتری به چه نحوی تغییر یابد؟":"آیا از تغییر وضعیت مشتری اطمینان دارید؟",onConfirm:f=>K(t),onCancel:f=>Y(t)},{default:o(()=>[i("div",Ue,[(u(),p(j(M(P(t))),{class:I(["cursor-pointer w-5 ml-1",U(P(t))])},null,8,["class"])),i("div",null,y(G(t)),1)])]),_:2},1032,["ok-text","cancel-text","title","onConfirm","onCancel"])]),_:2},1024),a(v,{disabled:t.sts_verify_step_one!==2,key:"9"},{default:o(()=>[a(k,{"ok-text":t.sts_verify_step_two===1?"تایید":"بله","cancel-text":t.sts_verify_step_two===1?"رد":"خیر",title:t.sts_verify_step_two===1?"وضعیت تایید سفارش مشتری به چه نحوی تغییر یابد؟":"آیا از تغییر وضعیت سفارش مشتری اطمینان دارید؟",onConfirm:f=>Z(t),onCancel:f=>ee(t)},{default:o(()=>[i("div",Xe,[(u(),p(j(M(z(t))),{class:I(["cursor-pointer w-5 ml-1",U(z(t))])},null,8,["class"])),i("div",null,y(J(t)),1)])]),_:2},1032,["ok-text","cancel-text","title","onConfirm","onCancel"])]),_:2},1032,["disabled"]),n("persons.list.client.omde.able.order")?(u(),p(v,{disabled:t.sts_verify_step_one!==2,key:"5"},{default:o(()=>[a(k,{"ok-text":"بله","cancel-text":"خیر",title:"آیا مطمئن هستید؟",onConfirm:f=>ne(t)},{default:o(()=>[i("div",Fe,[(u(),p(j(t.sts===1?m(E):m(H)),{class:I(["cursor-pointer w-5 ml-1",t.sts===1?"text-success":"text-danger"])},null,8,["class"])),i("div",null,y(t.sts===1?"معلق کردن سفارش":"فعال کردن سفارش"),1)])]),_:2},1032,["onConfirm"])]),_:2},1032,["disabled"])):h("",!0),n("persons.list.client.omde.able")?(u(),p(v,{disabled:t.sts_verify_step_one!==2,key:"6"},{default:o(()=>[a(k,{"ok-text":"بله","cancel-text":"خیر",title:"آیا مطمئن هستید؟",onConfirm:f=>te(t)},{default:o(()=>[i("div",Le,[(u(),p(j(t.sts===1?m(E):m(H)),{class:I(["cursor-pointer w-5 ml-1",t.active===1?"text-success":"text-danger"])},null,8,["class"])),i("div",null,y(t.active===1?"معلق کردن حساب کاربری":" فعال کردن حساب کاربری"),1)])]),_:2},1032,["onConfirm"])]),_:2},1032,["disabled"])):h("",!0)]),_:2},1032,["onClick"])]),default:o(()=>[i("div",Ee,[a(m(me)),a(m(be),{class:"cursor-pointer w-5 ml-1"})])]),_:2},1024)])]),_:2},[c.showAddButton?{name:"add",fn:o(()=>[a(ge,{rid:"persons.create.client","add-label":"افزودن مشتری عمده",onAdd:ie})]),key:"0"}:void 0]),1032,["model"]),c.showAddButton?(u(),p(ke,{key:O.value??"new","as-modal":"",open:b.value,id:O.value,"onUpdate:open":s[0]||(s[0]=t=>b.value=t),onSuccess:s[1]||(s[1]=t=>{var f;return(f=S.value)==null?void 0:f.fetch()})},null,8,["open","id"])):h("",!0)]),_:1},8,["title"])])}}}),Qe={omde:{url:"admin/customers-omde/list",title:"لیست مشتریان های عمده"},banker:{url:"admin/customers-omde/banker/list",title:"لیست بنکداران"},shopkeeper:{url:"admin/customers-omde/shopkeeper/list",title:"لیست مغازه داران حضوری"},nonVerified:{url:"admin/customers-omde/non-verified/list",title:"لیست مشتریان های عمده"},archived:{url:"admin/customers-omde/archived/list",title:"لیست مشتریان های عمده"}};function Ze(c){const r=R();Object.keys(r.cityFilters).length<1&&r.getCities();const{url:d,title:w}=Qe[c],n=new xe(d,w);return n.add(new l("id","کد").filterNumber()),n.add(new l("fname","نام").filterText().hidden()),n.add(new l("lname","نام خانوادگی").filterText().hidden()),n.add(new l("name","نام و نام خانوادگی").filterText()),n.add(new l("mobile","موبایل").filterText().hidden().noSort()),n.add(new l("city_id","شهر").hidden().renderSlot("city").filterKey("city_id").filterSelect(r.cityFilters)),n.add(new l("reagent.name","کارشناس فروش").filterText().noSort()),n.add(new l("gram_level","سطح اعتبار").filterNumber().noSort()),n.add(new l("percent","درصد").filterNumber().noSort()),n.add(new l("remain","بدهی گرمی").filterNumber().noSort()),n.add(new l("rial_remain","بدهی ریالی").filterNumber().noSort()),n.add(new l("caj","تاریخ ثبت").filterDate().noSort()),n.add(new l("uaj","بروزرسانی").hidden().filterDate().noSort()),n.add(new l("sts_str","وضعیت ثبت سفارش").renderSlot("sts").noSort()),n.add(new l("active","وضعیت حساب کاربری").renderSlot("active").noSort().filterSelect({1:"فعال","-1":"غیر فعال"})),n.add(new l("phone","تلفن").filterText().hidden().noSort()),n.add(new l("address","آدرس").filterText().hidden().noSort()),n.add(new l("store_name","نام مغازه").filterText().hidden().noSort()),n.add(new l("zone","منطقه").filterText().hidden().noSort()),n.add(new l("pasazh_name","نام پاساژ").filterText().hidden().noSort()),n.add(new l("opt","عملیات").noSort().renderSlot("opt")),n}export{Qe as O,Ye as _,Ze as b};