正在显示
31 个修改的文件
包含
388 行增加
和
129 行删除
@@ -82,7 +82,7 @@ | @@ -82,7 +82,7 @@ | ||
82 | </template> | 82 | </template> |
83 | 83 | ||
84 | <script lang="ts"> | 84 | <script lang="ts"> |
85 | -import { defineComponent, watchEffect, reactive, toRefs, onMounted, computed, nextTick, getCurrentInstance, ComponentPublicInstance } from 'vue' | 85 | +import { defineComponent, defineEmits, watchEffect, reactive, toRefs, onMounted, computed, nextTick, getCurrentInstance, ComponentPublicInstance } from 'vue' |
86 | import Face from './message/face.vue' | 86 | import Face from './message/face.vue' |
87 | import AudioMessage from './message/audio.vue' | 87 | import AudioMessage from './message/audio.vue' |
88 | import store from '../../../../TUICore/store' | 88 | import store from '../../../../TUICore/store' |
@@ -110,7 +110,8 @@ const TUIChatInput = defineComponent({ | @@ -110,7 +110,8 @@ const TUIChatInput = defineComponent({ | ||
110 | default: () => ({}) | 110 | default: () => ({}) |
111 | } | 111 | } |
112 | }, | 112 | }, |
113 | - setup(props) { | 113 | + emits: ['scrollbottomHandler'], |
114 | + setup(props, { emit }) { | ||
114 | const { proxy } = getCurrentInstance() as { proxy: ComponentPublicInstance } | 115 | const { proxy } = getCurrentInstance() as { proxy: ComponentPublicInstance } |
115 | 116 | ||
116 | const TUIServer: any = uni.$TUIKit.TUIChatServer | 117 | const TUIServer: any = uni.$TUIKit.TUIChatServer |
@@ -149,6 +150,7 @@ const TUIChatInput = defineComponent({ | @@ -149,6 +150,7 @@ const TUIChatInput = defineComponent({ | ||
149 | uni.$TUIKit.TUIChatServer.sendTextMessage(JSON.parse(JSON.stringify(data.inputText))) | 150 | uni.$TUIKit.TUIChatServer.sendTextMessage(JSON.parse(JSON.stringify(data.inputText))) |
150 | } | 151 | } |
151 | data.inputText = ' ' | 152 | data.inputText = ' ' |
153 | + emit('scrollbottomHandler') | ||
152 | } | 154 | } |
153 | 155 | ||
154 | // 处理需要合并的数据 | 156 | // 处理需要合并的数据 |
1 | <template> | 1 | <template> |
2 | <u-sticky> | 2 | <u-sticky> |
3 | - <u-navbar title="问诊中" :autoBack="true" bgColor="#fff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }" leftIconColor="#000"></u-navbar> | 3 | + <u-navbar :title="navbarTitle" :autoBack="true" bgColor="#fff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }" leftIconColor="#000"></u-navbar> |
4 | <view class="imtopinfo"> | 4 | <view class="imtopinfo"> |
5 | <view class="flexJ"> | 5 | <view class="flexJ"> |
6 | <view class="flexA"> | 6 | <view class="flexA"> |
@@ -43,7 +43,7 @@ | @@ -43,7 +43,7 @@ | ||
43 | <view class="TUI-message-list" @touchstart="handleTouchStart" @click="dialogID = ''"> | 43 | <view class="TUI-message-list" @touchstart="handleTouchStart" @click="dialogID = ''"> |
44 | <!-- 用户信息卡片 --> | 44 | <!-- 用户信息卡片 --> |
45 | <!-- <UserInfoCard :detailData="detailData" /> --> | 45 | <!-- <UserInfoCard :detailData="detailData" /> --> |
46 | - <view style="height: 280rpx"></view> | 46 | + <view style="height: 340rpx"></view> |
47 | <template v-if="history === 'err'"> | 47 | <template v-if="history === 'err'"> |
48 | <view class="loading-text" v-if="isCompleted">没有更多</view> | 48 | <view class="loading-text" v-if="isCompleted">没有更多</view> |
49 | <view v-for="(item, index) in messages" :key="item.ID" :id="'view' + item.ID"> | 49 | <view v-for="(item, index) in messages" :key="item.ID" :id="'view' + item.ID"> |
@@ -79,7 +79,7 @@ | @@ -79,7 +79,7 @@ | ||
79 | <MessageBubble :data="item"> | 79 | <MessageBubble :data="item"> |
80 | <MessageText :id="item.flow + '-' + item.ID" v-if="item.chatType === 1" :data="item" :messageData="item" @longpress="handleItem($event, item)"></MessageText> | 80 | <MessageText :id="item.flow + '-' + item.ID" v-if="item.chatType === 1" :data="item" :messageData="item" @longpress="handleItem($event, item)"></MessageText> |
81 | <MessageImage :id="item.flow + '-' + item.ID" v-if="item.chatType === 2" :data="item.payload" :messageData="item" @longpress="handleItem($event, item)"></MessageImage> | 81 | <MessageImage :id="item.flow + '-' + item.ID" v-if="item.chatType === 2" :data="item.payload" :messageData="item" @longpress="handleItem($event, item)"></MessageImage> |
82 | - <MessageVideo :id="item.flow + '-' + item.ID" v-if="item.chatType === 3" :data="item.payload" :messageData="item" @longpress="handleItem($event, item)" /> | 82 | + <MessageVideo :id="item.flow + '-' + item.ID" v-if="item.chatType === 3" :data="item" :messageData="item" @longpress="handleItem($event, item)" /> |
83 | </MessageBubble> | 83 | </MessageBubble> |
84 | <MessageRevoked v-if="item.isRevoked" :data="item" @edit="handleEdit(item)" /> | 84 | <MessageRevoked v-if="item.isRevoked" :data="item" @edit="handleEdit(item)" /> |
85 | </view> | 85 | </view> |
@@ -95,7 +95,7 @@ | @@ -95,7 +95,7 @@ | ||
95 | <view @click="sendPrescriptionState = true" v-if="[null, undefined, ''].includes(detailData?.drugId)">发送处方单</view> | 95 | <view @click="sendPrescriptionState = true" v-if="[null, undefined, ''].includes(detailData?.drugId)">发送处方单</view> |
96 | <view @click="showPrescriptionDetailState = true">查看处方单</view> | 96 | <view @click="showPrescriptionDetailState = true">查看处方单</view> |
97 | </view> | 97 | </view> |
98 | - <TUIChatInput :text="text" :conversationData="conversation" :detailData="detailData"></TUIChatInput> | 98 | + <TUIChatInput :text="text" :conversationData="conversation" :detailData="detailData" @scrollbottomHandler="scrollbottomHandler"></TUIChatInput> |
99 | </template> | 99 | </template> |
100 | </view> | 100 | </view> |
101 | <!-- <view class="TUIChat" v-if="conversationType === 'system'"> | 101 | <!-- <view class="TUIChat" v-if="conversationType === 'system'"> |
@@ -232,7 +232,8 @@ export default defineComponent({ | @@ -232,7 +232,8 @@ export default defineComponent({ | ||
232 | pageSize: 15 | 232 | pageSize: 15 |
233 | }, | 233 | }, |
234 | imUserId: '', | 234 | imUserId: '', |
235 | - historyList: [] as any | 235 | + historyList: [] as any, |
236 | + navbarTitle: '' | ||
236 | }) | 237 | }) |
237 | 238 | ||
238 | // 判断当前会话类型:无/系统会话/正常C2C、群聊 | 239 | // 判断当前会话类型:无/系统会话/正常C2C、群聊 |
@@ -266,6 +267,12 @@ export default defineComponent({ | @@ -266,6 +267,12 @@ export default defineComponent({ | ||
266 | data.Event = options | 267 | data.Event = options |
267 | getDetailHandler() | 268 | getDetailHandler() |
268 | 269 | ||
270 | + data.navbarTitle = { err: '问诊中', success: '问诊记录' }[data.history] as string | ||
271 | + | ||
272 | + setTimeout(() => { | ||
273 | + data.scrollTop = 10000 | ||
274 | + }, 1300) | ||
275 | + | ||
269 | // uni.setNavigationBarTitle({ | 276 | // uni.setNavigationBarTitle({ |
270 | // // title: options && options.conversationName | 277 | // // title: options && options.conversationName |
271 | // title: '自定义用户名' | 278 | // title: '自定义用户名' |
@@ -346,6 +353,12 @@ export default defineComponent({ | @@ -346,6 +353,12 @@ export default defineComponent({ | ||
346 | } | 353 | } |
347 | }) | 354 | }) |
348 | 355 | ||
356 | + const scrollbottomHandler = () => { | ||
357 | + setTimeout(() => { | ||
358 | + data.scrollTop = 10000 | ||
359 | + }, 500) | ||
360 | + } | ||
361 | + | ||
349 | const imageFormatMap = new Map([ | 362 | const imageFormatMap = new Map([ |
350 | ['jpg', 1], | 363 | ['jpg', 1], |
351 | ['gif', 2], | 364 | ['gif', 2], |
@@ -622,7 +635,8 @@ export default defineComponent({ | @@ -622,7 +635,8 @@ export default defineComponent({ | ||
622 | getEndInformationHandler, | 635 | getEndInformationHandler, |
623 | computedTotalHandler, | 636 | computedTotalHandler, |
624 | finishCountDownHandler, | 637 | finishCountDownHandler, |
625 | - getOrder_chatHandler | 638 | + getOrder_chatHandler, |
639 | + scrollbottomHandler | ||
626 | } | 640 | } |
627 | } | 641 | } |
628 | }) | 642 | }) |
components/Empty.vue
0 → 100644
1 | +<template> | ||
2 | + <view class="flexC" style="margin: 0 auto; flex-direction: column"> | ||
3 | + <image src="/static/images/empty.png" mode="scaleToFill" /> | ||
4 | + <view class="flexC">{{ props.text }}</view> | ||
5 | + </view> | ||
6 | +</template> | ||
7 | + | ||
8 | +<script setup lang="ts"> | ||
9 | +const props = defineProps({ | ||
10 | + text: String | ||
11 | +}) | ||
12 | +</script> | ||
13 | + | ||
14 | +<style scoped> | ||
15 | +image { | ||
16 | + width: 320rpx; | ||
17 | + height: 320rpx; | ||
18 | + margin-bottom: 32rpx; | ||
19 | +} | ||
20 | +.flexC { | ||
21 | + color: #323233; | ||
22 | + font-size: 28rpx; | ||
23 | + font-weight: 700; | ||
24 | +} | ||
25 | +</style> |
1 | <template> | 1 | <template> |
2 | - <div class="trundown"> | 2 | + <view class="trundown"> |
3 | <view class="trundown-bottom"> | 3 | <view class="trundown-bottom"> |
4 | <view class="shuiyin flexC" v-if="props.isShowSY">宠物问诊</view> | 4 | <view class="shuiyin flexC" v-if="props.isShowSY">宠物问诊</view> |
5 | <view class="flexJ zbjz" @click="jumpHandler"> | 5 | <view class="flexJ zbjz" @click="jumpHandler"> |
@@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
8 | <u-icon name="arrow-right" color="#10bfd1" size="24"></u-icon> | 8 | <u-icon name="arrow-right" color="#10bfd1" size="24"></u-icon> |
9 | </view> | 9 | </view> |
10 | </view> | 10 | </view> |
11 | - </div> | 11 | + </view> |
12 | </template> | 12 | </template> |
13 | 13 | ||
14 | <script setup lang="ts"> | 14 | <script setup lang="ts"> |
@@ -26,8 +26,8 @@ const props = withDefaults(defineProps<IProps>(), { | @@ -26,8 +26,8 @@ const props = withDefaults(defineProps<IProps>(), { | ||
26 | }) | 26 | }) |
27 | 27 | ||
28 | const jumpHandler = () => { | 28 | const jumpHandler = () => { |
29 | - if([20,'20'].includes(props.examineState)) return proxy.$h.jumpUrl(`/pages2/mineinfo/state?state=${props.state}`) | ||
30 | - | 29 | + if ([20, '20'].includes(props.examineState)) return proxy.$h.jumpUrl(`/pages2/mineinfo/state?state=${props.state}`) |
30 | + | ||
31 | uni.$u.toast('请先完成认证') | 31 | uni.$u.toast('请先完成认证') |
32 | } | 32 | } |
33 | </script> | 33 | </script> |
@@ -263,6 +263,12 @@ | @@ -263,6 +263,12 @@ | ||
263 | } | 263 | } |
264 | }, | 264 | }, |
265 | { | 265 | { |
266 | + "path": "money/addAccount", | ||
267 | + "style": { | ||
268 | + "navigationStyle": "custom" | ||
269 | + } | ||
270 | + }, | ||
271 | + { | ||
266 | "path": "datatotal/index", | 272 | "path": "datatotal/index", |
267 | "style": { | 273 | "style": { |
268 | "navigationStyle": "custom" | 274 | "navigationStyle": "custom" |
1 | <template> | 1 | <template> |
2 | - <div class="fillinfo flexCCol"> | 2 | + <view class="fillinfo flexCCol"> |
3 | <view class="fillinfo-title">完善个人信息</view> | 3 | <view class="fillinfo-title">完善个人信息</view> |
4 | <view class="subtitle">为了更好体验,请尽快完善个人信息</view> | 4 | <view class="subtitle">为了更好体验,请尽快完善个人信息</view> |
5 | <image src="/static/images/fillinfo.png" class="logo" mode="aspectFill" /> | 5 | <image src="/static/images/fillinfo.png" class="logo" mode="aspectFill" /> |
6 | <up-button color="#05B8D2" shape="circle" text="我已准备好,去认证" throttleTime="1500" @click="proxy.$h.jumpUrl(`/pages2/auth/step`), emit('close', false)"></up-button> | 6 | <up-button color="#05B8D2" shape="circle" text="我已准备好,去认证" throttleTime="1500" @click="proxy.$h.jumpUrl(`/pages2/auth/step`), emit('close', false)"></up-button> |
7 | <view class="er" @click="emit('close', false)">稍后完善</view> | 7 | <view class="er" @click="emit('close', false)">稍后完善</view> |
8 | - </div> | 8 | + </view> |
9 | </template> | 9 | </template> |
10 | 10 | ||
11 | <script setup lang="ts"> | 11 | <script setup lang="ts"> |
@@ -20,7 +20,9 @@ | @@ -20,7 +20,9 @@ | ||
20 | /> | 20 | /> |
21 | <image v-else @click.stop="proxy.$h.previewImage('/static/images/mAvatar.png')" class="index-avatar" src="/static/images/mAvatar.png" mode="aspectFill" /> | 21 | <image v-else @click.stop="proxy.$h.previewImage('/static/images/mAvatar.png')" class="index-avatar" src="/static/images/mAvatar.png" mode="aspectFill" /> |
22 | <view @click="proxy.$h.jumpUrl(`/pages2/mineinfo/info`)"> | 22 | <view @click="proxy.$h.jumpUrl(`/pages2/mineinfo/info`)"> |
23 | - <view class="index-username ffftext">{{ IndexData?.nickname || '未登录' }}</view> | 23 | + <view class="index-username ffftext" v-if="[null, undefined, ''].includes(IndexData?.nickname) && LoginState">{{ '未设置用户名' }}</view> |
24 | + <view class="index-username ffftext" v-if="![null, undefined, ''].includes(IndexData?.nickname) && LoginState">{{ IndexData.nickname }}</view> | ||
25 | + <view class="index-username ffftext" v-if="!LoginState && [null, undefined, ''].includes(IndexData?.nickname)">{{ '未登录' }}</view> | ||
24 | <view class="ffftext">在线认证资质</view> | 26 | <view class="ffftext">在线认证资质</view> |
25 | </view> | 27 | </view> |
26 | </view> | 28 | </view> |
1 | <template> | 1 | <template> |
2 | <view class="login"> | 2 | <view class="login"> |
3 | - <!-- <image class="login-bgimg" src="/static/images/startup.png" mode="aspectFill" /> --> | ||
4 | - <view class="login-bgcolor"></view> | ||
5 | <view class="login-positiontopbox"> | 3 | <view class="login-positiontopbox"> |
6 | - <image class="login-avatar flexC" :src="proxy.$h.downFile(startimg)" mode="aspectFill"></image> | 4 | + <view class="login-avatar flexC" mode="aspectFill"> |
5 | + <image :src="proxy.$h.downFile(startimg)" mode="scaleToFill" /> | ||
6 | + </view> | ||
7 | <view class="login-title flexC">宠研兽医</view> | 7 | <view class="login-title flexC">宠研兽医</view> |
8 | </view> | 8 | </view> |
9 | </view> | 9 | </view> |
@@ -22,46 +22,30 @@ const { proxy } = getCurrentInstance() | @@ -22,46 +22,30 @@ const { proxy } = getCurrentInstance() | ||
22 | const startUpHandler = async () => { | 22 | const startUpHandler = async () => { |
23 | const { result }: { result: StartType } = await getStart() | 23 | const { result }: { result: StartType } = await getStart() |
24 | 24 | ||
25 | - if (result === null) return | 25 | + ![null, undefined, ''].includes(result?.image) && (startimg.value = result?.image) |
26 | 26 | ||
27 | - startimg.value = result.image | 27 | + setTimeout(() => { |
28 | + if (uni.getStorageSync('token')) { | ||
29 | + proxy.$h.relaunchUrl('/pages/index/index') | ||
30 | + | ||
31 | + return | ||
32 | + } | ||
33 | + | ||
34 | + proxy.$h.relaunchUrl('/pages/login/login') | ||
35 | + }, 3000) | ||
28 | } | 36 | } |
29 | 37 | ||
30 | onShow(startUpHandler()) | 38 | onShow(startUpHandler()) |
31 | - | ||
32 | -setTimeout(() => { | ||
33 | - if (uni.getStorageSync('token')) { | ||
34 | - proxy.$h.relaunchUrl('/pages/index/index') | ||
35 | - return | ||
36 | - } | ||
37 | - proxy.$h.relaunchUrl('/pages/login/login') | ||
38 | -}, 3000) | ||
39 | </script> | 39 | </script> |
40 | 40 | ||
41 | <style lang="scss" scoped> | 41 | <style lang="scss" scoped> |
42 | +page { | ||
43 | + background: #05b8d2; | ||
44 | +} | ||
42 | .login { | 45 | .login { |
43 | text { | 46 | text { |
44 | font-size: 26rpx; | 47 | font-size: 26rpx; |
45 | } | 48 | } |
46 | - &-bgcolor { | ||
47 | - width: 100vw; | ||
48 | - height: 100vh; | ||
49 | - position: fixed; | ||
50 | - top: 0; | ||
51 | - left: 0; | ||
52 | - right: 0; | ||
53 | - z-index: -100; | ||
54 | - background: #05b8d2; | ||
55 | - } | ||
56 | - &-bgimg { | ||
57 | - width: 100vw; | ||
58 | - height: 100vh; | ||
59 | - position: fixed; | ||
60 | - top: 0; | ||
61 | - left: 0; | ||
62 | - right: 0; | ||
63 | - z-index: -100; | ||
64 | - } | ||
65 | &-positiontopbox { | 49 | &-positiontopbox { |
66 | position: fixed; | 50 | position: fixed; |
67 | top: 30%; | 51 | top: 30%; |
@@ -72,6 +56,11 @@ setTimeout(() => { | @@ -72,6 +56,11 @@ setTimeout(() => { | ||
72 | width: 172rpx; | 56 | width: 172rpx; |
73 | height: 172rpx; | 57 | height: 172rpx; |
74 | border-radius: 32rpx; | 58 | border-radius: 32rpx; |
59 | + background: #fff; | ||
60 | + image { | ||
61 | + width: 100%; | ||
62 | + height: 100%; | ||
63 | + } | ||
75 | } | 64 | } |
76 | &-title { | 65 | &-title { |
77 | margin: 36rpx auto 0; | 66 | margin: 36rpx auto 0; |
@@ -16,7 +16,7 @@ | @@ -16,7 +16,7 @@ | ||
16 | </view> | 16 | </view> |
17 | <view class="flexJ" style="margin-top: 28rpx"> | 17 | <view class="flexJ" style="margin-top: 28rpx"> |
18 | <view class="bluetext" @click="emit('editLoginStateHandler', 2)">验证码登录</view> | 18 | <view class="bluetext" @click="emit('editLoginStateHandler', 2)">验证码登录</view> |
19 | - <view class="bluetext" @click="proxy.$h.jumpUrl(`/pages2/mineinfo/editphone?type=editpassword`)">忘记密码</view> | 19 | + <view class="bluetext" @click="proxy.$h.jumpUrl(`/pages2/mineinfo/editphone?type=editpassword&disabled=err`)">忘记密码</view> |
20 | </view> | 20 | </view> |
21 | </view> | 21 | </view> |
22 | </template> | 22 | </template> |
@@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
14 | <up-input placeholder="请输入验证码" border="bottom" placeholderClass="placeholderClass" v-model="params.code"></up-input> | 14 | <up-input placeholder="请输入验证码" border="bottom" placeholderClass="placeholderClass" v-model="params.code"></up-input> |
15 | </view> | 15 | </view> |
16 | <view class="bluetext" style="margin-top: 28rpx" @click="emit('editLoginStateHandler', 3)">账号密码登录</view> | 16 | <view class="bluetext" style="margin-top: 28rpx" @click="emit('editLoginStateHandler', 3)">账号密码登录</view> |
17 | - <view style="font-size: 18rpx; color: red">*未注册用户在登录后自动注册</view> | 17 | + <view style="font-size: 32rpx; color: red; margin-top: 20rpx">*未注册用户在登录后自动注册</view> |
18 | </view> | 18 | </view> |
19 | </template> | 19 | </template> |
20 | 20 |
@@ -7,8 +7,6 @@ | @@ -7,8 +7,6 @@ | ||
7 | </view> | 7 | </view> |
8 | <image class="login-avatar flexC" src="/static/images/bg.png" mode="aspectFill"></image> | 8 | <image class="login-avatar flexC" src="/static/images/bg.png" mode="aspectFill"></image> |
9 | <image class="login-logo flexC" src="/static/images/logo.png" mode="aspectFill"></image> | 9 | <image class="login-logo flexC" src="/static/images/logo.png" mode="aspectFill"></image> |
10 | - <!-- <view class="login-phone flexC">187****5857</view> | ||
11 | - <view class="login-remark flexC">认证服务由中国联通服务</view> --> | ||
12 | </template> | 10 | </template> |
13 | <template v-if="loginState === 2"> | 11 | <template v-if="loginState === 2"> |
14 | <PhoneLogin @editLoginStateHandler="(state: number) => loginState = state" ref="phoneLoginRef" /> | 12 | <PhoneLogin @editLoginStateHandler="(state: number) => loginState = state" ref="phoneLoginRef" /> |
@@ -17,11 +15,11 @@ | @@ -17,11 +15,11 @@ | ||
17 | <AccountLogin @editLoginStateHandler="(state: number) => loginState = state" ref="accountLoginRef" /> | 15 | <AccountLogin @editLoginStateHandler="(state: number) => loginState = state" ref="accountLoginRef" /> |
18 | </template> | 16 | </template> |
19 | <template v-if="loginState === 4"> | 17 | <template v-if="loginState === 4"> |
20 | - <view>暂无需求</view> | 18 | + <view></view> |
21 | </template> | 19 | </template> |
22 | <ConfirmProtocol @login="loginHandler" :loginState="loginState" ref="confirmProtocolRef" /> | 20 | <ConfirmProtocol @login="loginHandler" :loginState="loginState" ref="confirmProtocolRef" /> |
23 | <template v-if="loginState === 1 && iosVersion >= 13"> | 21 | <template v-if="loginState === 1 && iosVersion >= 13"> |
24 | - <AppleLogin ref="AppleLoginRef" /> | 22 | + <AppleLogin v-if="false" ref="AppleLoginRef" /> |
25 | </template> | 23 | </template> |
26 | <view v-if="loginState === 1" class="login-other flexC" @click="loginState = 2">其他登录方式</view> | 24 | <view v-if="loginState === 1" class="login-other flexC" @click="loginState = 2">其他登录方式</view> |
27 | </view> | 25 | </view> |
@@ -60,9 +58,7 @@ onShow(() => { | @@ -60,9 +58,7 @@ onShow(() => { | ||
60 | if (version >= 13) { | 58 | if (version >= 13) { |
61 | iosVersion.value = version | 59 | iosVersion.value = version |
62 | } | 60 | } |
63 | - console.log('当前设备为iOS ' + version) | ||
64 | } else { | 61 | } else { |
65 | - console.log('当前设备不是iOS') | ||
66 | } | 62 | } |
67 | } | 63 | } |
68 | }) | 64 | }) |
@@ -38,12 +38,14 @@ | @@ -38,12 +38,14 @@ | ||
38 | 38 | ||
39 | <view class="infomain Zindex"> | 39 | <view class="infomain Zindex"> |
40 | <view class="infomain-title">您已完成认证</view> | 40 | <view class="infomain-title">您已完成认证</view> |
41 | - <view style="margin-bottom: 10rpx">{{ UserInfo?.nickname }}</view> | 41 | + <view style="margin-bottom: 10rpx"> |
42 | + {{ UserInfo?.nickname }} | ||
43 | + <!-- <text>{{ UserInfo?.doctorUserType ? `- ${UserInfo?.doctorUserType}` : '' }}</text> --> | ||
44 | + </view> | ||
42 | <view class="flexX intrbox" style="margin-bottom: 42rpx"> | 45 | <view class="flexX intrbox" style="margin-bottom: 42rpx"> |
43 | <view> | 46 | <view> |
44 | - {{ UserInfo?.hospitalName }} | ||
45 | - <!-- - | ||
46 | - <text>{{ UserInfo?.department.join() }}</text> --> | 47 | + {{ UserInfo?.hospitalName }} |
48 | + <text v-for="_ in UserInfo?.department">{{ _.name || '空的' }} </text> | ||
47 | </view> | 49 | </view> |
48 | </view> | 50 | </view> |
49 | <view class="flexJA"> | 51 | <view class="flexJA"> |
@@ -69,7 +71,7 @@ | @@ -69,7 +71,7 @@ | ||
69 | <template #confirmButton> | 71 | <template #confirmButton> |
70 | <view class="flexJ"> | 72 | <view class="flexJ"> |
71 | <up-button type="info" plain shape="circle" text="暂不修改" throttleTime="1000" :customStyle="{ width: '248rpx', height: '92rpx', color: '#000', border: '2rpx solid #e5e5e5' }" @click="showIsEditAuthState = false"></up-button> | 73 | <up-button type="info" plain shape="circle" text="暂不修改" throttleTime="1000" :customStyle="{ width: '248rpx', height: '92rpx', color: '#000', border: '2rpx solid #e5e5e5' }" @click="showIsEditAuthState = false"></up-button> |
72 | - <up-button color="#05B8D2" shape="circle" text="修改信息" throttleTime="1000" :customStyle="{ width: '248rpx', height: '92rpx' }" @click="proxy.$h.jumpUrl(`/pages2/auth/step?type=edit`, () => (showIsEditAuthState = false))"></up-button> | 74 | + <up-button color="#05B8D2" shape="circle" text="修改信息" throttleTime="1000" :customStyle="{ width: '248rpx', height: '92rpx' }" @click="proxy.$h.jumpUrl(`/pages2/auth/step?type=edit&reapply=success`, () => (showIsEditAuthState = false))"></up-button> |
73 | </view> | 75 | </view> |
74 | </template> | 76 | </template> |
75 | </u-modal> | 77 | </u-modal> |
@@ -79,8 +81,8 @@ | @@ -79,8 +81,8 @@ | ||
79 | <script setup lang="ts"> | 81 | <script setup lang="ts"> |
80 | import { ref, getCurrentInstance, ComponentPublicInstance } from 'vue' | 82 | import { ref, getCurrentInstance, ComponentPublicInstance } from 'vue' |
81 | import { onLoad, onShow } from '@dcloudio/uni-app' | 83 | import { onLoad, onShow } from '@dcloudio/uni-app' |
82 | -import { getMy } from '../../api' | ||
83 | -import type { UserInfoType } from '../../types' | 84 | +import { getMy, getDepartment } from '../../api' |
85 | +import type { UserInfoType, IndexListType } from '../../types' | ||
84 | const { proxy } = getCurrentInstance() as { proxy: ComponentPublicInstance } | 86 | const { proxy } = getCurrentInstance() as { proxy: ComponentPublicInstance } |
85 | 87 | ||
86 | interface EventType { | 88 | interface EventType { |
@@ -102,6 +104,15 @@ onLoad((e: EventType) => { | @@ -102,6 +104,15 @@ onLoad((e: EventType) => { | ||
102 | const getUserInfoHandler = async () => { | 104 | const getUserInfoHandler = async () => { |
103 | const { result }: { result: UserInfoType } = await getMy() | 105 | const { result }: { result: UserInfoType } = await getMy() |
104 | 106 | ||
107 | + const { result: departmentList }: { result: { records: IndexListType[] } } = await getDepartment({ keyword: '' }) | ||
108 | + | ||
109 | + result.doctorUserType = result.doctorUserType | ||
110 | + ?.split(',') | ||
111 | + .map(_ => proxy.$h.optData('doctorUserType')[_]) | ||
112 | + .join(' ') | ||
113 | + | ||
114 | + ![null, undefined, ''].includes(result.department) && (result.department = departmentList.records.flatMap(item => item.list).filter(item => result.department.includes(item.id))) | ||
115 | + | ||
105 | UserInfo.value = result | 116 | UserInfo.value = result |
106 | } | 117 | } |
107 | 118 |
1 | <template> | 1 | <template> |
2 | <u-navbar title="在线认证" :autoBack="true" bgColor="#40434e" placeholder safeAreaInsetTop :titleStyle="{ color: '#fff' }" leftIconColor="#fff"></u-navbar> | 2 | <u-navbar title="在线认证" :autoBack="true" bgColor="#40434e" placeholder safeAreaInsetTop :titleStyle="{ color: '#fff' }" leftIconColor="#fff"></u-navbar> |
3 | - <div class="step"> | 3 | + <view class="step"> |
4 | <view class="step-top flexJ" v-if="!['detail'].includes(Event?.type as string)"> | 4 | <view class="step-top flexJ" v-if="!['detail'].includes(Event?.type as string)"> |
5 | <view class="flexA"> | 5 | <view class="flexA"> |
6 | <view class="step-num flexC" :class="{ numac: step === 1 }">1</view> | 6 | <view class="step-num flexC" :class="{ numac: step === 1 }">1</view> |
@@ -30,13 +30,13 @@ | @@ -30,13 +30,13 @@ | ||
30 | <u-form-item labelWidth="160rpx" label="性别" prop="sex" borderBottom @click="showActionSheepHandler('sex')" ref="name"> | 30 | <u-form-item labelWidth="160rpx" label="性别" prop="sex" borderBottom @click="showActionSheepHandler('sex')" ref="name"> |
31 | <u-input v-model="ShowSelectData.sex" disabled disabledColor="#ffffff" placeholder="请选择性别" border="none" inputAlign="right"></u-input> | 31 | <u-input v-model="ShowSelectData.sex" disabled disabledColor="#ffffff" placeholder="请选择性别" border="none" inputAlign="right"></u-input> |
32 | <template #right> | 32 | <template #right> |
33 | - <u-icon name="arrow-right"></u-icon> | 33 | + <u-icon name="arrow-right" v-if="!['detail'].includes(Event?.type as string)"></u-icon> |
34 | </template> | 34 | </template> |
35 | </u-form-item> | 35 | </u-form-item> |
36 | <view class="grayLine"></view> | 36 | <view class="grayLine"></view> |
37 | - <u-form-item labelWidth="160rpx" label="选择种类" prop="category" borderBottom @click="!formDisabled && proxy.$h.jumpUrl(`/pages2/mineinfo/hospitalList?flag=KESHI`)" ref="selectDepartment"> | 37 | + <u-form-item labelWidth="160rpx" label="选择种类" prop="doctorUserType" borderBottom @click="!formDisabled && proxy.$h.jumpUrl(`/pages2/mineinfo/hospitalList?flag=KESHI`)" ref="selectDepartment"> |
38 | <view class="flexD" style="width: 100%"> | 38 | <view class="flexD" style="width: 100%"> |
39 | - <u-checkbox-group v-model="form.category" placement="row" shape="circle"> | 39 | + <u-checkbox-group v-model="form.doctorUserType" placement="row" shape="circle" :disabled="formDisabled"> |
40 | <u-checkbox activeColor="#05b8d2" name="1" label="猫猫"></u-checkbox> | 40 | <u-checkbox activeColor="#05b8d2" name="1" label="猫猫"></u-checkbox> |
41 | <u-checkbox activeColor="#05b8d2" name="2" label="狗狗"></u-checkbox> | 41 | <u-checkbox activeColor="#05b8d2" name="2" label="狗狗"></u-checkbox> |
42 | <u-checkbox activeColor="#05b8d2" name="3" label="异宠"></u-checkbox> | 42 | <u-checkbox activeColor="#05b8d2" name="3" label="异宠"></u-checkbox> |
@@ -46,20 +46,20 @@ | @@ -46,20 +46,20 @@ | ||
46 | <u-form-item labelWidth="160rpx" label="选择科室" prop="selectDepartment" borderBottom @click="!formDisabled && proxy.$h.jumpUrl(`/pages2/mineinfo/hospitalList?flag=KESHI`)" ref="selectDepartment"> | 46 | <u-form-item labelWidth="160rpx" label="选择科室" prop="selectDepartment" borderBottom @click="!formDisabled && proxy.$h.jumpUrl(`/pages2/mineinfo/hospitalList?flag=KESHI`)" ref="selectDepartment"> |
47 | <u-input v-model="form.selectDepartment" disabled disabledColor="#ffffff" placeholder="请选择科室" border="none" inputAlign="right"></u-input> | 47 | <u-input v-model="form.selectDepartment" disabled disabledColor="#ffffff" placeholder="请选择科室" border="none" inputAlign="right"></u-input> |
48 | <template #right> | 48 | <template #right> |
49 | - <u-icon name="arrow-right"></u-icon> | 49 | + <u-icon name="arrow-right" v-if="!['detail'].includes(Event?.type as string)"></u-icon> |
50 | </template> | 50 | </template> |
51 | </u-form-item> | 51 | </u-form-item> |
52 | <!-- <u-form-item labelWidth="160rpx" label="选择职称" prop="career" borderBottom @click="showActionSheepHandler('career')" ref="career"> --> | 52 | <!-- <u-form-item labelWidth="160rpx" label="选择职称" prop="career" borderBottom @click="showActionSheepHandler('career')" ref="career"> --> |
53 | <u-form-item labelWidth="160rpx" label="选择职称" prop="selectCareer" borderBottom @click="!formDisabled && proxy.$h.jumpUrl(`/pages2/mineinfo/hospitalList?flag=ZHICHENG`)" ref="career"> | 53 | <u-form-item labelWidth="160rpx" label="选择职称" prop="selectCareer" borderBottom @click="!formDisabled && proxy.$h.jumpUrl(`/pages2/mineinfo/hospitalList?flag=ZHICHENG`)" ref="career"> |
54 | <u-input v-model="form.selectCareer" disabled disabledColor="#ffffff" placeholder="请选择职称" border="none" inputAlign="right"></u-input> | 54 | <u-input v-model="form.selectCareer" disabled disabledColor="#ffffff" placeholder="请选择职称" border="none" inputAlign="right"></u-input> |
55 | <template #right> | 55 | <template #right> |
56 | - <u-icon name="arrow-right"></u-icon> | 56 | + <u-icon name="arrow-right" v-if="!['detail'].includes(Event?.type as string)"></u-icon> |
57 | </template> | 57 | </template> |
58 | </u-form-item> | 58 | </u-form-item> |
59 | <u-form-item labelWidth="160rpx" label="坐诊医院" prop="selectHospital" borderBottom @click="!formDisabled && proxy.$h.jumpUrl(`/pages2/mineinfo/hospitalList?flag=ZUOZHENYIYUAN`)" ref="career"> | 59 | <u-form-item labelWidth="160rpx" label="坐诊医院" prop="selectHospital" borderBottom @click="!formDisabled && proxy.$h.jumpUrl(`/pages2/mineinfo/hospitalList?flag=ZUOZHENYIYUAN`)" ref="career"> |
60 | <u-input v-model="form.selectHospital" disabled disabledColor="#ffffff" placeholder="请选择医院" border="none" inputAlign="right"></u-input> | 60 | <u-input v-model="form.selectHospital" disabled disabledColor="#ffffff" placeholder="请选择医院" border="none" inputAlign="right"></u-input> |
61 | <template #right> | 61 | <template #right> |
62 | - <u-icon name="arrow-right"></u-icon> | 62 | + <u-icon name="arrow-right" v-if="!['detail'].includes(Event?.type as string)"></u-icon> |
63 | </template> | 63 | </template> |
64 | </u-form-item> | 64 | </u-form-item> |
65 | <view style="font-size: 18rpx; color: red">若为居家办公则选择宠物研究院</view> | 65 | <view style="font-size: 18rpx; color: red">若为居家办公则选择宠物研究院</view> |
@@ -131,7 +131,7 @@ | @@ -131,7 +131,7 @@ | ||
131 | </view> | 131 | </view> |
132 | <u-safe-bottom></u-safe-bottom> | 132 | <u-safe-bottom></u-safe-bottom> |
133 | </view> | 133 | </view> |
134 | - </div> | 134 | + </view> |
135 | <u-action-sheet :show="showActionSheep" :actions="actions" :title="actionsTitle" @close="showActionSheep = false" @select="selectActionSheepHandler"></u-action-sheet> | 135 | <u-action-sheet :show="showActionSheep" :actions="actions" :title="actionsTitle" @close="showActionSheep = false" @select="selectActionSheepHandler"></u-action-sheet> |
136 | </template> | 136 | </template> |
137 | 137 | ||
@@ -179,7 +179,7 @@ const form = ref<ApplyAuthType>({ | @@ -179,7 +179,7 @@ const form = ref<ApplyAuthType>({ | ||
179 | selectDepartment: '', | 179 | selectDepartment: '', |
180 | selectCareer: '', | 180 | selectCareer: '', |
181 | selectHospital: '', | 181 | selectHospital: '', |
182 | - category: [] | 182 | + doctorUserType: [] |
183 | }) | 183 | }) |
184 | 184 | ||
185 | const actions = ref() | 185 | const actions = ref() |
@@ -196,7 +196,7 @@ const rules = ref({ | @@ -196,7 +196,7 @@ const rules = ref({ | ||
196 | selectDepartment: { type: 'string', required: true, message: '请选择科室', trigger: ['blur', 'change'] }, | 196 | selectDepartment: { type: 'string', required: true, message: '请选择科室', trigger: ['blur', 'change'] }, |
197 | selectCareer: { type: 'string', required: true, message: '请选择职称', trigger: ['blur', 'change'] }, | 197 | selectCareer: { type: 'string', required: true, message: '请选择职称', trigger: ['blur', 'change'] }, |
198 | selectHospital: { type: 'string', required: true, message: '请选坐诊医院', trigger: ['blur', 'change'] }, | 198 | selectHospital: { type: 'string', required: true, message: '请选坐诊医院', trigger: ['blur', 'change'] }, |
199 | - category: { type: 'array', min: 1, required: true, message: '请选择种类', trigger: ['blur', 'change'] } | 199 | + doctorUserType: { type: 'array', min: 1, required: true, message: '请选择种类', trigger: ['blur', 'change'] } |
200 | }) | 200 | }) |
201 | 201 | ||
202 | const formDisabled = ref<boolean>(false) // true 禁用代表回显数据 false 可以填写可以提交 | 202 | const formDisabled = ref<boolean>(false) // true 禁用代表回显数据 false 可以填写可以提交 |
@@ -268,12 +268,15 @@ const uploadFormImgHandler = () => | @@ -268,12 +268,15 @@ const uploadFormImgHandler = () => | ||
268 | const submitAuthHandler = async () => { | 268 | const submitAuthHandler = async () => { |
269 | if (!form.value.file.length) return uni.$u.toast('请上传资质证明') | 269 | if (!form.value.file.length) return uni.$u.toast('请上传资质证明') |
270 | 270 | ||
271 | - await updateRegister({ | 271 | + const data = { |
272 | ...form.value, | 272 | ...form.value, |
273 | department: typeof form.value.department === 'string' ? form.value.department : JSON.stringify(form.value.department), | 273 | department: typeof form.value.department === 'string' ? form.value.department : JSON.stringify(form.value.department), |
274 | career: typeof form.value.career === 'string' ? form.value.career : JSON.stringify(form.value.career), | 274 | career: typeof form.value.career === 'string' ? form.value.career : JSON.stringify(form.value.career), |
275 | - hospital: typeof form.value.hospital === 'string' ? form.value.hospital : JSON.stringify(form.value.hospital) | ||
276 | - }) | 275 | + hospital: typeof form.value.hospital === 'string' ? form.value.hospital : JSON.stringify(form.value.hospital), |
276 | + doctorUserType: form.value.doctorUserType?.join() | ||
277 | + } | ||
278 | + | ||
279 | + await updateRegister(data) | ||
277 | 280 | ||
278 | const delta = Event.value?.reapply === 'success' ? 2 : 1 | 281 | const delta = Event.value?.reapply === 'success' ? 2 : 1 |
279 | 282 | ||
@@ -310,7 +313,8 @@ const getVeterinaryHandler = async () => { | @@ -310,7 +313,8 @@ const getVeterinaryHandler = async () => { | ||
310 | ? JSON.parse(result.hospital as string) | 313 | ? JSON.parse(result.hospital as string) |
311 | .map(item => item.name) | 314 | .map(item => item.name) |
312 | .join() | 315 | .join() |
313 | - : result.hospital | 316 | + : result.hospital, |
317 | + doctorUserType: result.doctorUserType?.split(',') | ||
314 | } | 318 | } |
315 | } | 319 | } |
316 | 320 |
@@ -17,9 +17,9 @@ | @@ -17,9 +17,9 @@ | ||
17 | <text class="message-text">{{ _.text }}</text> | 17 | <text class="message-text">{{ _.text }}</text> |
18 | </view> | 18 | </view> |
19 | </view> | 19 | </view> |
20 | - <!-- <view> | ||
21 | - <view class="message-time">{{ _.time }}</view> | ||
22 | - </view> --> | 20 | + <view> |
21 | + <view class="message-time">{{ _.time }}</view> | ||
22 | + </view> | ||
23 | </view> | 23 | </view> |
24 | <view class="flexD"> | 24 | <view class="flexD"> |
25 | <u-line margin="30rpx 0" v-if="index !== list.length - 1" length="80%"></u-line> | 25 | <u-line margin="30rpx 0" v-if="index !== list.length - 1" length="80%"></u-line> |
@@ -5,26 +5,31 @@ | @@ -5,26 +5,31 @@ | ||
5 | </template> | 5 | </template> |
6 | </u-navbar> | 6 | </u-navbar> |
7 | <view class="msglist"> | 7 | <view class="msglist"> |
8 | - <view class="msglist-item" v-for="_ in pageList?.records" :key="_.id" @click="jumpUrlHandler(_)"> | ||
9 | - <view class="flexJ" style="margin-bottom: 28rpx"> | ||
10 | - <view class="msglist-title">{{ proxy.$h.optObjectValue('MessageType', _?.type) }}</view> | ||
11 | - <view class="msglist-time">{{ _?.time }}</view> | 8 | + <template v-if="pageList?.records.length"> |
9 | + <view class="msglist-item" v-for="_ in pageList?.records" :key="_.id" @click="jumpUrlHandler(_)"> | ||
10 | + <view class="flexJ" style="margin-bottom: 28rpx"> | ||
11 | + <view class="msglist-title">{{ proxy.$h.optObjectValue('MessageType', _?.type) }}</view> | ||
12 | + <view class="msglist-time">{{ _?.time }}</view> | ||
13 | + </view> | ||
14 | + <view class="msglist-message">{{ _?.content }}</view> | ||
15 | + <u-line margin="32rpx 0"></u-line> | ||
16 | + <view class="flexJ"> | ||
17 | + <view class="msglist-todetail">查看详情</view> | ||
18 | + <u-icon size="20" name="arrow-right" color="#c1c1c1"></u-icon> | ||
19 | + </view> | ||
12 | </view> | 20 | </view> |
13 | - <view class="msglist-message">{{ _?.content }}</view> | ||
14 | - <u-line margin="32rpx 0"></u-line> | ||
15 | - <view class="flexJ"> | ||
16 | - <view class="msglist-todetail">查看详情</view> | ||
17 | - <u-icon size="20" name="arrow-right" color="#c1c1c1"></u-icon> | ||
18 | - </view> | ||
19 | - </view> | ||
20 | - | ||
21 | - <view class="msglist-empty flexC">没有更多数据了~</view> | 21 | + <view class="msglist-empty flexC">没有更多数据了~</view> |
22 | + </template> | ||
23 | + <template v-else> | ||
24 | + <Empty text="暂无通知" /> | ||
25 | + </template> | ||
22 | </view> | 26 | </view> |
23 | </template> | 27 | </template> |
24 | 28 | ||
25 | <script setup lang="ts"> | 29 | <script setup lang="ts"> |
26 | import { ref, getCurrentInstance, ComponentPublicInstance } from 'vue' | 30 | import { ref, getCurrentInstance, ComponentPublicInstance } from 'vue' |
27 | import { onLoad, onReachBottom } from '@dcloudio/uni-app' | 31 | import { onLoad, onReachBottom } from '@dcloudio/uni-app' |
32 | +import Empty from '@/components/Empty.vue' | ||
28 | import { getMsg_list, getis_all_read } from '../../api' | 33 | import { getMsg_list, getis_all_read } from '../../api' |
29 | import { MessageListParamsType, PageListType, MessageListType } from '../../types' | 34 | import { MessageListParamsType, PageListType, MessageListType } from '../../types' |
30 | 35 |
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
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" /> |
7 | 7 | ||
8 | - <div 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="flexJ" style="margin-bottom: 50rpx"> |
@@ -51,7 +51,7 @@ | @@ -51,7 +51,7 @@ | ||
51 | <view class="mineCom-time">没有更多数据</view> | 51 | <view class="mineCom-time">没有更多数据</view> |
52 | </view> | 52 | </view> |
53 | </template> | 53 | </template> |
54 | - </div> | 54 | + </view> |
55 | </template> | 55 | </template> |
56 | 56 | ||
57 | <script setup lang="ts"> | 57 | <script setup lang="ts"> |
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
5 | </view> | 5 | </view> |
6 | <view class="phone-title">{{ Event?.type === 'editpassword' ? '修改密码' : '更换手机号' }}</view> | 6 | <view class="phone-title">{{ Event?.type === 'editpassword' ? '修改密码' : '更换手机号' }}</view> |
7 | <view style="margin-bottom: 56rpx"> | 7 | <view style="margin-bottom: 56rpx"> |
8 | - <up-input placeholder="请输入手机号" border="bottom" placeholderClass="placeholderClass" v-model="phone" disabled disabledColor="#fff"> | 8 | + <up-input placeholder="请输入手机号" border="bottom" placeholderClass="placeholderClass" v-model="phone" :disabled="Event?.disabled === 'err' ? false : true" disabledColor="#fff"> |
9 | <template #suffix> | 9 | <template #suffix> |
10 | <view class="phone-suffix" @click="sendCodeHandler">{{ countdown === 60 ? '获取验证码' : `${countdown}秒后可重新获取` }}</view> | 10 | <view class="phone-suffix" @click="sendCodeHandler">{{ countdown === 60 ? '获取验证码' : `${countdown}秒后可重新获取` }}</view> |
11 | </template> | 11 | </template> |
@@ -34,6 +34,7 @@ import { DebounceBy } from '../../utils/debounceBy' | @@ -34,6 +34,7 @@ import { DebounceBy } from '../../utils/debounceBy' | ||
34 | 34 | ||
35 | interface EventType { | 35 | interface EventType { |
36 | type: string | 36 | type: string |
37 | + disabled?: string | ||
37 | } | 38 | } |
38 | 39 | ||
39 | const Event = ref<EventType>() | 40 | const Event = ref<EventType>() |
@@ -96,8 +97,6 @@ const editPhoneHandler = async () => { | @@ -96,8 +97,6 @@ const editPhoneHandler = async () => { | ||
96 | uni.$u.toast(error) | 97 | uni.$u.toast(error) |
97 | } | 98 | } |
98 | } | 99 | } |
99 | - | ||
100 | - // proxy.$h.jumpUrl(`/pages2/mineinfo/editPasssword`) | ||
101 | } | 100 | } |
102 | 101 | ||
103 | onLoad((e: EventType) => { | 102 | onLoad((e: EventType) => { |
1 | <template> | 1 | <template> |
2 | <u-navbar title="更改状态" :autoBack="true" bgColor="#fff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }" leftIconColor="#000"></u-navbar> | 2 | <u-navbar title="更改状态" :autoBack="true" bgColor="#fff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }" leftIconColor="#000"></u-navbar> |
3 | - <div class="state"> | 3 | + <view class="state"> |
4 | <view class="flexJ" style="margin-bottom: 62rpx"> | 4 | <view class="flexJ" style="margin-bottom: 62rpx"> |
5 | <view v-for="(_, index) in statelist" :key="index" class="stateBtn flexC" :class="{ activeBtn: params.state === _.value }" @click="params.state = _.value">{{ _.title }}</view> | 5 | <view v-for="(_, index) in statelist" :key="index" class="stateBtn flexC" :class="{ activeBtn: params.state === _.value }" @click="params.state = _.value">{{ _.title }}</view> |
6 | </view> | 6 | </view> |
@@ -57,7 +57,7 @@ | @@ -57,7 +57,7 @@ | ||
57 | <view style="margin-top: 160rpx" v-if="params.state === 0"> | 57 | <view style="margin-top: 160rpx" v-if="params.state === 0"> |
58 | <up-button color="#05B8D2" shape="circle" text="提交" throttleTime="1500" @click="submitMineStateHandler(params.state)"></up-button> | 58 | <up-button color="#05B8D2" shape="circle" text="提交" throttleTime="1500" @click="submitMineStateHandler(params.state)"></up-button> |
59 | </view> | 59 | </view> |
60 | - </div> | 60 | + </view> |
61 | <u-datetime-picker :show="showTimePickerState" mode="time" @cancel="showTimePickerState = false" @confirm="confirmSelectTimeHandler"></u-datetime-picker> | 61 | <u-datetime-picker :show="showTimePickerState" mode="time" @cancel="showTimePickerState = false" @confirm="confirmSelectTimeHandler"></u-datetime-picker> |
62 | </template> | 62 | </template> |
63 | 63 |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | <u-navbar title="账户设置" :autoBack="true" bgColor="#fff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }" leftIconColor="#000"></u-navbar> | 2 | <u-navbar title="账户设置" :autoBack="true" bgColor="#fff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }" leftIconColor="#000"></u-navbar> |
3 | <u-cell-group> | 3 | <u-cell-group> |
4 | <template v-for="_ in accountList"> | 4 | <template v-for="_ in accountList"> |
5 | - <u-cell | 5 | + <!-- <u-cell |
6 | :title="_.title + _.account" | 6 | :title="_.title + _.account" |
7 | :isLink="true" | 7 | :isLink="true" |
8 | @click=" | 8 | @click=" |
@@ -13,7 +13,8 @@ | @@ -13,7 +13,8 @@ | ||
13 | nameFlag = _.nameFlag | 13 | nameFlag = _.nameFlag |
14 | } | 14 | } |
15 | " | 15 | " |
16 | - ></u-cell> | 16 | + ></u-cell> --> |
17 | + <u-cell :title="_.title + _.account" :isLink="true" @click="proxy.$h.jumpUrl(proxy.$h.setObjToUrlParams(_.url, _))"></u-cell> | ||
17 | </template> | 18 | </template> |
18 | </u-cell-group> | 19 | </u-cell-group> |
19 | <u-modal :show="bindAccountModalState" :title="''" @confirm="bindAccountHandler" @cancel="bindAccountModalState = false" showCancelButton confirmText="确认绑定"> | 20 | <u-modal :show="bindAccountModalState" :title="''" @confirm="bindAccountHandler" @cancel="bindAccountModalState = false" showCancelButton confirmText="确认绑定"> |
@@ -50,8 +51,8 @@ const bindAccountModalState = ref<boolean>(false) | @@ -50,8 +51,8 @@ const bindAccountModalState = ref<boolean>(false) | ||
50 | const bindAccountModalTitle = ref<string>('') | 51 | const bindAccountModalTitle = ref<string>('') |
51 | 52 | ||
52 | const accountList = ref([ | 53 | const accountList = ref([ |
53 | - { account: '', title: '微信账户', nameFlag: 'doctorWXRealName', flag: 'wxUserName' }, | ||
54 | - { account: '', title: '支付宝账户', nameFlag: 'doctorRealName', flag: 'aliUserName' } | 54 | + { account: '', title: '微信账户', nameFlag: 'doctorWXRealName', url: '/pages2/money/addAccount', flag: 'wxUserName' }, |
55 | + { account: '', title: '支付宝账户', nameFlag: 'doctorRealName', url: '/pages2/money/addAccount', flag: 'aliUserName' } | ||
55 | ]) | 56 | ]) |
56 | 57 | ||
57 | onShow(() => { | 58 | onShow(() => { |
1 | <template> | 1 | <template> |
2 | <u-navbar title="添加银行卡" :autoBack="true" bgColor="#ffffff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }"></u-navbar> | 2 | <u-navbar title="添加银行卡" :autoBack="true" bgColor="#ffffff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }"></u-navbar> |
3 | - <div class="step"> | 3 | + <view class="step"> |
4 | <view class="main"> | 4 | <view class="main"> |
5 | <u-form labelPosition="left" :model="form" :rules="rules" ref="stepForm1"> | 5 | <u-form labelPosition="left" :model="form" :rules="rules" ref="stepForm1"> |
6 | <view class="grayLine"></view> | 6 | <view class="grayLine"></view> |
@@ -33,7 +33,7 @@ | @@ -33,7 +33,7 @@ | ||
33 | </u-form> | 33 | </u-form> |
34 | <up-button color="#05B8D2" shape="circle" text="同意协议并添加" throttleTime="1500" :customStyle="{ width: '100%', height: '94rpx', fontWeight: 700 }" @click="confirmAddBankCardHandler"></up-button> | 34 | <up-button color="#05B8D2" shape="circle" text="同意协议并添加" throttleTime="1500" :customStyle="{ width: '100%', height: '94rpx', fontWeight: 700 }" @click="confirmAddBankCardHandler"></up-button> |
35 | </view> | 35 | </view> |
36 | - </div> | 36 | + </view> |
37 | </template> | 37 | </template> |
38 | 38 | ||
39 | <script setup lang="ts"> | 39 | <script setup lang="ts"> |
pages2/money/addAccount.vue
0 → 100644
1 | +<template> | ||
2 | + <u-navbar title="账户设置" :autoBack="true" bgColor="#fff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }" leftIconColor="#000"></u-navbar> | ||
3 | + <view class="step"> | ||
4 | + <view class="main"> | ||
5 | + <u-form labelPosition="left" :model="form" ref="AddAccountFormRef"> | ||
6 | + <view class="grayLine"></view> | ||
7 | + <u-form-item labelWidth="200rpx" :label="Event.title" :prop="Event.flag" borderBottom> | ||
8 | + <u-input :placeholder="`请输入${Event.title}`" border="none" v-model="form[Event.flag]" disabledColor="#ffffff"></u-input> | ||
9 | + </u-form-item> | ||
10 | + <u-form-item labelWidth="200rpx" :label="`真实姓名`" :prop="Event.nameFlag" borderBottom> | ||
11 | + <u-input :placeholder="`请输入真实姓名`" border="none" v-model="form[Event.nameFlag]" disabledColor="#ffffff"></u-input> | ||
12 | + </u-form-item> | ||
13 | + <u-form-item labelWidth="200rpx" :label="`手机号`" prop="phone" borderBottom> | ||
14 | + <u-input :placeholder="`请输入手机号`" border="none" v-model="UserInfo.phone" disabledColor="#ffffff" disabled></u-input> | ||
15 | + <view style="color: #06b8d3; font-size: 26rpx" @click="sendCodeHandler">{{ countdown === 60 ? '获取验证码' : `${countdown}秒后可重新获取` }}</view> | ||
16 | + </u-form-item> | ||
17 | + <u-form-item labelWidth="200rpx" :label="`验证码`" prop="code" borderBottom> | ||
18 | + <u-input :placeholder="`请输入验证码`" border="none" v-model="form.code" disabledColor="#ffffff"></u-input> | ||
19 | + </u-form-item> | ||
20 | + </u-form> | ||
21 | + </view> | ||
22 | + <up-button color="#05B8D2" shape="circle" text="添加" throttleTime="1500" :customStyle="{ width: '90%', height: '94rpx', marginTop: '32rpx' }" @click="bindAccountHandler"></up-button> | ||
23 | + </view> | ||
24 | +</template> | ||
25 | + | ||
26 | +<script setup lang="ts"> | ||
27 | +import { ref, getCurrentInstance, ComponentPublicInstance, nextTick } from 'vue' | ||
28 | +import { onLoad } from '@dcloudio/uni-app' | ||
29 | +import useTimeHandler from '@/hooks/useTimeChange' | ||
30 | +import { DebounceBy } from '@/utils/debounceBy' | ||
31 | +import { updateBindUserCard, getChangePhonePwdCode } from '../../api' | ||
32 | +import { BindUserCardType, AddAccountEventType } from '../../types' | ||
33 | +import { AddAccountFormRules } from '@/static/json/rules' | ||
34 | + | ||
35 | +const { proxy } = getCurrentInstance() as { proxy: ComponentPublicInstance } | ||
36 | + | ||
37 | +const [countdown, startCountdown] = useTimeHandler() | ||
38 | + | ||
39 | +const Event = ref<AddAccountEventType>({ | ||
40 | + account: '', | ||
41 | + flag: '', | ||
42 | + nameFlag: '', | ||
43 | + title: '', | ||
44 | + url: '' | ||
45 | +}) | ||
46 | + | ||
47 | +const AddAccountFormRef = ref() | ||
48 | + | ||
49 | +const UserInfo = ref() | ||
50 | + | ||
51 | +const form = ref<BindUserCardType>({ | ||
52 | + wxUserName: '', | ||
53 | + aliUserName: '', | ||
54 | + doctorRealName: '', | ||
55 | + doctorWXRealName: '' | ||
56 | +}) | ||
57 | + | ||
58 | +onLoad(async (e: AddAccountEventType) => { | ||
59 | + Event.value = e | ||
60 | + | ||
61 | + UserInfo.value = uni.getStorageSync('UserInfo') | ||
62 | + | ||
63 | + nextTick(() => { | ||
64 | + AddAccountFormRef.value.setRules(AddAccountFormRules) | ||
65 | + }) | ||
66 | +}) | ||
67 | + | ||
68 | +const clickGetCodeHandler = async () => await getChangePhonePwdCode({ type: 3 }) | ||
69 | + | ||
70 | +const sendCodeHandler = DebounceBy(() => startCountdown(clickGetCodeHandler), 2000) | ||
71 | + | ||
72 | +const bindAccountHandler = () => | ||
73 | + AddAccountFormRef.value.validate().then(async () => { | ||
74 | + await updateBindUserCard({ [Event.value.flag]: form.value[Event.value.flag].replace(/\s/g, ''), [Event.value.nameFlag]: form.value[Event.value.nameFlag] }) | ||
75 | + | ||
76 | + proxy.$h.timeCallBack('绑定成功') | ||
77 | + }) | ||
78 | +</script> | ||
79 | + | ||
80 | +<style lang="scss" scoped> | ||
81 | +page { | ||
82 | + background: #f6f8fa; | ||
83 | +} | ||
84 | +.step { | ||
85 | + &-top { | ||
86 | + background: #fff; | ||
87 | + box-sizing: border-box; | ||
88 | + padding: 44rpx 24rpx; | ||
89 | + margin-bottom: 20rpx; | ||
90 | + } | ||
91 | + &-num { | ||
92 | + width: 36rpx; | ||
93 | + height: 36rpx; | ||
94 | + box-sizing: border-box; | ||
95 | + padding: 2rpx 10rpx; | ||
96 | + border-radius: 50%; | ||
97 | + background: #cccccc; | ||
98 | + color: #ffffff; | ||
99 | + font-size: 24rpx; | ||
100 | + margin-right: 14rpx; | ||
101 | + } | ||
102 | + .numac { | ||
103 | + background: #05b8d2; | ||
104 | + } | ||
105 | + &-title { | ||
106 | + color: #cccccc; | ||
107 | + font-size: 30rpx; | ||
108 | + font-weight: 700; | ||
109 | + } | ||
110 | + .titleac { | ||
111 | + color: #05b8d2; | ||
112 | + } | ||
113 | + &-img { | ||
114 | + width: 52rpx; | ||
115 | + height: 52rpx; | ||
116 | + } | ||
117 | +} | ||
118 | +.main { | ||
119 | + box-sizing: border-box; | ||
120 | + padding: 0 32rpx; | ||
121 | + background: #fff; | ||
122 | + .formSubTitle { | ||
123 | + margin-bottom: 46rpx; | ||
124 | + color: #666666; | ||
125 | + font-size: 24rpx; | ||
126 | + } | ||
127 | + .fileImg { | ||
128 | + position: relative; | ||
129 | + .fileimage { | ||
130 | + width: 210rpx; | ||
131 | + height: 210rpx; | ||
132 | + border-radius: 24rpx; | ||
133 | + margin-right: 24rpx; | ||
134 | + } | ||
135 | + .fileimage:nth-child(3n) { | ||
136 | + margin-right: 0 !important; | ||
137 | + } | ||
138 | + .close { | ||
139 | + position: absolute; | ||
140 | + top: 12rpx; | ||
141 | + right: 12rpx; | ||
142 | + width: 40rpx; | ||
143 | + height: 40rpx; | ||
144 | + border-radius: 50%; | ||
145 | + } | ||
146 | + } | ||
147 | + .uploadImg { | ||
148 | + box-sizing: border-box; | ||
149 | + padding: 68rpx 60rpx 60rpx; | ||
150 | + border: 1rpx dashed #cbcbcb; | ||
151 | + color: #999999; | ||
152 | + font-size: 22rpx; | ||
153 | + font-weight: 700; | ||
154 | + image { | ||
155 | + width: 48rpx; | ||
156 | + height: 48rpx; | ||
157 | + margin-bottom: 4rpx; | ||
158 | + } | ||
159 | + } | ||
160 | + .formTitle { | ||
161 | + color: #323233; | ||
162 | + font-size: 30rpx; | ||
163 | + font-weight: 700; | ||
164 | + box-sizing: border-box; | ||
165 | + padding: 30rpx 0; | ||
166 | + } | ||
167 | +} | ||
168 | +</style> |
@@ -101,11 +101,6 @@ | @@ -101,11 +101,6 @@ | ||
101 | :showStep="`err`" | 101 | :showStep="`err`" |
102 | /> | 102 | /> |
103 | </u-popup> | 103 | </u-popup> |
104 | - <div id="u-a-p"> | ||
105 | - <div> | ||
106 | - <div></div> | ||
107 | - </div> | ||
108 | - </div> | ||
109 | </template> | 104 | </template> |
110 | 105 | ||
111 | <script setup lang="ts"> | 106 | <script setup lang="ts"> |
@@ -5,9 +5,14 @@ | @@ -5,9 +5,14 @@ | ||
5 | </view> | 5 | </view> |
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 | - <template v-if="!['success'].includes(props.isRenew)"> | 8 | + |
9 | + <!-- <template v-if="!['success'].includes(props.isRenew) && ![null, undefined, ''].includes(PrescriptionDetail?.prescriptionForm)"> | ||
9 | <view class="text mb24">问诊病情</view> | 10 | <view class="text mb24">问诊病情</view> |
10 | - <view class="text mb24">{{ PrescriptionDetail?.supplement || '病情描述' }}</view> | 11 | + <view class="text mb24">{{ PrescriptionDetail?.prescriptionForm || '病情描述' }}</view> |
12 | + </template> --> | ||
13 | + <template v-if="!['success'].includes(props.isRenew) && ![null, undefined, ''].includes(PrescriptionDetail?.supplement) && props.showX"> | ||
14 | + <view class="text mb24">{{ props.showX ? '续方原因' : '问诊病情' }}</view> | ||
15 | + <view class="text mb24">{{ PrescriptionDetail?.supplement || '续方原因' }}</view> | ||
11 | </template> | 16 | </template> |
12 | <template v-if="![null, undefined, ''].includes(PrescriptionDetail?.renewRemark) && ['success'].includes(props.isRenew)"> | 17 | <template v-if="![null, undefined, ''].includes(PrescriptionDetail?.renewRemark) && ['success'].includes(props.isRenew)"> |
13 | <view class="text mb24">续方原因</view> | 18 | <view class="text mb24">续方原因</view> |
@@ -82,13 +87,15 @@ interface IProps { | @@ -82,13 +87,15 @@ interface IProps { | ||
82 | showTopState: boolean | 87 | showTopState: boolean |
83 | showStep?: string | 88 | showStep?: string |
84 | order?: string | 89 | order?: string |
90 | + showX?: boolean | ||
85 | } | 91 | } |
86 | const props = withDefaults(defineProps<IProps>(), { | 92 | const props = withDefaults(defineProps<IProps>(), { |
87 | bg: '#fff', | 93 | bg: '#fff', |
88 | isRenew: 'err', | 94 | isRenew: 'err', |
89 | showTopState: true, | 95 | showTopState: true, |
90 | showStep: 'success', | 96 | showStep: 'success', |
91 | - order: 'xf' | 97 | + order: 'xf', |
98 | + showX: false | ||
92 | }) | 99 | }) |
93 | 100 | ||
94 | const amount = computed(() => { | 101 | const amount = computed(() => { |
@@ -30,6 +30,7 @@ | @@ -30,6 +30,7 @@ | ||
30 | </view> | 30 | </view> |
31 | <u-line margin="32rpx 0 22rpx 0"></u-line> | 31 | <u-line margin="32rpx 0 22rpx 0"></u-line> |
32 | <view class="moneytext flexD" v-if="!props.isPrescriptionDrug && !props.isRecord">¥{{ props.item?.award || 0 }}/预计收入</view> | 32 | <view class="moneytext flexD" v-if="!props.isPrescriptionDrug && !props.isRecord">¥{{ props.item?.award || 0 }}/预计收入</view> |
33 | + <view v-if="[2, '2'].includes(props.item.renewExamineState as string)" style="font-size: 20rpx">驳回原因:{{ props.item.examineRemark }}</view> | ||
33 | <view class="flexD"> | 34 | <view class="flexD"> |
34 | <view class="flexA"> | 35 | <view class="flexA"> |
35 | <!-- <up-button type="info" @click="clickOrderItemHandler" plain shape="circle" text="查看" throttleTime="1500" :customStyle="{ width: '170rpx', marginRight: '20rpx', fontWeight: 700 }"></up-button> --> | 36 | <!-- <up-button type="info" @click="clickOrderItemHandler" plain shape="circle" text="查看" throttleTime="1500" :customStyle="{ width: '170rpx', marginRight: '20rpx', fontWeight: 700 }"></up-button> --> |
@@ -60,7 +61,7 @@ | @@ -60,7 +61,7 @@ | ||
60 | </view> | 61 | </view> |
61 | </u-modal> | 62 | </u-modal> |
62 | <u-popup :show="showPrescriptionState" @close="showPrescriptionState = false" mode="bottom" closeIconPos="top-right" closeable round="20"> | 63 | <u-popup :show="showPrescriptionState" @close="showPrescriptionState = false" mode="bottom" closeIconPos="top-right" closeable round="20"> |
63 | - <Prescription :showTopState="false" :PrescriptionDetail="PrescriptionDetail" :isRenew="isRenew" bg="linear-gradient(188deg, #E0FFF4 5.54%, #FFF 24.89%)" :title="`${props.item.user?.nickName}的处方单`" showStep="err" /> | 64 | + <Prescription :showTopState="false" :PrescriptionDetail="PrescriptionDetail" :isRenew="isRenew" bg="linear-gradient(188deg, #E0FFF4 5.54%, #FFF 24.89%)" :title="`${props.item.user?.nickName}的处方单`" showStep="err" :showX="true" /> |
64 | </u-popup> | 65 | </u-popup> |
65 | </template> | 66 | </template> |
66 | 67 |
@@ -17,16 +17,21 @@ | @@ -17,16 +17,21 @@ | ||
17 | ></u-tabs> | 17 | ></u-tabs> |
18 | </u-sticky> | 18 | </u-sticky> |
19 | <view class="order"> | 19 | <view class="order"> |
20 | - <template v-for="_ in orderList"> | ||
21 | - <OrderCard | ||
22 | - :isPrescriptionDrug="Boolean(orderState)" | ||
23 | - :isRecords="Event?.isRecords" | ||
24 | - :bg="Event?.isRecords === 'success' ? 'linear-gradient(188deg, #E0FFF4 5.54%, #FFF 24.89%)' : '#fff'" | ||
25 | - :isRecord="false" | ||
26 | - :item="_" | ||
27 | - @editIsJumpHandler="e => (isJump = e)" | ||
28 | - @fetchOrderListHandler="orderStore.getOrderListHandler(true, orderState, subOrderState)" | ||
29 | - /> | 20 | + <template v-if="orderList.length"> |
21 | + <template v-for="_ in orderList"> | ||
22 | + <OrderCard | ||
23 | + :isPrescriptionDrug="Boolean(orderState)" | ||
24 | + :isRecords="Event?.isRecords" | ||
25 | + :bg="Event?.isRecords === 'success' ? 'linear-gradient(188deg, #E0FFF4 5.54%, #FFF 24.89%)' : '#fff'" | ||
26 | + :isRecord="false" | ||
27 | + :item="_" | ||
28 | + @editIsJumpHandler="e => (isJump = e)" | ||
29 | + @fetchOrderListHandler="orderStore.getOrderListHandler(true, orderState, subOrderState)" | ||
30 | + /> | ||
31 | + </template> | ||
32 | + </template> | ||
33 | + <template v-else> | ||
34 | + <Empty :text="Event?.isRecords !== 'success' ? '暂无订单信息' : '暂无问诊记录'" /> | ||
30 | </template> | 35 | </template> |
31 | </view> | 36 | </view> |
32 | </template> | 37 | </template> |
@@ -38,6 +43,7 @@ import { storeToRefs } from 'pinia' | @@ -38,6 +43,7 @@ import { storeToRefs } from 'pinia' | ||
38 | import { useOrderStore } from '../../store/order' | 43 | import { useOrderStore } from '../../store/order' |
39 | import type { SubOrderTabsType } from '@/types' | 44 | import type { SubOrderTabsType } from '@/types' |
40 | import OrderCard from './com/OrderCard.vue' | 45 | import OrderCard from './com/OrderCard.vue' |
46 | +import Empty from '@/components/Empty.vue' | ||
41 | import { imlogin } from '../../hooks/imLogin' | 47 | import { imlogin } from '../../hooks/imLogin' |
42 | 48 | ||
43 | interface EventType { | 49 | interface EventType { |
1 | <template> | 1 | <template> |
2 | <u-navbar title="续方" :autoBack="true" bgColor="#ffffff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }"></u-navbar> | 2 | <u-navbar title="续方" :autoBack="true" bgColor="#ffffff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }"></u-navbar> |
3 | <view class="Renew"> | 3 | <view class="Renew"> |
4 | - <template v-for="_ in pageList?.records"> | ||
5 | - <!-- <template v-for="_ in 2"> --> | ||
6 | - <xfCom :isRecord="true" bg="#fff" @confirmSubmitExamineOrderStateHandler="getListHandler(true)" :isPrescriptionDrug="false" :item="_" /> | 4 | + <template v-if="pageList?.records.length"> |
5 | + <template v-for="_ in pageList?.records"> | ||
6 | + <!-- <template v-for="_ in 2"> --> | ||
7 | + <xfCom :isRecord="true" bg="#fff" @confirmSubmitExamineOrderStateHandler="getListHandler(true)" :isPrescriptionDrug="false" :item="_" /> | ||
8 | + </template> | ||
9 | + </template> | ||
10 | + <template v-else> | ||
11 | + <Empty text="暂无续方订单" /> | ||
7 | </template> | 12 | </template> |
8 | </view> | 13 | </view> |
9 | </template> | 14 | </template> |
@@ -15,6 +20,7 @@ import { storeToRefs } from 'pinia' | @@ -15,6 +20,7 @@ import { storeToRefs } from 'pinia' | ||
15 | import { getOrder_renew_list } from '@/api' | 20 | import { getOrder_renew_list } from '@/api' |
16 | import { PageListType, RenewListType } from '../../types' | 21 | import { PageListType, RenewListType } from '../../types' |
17 | import xfCom from './com/xfCom.vue' | 22 | import xfCom from './com/xfCom.vue' |
23 | +import Empty from '@/components/Empty.vue' | ||
18 | 24 | ||
19 | const { proxy } = getCurrentInstance() as { proxy: ComponentPublicInstance } | 25 | const { proxy } = getCurrentInstance() as { proxy: ComponentPublicInstance } |
20 | 26 |
static/images/empty.png
0 → 100644
35.4 KB
static/json/rules.js
0 → 100644
1 | +export const AddAccountFormRules = { | ||
2 | + wxUserName: { type: 'string', required: true, message: '请填写微信账户', trigger: ['blur', 'change'] }, | ||
3 | + aliUserName: { type: 'string', required: true, message: '请填写支付宝账户', trigger: ['blur', 'change'] }, | ||
4 | + doctorRealName: { type: 'string', required: true, message: '请填写真实姓名', trigger: ['blur', 'change'] }, | ||
5 | + doctorWXRealName: { type: 'string', required: true, message: '请填写真实姓名', trigger: ['blur', 'change'] }, | ||
6 | + code: { type: 'string', required: true, message: '请填写验证码', trigger: ['blur', 'change'] } | ||
7 | +} |
@@ -15,6 +15,7 @@ export interface ApplyAuthType { | @@ -15,6 +15,7 @@ export interface ApplyAuthType { | ||
15 | selectDepartment?: string | 15 | selectDepartment?: string |
16 | selectCareer?: string | 16 | selectCareer?: string |
17 | selectHospital?: string | 17 | selectHospital?: string |
18 | + doctorUserType?: string[] | ||
18 | [property: string]: any; | 19 | [property: string]: any; |
19 | 20 | ||
20 | } | 21 | } |
@@ -76,6 +77,8 @@ export interface BindUserCardType { | @@ -76,6 +77,8 @@ export interface BindUserCardType { | ||
76 | aliUserName?: string | 77 | aliUserName?: string |
77 | doctorRealName?: string | 78 | doctorRealName?: string |
78 | doctorWXRealName?: string | 79 | doctorWXRealName?: string |
80 | + code?: string | ||
81 | + [property: string]: any; | ||
79 | } | 82 | } |
80 | 83 | ||
81 | // 续方订单审核 | 84 | // 续方订单审核 |
@@ -236,4 +239,13 @@ export interface DiaLogEventType { | @@ -236,4 +239,13 @@ export interface DiaLogEventType { | ||
236 | 239 | ||
237 | export interface IcomeEventType { | 240 | export interface IcomeEventType { |
238 | flag?: string | 241 | flag?: string |
242 | +} | ||
243 | + | ||
244 | +export interface AddAccountEventType { | ||
245 | + account: string | ||
246 | + flag: string | ||
247 | + nameFlag: string | ||
248 | + title: string | ||
249 | + url: string | ||
250 | + [property: string]: any; | ||
239 | } | 251 | } |
@@ -78,6 +78,7 @@ export interface VeterinaryType { | @@ -78,6 +78,7 @@ export interface VeterinaryType { | ||
78 | introduction: string // 个人简介 | 78 | introduction: string // 个人简介 |
79 | qualifications: string // 资质证明 | 79 | qualifications: string // 资质证明 |
80 | hospital?: string | 80 | hospital?: string |
81 | + doctorUserType?: string | ||
81 | [property: string]: any; | 82 | [property: string]: any; |
82 | } | 83 | } |
83 | 84 | ||
@@ -101,6 +102,7 @@ export interface UserInfoType { | @@ -101,6 +102,7 @@ export interface UserInfoType { | ||
101 | state: number // 接诊状态 0-暂不接诊 1-在线坐诊 | 102 | state: number // 接诊状态 0-暂不接诊 1-在线坐诊 |
102 | amount: number // 可提现金额 | 103 | amount: number // 可提现金额 |
103 | hospitalName?: string; // 坐诊医院名称 | 104 | hospitalName?: string; // 坐诊医院名称 |
105 | + doctorUserType?: string | ||
104 | [property: string]: any; | 106 | [property: string]: any; |
105 | } | 107 | } |
106 | 108 |
@@ -10,7 +10,7 @@ const GlobalData = { | @@ -10,7 +10,7 @@ const GlobalData = { | ||
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: '已取消', 'err': '状态码错误' }, | 13 | + orderState: { 10: '待接诊', 20: '待问诊', 30: '问诊中', 40: '问诊结束', 50: '已取消', 60: '已退款', 'err': '状态码错误' }, |
14 | paramsstate: ['', 0, 1, 2], | 14 | paramsstate: ['', 0, 1, 2], |
15 | state: { 0: '待支付', 1: '待发货', 2: '已发货', 3: '已完成', 4: '已取消', 'err': '状态码错误' }, | 15 | state: { 0: '待支付', 1: '待发货', 2: '已发货', 3: '已完成', 4: '已取消', 'err': '状态码错误' }, |
16 | isSterilization: { 0: '未绝育', 1: '已绝育', 'err': '状态码错误' }, // 是否绝育 | 16 | isSterilization: { 0: '未绝育', 1: '已绝育', 'err': '状态码错误' }, // 是否绝育 |
@@ -24,7 +24,8 @@ const GlobalData = { | @@ -24,7 +24,8 @@ const GlobalData = { | ||
24 | symptom: { 1: '呕吐', 2: '软便拉稀', 3: '皮肤问题', 4: '眼睛问题', 5: '泌尿问题', 6: '绝育', 7: '疫苗', 8: '驱虫', 9: '养护问题', 10: '其他', 'err': '状态码错误' }, | 24 | symptom: { 1: '呕吐', 2: '软便拉稀', 3: '皮肤问题', 4: '眼睛问题', 5: '泌尿问题', 6: '绝育', 7: '疫苗', 8: '驱虫', 9: '养护问题', 10: '其他', 'err': '状态码错误' }, |
25 | renewExamineState: { 0: '待审核', 1: '审核通过', 2: '审核驳回', 6: '审核驳回', 'err': '状态码错误' }, | 25 | renewExamineState: { 0: '待审核', 1: '审核通过', 2: '审核驳回', 6: '审核驳回', 'err': '状态码错误' }, |
26 | logisticsState: { 0: '待发货', 1: '已发货', 2: '已完成', 3: '已退货', 'err': '暂无' }, | 26 | logisticsState: { 0: '待发货', 1: '已发货', 2: '已完成', 3: '已退货', 'err': '暂无' }, |
27 | - account: { 1: '微信', 2: '支付宝', 'err': '状态码错误' } | 27 | + account: { 1: '微信', 2: '支付宝', 'err': '状态码错误' }, |
28 | + doctorUserType: { '1': '猫猫', '2': '狗狗', '3': '异宠' } | ||
28 | } | 29 | } |
29 | 30 | ||
30 | export default { | 31 | export default { |
-
请 注册 或 登录 后发表评论