作者 韩昌

提交一次

@@ -119,9 +119,9 @@ @@ -119,9 +119,9 @@
119 :isSend="true" 119 :isSend="true"
120 /> 120 />
121 </u-popup> 121 </u-popup>
122 - <u-modal :show="showPrescriptionDetailState" :title="`处方单详情`" @confirm="showPrescriptionDetailState = false"> 122 + <!-- <u-modal :show="showPrescriptionDetailState" :title="`处方单详情`" @confirm="showPrescriptionDetailState = false">
123 <ViewPrescription :orderId="Event.orderId" @click="showPrescriptionDetailState = false" /> 123 <ViewPrescription :orderId="Event.orderId" @click="showPrescriptionDetailState = false" />
124 - </u-modal> 124 + </u-modal> -->
125 <u-modal :show="showUserCardDetailState" :title="``" :showConfirmButton="false" closeOnClickOverlay @close="showUserCardDetailState = false"> 125 <u-modal :show="showUserCardDetailState" :title="``" :showConfirmButton="false" closeOnClickOverlay @close="showUserCardDetailState = false">
126 <view class="slot-content" @click="showUserCardDetailState = false"> 126 <view class="slot-content" @click="showUserCardDetailState = false">
127 <view class="text mb24">问诊类型:{{ proxy.$h.optObjectValue('consultationWay', detailData.consultationWay) || '未设置' }}</view> 127 <view class="text mb24">问诊类型:{{ proxy.$h.optObjectValue('consultationWay', detailData.consultationWay) || '未设置' }}</view>
@@ -148,12 +148,15 @@ @@ -148,12 +148,15 @@
148 </view> 148 </view>
149 </view> 149 </view>
150 </u-modal> 150 </u-modal>
  151 + <u-popup :show="showPrescriptionDetailState" @close="showPrescriptionDetailState = false" mode="bottom" closeIconPos="top-right" closeable round="20">
  152 + <Prescription :showTopState="false" :PrescriptionDetail="PrescriptionDetail" bg="linear-gradient(188deg, #E0FFF4 5.54%, #FFF 24.89%)" :title="`${detailData?.user?.nickname}的处方单`" :isRenew="'err'" :showStep="`err`" />
  153 + </u-popup>
151 </template> 154 </template>
152 155
153 <script lang="ts"> 156 <script lang="ts">
154 import { defineComponent, reactive, toRefs, computed, nextTick, watch, onMounted, shallowRef, getCurrentInstance, ComponentPublicInstance, ref, onUnmounted, onBeforeUnmount } from 'vue' 157 import { defineComponent, reactive, toRefs, computed, nextTick, watch, onMounted, shallowRef, getCurrentInstance, ComponentPublicInstance, ref, onUnmounted, onBeforeUnmount } from 'vue'
155 import { onReady, onLoad, onNavigationBarButtonTap, onUnload } from '@dcloudio/uni-app' 158 import { onReady, onLoad, onNavigationBarButtonTap, onUnload } from '@dcloudio/uni-app'
156 -import { updateSend_prescription_form, getConsultation_information_detail, getEndInformation, getReceive_diagnosis, getOrder_chat } from '@/api' 159 +import { updateSend_prescription_form, getConsultation_information_detail, getEndInformation, getReceive_diagnosis, getOrder_chat, getPrescription_detail_information } from '@/api'
157 // 消息元素组件 160 // 消息元素组件
158 import MessageBubble from './components/message-elements/message-bubble.vue' 161 import MessageBubble from './components/message-elements/message-bubble.vue'
159 import MessageText from './components/message-elements/message-text.vue' 162 import MessageText from './components/message-elements/message-text.vue'
@@ -172,8 +175,9 @@ import UserInfoCard from '@/components/UserInfoCard' @@ -172,8 +175,9 @@ import UserInfoCard from '@/components/UserInfoCard'
172 import ConversationEnd from '@/components/ConversationEnd' 175 import ConversationEnd from '@/components/ConversationEnd'
173 import SendPrescription from '@/components/SendPrescription' 176 import SendPrescription from '@/components/SendPrescription'
174 import ViewPrescription from '@/components/ViewPrescription' 177 import ViewPrescription from '@/components/ViewPrescription'
  178 +import Prescription from '@/pages2/order/com/Prescription.vue'
175 import store from '../../TUICore/store' 179 import store from '../../TUICore/store'
176 -import type { DiaLogEventType, Consultation_information_detailType } from '../../../types' 180 +import type { DiaLogEventType, Consultation_information_detailType, PrescriptionDetailType } from '../../../types'
177 import { emojiMap } from '../../utils/emojiMap' 181 import { emojiMap } from '../../utils/emojiMap'
178 import { 182 import {
179 handleAvatar, 183 handleAvatar,
@@ -195,7 +199,25 @@ import { TUIChatServer } from '../../TUICore/server' @@ -195,7 +199,25 @@ import { TUIChatServer } from '../../TUICore/server'
195 199
196 export default defineComponent({ 200 export default defineComponent({
197 name: 'TUIChat', 201 name: 'TUIChat',
198 - components: { MessageText, MessageImage, MessageVideo, MessageAudio, MessageFace, MessageCustom, MessageBubble, MessageTip, MessageRevoked, MessageSystem, TUIChatInput, MessageOperate, UserInfoCard, ConversationEnd, SendPrescription, ViewPrescription }, 202 + components: {
  203 + MessageText,
  204 + MessageImage,
  205 + MessageVideo,
  206 + MessageAudio,
  207 + MessageFace,
  208 + MessageCustom,
  209 + MessageBubble,
  210 + MessageTip,
  211 + MessageRevoked,
  212 + MessageSystem,
  213 + TUIChatInput,
  214 + MessageOperate,
  215 + UserInfoCard,
  216 + ConversationEnd,
  217 + SendPrescription,
  218 + ViewPrescription,
  219 + Prescription
  220 + },
199 221
200 setup(props) { 222 setup(props) {
201 const { proxy } = getCurrentInstance() as { proxy: ComponentPublicInstance } 223 const { proxy } = getCurrentInstance() as { proxy: ComponentPublicInstance }
@@ -238,7 +260,8 @@ export default defineComponent({ @@ -238,7 +260,8 @@ export default defineComponent({
238 }, 260 },
239 imUserId: '', 261 imUserId: '',
240 historyList: [] as any, 262 historyList: [] as any,
241 - navbarTitle: '' 263 + navbarTitle: '',
  264 + PrescriptionDetail: {}
242 }) 265 })
243 266
244 // 判断当前会话类型:无/系统会话/正常C2C、群聊 267 // 判断当前会话类型:无/系统会话/正常C2C、群聊
@@ -388,6 +411,10 @@ export default defineComponent({ @@ -388,6 +411,10 @@ export default defineComponent({
388 411
389 data.detailData = result 412 data.detailData = result
390 413
  414 + const { result: Pdetail }: { result: PrescriptionDetailType } = await getPrescription_detail_information({ id: data.Event.orderId })
  415 +
  416 + data.PrescriptionDetail = Pdetail
  417 +
391 if (data.history === 'success') getOrder_chatHandler(true) 418 if (data.history === 'success') getOrder_chatHandler(true)
392 } 419 }
393 420
@@ -13,14 +13,16 @@ @@ -13,14 +13,16 @@
13 <image src="/static/images/xin.png" class="navbar-icon" mode="aspectFill" @click="proxy.$h.jumpUrl(`/pages2/message/index`)" /> 13 <image src="/static/images/xin.png" class="navbar-icon" mode="aspectFill" @click="proxy.$h.jumpUrl(`/pages2/message/index`)" />
14 <view class="dot" v-if="props.showDot"></view> 14 <view class="dot" v-if="props.showDot"></view>
15 </view> 15 </view>
16 - <image  
17 - v-if="props.isShowQrCode"  
18 - src="/static/images/mineqr.png"  
19 - class="navbar-icon"  
20 - mode="aspectFill"  
21 - style="margin-right: 0"  
22 - @click=";[20, '20'].includes(props.examineState) ? proxy.$h.jumpUrl(`/pages2/mineinfo/qrcode`) : $u.toast('请先完成认证')"  
23 - /> 16 + <view>
  17 + <image
  18 + v-if="props.isShowQrCode"
  19 + src="/static/images/mineqr.png"
  20 + class="navbar-icon"
  21 + mode="aspectFill"
  22 + style="margin-right: 0"
  23 + @click=";[20, '20'].includes(props.examineState) ? proxy.$h.jumpUrl(`/pages2/mineinfo/qrcode`) : $u.toast('请先完成认证')"
  24 + />
  25 + </view>
24 </view> 26 </view>
25 <view v-else></view> 27 <view v-else></view>
26 </template> 28 </template>
@@ -104,6 +104,7 @@ @@ -104,6 +104,7 @@
104 </view> 104 </view>
105 </view> 105 </view>
106 </view> 106 </view>
  107 + <view style="height: 60rpx"></view>
107 </template> 108 </template>
108 </u-form> 109 </u-form>
109 110
@@ -369,7 +370,6 @@ onShow(() => { @@ -369,7 +370,6 @@ onShow(() => {
369 </style> 370 </style>
370 <style lang="scss" scoped> 371 <style lang="scss" scoped>
371 .step { 372 .step {
372 -  
373 &-top { 373 &-top {
374 background: #fff; 374 background: #fff;
375 box-sizing: border-box; 375 box-sizing: border-box;
1 <template> 1 <template>
2 <u-sticky bgColor="#06b9d3" zIndex="999999999999999999999999"> 2 <u-sticky bgColor="#06b9d3" zIndex="999999999999999999999999">
3 - <u-navbar title="我的评论" :autoBack="true" bgColor="#06b9d3" placeholder safeAreaInsetTop :titleStyle="{ color: '#fff' }" leftIconColor="#fff"></u-navbar> 3 + <u-navbar title="我的评论" :autoBack="true" bgColor="#06b9d3" safeAreaInsetTop :titleStyle="{ color: '#fff' }" leftIconColor="#fff"></u-navbar>
4 <u-tabs :list="list1" @click="clickTabsItemHandler" lineColor="#fff" lineWidt="18" lineHeight="3" :scrollable="false" :activeStyle="{ fontSize: '34rpx', color: '#fff', fontWeight: 700 }" :inactiveStyle="{ fontSize: '34rpx', color: '#fff' }"></u-tabs> 4 <u-tabs :list="list1" @click="clickTabsItemHandler" lineColor="#fff" lineWidt="18" lineHeight="3" :scrollable="false" :activeStyle="{ fontSize: '34rpx', color: '#fff', fontWeight: 700 }" :inactiveStyle="{ fontSize: '34rpx', color: '#fff' }"></u-tabs>
5 </u-sticky> 5 </u-sticky>
6 <image src="/static/images/commentBg.png" class="mineCom-bg" mode="aspectFill" /> 6 <image src="/static/images/commentBg.png" class="mineCom-bg" mode="aspectFill" />
@@ -8,17 +8,24 @@ @@ -8,17 +8,24 @@
8 <view class="mineCom Zindex"> 8 <view class="mineCom Zindex">
9 <template v-if="pageList.records.length"> 9 <template v-if="pageList.records.length">
10 <view class="mineCom-item" v-for="_ in pageList?.records" :key="_.id"> 10 <view class="mineCom-item" v-for="_ in pageList?.records" :key="_.id">
11 - <view class="flexJ" style="margin-bottom: 50rpx"> 11 + <view class="" style="margin-bottom: 50rpx">
12 <view class="flexA"> 12 <view class="flexA">
13 - <image :src="_?.user?.avatar ? proxy.$h.downFile(_?.user?.avatar) : '/static/images/commentBg.png'" class="mineCom-avatar" mode="aspectFill" />  
14 - <view class="mineCom-username">{{ _?.user?.nickname }}</view>  
15 - <view class="mineCom-toptag" v-if="_?.consultationWay">{{ proxy.$h.optObjectValue('consultationWay', _?.consultationWay) }}</view> 13 + <view>
  14 + <image :src="_?.user?.avatar ? proxy.$h.downFile(_?.user?.avatar) : '/static/images/commentBg.png'" class="mineCom-avatar" mode="aspectFill" />
  15 + </view>
  16 + <view>
  17 + <view class="flexA">
  18 + <view class="mineCom-username">{{ _?.user?.nickname }}</view>
  19 + <view class="mineCom-toptag" v-if="_?.consultationWay">{{ proxy.$h.optObjectValue('consultationWay', _?.consultationWay) }}</view>
  20 + </view>
  21 + <view class="mineCom-time">{{ _?.time }}</view>
  22 + </view>
16 </view> 23 </view>
17 </view> 24 </view>
18 - <view class="mineCom-time">{{ _?.time }}</view> 25 +
19 <view class="flexA" style="margin-bottom: 16rpx"> 26 <view class="flexA" style="margin-bottom: 16rpx">
20 <view class="mineCom-text">评分:</view> 27 <view class="mineCom-text">评分:</view>
21 - <view style="margin-right: 6rpx; color: #ffc525">{{ _?.star }}分</view> 28 + <view style="margin-right: 6rpx; color: #ffc525; font-size: 26rpx">{{ _?.star }}分</view>
22 <u-rate :count="5" v-model="_.star" allowHalf activeColor="#ffc525" readonly></u-rate> 29 <u-rate :count="5" v-model="_.star" allowHalf activeColor="#ffc525" readonly></u-rate>
23 </view> 30 </view>
24 <view class="mineCom-text">评价:{{ _?.content }}</view> 31 <view class="mineCom-text">评价:{{ _?.content }}</view>
@@ -147,6 +154,8 @@ page { @@ -147,6 +154,8 @@ page {
147 &-time { 154 &-time {
148 color: #999999; 155 color: #999999;
149 font-size: 26rpx; 156 font-size: 26rpx;
  157 + margin-left: 16rpx;
  158 + margin-top: 8rpx;
150 } 159 }
151 &-toptag { 160 &-toptag {
152 color: #05b8d2; 161 color: #05b8d2;
@@ -129,6 +129,9 @@ onLoad((e: EventType) => { @@ -129,6 +129,9 @@ onLoad((e: EventType) => {
129 font-weight: 700; 129 font-weight: 700;
130 } 130 }
131 } 131 }
  132 +:deep(.u-icon__icon) {
  133 + font-size: 30rpx !important;
  134 +}
132 :deep(.u-input) { 135 :deep(.u-input) {
133 padding: 26rpx 9px !important; 136 padding: 26rpx 9px !important;
134 font-size: 36rpx !important; 137 font-size: 36rpx !important;
@@ -4,7 +4,8 @@ @@ -4,7 +4,8 @@
4 <view style="background-color: #fff"> 4 <view style="background-color: #fff">
5 <u-cell-group> 5 <u-cell-group>
6 <template v-for="(_, index) in mineinfo"> 6 <template v-for="(_, index) in mineinfo">
7 - <u-cell :title="_.title" :isLink="![1, 5].includes(index)"> 7 + <u-cell :title="_.title" :isLink="![1, 6].includes(index)">
  8 + <!-- <u-cell :title="_.title" isLink> -->
8 <template #value> 9 <template #value>
9 <template v-if="_.type === 'jump'"> 10 <template v-if="_.type === 'jump'">
10 <text class="info-text" @click="proxy.$h.jumpUrl(`${_.url}?flag=${_.flag}&title=${_.title}&isMyInfo=${_.isMyInfo}`)" :style="{ color: !['请选择', '暂无手机号'].includes(_.text) ? '#000' : '#999' }">{{ _.text }}</text> 11 <text class="info-text" @click="proxy.$h.jumpUrl(`${_.url}?flag=${_.flag}&title=${_.title}&isMyInfo=${_.isMyInfo}`)" :style="{ color: !['请选择', '暂无手机号'].includes(_.text) ? '#000' : '#999' }">{{ _.text }}</text>
@@ -13,15 +14,18 @@ @@ -13,15 +14,18 @@
13 <text class="info-text" @click="showSelectSex = true" :style="{ color: _.text !== '请选择' ? '#000' : '#999' }">{{ _.text !== '请选择' ? proxy.$h.optObjectValue('sexData', _.text) : _.text }}</text> 14 <text class="info-text" @click="showSelectSex = true" :style="{ color: _.text !== '请选择' ? '#000' : '#999' }">{{ _.text !== '请选择' ? proxy.$h.optObjectValue('sexData', _.text) : _.text }}</text>
14 </template> 15 </template>
15 <template v-if="_.type === 'upload'"><image @click="uploadAvatarHandler" class="info-avatar" :src="proxy.$h.downFile(_.imgUrl) || '/static/images/mAvatar.png'" mode="aspectFill" /></template> 16 <template v-if="_.type === 'upload'"><image @click="uploadAvatarHandler" class="info-avatar" :src="proxy.$h.downFile(_.imgUrl) || '/static/images/mAvatar.png'" mode="aspectFill" /></template>
16 - <template v-if="_.type === 'input'"><up-input v-model="form[_.keyName]" :disabled="_.disabled" :placeholder="_.text" border="none" inputAlign="right" disabledColor="#fff"></up-input></template>  
17 -  
18 - <template v-if="_.type === 'textarea'"><u-textarea v-model="form[_.keyName]" :placeholder="_.text" border="none" height="30"></u-textarea></template> 17 + <template v-if="['input'].includes(_.type)"><up-input v-model="form[_.keyName]" :disabled="_.disabled" :placeholder="_.text" border="none" inputAlign="right" maxlength="11" disabledColor="#fff"></up-input></template>
19 </template> 18 </template>
20 </u-cell> 19 </u-cell>
21 <view class="grayLine" v-if="index === mineinfo.length - 2"></view> 20 <view class="grayLine" v-if="index === mineinfo.length - 2"></view>
22 </template> 21 </template>
23 </u-cell-group> 22 </u-cell-group>
24 </view> 23 </view>
  24 + <view style="box-sizing: border-box; padding: 36rpx 30rpx">
  25 + <view style="font-size: 15px; color: #303133; margin-bottom: 22rpx">个人介绍</view>
  26 + <u-textarea v-model="form['introduction']" :placeholder="`介绍一下自己吧`" border="none" count maxlength="200"></u-textarea>
  27 + </view>
  28 +
25 <view class="main"> 29 <view class="main">
26 <view class="zhu" style="color: red">*注:昵称可输入1-12个字,一个月只能修改一次</view> 30 <view class="zhu" style="color: red">*注:昵称可输入1-12个字,一个月只能修改一次</view>
27 <up-button color="#05B8D2" shape="circle" text="保存" throttleTime="1500" @click="confirmEditUserInfoHandler"></up-button> 31 <up-button color="#05B8D2" shape="circle" text="保存" throttleTime="1500" @click="confirmEditUserInfoHandler"></up-button>
@@ -52,9 +56,9 @@ const mineinfo = ref([ @@ -52,9 +56,9 @@ const mineinfo = ref([
52 { keyName: 'sex', title: '性别', text: '请选择', type: 'selectData' }, 56 { keyName: 'sex', title: '性别', text: '请选择', type: 'selectData' },
53 { keyName: 'phone', title: '手机号', text: '暂无手机号', type: 'jump', url: '/pages2/mineinfo/phone' }, 57 { keyName: 'phone', title: '手机号', text: '暂无手机号', type: 'jump', url: '/pages2/mineinfo/phone' },
54 { keyName: 'hospital', title: '坐诊医院', text: '请选择', type: 'jump', url: '/pages2/mineinfo/hospitalList', isMyInfo: 1, flag: 'ZUOZHENYIYUAN' }, 58 { keyName: 'hospital', title: '坐诊医院', text: '请选择', type: 'jump', url: '/pages2/mineinfo/hospitalList', isMyInfo: 1, flag: 'ZUOZHENYIYUAN' },
55 - { keyName: 'introduction', title: '个人介绍', text: '介绍一下自己吧', type: 'textarea' },  
56 // { keyName: '', title: '标签', text: '请选择', type: 'jump', url: '/pages2/mineinfo/tag', flag: '' }, // 个人标签暂不可编辑 59 // { keyName: '', title: '标签', text: '请选择', type: 'jump', url: '/pages2/mineinfo/tag', flag: '' }, // 个人标签暂不可编辑
57 { keyName: 'department', title: '科室', text: '请选择', type: 'jump', url: '/pages2/mineinfo/hospitalList', flag: 'KESHI' } 60 { keyName: 'department', title: '科室', text: '请选择', type: 'jump', url: '/pages2/mineinfo/hospitalList', flag: 'KESHI' }
  61 + // { keyName: 'introduction', title: '个人介绍', text: '介绍一下自己吧', type: 'textarea' }
58 ]) 62 ])
59 63
60 const form = ref<{ 64 const form = ref<{
@@ -74,6 +78,8 @@ const sexList = [ @@ -74,6 +78,8 @@ const sexList = [
74 { title: '女', value: 2 } 78 { title: '女', value: 2 }
75 ] 79 ]
76 80
  81 +const textareaHeight = ref<number>(20)
  82 +
77 const selectSexHandler = (value: number) => ((mineinfo.value[2].text = value + ''), (showSelectSex.value = false)) 83 const selectSexHandler = (value: number) => ((mineinfo.value[2].text = value + ''), (showSelectSex.value = false))
78 84
79 const uploadAvatarHandler = () => proxy.$h.upload('/sys/common/upload', (e: { upImg: string }) => (mineinfo.value[0].imgUrl = e.upImg)) 85 const uploadAvatarHandler = () => proxy.$h.upload('/sys/common/upload', (e: { upImg: string }) => (mineinfo.value[0].imgUrl = e.upImg))
@@ -87,7 +93,7 @@ const getInfoHandler = async () => { @@ -87,7 +93,7 @@ const getInfoHandler = async () => {
87 93
88 mineinfo.value[1].disabled = !Boolean(result?.isCanUpdateNickName) 94 mineinfo.value[1].disabled = !Boolean(result?.isCanUpdateNickName)
89 95
90 - mineinfo.value[6].text = form.value.department.length ? form.value.department.map((_: { id: string; name: string }) => _.name).join() : '请选择' 96 + mineinfo.value[5].text = form.value.department.length ? form.value.department.map((_: { id: string; name: string }) => _.name).join() : '请选择'
91 97
92 mineinfo.value[4].text = !['', null, undefined].includes(result.hospital) ? result.hospitalName : '请选择' 98 mineinfo.value[4].text = !['', null, undefined].includes(result.hospital) ? result.hospitalName : '请选择'
93 99
@@ -104,6 +110,10 @@ const getInfoHandler = async () => { @@ -104,6 +110,10 @@ const getInfoHandler = async () => {
104 form.value.introduction = result.introduction 110 form.value.introduction = result.introduction
105 } 111 }
106 112
  113 +const linechangeHandler = e => {
  114 + textareaHeight.value = e.detail.height
  115 +}
  116 +
107 const confirmEditUserInfoHandler = async () => { 117 const confirmEditUserInfoHandler = async () => {
108 await updateChange_userinfo({ 118 await updateChange_userinfo({
109 ...form.value, 119 ...form.value,
@@ -149,6 +159,21 @@ page { @@ -149,6 +159,21 @@ page {
149 :deep(.u-line) { 159 :deep(.u-line) {
150 display: none !important; 160 display: none !important;
151 } 161 }
  162 +:deep(.u-cell__body) {
  163 + box-sizing: border-box;
  164 + padding: 30rpx 30rpx;
  165 + height: fit-content;
  166 +}
  167 +:deep(.u-textarea__field) {
  168 + color: #000;
  169 + font-size: 30rpx;
  170 +}
  171 +:deep(.uni-input-input) {
  172 + font-size: 30rpx;
  173 +}
  174 +:deep(.u-textarea) {
  175 + border-radius: 22rpx;
  176 +}
152 .main { 177 .main {
153 box-sizing: border-box; 178 box-sizing: border-box;
154 padding: 0 24rpx; 179 padding: 0 24rpx;
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <view class="flexC ti">你可以用该手机号直接登录****短信通知</view> 5 <view class="flexC ti">你可以用该手机号直接登录****短信通知</view>
6 <view class="flexC bl">已绑定手机号</view> 6 <view class="flexC bl">已绑定手机号</view>
7 <view class="flexC nu">{{ UserInfo.phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2') }}</view> 7 <view class="flexC nu">{{ UserInfo.phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2') }}</view>
8 - <up-button color="#E4F8F9" shape="circle" icon="更换手机号" iconColor="#05B8D2" throttleTime="1500" @click="proxy.$h.jumpUrl(`/pages2/mineinfo/editphone?type=editphone`)"></up-button> 8 + <up-button color="#E4F8F9" shape="circle" icon="更换手机号" iconColor="#05B8D2" throttleTime="1500" @click="proxy.$h.jumpUrl(`/pages2/mineinfo/editphone?type=editphone`)" :customStyle="{ fontSize: '16px' }"></up-button>
9 </view> 9 </view>
10 </template> 10 </template>
11 11
@@ -18,6 +18,9 @@ const UserInfo = uni.getStorageSync('UserInfo') @@ -18,6 +18,9 @@ const UserInfo = uni.getStorageSync('UserInfo')
18 </script> 18 </script>
19 19
20 <style lang="scss" scoped> 20 <style lang="scss" scoped>
  21 +:deep(.u-icon__icon) {
  22 + font-size: 32rpx !important;
  23 +}
21 .phone { 24 .phone {
22 box-sizing: border-box; 25 box-sizing: border-box;
23 padding: 102rpx 64rpx 0; 26 padding: 102rpx 64rpx 0;
@@ -34,7 +37,6 @@ const UserInfo = uni.getStorageSync('UserInfo') @@ -34,7 +37,6 @@ const UserInfo = uni.getStorageSync('UserInfo')
34 .bl { 37 .bl {
35 color: #333333; 38 color: #333333;
36 font-size: 30rpx; 39 font-size: 30rpx;
37 - font-weight: 700;  
38 margin-bottom: 20rpx; 40 margin-bottom: 20rpx;
39 } 41 }
40 .nu { 42 .nu {
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 <view class="blueSText" v-else>{{ proxy.$h.optObjectValue('state', props.item?.orderState) || '未知' }}</view> 15 <view class="blueSText" v-else>{{ proxy.$h.optObjectValue('state', props.item?.orderState) || '未知' }}</view>
16 </view> 16 </view>
17 17
18 - <view class="flexA" style="margin-bottom: 16rpx" @click="clickOrderItemHandler"> 18 + <view style="margin-bottom: 16rpx; display: flex" @click="clickOrderItemHandler">
19 <view class="messagetext flex1"> 19 <view class="messagetext flex1">
20 <text class="graytext">就诊宠物:</text> 20 <text class="graytext">就诊宠物:</text>
21 <!-- 蓝猫/2岁/女绝/育/1kg --> 21 <!-- 蓝猫/2岁/女绝/育/1kg -->
@@ -40,10 +40,10 @@ @@ -40,10 +40,10 @@
40 <view class="moneytext flexD" v-if="!props.isPrescriptionDrug && !props.isRecord">¥{{ props.item?.award || 0 }}/预计收入</view> 40 <view class="moneytext flexD" v-if="!props.isPrescriptionDrug && !props.isRecord">¥{{ props.item?.award || 0 }}/预计收入</view>
41 <view class="flexD"> 41 <view class="flexD">
42 <view class="flexW" v-if="!props.isPrescriptionDrug"> 42 <view class="flexW" v-if="!props.isPrescriptionDrug">
43 - <up-button type="info" v-if="props.item?.orderId !== null" shape="circle" text="处方单" throttleTime="1500" :customStyle="{ width: '170rpx', marginRight: '20rpx' }" @click="showPrHandler"></up-button>  
44 - <up-button type="info" @click="clickOrderItemHandler" shape="circle" text="查看症状" throttleTime="1500" :customStyle="{ width: '170rpx', marginRight: '20rpx' }"></up-button>  
45 - <up-button type="info" v-if="props.isRecords === 'success'" @click="AcceptHandler('success')" shape="circle" text="问诊记录" throttleTime="1500" :customStyle="{ width: '170rpx', marginRight: '20rpx' }"></up-button>  
46 - <up-button color="#05B8D2" v-if="[20, '20'].includes(props.item?.orderState)" @click="AcceptHandler('err')" shape="circle" text="接诊" throttleTime="1500" :customStyle="{ width: '170rpx', marginRight: '20rpx' }"></up-button> 43 + <up-button type="info" v-if="props.item?.orderId !== null" shape="circle" text="处方单" throttleTime="1500" :customStyle="{ width: '170rpx', height: '64rpx', marginRight: '20rpx' }" @click="showPrHandler"></up-button>
  44 + <up-button type="info" @click="clickOrderItemHandler" shape="circle" text="查看症状" throttleTime="1500" :customStyle="{ width: '170rpx', height: '64rpx', marginRight: '20rpx' }"></up-button>
  45 + <up-button type="info" v-if="props.isRecords === 'success'" @click="AcceptHandler('success')" shape="circle" text="问诊记录" throttleTime="1500" :customStyle="{ width: '170rpx', height: '64rpx', marginRight: '20rpx' }"></up-button>
  46 + <up-button color="#05B8D2" v-if="[20, '20'].includes(props.item?.orderState)" @click="AcceptHandler('err')" shape="circle" text="接诊" throttleTime="1500" :customStyle="{ width: '170rpx', height: '64rpx', marginRight: '20rpx' }"></up-button>
47 <up-button 47 <up-button
48 color="#05B8D2" 48 color="#05B8D2"
49 v-if="[30, '30'].includes(props.item?.orderState) && [null, undefined, ''].includes(props.item?.orderId)" 49 v-if="[30, '30'].includes(props.item?.orderState) && [null, undefined, ''].includes(props.item?.orderId)"
@@ -57,7 +57,7 @@ @@ -57,7 +57,7 @@
57 shape="circle" 57 shape="circle"
58 text="填写处方单" 58 text="填写处方单"
59 throttleTime="1500" 59 throttleTime="1500"
60 - :customStyle="{ width: '170rpx', marginRight: '20rpx' }" 60 + :customStyle="{ width: '170rpx', height: '64rpx', marginRight: '20rpx' }"
61 ></up-button> 61 ></up-button>
62 <up-button 62 <up-button
63 color="#05B8D2" 63 color="#05B8D2"
@@ -67,7 +67,7 @@ @@ -67,7 +67,7 @@
67 shape="circle" 67 shape="circle"
68 text="结束问诊" 68 text="结束问诊"
69 throttleTime="1500" 69 throttleTime="1500"
70 - :customStyle="{ width: '170rpx', marginRight: '20rpx', fontWeight: 700 }" 70 + :customStyle="{ width: '170rpx', height: '64rpx', marginRight: '20rpx', fontWeight: 700 }"
71 ></up-button> 71 ></up-button>
72 </view> 72 </view>
73 <view class="flexA" v-else> 73 <view class="flexA" v-else>
@@ -77,10 +77,10 @@ @@ -77,10 +77,10 @@
77 v-if="[null, '', undefined].includes(props.item?.expressNo) && [1, '1', 2, '2'].includes(props.item?.orderState)" 77 v-if="[null, '', undefined].includes(props.item?.expressNo) && [1, '1', 2, '2'].includes(props.item?.orderState)"
78 text="上传单号" 78 text="上传单号"
79 throttleTime="1500" 79 throttleTime="1500"
80 - :customStyle="{ width: '170rpx', marginRight: '20rpx' }" 80 + :customStyle="{ width: '170rpx', height: '64rpx', marginRight: '20rpx' }"
81 @click="proxy.$h.jumpUrl(`/pages2/order/PrescriptionDetail?id=${props.item.id}&isShowUpload=success&orderRenewId=${props.item.orderRenewId}&isRenew=${props.item?.isAgain == 1 ? 'success' : 'err'}&order=Prescription`)" 81 @click="proxy.$h.jumpUrl(`/pages2/order/PrescriptionDetail?id=${props.item.id}&isShowUpload=success&orderRenewId=${props.item.orderRenewId}&isRenew=${props.item?.isAgain == 1 ? 'success' : 'err'}&order=Prescription`)"
82 ></up-button> 82 ></up-button>
83 - <up-button type="info" shape="circle" text="查看详情" throttleTime="1500" :customStyle="{ width: '170rpx', marginRight: '20rpx' }" @click="clickOrderItemHandler"></up-button> 83 + <up-button type="info" shape="circle" text="查看详情" throttleTime="1500" :customStyle="{ width: '170rpx', height: '64rpx', marginRight: '20rpx' }" @click="clickOrderItemHandler"></up-button>
84 </view> 84 </view>
85 </view> 85 </view>
86 </view> 86 </view>
@@ -273,6 +273,7 @@ const getEndInformationHandler = async () => { @@ -273,6 +273,7 @@ const getEndInformationHandler = async () => {
273 font-size: 24rpx; 273 font-size: 24rpx;
274 font-weight: 700; 274 font-weight: 700;
275 margin-left: 16rpx; 275 margin-left: 16rpx;
  276 + height: min-content;
276 } 277 }
277 .tag { 278 .tag {
278 color: #05b8d2; 279 color: #05b8d2;
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 <view class="Prescription"> 6 <view class="Prescription">
7 <view class="Prescription-title flexC" v-if="props.title">{{ props.title }}</view> 7 <view class="Prescription-title flexC" v-if="props.title">{{ props.title }}</view>
8 8
9 - <template v-if="!props.showX"> 9 + <template v-if="!props.showX && props.isRenew != 'success'">
10 <view class="text mb24">问诊病情:</view> 10 <view class="text mb24">问诊病情:</view>
11 <view class="text mb24">{{ PrescriptionDetail?.prescriptionForm || '病情描述' }}</view> 11 <view class="text mb24">{{ PrescriptionDetail?.prescriptionForm || '病情描述' }}</view>
12 </template> 12 </template>
@@ -20,19 +20,24 @@ @@ -20,19 +20,24 @@
20 </template> 20 </template>
21 <view class="text mb24">处方药:</view> 21 <view class="text mb24">处方药:</view>
22 <view class="list"> 22 <view class="list">
23 - <view class="flexJ" v-for="(_, index) in props.isRenew === 'err' ? PrescriptionDetail?.drugList : PrescriptionDetail?.renewDrugList" :key="index" style="margin-bottom: 42rpx"> 23 + <view
  24 + class="flexJ"
  25 + v-for="(_, index) in props.isRenew === 'err' ? PrescriptionDetail?.drugList : PrescriptionDetail?.renewDrugList"
  26 + :key="index"
  27 + :style="index === (props.isRenew === 'err' ? PrescriptionDetail?.drugList : PrescriptionDetail?.renewDrugList)?.length ? 'margin-bottom: 42rpx' : 'margin-bottom: 0'"
  28 + >
24 <view> 29 <view>
25 - <view class="blacktext" style="margin-bottom: 8rpx">{{ _.name || '' }}</view> 30 + <view class="blacktext" style="margin-bottom: 8rpx; font-weight: 700">{{ _.name || '' }}</view>
26 <view class="graytext">{{ _.des || '' }}</view> 31 <view class="graytext">{{ _.des || '' }}</view>
27 </view> 32 </view>
28 <view> 33 <view>
29 - <view class="blacktext" style="margin-bottom: 8rpx">¥{{ _.amount || 0 }}</view> 34 + <view class="blacktext" style="margin-bottom: 8rpx; font-weight: 700">¥{{ _.amount || 0 }}</view>
30 <view class="graytext">x{{ _.num || 0 }}</view> 35 <view class="graytext">x{{ _.num || 0 }}</view>
31 </view> 36 </view>
32 </view> 37 </view>
33 </view> 38 </view>
34 <view> 39 <view>
35 - <view class="text">处方单证明</view> 40 + <view class="text" style="margin-bottom: 12rpx">处方单证明:</view>
36 <view class="flexW"> 41 <view class="flexW">
37 <template v-if="typeof PrescriptionDetail?.prescriptionFile === 'string'"> 42 <template v-if="typeof PrescriptionDetail?.prescriptionFile === 'string'">
38 <template v-for="_ in PrescriptionDetail?.prescriptionFile.split(',')"> 43 <template v-for="_ in PrescriptionDetail?.prescriptionFile.split(',')">
@@ -41,7 +46,7 @@ @@ -41,7 +46,7 @@
41 </template> 46 </template>
42 </view> 47 </view>
43 </view> 48 </view>
44 - <view class="flexJ mb24"> 49 + <view class="flexJ mb24" style="margin-top: 24rpx">
45 <view class="text">总金额</view> 50 <view class="text">总金额</view>
46 <view class="blacktext">¥{{ amount || 0 }}</view> 51 <view class="blacktext">¥{{ amount || 0 }}</view>
47 </view> 52 </view>
@@ -147,7 +152,6 @@ const CustomBackground = ref(props.bg) @@ -147,7 +152,6 @@ const CustomBackground = ref(props.bg)
147 .text { 152 .text {
148 color: #323233; 153 color: #323233;
149 font-size: 28rpx; 154 font-size: 28rpx;
150 - font-weight: 700;  
151 } 155 }
152 .blacktext { 156 .blacktext {
153 color: #323233; 157 color: #323233;
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 :isPrescriptionDrug="Boolean(orderState)" 23 :isPrescriptionDrug="Boolean(orderState)"
24 :isRecords="Event?.isRecords" 24 :isRecords="Event?.isRecords"
25 :bg="Event?.isRecords === 'success' ? 'linear-gradient(188deg, #E0FFF4 5.54%, #FFF 24.89%)' : '#fff'" 25 :bg="Event?.isRecords === 'success' ? 'linear-gradient(188deg, #E0FFF4 5.54%, #FFF 24.89%)' : '#fff'"
26 - :isRecord="false" 26 + :isRecord="Event?.isRecords === 'success' ? true : false"
27 :item="_" 27 :item="_"
28 @editIsJumpHandler="e => (isJump = e)" 28 @editIsJumpHandler="e => (isJump = e)"
29 @fetchOrderListHandler="orderStore.getOrderListHandler(true, orderState, subOrderState)" 29 @fetchOrderListHandler="orderStore.getOrderListHandler(true, orderState, subOrderState)"
@@ -15,8 +15,8 @@ @@ -15,8 +15,8 @@
15 <view> 15 <view>
16 <view class="flexA" style="margin-bottom: 4rpx"> 16 <view class="flexA" style="margin-bottom: 4rpx">
17 <view class="symptom-username">{{ detailData?.user?.nickname || '暂无' }}</view> 17 <view class="symptom-username">{{ detailData?.user?.nickname || '暂无' }}</view>
  18 + <view class="symptom-tag flexC">{{ proxy.$h.optObjectValue('consultationWay', detailData?.consultationWay) || '未设置' }}</view>
18 </view> 19 </view>
19 - <view class="symptom-tag flexC">{{ proxy.$h.optObjectValue('consultationWay', detailData?.consultationWay) || '未设置' }}</view>  
20 20
21 <view class="symptom-cla"> 21 <view class="symptom-cla">
22 {{ detailData?.petName }} /{{ detailData?.petClass || '品种未知' }}/{{ detailData?.age || '年龄未知' }}/ {{ proxy.$h.optObjectValue('petSex', detailData?.petSex) || '性别未知' }} / 22 {{ detailData?.petName }} /{{ detailData?.petClass || '品种未知' }}/{{ detailData?.age || '年龄未知' }}/ {{ proxy.$h.optObjectValue('petSex', detailData?.petSex) || '性别未知' }} /
@@ -61,11 +61,12 @@ @@ -61,11 +61,12 @@
61 </view> --> 61 </view> -->
62 </view> 62 </view>
63 <view style="height: 200rpx"></view> 63 <view style="height: 200rpx"></view>
64 - <view class="fixed-bottom" v-if="[30, '30', 20, '20'].includes(detailData?.orderState)"> 64 + <view class="fixed-bottom" v-if="[30, '30', 20, '20', 40, '40'].includes(detailData?.orderState)">
65 <!-- <view> --> 65 <!-- <view> -->
66 <view class="form-btns"> 66 <view class="form-btns">
67 - <up-button type="info" shape="circle" text="返回" throttleTime="1500" @click="proxy.$h.backUrl()" :customStyle="{ width: '196rpx', marginRight: '16rpx' }"></up-button>  
68 - <up-button color="#05B8D2" shape="circle" :text="[20, '20'].includes(detailData?.orderState) ? '接诊' : '继续接诊'" throttleTime="1500" @click="AcceptHandler"></up-button> 67 + <!-- <up-button type="info" v-if="[20, '20'].includes(detailData?.orderState)" shape="circle" text="返回" throttleTime="1500" @click="proxy.$h.backUrl()" :customStyle="{ width: '196rpx', marginRight: '16rpx' }"></up-button> -->
  68 + <up-button color="#05B8D2" v-if="[20, '20'].includes(detailData?.orderState)" shape="circle" :text="[20, '20'].includes(detailData?.orderState) ? '接诊' : '回复'" throttleTime="1500" @click="AcceptHandler('err')"></up-button>
  69 + <up-button color="#05B8D2" v-if="[40, '40'].includes(detailData?.orderState)" shape="circle" text="问诊记录" throttleTime="1500" @click="AcceptHandler('success')"></up-button>
69 </view> 70 </view>
70 <u-safe-bottom></u-safe-bottom> 71 <u-safe-bottom></u-safe-bottom>
71 </view> 72 </view>
@@ -95,8 +96,8 @@ const form = ref({ @@ -95,8 +96,8 @@ const form = ref({
95 file: [{}, {}] 96 file: [{}, {}]
96 }) 97 })
97 98
98 -const AcceptHandler = async () => {  
99 - uni.setStorageSync('history', 'err') 99 +const AcceptHandler = async (flag: string) => {
  100 + uni.setStorageSync('history', flag)
100 101
101 await getReceive_diagnosis({ id: detailData.value?.id as string }) 102 await getReceive_diagnosis({ id: detailData.value?.id as string })
102 103
@@ -149,7 +150,7 @@ onLoad((e: EventType) => { @@ -149,7 +150,7 @@ onLoad((e: EventType) => {
149 box-sizing: border-box; 150 box-sizing: border-box;
150 padding: 66rpx 24rpx 0; 151 padding: 66rpx 24rpx 0;
151 background: #fff; 152 background: #fff;
152 - margin-top: 42%; 153 + margin-top: 36%;
153 .fileImg { 154 .fileImg {
154 position: relative; 155 position: relative;
155 .fileimage { 156 .fileimage {
@@ -195,6 +196,8 @@ onLoad((e: EventType) => { @@ -195,6 +196,8 @@ onLoad((e: EventType) => {
195 } 196 }
196 &-infoitem { 197 &-infoitem {
197 margin-bottom: 22rpx; 198 margin-bottom: 22rpx;
  199 + color: #323233;
  200 + font-weight: 400 !important;
198 } 201 }
199 &-cla { 202 &-cla {
200 color: #666666; 203 color: #666666;
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 align-items: center; 13 align-items: center;
14 } 14 }
15 15
16 -.graybg{ 16 +.graybg {
17 height: 100vh; 17 height: 100vh;
18 background: #f7f8fa; 18 background: #f7f8fa;
19 } 19 }
@@ -92,7 +92,9 @@ @@ -92,7 +92,9 @@
92 } 92 }
93 93
94 .blueTag { 94 .blueTag {
95 - border: 2rpx solid #05b8d2; 95 + box-sizing: border-box;
  96 + padding: 0 8rpx;
  97 + border: 1rpx solid #05b8d2;
96 background: #ebfdff; 98 background: #ebfdff;
97 color: #05b8d2; 99 color: #05b8d2;
98 border-radius: 8rpx; 100 border-radius: 8rpx;
@@ -7,7 +7,7 @@ const GlobalData = { @@ -7,7 +7,7 @@ const GlobalData = {
7 ReceivePatients: { 0: '暂不接诊', 1: '在线坐诊', 'err': '状态码错误' }, 7 ReceivePatients: { 0: '暂不接诊', 1: '在线坐诊', 'err': '状态码错误' },
8 sexData: { 0: '未知', 1: '男', 2: '女', 'err': '状态码错误' }, 8 sexData: { 0: '未知', 1: '男', 2: '女', 'err': '状态码错误' },
9 MessageType: { 1: '系统通知', 2: '用户反馈', 'err': '状态码错误' }, 9 MessageType: { 1: '系统通知', 2: '用户反馈', 'err': '状态码错误' },
10 - consultationWay: { 10: '快速问诊', 21: '专家图文语音问诊', 22: '专家视频问诊', 23: '专家电话问诊', 'err': '状态码错误' }, 10 + consultationWay: { 10: '快速问诊', 21: '图文问诊', 22: '视频问诊', 23: '电话问诊', 'err': '状态码错误' },
11 isReply: { 0: '否', 1: '是', 'err': '状态码错误' }, 11 isReply: { 0: '否', 1: '是', 'err': '状态码错误' },
12 paramsOrderState: ['', 20, 30, 40, 50, 50], 12 paramsOrderState: ['', 20, 30, 40, 50, 50],
13 orderState: { 10: '待接诊', 20: '待问诊', 30: '问诊中', 40: '问诊结束', 50: '已取消', 60: '已退款', 'err': '状态码错误' }, 13 orderState: { 10: '待接诊', 20: '待问诊', 30: '问诊中', 40: '问诊结束', 50: '已取消', 60: '已退款', 'err': '状态码错误' },