Files
xk-doctor-wx/api/regionPicker.js
李琦 e6e51ac805 feat: 地区选择器改走接口,修复辅料列表 key 重复
静态地区树改为 regionPicker API;新建就诊人异步解析地址;处方辅料列表 :key 改用 index 避免 drug_id 重复。
2026-10-09 10:02:59 +08:00

73 lines
1.9 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.
/**
* 省市区选择器接口(xk-api,取值用 code / result / message,配合 unwrapXkApi)
* 按 loginMode 切角色前缀,对齐 upload.js:医生走 region-picker,业务员/平台/诊所管理员走带前缀路由
* 为什么:doctor.php 里同名路由只会命中最先注册的医生鉴权组,业务员 token 会被 401
*/
import { req } from '@/common/js/index.js'
/**
* 按当前登录角色解析 region-picker 前缀与鉴权头标记
* @returns {{ prefix: string, header: Record<string, string> }}
*/
function resolveRegionPickerRoute() {
const mode = uni.getStorageSync('loginMode')
if (mode === 'salesperson') {
return {
prefix: '/newApi/salesperson-region-picker/',
header: { _salesperson: '1' },
}
}
if (mode === 'platform_admin') {
return {
prefix: '/newApi/platform-admin-region-picker/',
header: { _platformAdmin: '1' },
}
}
if (mode === 'clinic_admin') {
return {
prefix: '/newApi/clinic-admin-region-picker/',
header: { _clinicAdmin: '1' },
}
}
// 医生 / 药师等默认
return {
prefix: '/newApi/region-picker/',
header: {},
}
}
function regionPickerRequest(path, data) {
const { prefix, header } = resolveRegionPickerRoute()
return req.request({
url: `${prefix}${path}`,
method: 'GET',
data,
header,
})
}
/** 按 pid 拉一层子节点 */
export function getRegionChildren(pid = 0) {
return regionPickerRequest('children', { pid })
}
/** 地名/首拼/全拼合一搜索 */
export function searchRegions(keyword, limit = 30) {
return regionPickerRequest('search', { keyword, limit })
}
/** 按省+叶回显 */
export function resolveRegionPair(provinceId, cityId) {
return regionPickerRequest('resolve', {
province_id: provinceId,
city_id: cityId,
})
}
/** 批量 ID 解析 */
export function resolveRegionIds(ids) {
return regionPickerRequest('resolve', {
ids: (ids || []).join(','),
})
}