Files
xk-doctor-wx/api/upload.js
2026-06-05 12:28:36 +08:00

96 lines
2.7 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.
import { req } from '@/common/js/index.js';
const SALESPERSON_PREFIX = '/newApi/salesperson-upload/';
const PLATFORM_PREFIX = '/newApi/platform-admin-upload/';
function uploadChatFileByPrefix(prefix, headerKey, params) {
return req.request({
url: `${prefix}upload-chat-file`,
type: 'upload',
method: 'POST',
filePath: params.filePath,
name: params.name || 'file',
formData: params.formData || {},
header: {
[headerKey]: '1',
},
});
}
/**
* 业务员录入/聊天同款:服务端转存 OSS,返回 url
*/
export function uploadSalespersonChatFileApi(params) {
return uploadChatFileByPrefix(SALESPERSON_PREFIX, '_salesperson', params);
}
/**
* 平台管理员录入上传(与业务员对称)
*/
export function uploadPlatformAdminChatFileApi(params) {
return uploadChatFileByPrefix(PLATFORM_PREFIX, '_platformAdmin', params);
}
/**
* 按当前 loginMode 选择上传接口
*/
export function uploadBusinessChatFileApi(params) {
const mode = uni.getStorageSync('loginMode');
if (mode === 'platform_admin') {
return uploadPlatformAdminChatFileApi(params);
}
return uploadSalespersonChatFileApi(params);
}
function unwrapUploadResult(res) {
if (res == null) return null;
if (res.result !== undefined && res.result !== null) return res.result;
if (res.data && res.data.result !== undefined) return res.data.result;
return res.data != null ? res.data : res;
}
export function extractUploadUrl(res) {
const inner = unwrapUploadResult(res);
if (!inner) return null;
return inner.url || inner.path || null;
}
const LEGACY_ADMIN_UPLOAD_URL = 'https://api.xiaokang88.com/open-api/upload/old-admin-img';
/**
* 录入/管理端旧版图片上传(与 d-upload、select-avatar-image 一致)
*/
export function uploadLegacyAdminImage(params) {
const { filePath, name = 'file', formData = { store_id: '11001' } } = params || {};
return new Promise((resolve, reject) => {
uni.uploadFile({
url: LEGACY_ADMIN_UPLOAD_URL,
filePath,
name,
formData,
header: {
authorization: `Bearer ${uni.getStorageSync('token')}`,
},
success: (uploadRes) => {
try {
const data =
typeof uploadRes.data === 'string' ? JSON.parse(uploadRes.data) : uploadRes.data;
if (![200, 201, 204].includes(uploadRes.statusCode)) {
reject(new Error((data && data.msg) || '上传失败'));
return;
}
const url = data && data.data && data.data.url;
if (!url) {
reject(new Error('上传失败'));
return;
}
resolve(url);
} catch (e) {
reject(e);
}
},
fail: reject,
});
});
}