Files
shanxia2.0/miniprogram/api/dbOptions.js
T
2026-09-12 19:42:20 +08:00

75 lines
2.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 地磅表单 options(对齐 H5 pickers:CRM 客户/产品 + 运输车辆)
*/
import { request, parseResponseJson } from '@/utils/request'
import db from '@/utils/dbRequest'
function extractOptions(res) {
if (Array.isArray(res)) return res
if (!res || typeof res !== 'object') return []
return res.list || res.rows || res.items || res.data?.list || res.data?.rows || []
}
function unwrapPortal(res) {
const result = parseResponseJson(res)
if (result && typeof result === 'object' && 'code' in result) {
if (result.code === 200 || result.code === 0) {
return result.data !== undefined ? result.data : result
}
const msg = result.message || result.msg || '请求失败'
uni.showToast({ title: String(msg).slice(0, 40), icon: 'none' })
throw new Error(msg)
}
return result
}
/** CRM 客户下拉 */
export async function fetchCustomerOptions(keyword) {
const res = await request({
url: '/web/crm/customer/options',
method: 'POST',
data: {
limit: keyword?.trim() ? 50 : 20,
...(keyword?.trim() ? { keyword: keyword.trim() } : {})
}
})
return extractOptions(unwrapPortal(res))
}
/** CRM 产品下拉(上架) */
export async function fetchProductOptions(keyword) {
const res = await request({
url: '/web/crm/products/options',
method: 'POST',
data: {
limit: keyword?.trim() ? 50 : 20,
...(keyword?.trim() ? { keyword: keyword.trim() } : {})
}
})
return extractOptions(unwrapPortal(res))
}
/** 运输车辆车牌 */
export async function fetchVehicleOptions(q) {
try {
const data = await db.get('/transport/vehicle', {
...(q?.trim() ? { q: q.trim() } : {}),
page: 1,
pageSize: 100
})
return extractOptions(data)
} catch (e) {
// 兼容门户信封
const res = await request({
url: '/transport/vehicle',
method: 'GET',
data: {
...(q?.trim() ? { q: q.trim() } : {}),
page: 1,
pageSize: 100
}
})
return extractOptions(unwrapPortal(res))
}
}