diff --git a/common/js/oss-upload.js b/common/js/oss-upload.js
index 16eb83f..0309bff 100644
--- a/common/js/oss-upload.js
+++ b/common/js/oss-upload.js
@@ -38,6 +38,23 @@ function basenameFromPath(filePath) {
return parts[parts.length - 1] || '';
}
+/**
+ * 根据文件路径/文件名推断 Content-Type
+ * 小程序本地临时路径通常没有 MIME,必须按扩展名推断,否则 OSS 会落成 octet-stream
+ * 与后端 Policy 的 starts-with $Content-Type 配套:表单必须带该字段
+ */
+function resolveUploadContentType(filePath, fileName) {
+ const name = String(fileName || filePath || '').toLowerCase();
+ if (name.endsWith('.pdf')) return 'application/pdf';
+ if (name.endsWith('.png')) return 'image/png';
+ if (name.endsWith('.jpg') || name.endsWith('.jpeg')) return 'image/jpeg';
+ if (name.endsWith('.gif')) return 'image/gif';
+ if (name.endsWith('.webp')) return 'image/webp';
+ if (name.endsWith('.bmp')) return 'image/bmp';
+ // 医生端直传以图片为主,缺省按 jpeg,避免浏览器当附件下载
+ return 'image/jpeg';
+}
+
/**
* @returns {Promise<{ accessKeyId, policy, signature, host, bucket, key, expire }>}
*/
@@ -65,6 +82,8 @@ export async function uploadToOss(options) {
const signature = await getOssSignatureFromBackend();
const objectName = generateObjectName(filePath);
+ // Content-Type / Content-Disposition 必须与后端 PostPolicy 条件一致,否则 OSS 报 AccessDenied
+ // (starts-with 空前缀要求字段存在;inline 便于浏览器预览而非附件下载)
const formData = {
key: objectName,
policy: signature.policy,
@@ -72,6 +91,8 @@ export async function uploadToOss(options) {
signature: signature.signature,
success_action_status: '200',
'x-oss-object-acl': 'public-read',
+ 'Content-Type': resolveUploadContentType(filePath, fileName),
+ 'Content-Disposition': 'inline',
};
return new Promise((resolve, reject) => {
diff --git a/pages/pharmacist/pharmacist-my.vue b/pages/pharmacist/pharmacist-my.vue
index 03ffb8a..83af88b 100644
--- a/pages/pharmacist/pharmacist-my.vue
+++ b/pages/pharmacist/pharmacist-my.vue
@@ -1,4 +1,5 @@
+
@@ -17,12 +18,15 @@
职业机构
- {{list.store.name || ' '}}
+ {{(list.store && list.store.name) || ' '}}
-
+
+
+
+
个人资料
@@ -31,8 +35,17 @@
设置
+
+
+
+
+
+ 退出登录
+
@@ -40,10 +53,15 @@
@@ -136,19 +161,6 @@
}
diff --git a/subPackages/sub_online_reception/components/MessageBubble.vue b/subPackages/sub_online_reception/components/MessageBubble.vue
index dcd0792..478f84c 100644
--- a/subPackages/sub_online_reception/components/MessageBubble.vue
+++ b/subPackages/sub_online_reception/components/MessageBubble.vue
@@ -131,6 +131,18 @@
主诉
{{ parsedObj.chief_complaint }}
+
+ 适用症/症状
+ {{ parsedObj.illnessInfo }}
+
+
+ 是否就诊过
+ {{ parsedObj.has_visited === 1 || parsedObj.has_visited === '1' ? '是' : '否' }}
+
+
+ 是否使用过药品
+ {{ parsedObj.has_used_drug === 1 || parsedObj.has_used_drug === '1' ? '是' : '否' }}
+
所选药品
@@ -185,6 +197,21 @@
患者选择
{{ followUpAnsweredLabel }}
+
+ 是否就诊过
+ {{ parsedObj.has_visited === 1 || parsedObj.has_visited === '1' ? '是' : '否' }}
+
+
+ 适用症/症状
+ {{ parsedObj.illness_info }}
+
+
+ 补充信息
+ {{ parsedObj.supplement }}
+
请在挂号后的用药确认页完成选择,此处不可更改
@@ -294,7 +321,7 @@
- {{ parsedObj.reason || '本次服务已完成' }}
+ {{ parsedObj.end_reason || parsedObj.reason || parsedObj.message || '本次服务已完成' }}
diff --git a/subPackages/sub_workbench/prescription_v2/index.vue b/subPackages/sub_workbench/prescription_v2/index.vue
index 73db051..64eeb6a 100644
--- a/subPackages/sub_workbench/prescription_v2/index.vue
+++ b/subPackages/sub_workbench/prescription_v2/index.vue
@@ -2615,6 +2615,11 @@ export default {
const doctorId = uni.getStorageSync('doctor_id') || uni.getStorageSync('user_id');
if (!doctorId) return;
const senderUserId = String(doctorId).startsWith('doctor-') ? String(doctorId) : `doctor-${doctorId}`;
+ // 在线复诊开方后:电子处方卡 + 购药指引 + 用药温馨提示
+ const tipTexts = [
+ '根据您的病情描述,已为您开具电子处方,请点击上方的‘立即支付’,进行购药;如有商品价格和订单等问题请咨询平台客服。',
+ '温馨提示:用药前请详细阅读药品说明书,并严格按照线下医嘱用药。如用药过程中出现病情变化或其它不适症状,请立即停药并及时就医。(请您注意,如果您尚未在医院就诊或未曾使用过本次申请的药品,请暂时不要支付订单。我们建议您在医生的指导下使用药品,以确保用药安全。)',
+ ];
try {
await sendToUserHttpApi({
room_id: roomId,
@@ -2624,6 +2629,17 @@ export default {
message_content: JSON.stringify(inner),
duration: 0
});
+ for (let i = 0; i < tipTexts.length; i++) {
+ // 温馨提示由小助手发送,处方卡仍由医生发送
+ await sendToUserHttpApi({
+ room_id: roomId,
+ sender_user_id: 'doctor_assistant',
+ receiver_user_id: receiverUserId,
+ message_type: 0,
+ message_content: tipTexts[i],
+ duration: 0
+ });
+ }
} catch (e) {
console.warn('trySendPrescriptionChatMessage', e);
}