diff --git a/src/pages/workorders/api.js b/src/pages/workorders/api.js index 858ed5da..9f4a157b 100644 --- a/src/pages/workorders/api.js +++ b/src/pages/workorders/api.js @@ -23,6 +23,7 @@ export const getWorkOrderById = async (id) => { title: wo.title ?? wo.workerOrderTitle ?? "", location: wo.location ?? "", locationId: wo.locationId != null ? String(wo.locationId) : "", + locationZip: wo.locationZip ?? "", assignedTo: wo.assignee ?? wo.assignedTo ?? "", dueDate: wo.dueDate ? wo.dueDate.split("T")[0] : "", createdDate: wo.createdDate ? wo.createdDate.split("T")[0] : "", @@ -111,11 +112,13 @@ export const fetchDropdownOptions = async (category, parent) => { return (await apiGet(url)) || []; }; -export const fetchVendorsDropdown = async (trade) => { +export const fetchVendorsDropdown = async (trade, siteZip) => { const { get: apiGet } = await import("../../apiUtil"); - let url = `${API_URL}/Vendor/Dropdown`; - if (trade) url += `?trade=${encodeURIComponent(trade)}`; - return (await apiGet(url)) || []; + const params = new URLSearchParams(); + if (trade) params.append("trade", trade); + if (siteZip) params.append("siteZip", siteZip); + const qs = params.toString(); + return (await apiGet(`${API_URL}/Vendor/Dropdown${qs ? `?${qs}` : ""}`)) || []; }; export const dispatchToVendor = async (workOrderId, payload) => { diff --git a/src/pages/workorders/view/WorkOrderViewPage.css b/src/pages/workorders/view/WorkOrderViewPage.css index a35b0068..f537cc21 100644 --- a/src/pages/workorders/view/WorkOrderViewPage.css +++ b/src/pages/workorders/view/WorkOrderViewPage.css @@ -524,16 +524,33 @@ background: #e6f0ff; } +.woDispatchVendorInfo { + display: flex; + flex-direction: column; + gap: 1px; + min-width: 0; +} + .woDispatchVendorName { font-size: 13px; font-weight: 500; - display: block; } -.woDispatchVendorTrades { +.woDispatchVendorAddr { + font-size: 11px; + color: #666; +} + +.woDispatchVendorMeta { + display: flex; + gap: 8px; font-size: 11px; color: #999; - display: block; +} + +.woDispatchVendorDist { + font-weight: 600; + color: #007bff; } .woDispatchLoading { diff --git a/src/pages/workorders/view/WorkOrderViewPage.js b/src/pages/workorders/view/WorkOrderViewPage.js index c3aad2d4..387587a3 100644 --- a/src/pages/workorders/view/WorkOrderViewPage.js +++ b/src/pages/workorders/view/WorkOrderViewPage.js @@ -171,7 +171,7 @@ function DispatchModal({ wo, onClose, onDispatched }) { const [loaded, setLoaded] = useState(false); useEffect(() => { - fetchVendorsDropdown(wo.trade).then((data) => { + fetchVendorsDropdown(wo.trade, wo.locationZip).then((data) => { setVendors(data); setLoaded(true); }).catch(() => setLoaded(true)); @@ -228,9 +228,13 @@ function DispatchModal({ wo, onClose, onDispatched }) { {filteredVendors.map((v) => (