From 70eeb19867ab519e0097f62e86c0848d869aad22 Mon Sep 17 00:00:00 2001 From: zoujiandong <10130823232@qq.com> Date: Tue, 23 Sep 2025 19:00:32 +0800 Subject: [PATCH] =?UTF-8?q?9.23=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api.js | 44 +- pages.json | 60 ++ pages/live/live.vue | 2 +- pages/meeting/meeting.vue | 2 +- pages/my/my.vue | 12 +- pages/patientClass/patientClass.vue | 2 +- pages_app/buyPoint/buyPoint.vue | 2 +- pages_app/changeMobile/changeMobile.vue | 4 +- pages_app/changePassword/index.vue | 2 +- pages_app/feedback/feedback-logoff.vue | 2 +- pages_app/feedback/feedback.vue | 2 +- pages_app/followDetail/followDetail.vue | 2 +- pages_app/hot/hot.vue | 4 +- pages_app/idcardAuth/idcardAuth.vue | 6 +- pages_app/liveReplay/liveReplay.vue | 2 +- pages_app/login/login.vue | 2 +- pages_app/myAccount/withdrawal.vue | 4 +- pages_app/myCode/myCode.vue | 2 +- pages_app/myCollect/english.vue | 2 +- pages_app/myFlower/myFlower.vue | 2 +- pages_app/myPatient/myPatient.vue | 4 +- pages_app/myPoint/myPoint.vue | 2 +- pages_app/myWelfareCard/exchange.vue | 2 +- pages_app/newsList/newsList.vue | 2 +- pages_app/patientMsg/patientMsg.vue | 10 +- pages_app/patientRemark/patientRemark.vue | 2 +- pages_app/pay/pay.vue | 2 +- pages_app/pointGoods/pointGoods.vue | 2 +- pages_app/pointMall/pointMall.vue | 2 +- pages_app/ppt/ppt.vue | 2 +- pages_app/pwdLogin/pwdLogin.vue | 4 +- pages_app/qikan/qikan.vue | 4 +- pages_app/schedule/schedule.vue | 2 +- pages_app/searchNews/searchNews.vue | 2 +- pages_app/selectPatient/selectPatient.vue | 23 +- pages_app/setting/setting.vue | 2 +- pages_app/videoHistory/videoHistory.vue | 2 +- pages_app/visit/visit.vue | 4 +- pages_app/visitNote/visitNote.vue | 2 +- pages_app/writeInfo/writeInfo.vue | 2 +- pages_app/zhinan/zhinan.vue | 4 +- pages_app/zhinanList/zhinanList.vue | 4 +- pages_chat/addAddress/addAddress.vue | 191 ++++ pages_chat/article/article.vue | 2 +- pages_chat/chat/message/message-custom.vue | 10 +- pages_chat/chat/message/message-input.vue | 107 ++- pages_chat/editAddress/editAddress.vue | 178 ++++ pages_chat/groupMessage/groupMessage.vue | 124 ++- pages_chat/groupSend/groupSend.vue | 59 +- pages_chat/note/note.vue | 261 ++++++ pages_chat/outManage/outManage.vue | 547 ++++++++++++ pages_chat/outPatient/addSchedule.vue | 325 +++++++ pages_chat/outPatient/outPatient.vue | 825 ++++++++++++++++++ pages_chat/outPatient/publishSuspension.vue | 258 ++++++ pages_chat/patientGroup/patientGroup.vue | 6 +- pages_chat/quickReply/quickReply.vue | 9 +- pages_chat/searchArticle/searchArticle.vue | 2 +- pages_chat/stopPatient/stopPatient.vue | 139 +++ pages_course/course_detail/course_detail.vue | 2 +- .../course_payment/course_payment.vue | 2 +- pages_course/course_review/course_review.vue | 2 +- .../invoice_detail/invoice_detail.vue | 2 +- pages_course/invoice_info/invoice_info.vue | 2 +- pages_course/order_record/order_record.vue | 6 +- pages_goods/coupon/coupon.vue | 2 +- pages_goods/exchange/address.vue | 2 +- pages_goods/exchange/address_list.vue | 2 +- pages_goods/exchange/index.vue | 2 +- static/addoutpa_true.png | Bin 0 -> 2189 bytes utils/request.js | 15 +- 70 files changed, 3187 insertions(+), 140 deletions(-) create mode 100644 pages_chat/addAddress/addAddress.vue create mode 100644 pages_chat/editAddress/editAddress.vue create mode 100644 pages_chat/note/note.vue create mode 100644 pages_chat/outManage/outManage.vue create mode 100644 pages_chat/outPatient/addSchedule.vue create mode 100644 pages_chat/outPatient/outPatient.vue create mode 100644 pages_chat/outPatient/publishSuspension.vue create mode 100644 pages_chat/stopPatient/stopPatient.vue create mode 100644 static/addoutpa_true.png diff --git a/api/api.js b/api/api.js index 195ce04..cfb8e76 100644 --- a/api/api.js +++ b/api/api.js @@ -508,8 +508,48 @@ const api = { deleteQuickReply(data){ return request('/expertAPI/deleteQuickReply', data, 'post', false); }, - - + listOutPatient(data){ + return request('/expertAPI/listOutPatient', data, 'post', false); + }, + stopOutPatientList(data){ + return request('/expertAPI/stopOutPatientList', data, 'post', false); + }, + listWorkPlace(data){ + return request('/expertAPI/listWorkPlace', data, 'post', false); + }, + addOutPatient(data){ + return request('/expertAPI/addOutPatient', data, 'post', false); + }, + updateOutPatient(data){ + return request('/expertAPI/updateOutPatientA', data, 'post', false); + }, + deleteOutPatient(data){ + return request('/expertAPI/deleteOutPatient', data, 'post', false); + }, + addWorkPlace(data){ + return request('/expertAPI/addWorkPlace', data, 'post', false); + }, + updateWorkPlace(data){ + return request('/expertAPI/editWorkPlace', data, 'post', false); + }, + deleteWorkPlace(data){ + return request('/expertAPI/deleteWorkPlace', data, 'post', false); + }, + hospitalList(data){ + return request('/expertAPI/hospitalList', data, 'post', false); + }, + addStopPatient(data){ + return request('/expertAPI/addStopOutPatient', data, 'post', false); + }, + deleteStopPatient(data){ + return request('/expertAPI/deleteStopOutPatient', data, 'post', false); + }, + addOutPatientA(data){ + return request('/expertAPI/addOutPatientA', data, 'post', false); + }, + delGroupSendMsg(data){ + return request('/expertAPI/delGroupSendMsg', data, 'post', false); + }, } export default api \ No newline at end of file diff --git a/pages.json b/pages.json index 14dac99..0ae47ab 100644 --- a/pages.json +++ b/pages.json @@ -1107,6 +1107,46 @@ } } }, + { + "path": "outPatient/outPatient", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "uni-app分页", + "app": { + "bounce": "none" + } + } + }, + { + "path": "addAddress/addAddress", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "uni-app分页", + "app": { + "bounce": "none" + } + } + }, + { + "path": "editAddress/editAddress", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "uni-app分页", + "app": { + "bounce": "none" + } + } + }, + { + "path": "outManage/outManage", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "uni-app分页", + "app": { + "bounce": "none" + } + } + }, { "path": "groupMessage/groupMessage", "style": { @@ -1117,6 +1157,26 @@ } } } + ,{ + "path": "stopPatient/stopPatient", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "uni-app分页", + "app": { + "bounce": "none" + } + } + } + ,{ + "path": "note/note", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "uni-app分页", + "app": { + "bounce": "none" + } + } + } ] }], diff --git a/pages/live/live.vue b/pages/live/live.vue index f6b9119..f45533d 100644 --- a/pages/live/live.vue +++ b/pages/live/live.vue @@ -699,7 +699,7 @@ isRefreshing.value = false; uni.showToast({ title: '刷新成功', - icon: 'success', + icon: 'none', duration: 1500 }); }, 500); diff --git a/pages/meeting/meeting.vue b/pages/meeting/meeting.vue index 5f1ec0f..e8bc4f0 100644 --- a/pages/meeting/meeting.vue +++ b/pages/meeting/meeting.vue @@ -407,7 +407,7 @@ meetingListBySearchU(filters).then(() => { uni.showToast({ title: '刷新成功', - icon: 'success', + icon: 'none', duration: 1500 }); }); diff --git a/pages/my/my.vue b/pages/my/my.vue index f18e982..8f90507 100644 --- a/pages/my/my.vue +++ b/pages/my/my.vue @@ -7,7 +7,7 @@ - + @@ -54,7 +54,7 @@ 随访二维码 - + 出诊计划 @@ -288,7 +288,7 @@ console.log('签到'); uni.showToast({ title: '签到成功', - icon: 'success' + icon: 'none' }); }; @@ -309,6 +309,12 @@ case 'qrcode': url="/pages_app/myCode/myCode" break; + case 'myInfo': + url="/pages_app/personInfo/personInfo" + break; + case 'plan': + url="/pages_chat/outPatient/outPatient" + break; case 'myVideos': url="/pages_app/myVideo/myVideo" break; diff --git a/pages/patientClass/patientClass.vue b/pages/patientClass/patientClass.vue index f96f2ce..d579107 100644 --- a/pages/patientClass/patientClass.vue +++ b/pages/patientClass/patientClass.vue @@ -288,7 +288,7 @@ await polularScienceArticleListByKeywordsNew(true); uni.showToast({ title: '刷新成功', - icon: 'success', + icon: 'none', duration: 1500 }); }; diff --git a/pages_app/buyPoint/buyPoint.vue b/pages_app/buyPoint/buyPoint.vue index 9874d05..77d868f 100644 --- a/pages_app/buyPoint/buyPoint.vue +++ b/pages_app/buyPoint/buyPoint.vue @@ -103,7 +103,7 @@ if (res.confirm) { uni.showToast({ title: '购买成功', - icon: 'success' + icon: 'none' }); } } diff --git a/pages_app/changeMobile/changeMobile.vue b/pages_app/changeMobile/changeMobile.vue index f3ad3ed..2cda8f7 100644 --- a/pages_app/changeMobile/changeMobile.vue +++ b/pages_app/changeMobile/changeMobile.vue @@ -100,7 +100,7 @@ const sendCode = () => { type: 6 }).then(res => { if (res.code === 200) { - uni.showToast({ title: '验证码已发送', icon: 'success' }); + uni.showToast({ title: '验证码已发送', icon: 'none' }); } else { uni.showToast({ title: res.msg || '验证码发送失败', icon: 'none' }); } @@ -125,7 +125,7 @@ const onConfirm = () => { oldMobile: uni.getStorageSync('userInfo').mobile }).then(res => { if (res.code === 200) { - uni.showToast({ title: '更换手机号成功', icon: 'success' }); + uni.showToast({ title: '更换手机号成功', icon: 'none' }); } else { uni.showToast({ title: res.msg || '更换手机号失败', icon: 'none' }); } diff --git a/pages_app/changePassword/index.vue b/pages_app/changePassword/index.vue index 7ef00ba..5e0e9ab 100644 --- a/pages_app/changePassword/index.vue +++ b/pages_app/changePassword/index.vue @@ -76,7 +76,7 @@ const onConfirm = () => { password: newPwd.value }).then(res => { if (res.code === 200) { - uni.showToast({ title: '修改密码成功', icon: 'success' }); + uni.showToast({ title: '修改密码成功', icon: 'none' }); // 清除登录状态 uni.clearStorageSync(); setTimeout(() => { diff --git a/pages_app/feedback/feedback-logoff.vue b/pages_app/feedback/feedback-logoff.vue index 86eacbd..260db61 100644 --- a/pages_app/feedback/feedback-logoff.vue +++ b/pages_app/feedback/feedback-logoff.vue @@ -92,7 +92,7 @@ }).then(res => { console.log(res); uni.hideLoading(); - uni.showToast({ title: '注销申请已提交', icon: 'success' }); + uni.showToast({ title: '注销申请已提交', icon: 'none' }); setTimeout(() => { uni.navigateBack(); }, 1500); diff --git a/pages_app/feedback/feedback.vue b/pages_app/feedback/feedback.vue index e4387c4..7d5818a 100644 --- a/pages_app/feedback/feedback.vue +++ b/pages_app/feedback/feedback.vue @@ -73,7 +73,7 @@ }).then(res => { console.log(res); uni.hideLoading(); - uni.showToast({ title: '提交成功', icon: 'success' }); + uni.showToast({ title: '提交成功', icon: 'none' }); }); uni.navigateBack(); }; diff --git a/pages_app/followDetail/followDetail.vue b/pages_app/followDetail/followDetail.vue index 631c490..ad4df0c 100644 --- a/pages_app/followDetail/followDetail.vue +++ b/pages_app/followDetail/followDetail.vue @@ -84,7 +84,7 @@ const ec = curr?.getOpenerEventChannel?.() ec?.emit && ec.emit('onVisitNoteSubmit', { note: note.value, idx: Number(idx.value) }) } catch (e) {} - uni.showToast({ title: '已添加', icon: 'success' }) + uni.showToast({ title: '已添加', icon: 'none' }) setTimeout(() => goBack(), 600) } const noop = () => {} diff --git a/pages_app/hot/hot.vue b/pages_app/hot/hot.vue index a401db9..de61bdb 100644 --- a/pages_app/hot/hot.vue +++ b/pages_app/hot/hot.vue @@ -225,7 +225,7 @@ const refreshData = async () => { uni.showToast({ title: '刷新成功', - icon: 'success' + icon: 'none' }) } catch (error) { console.error('刷新失败:', error) @@ -345,7 +345,7 @@ const downloadGuideline = (item) => { if (res.statusCode === 200) { uni.showToast({ title: '下载成功', - icon: 'success' + icon: 'none' }) } }, diff --git a/pages_app/idcardAuth/idcardAuth.vue b/pages_app/idcardAuth/idcardAuth.vue index 03ffecf..5bada58 100644 --- a/pages_app/idcardAuth/idcardAuth.vue +++ b/pages_app/idcardAuth/idcardAuth.vue @@ -237,7 +237,7 @@ const onNextStep = async () => { const res = {code:200} if (res.code === 200) { - uni.showToast({ title: '身份验证成功', icon: 'success' }); + uni.showToast({ title: '身份验证成功', icon: 'none' }); currentStep.value = 2; isLoading.value = false; } else { @@ -283,7 +283,7 @@ const onGetSmsCode = async () => { type: 3 }); if (res.code === 200) { - uni.showToast({ title: '短信验证码发送成功', icon: 'success' }); + uni.showToast({ title: '短信验证码发送成功', icon: 'none' }); // 开始60秒倒计时 countdown.value = 60; if (countdownTimer) clearInterval(countdownTimer); @@ -314,7 +314,7 @@ const onConfirmSms = async () => { id_name: formData.value.name }); if (res.code === 200) { - uni.showToast({ title: '银行卡添加成功', icon: 'success' }); + uni.showToast({ title: '银行卡添加成功', icon: 'none' }); navTo({ url: '/pages_app/idcardAuth/bankCardList' }); diff --git a/pages_app/liveReplay/liveReplay.vue b/pages_app/liveReplay/liveReplay.vue index 1cc2786..8cc5504 100644 --- a/pages_app/liveReplay/liveReplay.vue +++ b/pages_app/liveReplay/liveReplay.vue @@ -627,7 +627,7 @@ isRefreshing.value = false; uni.showToast({ title: '刷新成功', - icon: 'success', + icon: 'none', duration: 1500 }); }, 500); diff --git a/pages_app/login/login.vue b/pages_app/login/login.vue index dbfb708..a5ebf07 100644 --- a/pages_app/login/login.vue +++ b/pages_app/login/login.vue @@ -143,7 +143,7 @@ uni.hideLoading(); uni.showToast({ title: '登录成功', - icon: 'success' + icon: 'none' }); // 跳转到首页 diff --git a/pages_app/myAccount/withdrawal.vue b/pages_app/myAccount/withdrawal.vue index 4782b76..3b40763 100644 --- a/pages_app/myAccount/withdrawal.vue +++ b/pages_app/myAccount/withdrawal.vue @@ -315,7 +315,7 @@ const onGetSmsCode = async () => { if (res.code === 200) { uni.showToast({ title: '短信验证码发送成功', - icon: 'success' + icon: 'none' }) // 开始60秒倒计时 countdown.value = 60 @@ -368,7 +368,7 @@ const onConfirmSms = async () => { if(res.code === 200){ uni.showToast({ title: '提现申请已提交', - icon: 'success' + icon: 'none' }) uni.navigateBack() } diff --git a/pages_app/myCode/myCode.vue b/pages_app/myCode/myCode.vue index 55f07f2..8414586 100644 --- a/pages_app/myCode/myCode.vue +++ b/pages_app/myCode/myCode.vue @@ -100,7 +100,7 @@ const onSave = () => { uni.hideLoading(); uni.showToast({ title: '保存成功', - icon: 'success', + icon: 'none', duration: 2000 }); }, diff --git a/pages_app/myCollect/english.vue b/pages_app/myCollect/english.vue index a606e72..d463822 100644 --- a/pages_app/myCollect/english.vue +++ b/pages_app/myCollect/english.vue @@ -154,7 +154,7 @@ const deleteSelected = () => { uni.showToast({ title: '删除成功', - icon: 'success' + icon: 'none' }); } else { uni.showToast({ diff --git a/pages_app/myFlower/myFlower.vue b/pages_app/myFlower/myFlower.vue index 4207abb..0871a8d 100644 --- a/pages_app/myFlower/myFlower.vue +++ b/pages_app/myFlower/myFlower.vue @@ -168,7 +168,7 @@ const onRefresh = async () => { noMore.value = false; records.value = []; // 清空数据 getFlowerList(); // 重新获取第一页数据 - uni.showToast({ title: '刷新成功', icon: 'success' }); + uni.showToast({ title: '刷新成功', icon: 'none' }); } catch (error) { console.error('刷新失败:', error); uni.showToast({ title: '刷新失败', icon: 'error' }); diff --git a/pages_app/myPatient/myPatient.vue b/pages_app/myPatient/myPatient.vue index a7ceff9..c99f5f6 100644 --- a/pages_app/myPatient/myPatient.vue +++ b/pages_app/myPatient/myPatient.vue @@ -102,7 +102,7 @@ const rejectRequest = () => { if (res.confirm) { uni.showToast({ title: '已拒绝申请', - icon: 'success' + icon: 'none' }); // 这里可以调用API拒绝申请 } @@ -118,7 +118,7 @@ const agreeRequest = () => { if (res.confirm) { uni.showToast({ title: '已同意申请', - icon: 'success' + icon: 'none' }); // 这里可以调用API同意申请 } diff --git a/pages_app/myPoint/myPoint.vue b/pages_app/myPoint/myPoint.vue index 4dedd09..423ad87 100644 --- a/pages_app/myPoint/myPoint.vue +++ b/pages_app/myPoint/myPoint.vue @@ -236,7 +236,7 @@ setTimeout(() => { uni.showToast({ title: '签到成功 +2积分', - icon: 'success' + icon: 'none' }); // 签到成功后刷新数据 diff --git a/pages_app/myWelfareCard/exchange.vue b/pages_app/myWelfareCard/exchange.vue index 5312e06..330fc9d 100644 --- a/pages_app/myWelfareCard/exchange.vue +++ b/pages_app/myWelfareCard/exchange.vue @@ -119,7 +119,7 @@ api.exchangeWelfareCard({password: code}).then(res => { console.log(res) if (res.code == 200) { - uni.showToast({ title: '兑换成功', icon: 'success' }) + uni.showToast({ title: '兑换成功', icon: 'none' }) uni.navigateBack() } }) diff --git a/pages_app/newsList/newsList.vue b/pages_app/newsList/newsList.vue index 338b51d..024937a 100644 --- a/pages_app/newsList/newsList.vue +++ b/pages_app/newsList/newsList.vue @@ -467,7 +467,7 @@ uni.showToast({ title: '刷新成功', - icon: 'success' + icon: 'none' }); }; diff --git a/pages_app/patientMsg/patientMsg.vue b/pages_app/patientMsg/patientMsg.vue index 258289b..99c4627 100644 --- a/pages_app/patientMsg/patientMsg.vue +++ b/pages_app/patientMsg/patientMsg.vue @@ -454,7 +454,7 @@ await getApplyList(); uni.showToast({ title: '刷新成功', - icon: 'success', + icon: 'none', duration: 1500 }); } catch (error) { @@ -475,7 +475,7 @@ await getFollowUpList(true); uni.showToast({ title: '刷新成功', - icon: 'success', + icon: 'none', duration: 1500 }); }; @@ -619,7 +619,8 @@ + diff --git a/pages_chat/article/article.vue b/pages_chat/article/article.vue index 8ea9599..ca44717 100644 --- a/pages_chat/article/article.vue +++ b/pages_chat/article/article.vue @@ -268,7 +268,7 @@ await polularScienceArticleListByKeywordsNew(true); uni.showToast({ title: '刷新成功', - icon: 'success', + icon: 'none', duration: 1500 }); }; diff --git a/pages_chat/chat/message/message-custom.vue b/pages_chat/chat/message/message-custom.vue index f9dad6b..1707685 100644 --- a/pages_chat/chat/message/message-custom.vue +++ b/pages_chat/chat/message/message-custom.vue @@ -2,7 +2,7 @@
{{ JSON.parse(msg.attachment.raw).gdxz_title }} @@ -18,7 +18,7 @@ {{ JSON.parse(msg.attachment.raw).gdxz_title }} @@ -34,7 +34,7 @@ @@ -53,7 +53,7 @@ class="customCell cloumn" v-else-if=" JSON.parse(msg.attachment.raw).gdxz_ext_data == '[图文科普]' || - JSON.parse(msg.attachment.raw).gdxz_ext_data == '[视频科普]' + JSON.parse(msg.attachment.raw).gdxz_ext_data == '[视频科普]' || JSON.parse(msg.attachment.raw).gdxz_type == '[患教科普]' || JSON.parse(msg.attachment.raw).gdxz_type == '[视频科普]' " @click="goToDetail(JSON.parse(msg.attachment.raw).gdxz_url)" > @@ -73,7 +73,7 @@ diff --git a/pages_chat/chat/message/message-input.vue b/pages_chat/chat/message/message-input.vue index 5458aab..d8038a1 100644 --- a/pages_chat/chat/message/message-input.vue +++ b/pages_chat/chat/message/message-input.vue @@ -56,7 +56,7 @@
-
+
{{ t('shootText') }}
-
+
(), {} ) +const emits = defineEmits(['send']) /** 会话ID */ const conversationId = props.conversationType === @@ -418,6 +421,22 @@ const handleCall = (type: number) => { }) } } +const outPatientList = ref([]); +const getListOutPatient = async () => { + const res = await api.listOutPatient({ + page:1, + }); + if(res.code == 200){ + outPatientList.value = res.data.list.list; + } +} +const stopOutPatientList = ref([]); +const getStopOutPatientList = async () => { + const res = await api.stopOutPatientList(); + if(res.code == 200){ + stopOutPatientList.value = res.data; + } +} onShow(() => { uni.$on('articelItem', (article) => { console.log('article', article); @@ -433,6 +452,8 @@ onShow(() => { uni.$on('quickReply', (reply) => { inputText.value= reply; }); + getListOutPatient(); + getStopOutPatientList(); }); onUnload(() => { uni.$off('articelItem'); @@ -539,6 +560,7 @@ const onSelectSince = (type: string) => { } } + /** 点击@ 群成员 */ const handleMentionItemClick = (member: MentionedMember) => { //@ts-ignore @@ -619,8 +641,19 @@ const handleSendTextMsg = (type:string) => { let mallText='纽娃复合营养素固体饮料主要成分是:蜂花粉、乳清蛋白粉、灰树花粉、低聚木糖、蚕蛹氨基酸、麦芽粉、薏苡仁粉、烟酸、磷脂,以及其他调味品、辅助原料。科学配比制成,含有丰富的蛋白质、氨基酸、维生素、微量元素及其他营养元素,点击链接了解详情。' let text = type==='mall'?mallText:replaceEmoji(inputText.value) const textMsg = uni.$UIKitNIM.V2NIMMessageCreator.createTextMessage(text) - let serverExtension={"gdxz_nickName":"测试","gdxz_sessionType":"general"}; - uni.$UIKitStore.msgStore + //let serverExtension={"gdxz_nickName":"测试","gdxz_sessionType":"general"}; + if(props.isGroupSend){ + emits('send',{ + content:textMsg, + msg_type:1, + }) + inputText.value = '' + isReplyMsg.value = false + replyMsg.value = undefined + selectedAtMembers.value = []; + }else{ + + uni.$UIKitStore.msgStore .sendMessageActive({ msg: textMsg as unknown as V2NIMMessage, conversationId, @@ -648,6 +681,7 @@ const handleSendTextMsg = (type:string) => { senCustomMsg('mall'); } } +} /** 发送文件消息 */ const handleSendFileMsg = () => { @@ -763,7 +797,22 @@ const handleSendImageMsg = () => { const imgMsg = uni.$UIKitNIM.V2NIMMessageCreator.createImageMessage( res.tempFilePaths[0] ) - + if(props.isGroupSend){ + const fileManager = uni.getFileSystemManager(); + fileManager.readFile({ + filePath: res.tempFilePaths[0], + encoding: 'base64', + success: (res) => { + emits('send',{ + content:res.data, + msg_type:2, + }) + }, + fail: (error) => { + console.log('chooseImage', error) + } + }) + }else{ uni.$UIKitStore.msgStore .sendMessageActive({ msg: imgMsg as unknown as V2NIMMessage, @@ -783,28 +832,43 @@ const handleSendImageMsg = () => { title: t('sendImageFailedText'), }) }) - }, - /** uniapp 提供的chooseImage api 在鸿蒙上表现为不支持选择gif,在其他端支持 */ - fail: (error) => { + } + + }, + /** uniapp 提供的chooseImage api 在鸿蒙上表现为不支持选择gif,在其他端支持 */ + fail: (error) => { console.log('chooseImage', error) }, /** 没有开启权限时,提示开启权限 */ complete: handleNoPermission, }) + } const senCustomMsg = (type:string) => { let rawStr=""; let text=""; + let msg_type=0; + let msg_content=""; + let doctor_id=""; if(type == 'hospital'){ + doctor_id=''; + msg_type=8; + msg_content="https://img.applets.igandanyiyuan.com/applet/admin/avatar/2023071813261420200708181049.png"; text="[互联网医院]"; rawStr=`{\"gdxz_content\":\"我已入驻肝胆相照互联网医院,复诊购药一站式服务,快来看看吧\",\"gdxz_ext_data\":\"[互联网医院]\",\"gdxz_id\":\"1681174885629431808\",\"gdxz_img\":\"https://img.applets.igandanyiyuan.com/applet/admin/avatar/2023071813261420200708181049.png\",\"gdxz_title\":\"肝胆相照互联网医院\",\"gdxz_type\":\"[互联网医院]\",\"gdxz_url\":\"\"}`; }else if(type == 'mall'){ + msg_type=6; + msg_content=""; text="[肝胆商城]"; rawStr=`{\"gdxz_content\":\"肝胆相照®肝胆病在线公共服务平台\",\"gdxz_ext_data\":\"[肝胆商城]\",\"gdxz_id\":\"\",\"gdxz_img\":\"\",\"gdxz_title\":\"纽娃复合营养素固体饮料\",\"gdxz_type\":\"[肝胆商城]\",\"gdxz_url\":\"https://wx.igandan.com/shop_notify/setInfo?patient_uuid=${patient_uuid}&expert_uuid=${expert_uuid}\"}`; }else if(type == 'outpatient'){ + msg_type=5; + msg_content=""; text="[门诊公告]"; rawStr=`{\"gdxz_content\":\"门诊详情\",\"gdxz_ext_data\":\"[门诊公告]\",\"gdxz_id\":\"\",\"gdxz_img\":\"\",\"gdxz_title\":\"${expert_name}医生门诊详情\",\"gdxz_type\":\"[门诊公告]\",\"gdxz_url\":\"https://dev-wx.igandan.com/wxPatient/index.htm#/outPatient?link=share&expertUuid=${expert_uuid}\"}` }else if(type == 'article'){ + msg_type=3; + msg_content=articleInfo.value.uuid; text="[图文科普]"; let content='"'+articleInfo.value.summary+'"'; let id='"'+articleInfo.value.uuid+'"'; @@ -812,6 +876,8 @@ const senCustomMsg = (type:string) => { let path='"'+docUrl+articleInfo.value.path+'"'; rawStr=`{\"gdxz_content\":${content},\"gdxz_ext_data\":\"[图文科普]\",\"gdxz_id\":${id},\"gdxz_img\":\"http://doc.igandan.org/app/book/pdf/2019/20190613152617.png\",\"gdxz_title\":${title},\"gdxz_type\":\"[图文科普]\",\"gdxz_url\":${path}}` }else if(type == 'video'){ + msg_type=4; + msg_content=videoInfo.value.uuid; let content='"'+videoInfo.value.note+'"'; let id='"'+videoInfo.value.uuid+'"'; let title='"'+videoInfo.value.name+'"'; @@ -820,6 +886,12 @@ const senCustomMsg = (type:string) => { rawStr=`{\"gdxz_content\":${content},\"gdxz_ext_data\":\"[视频科普]\",\"gdxz_id\":${id},\"gdxz_img\":\"http://doc.igandan.org/app/book/pdf/2019/20190613152617.png\",\"gdxz_title\":${title},\"gdxz_type\":\"[视频科普]\",\"gdxz_url\":${path}}` } const customMsg = uni.$UIKitNIM.V2NIMMessageCreator.createCustomMessage(text,rawStr) + if(props.isGroupSend){ + emits('send',{ + content:msg_content, + msg_type:msg_type, + }) + }else{ uni.$UIKitStore.msgStore .sendMessageActive({ msg: customMsg as unknown as V2NIMMessage, @@ -839,6 +911,7 @@ const senCustomMsg = (type:string) => { title: '发送失败', }) }) + } } const handleCustom = (type: string, event: any) => { @@ -853,10 +926,18 @@ const handleCustom = (type: string, event: any) => { showMallModal.value = true patientListByGBK(); }else if(type == 'outpatient'){ - senCustomMsg('outpatient'); - // navTo({ - // url: '/pages_chat/outpatient/outpatient', - // }) + // navTo({ + // url: '/pages_chat/outpatient/outpatient', + // }) + if( outPatientList.value.length==0 && stopOutPatientList.value.length==0 ){ + navTo({ + url: '/pages_chat/outpatient/outpatient', + }) + }else{ + senCustomMsg('outpatient'); + } + + }else if(type == 'hospital'){ senCustomMsg('hospital'); } diff --git a/pages_chat/editAddress/editAddress.vue b/pages_chat/editAddress/editAddress.vue new file mode 100644 index 0000000..390d1a0 --- /dev/null +++ b/pages_chat/editAddress/editAddress.vue @@ -0,0 +1,178 @@ + + + + + + diff --git a/pages_chat/groupMessage/groupMessage.vue b/pages_chat/groupMessage/groupMessage.vue index 5d81e77..c60d4e6 100644 --- a/pages_chat/groupMessage/groupMessage.vue +++ b/pages_chat/groupMessage/groupMessage.vue @@ -22,19 +22,30 @@ {{ item.realname.split(',').length }}位患者: - + × {{ item.realname }} - + {{ item.msg_content }} + + + {{JSON.parse(item.msg_content).summary }} + + {{ docUrl+JSON.parse(item.msg_content).path }} + + + + + + - 再发一条 + 再发一条 @@ -64,8 +75,8 @@ - - 群发消息 + + 群发消息 @@ -88,6 +99,8 @@ import { ref, onMounted } from 'vue' import navBar from '@/components/navBar/navBar.vue' import api from '@/api/api.js' import { onShow } from '@dcloudio/uni-app' +import docUrl from '@/utils/docUrl.js' +import navTo from '@/utils/navTo.js' const currentTime = ref('') const patientCount = ref(1) const patientName = ref('测试') @@ -168,9 +181,13 @@ const onRefresh = async () => { await listGroupSendMsg(true); refreshing.value = false; - uni.showToast({ title: '刷新成功', icon: 'success' }); + uni.showToast({ title: '刷新成功', icon: 'none' }); }; - +const onDetail = (item) => { + navTo({ + url: `/pages_app/webview/webview?url=${encodeURIComponent(docUrl+JSON.parse(item.msg_content).path)}`, + }) +} // 上拉加载更多 const onLoadMore = async () => { if(!hasMore.value || loading.value) return; @@ -197,19 +214,49 @@ const closeModal = () => { const onSelect = (type) => { showModal.value = false; if (type === 'single') { - uni.showToast({ title: '单独选择', icon: 'none' }); + navTo({ + url: "/pages_app/selectPatient/selectPatient?from=chatMsg" + }) } else if (type === 'group') { - uni.showToast({ title: '分组选择', icon: 'none' }); + navTo({ + url: '/pages_chat/patientGroup/patientGroup', + }) } }; -const onClear = () => { +const delGroupSendMsg = (obj) => { // 清空选择的患者(占位) - patientCount.value = 0 - patientName.value = '' - patientPhone.value = '' + uni.showModal({ + title: '提示', + content: '确定删除该群发消息吗?', + success: (res) => { + if(res.confirm){ + api.delGroupSendMsg({ + uuid: obj.uuid + }).then(res => { + if(res.code == 200){ + uni.showToast({ title: '删除成功', icon: 'none' }) + list.value = list.value.filter(item => obj.uuid != item.uuid) + } + }) + } + } + }) } -const onResend = () => { - uni.showToast({ title: '已触发再发一条', icon: 'none' }) +const onResend = (obj) => { + let arr=[]; + let idArr=obj.patient_uuid.split(','); + obj.realname.split(',').forEach((item,index) => { + arr.push({ + uuid: idArr[index], + realName: item, + }) + }) + uni.setStorageSync('selectedChatPatientsSingle', { + patients: arr + }); + navTo({ + url: `/pages_chat/groupSend/groupSend?from=chatMsg` + }) } const onSendGroup = () => { uni.showToast({ title: '已触发群发', icon: 'none' }) @@ -222,6 +269,46 @@ $brand: #8B2316; $brand-deep: #8B2316; $primary: #00cbc0; $red: #D32F2F; +.custom{ + padding: 25rpx; + border-radius: 16rpx; + border: 2rpx solid #f0f0f0; + width:80%; + margin: 0 auto; + .title{ + font-size: 32rpx; + color: #333; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + font-size: 32rpx; + } + .row{ + margin-top: 20rpx; + display: flex; + align-items: center; + justify-content: space-between; + .left{ + font-size: 24rpx; + color: #999; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + } + .right{ + image{ + width: 150rpx; + height: 150rpx; + margin-left: 20rpx; + } + } + } +} /* 遮罩与弹窗 */ .mask { position: fixed; @@ -286,9 +373,8 @@ $red: #D32F2F; .scroll-container { position: fixed; top: 140rpx; - width:100%; - bottom: 200rpx; + bottom: 107rpx; } @@ -332,8 +418,8 @@ $red: #D32F2F; .label { font-size: 32rpx; color: #333; } .close { position: absolute; - right: -15rpx; - top: -18rpx; + right: -30rpx; + top: -36rpx; width: 100rpx; height: 100rpx; border-bottom-left-radius: 100rpx; diff --git a/pages_chat/groupSend/groupSend.vue b/pages_chat/groupSend/groupSend.vue index 472c19f..d05267c 100644 --- a/pages_chat/groupSend/groupSend.vue +++ b/pages_chat/groupSend/groupSend.vue @@ -1,5 +1,5 @@ + + diff --git a/pages_chat/outManage/outManage.vue b/pages_chat/outManage/outManage.vue new file mode 100644 index 0000000..40acb2f --- /dev/null +++ b/pages_chat/outManage/outManage.vue @@ -0,0 +1,547 @@ + + + + + diff --git a/pages_chat/outPatient/addSchedule.vue b/pages_chat/outPatient/addSchedule.vue new file mode 100644 index 0000000..9f276ce --- /dev/null +++ b/pages_chat/outPatient/addSchedule.vue @@ -0,0 +1,325 @@ +