Files
xk-doctor-wx/api/storeManage.js

153 lines
4.4 KiB
JavaScript
Raw Normal View History

/**
* 门店管理 API:按 loginMode 切换平台超管 / 业务员前缀
* 业务员与超管复用同一套门店列表/详情页
*/
import { req } from '@/common/js/index.js';
import { unwrapClinicRes } from '@/api/clinicAdmin.js';
function getStoreContext() {
const mode = uni.getStorageSync('loginMode');
if (mode === 'salesperson') {
return {
prefix: '/newApi/salesperson-store',
configPrefix: '',
headerKey: '_salesperson',
isSalesperson: true,
};
}
return {
prefix: '/newApi/platform-admin-store',
configPrefix: '/newApi/platform-admin-salesperson-store-config',
headerKey: '_platformAdmin',
isSalesperson: false,
};
}
function storeRequest(options) {
const ctx = getStoreContext();
return req.request({
...options,
header: {
...(options.header || {}),
[ctx.headerKey]: '1',
},
}).then((res) => {
const data = unwrapClinicRes(res);
const ok = res && (res.code === 0 || (res.errcode != null && Number(res.errcode) !== -1));
return { res, data, ok };
});
}
/** 业务员是否允许编辑门店(系统配置开关) */
export function getSalespersonStoreEditPermission() {
return storeRequest({
url: '/newApi/salesperson-store/edit-permission',
method: 'GET',
});
}
export function getStoreList(params) {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/list`, method: 'GET', data: params });
}
export function getStoreDetail(id) {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/detail`, method: 'GET', data: { id } });
}
export function updateStore(data) {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/update`, method: 'POST', data });
}
export function openStorePcWindows(id) {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/open-pc-windows`, method: 'POST', data: { id } });
}
export function openStoreQrCode(id) {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/open-qr-code`, method: 'POST', data: { id } });
}
export function updateStoreShippingFree(id) {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/update-shipping-free`, method: 'POST', data: { id } });
}
export function updateStoreSubscribeStatus(id) {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/update-subscribe-status`, method: 'POST', data: { id } });
}
export function updateStoreSeeRate(id) {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/update-see-rate`, method: 'POST', data: { id } });
}
export function updateStoreAllowInsurance(id) {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/update-allow-insurance-category`, method: 'POST', data: { id } });
}
export function updateStoreClinicType(id, clinicType) {
const { prefix } = getStoreContext();
return storeRequest({
url: `${prefix}/update-clinic-type`,
method: 'POST',
data: { id, clinic_type: clinicType },
});
}
export function toggleSalespersonSeePrice(storeId) {
const { configPrefix, isSalesperson } = getStoreContext();
if (isSalesperson || !configPrefix) {
return Promise.resolve({ ok: false, data: null, res: null });
}
return storeRequest({
url: `${configPrefix}/toggle-see-price`,
method: 'POST',
data: { store_id: storeId },
});
}
export function getStoreDrugsByType(storeId, type) {
const { prefix } = getStoreContext();
return storeRequest({
url: `${prefix}/get-store-drugs-by-type`,
method: 'GET',
data: { store_id: storeId, type },
});
}
export function updateStoreDrugPrices(data) {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/update-store-drug-prices`, method: 'POST', data });
}
export function getDoctorOption(storeId) {
const { prefix } = getStoreContext();
return storeRequest({
url: `${prefix}/doctor-option`,
method: 'GET',
data: storeId ? { store_id: storeId } : {},
});
}
export function getInternetMedicalStoreOption() {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/internet-medical-store-option`, method: 'GET' });
}
export function bindOnlineConsultation(data) {
const { prefix } = getStoreContext();
return storeRequest({ url: `${prefix}/bind-online-consultation`, method: 'POST', data });
}
export function isSalespersonStoreMode() {
return uni.getStorageSync('loginMode') === 'salesperson';
}
export { getStoreContext };