Compare commits

...

3 Commits

Author SHA1 Message Date
huxuejian
50702f80e6 Update profile.vue 2026-02-04 18:33:01 +08:00
huxuejian
18be6a46ad Merge branch 'dev-wdb' of http://175.27.226.205:3000/huxuejian/ykt-wxapp into dev-wdb 2026-02-04 18:32:02 +08:00
huxuejian
4a21b23133 fix: 问题修复 2026-02-04 18:30:18 +08:00
8 changed files with 51 additions and 86 deletions

View File

@ -1,7 +1,7 @@
MP_API_BASE_URL=http://192.168.60.2:8080 MP_API_BASE_URL=http://192.168.60.2:8080
MP_IMAGE_URL=https://patient.youcan365.com MP_IMAGE_URL=https://patient.youcan365.com
MP_CACHE_PREFIX=development MP_CACHE_PREFIX=development
MP_WX_APP_ID=wx93af55767423938e MP_WX_APP_ID=wx1d8337a40c11d66c
MP_CORP_ID=wwe3fb2faa52cf9dfb MP_CORP_ID=wwe3fb2faa52cf9dfb
MP_TIM_SDK_APP_ID=1600123876 MP_TIM_SDK_APP_ID=1600123876
MP_INVITE_TEAMMATE_QRCODE=https://patient.youcan365.com/invite-teammate MP_INVITE_TEAMMATE_QRCODE=https://patient.youcan365.com/invite-teammate

View File

@ -37,3 +37,6 @@ export const statusClassNames = {
cancelled: "text-gray", cancelled: "text-gray",
expired: "text-gray", expired: "text-gray",
} }
export const titleList = ['主任医师', '副主任医师', '主治医师', '住院医师', '护士长', '主管护师', '护师', '护士', '技师', '其他']

View File

@ -93,6 +93,9 @@ function confirm() {
} }
function toService() { function toService() {
uni.navigateTo({
url: '/pages/work/service/contact-service'
})
close() close()
} }

View File

@ -63,7 +63,7 @@ function remind() {
function toHome() { function toHome() {
uni.switchTab({ uni.switchTab({
url: "/pages/work/work", url: "/pages/home/work-home",
}); });
} }

View File

@ -39,7 +39,7 @@ async function toJoinTeam(teamId) {
if (res && res.success) { if (res && res.success) {
await toast('加入团队成功'); await toast('加入团队成功');
return uni.switchTab({ return uni.switchTab({
url: '/pages/work/work' url: '/pages/home/work-home'
}) })
} else { } else {
await toast(res?.message || '加入团队失败') await toast(res?.message || '加入团队失败')

View File

@ -2,97 +2,53 @@
<full-page> <full-page>
<view class="p-15"> <view class="p-15">
<view class="bg-white px-10 mb-10 rounded"> <view class="bg-white px-10 mb-10 rounded">
<form-input <form-input :form="formData" :required="rule.anotherName.required" wordLimit="10" title="anotherName"
:form="formData" :name="rule.anotherName.name" @change="onChange($event)" />
:required="rule.anotherName.required"
wordLimit="10"
title="anotherName"
:name="rule.anotherName.name"
@change="onChange($event)"
/>
<common-cell title="avatar" name="头像"> <common-cell title="avatar" name="头像">
<view <view class="flex-grow flex items-center justify-end" @click="chooseAvatar()">
class="flex-grow flex items-center justify-end" <image v-if="formData.avatar" class="avatar mr-5 rounded-full" :src="formData.avatar" />
@click="chooseAvatar()" <image v-else class="avatar mr-5 rounded-full" src="/static/home/avatar.svg" />
>
<image
v-if="formData.avatar"
class="avatar mr-5 rounded-full"
:src="formData.avatar"
/>
<image
v-else
class="avatar mr-5 rounded-full"
src="/static/home/avatar.svg"
/>
<uni-icons color="#999" type="right" size="16" /> <uni-icons color="#999" type="right" size="16" />
</view> </view>
</common-cell> </common-cell>
<form-select <form-select :form="formData" name="性别" title="gender" :range="genderOptions" @change="onChange($event)" />
:form="formData" <form-input :form="formData" disableChange wordLimit="11" title="mobile" name="手机号 (不可修改)" />
name="性别"
title="gender"
:range="genderOptions"
@change="onChange($event)"
/>
<form-input
:form="formData"
disableChange
wordLimit="11"
title="mobile"
name="手机号 (不可修改)"
/>
</view> </view>
<view class="bg-white px-10 mb-10 rounded"> <view class="bg-white px-10 mb-10 rounded">
<!-- 填写认证资料的时候岗位必填 --> <!-- 填写认证资料的时候岗位必填 -->
<common-cell <common-cell :required="type === 'cert'" title="job" :name="rule.job.name">
:required="type === 'cert'" <picker mode="selector" :disable="rule.job.disable" :range="jobOptions" range-key="name"
title="job" @change="changeJob($event)">
:name="rule.job.name" <view class="flex-grow flex items-center justify-end">
> <view v-if="jobStr" class="text-base text-base">{{ jobStr }}</view>
<view <uni-icons color="#999" type="right" size="16" />
class="flex-grow flex items-center justify-end" </view>
@click="selectJob()" </picker>
>
<view v-if="jobStr" class="text-base text-base">{{ jobStr }}</view>
<!-- <view class="mr-5 rounded-full" style="width: 64rpx;height: 64rpx;background: red;"></view> -->
<uni-icons color="#999" type="right" size="16" />
</view>
</common-cell> </common-cell>
<common-cell title="title" :name="rule.title.name"> <common-cell title="title" :name="rule.title.name">
<view class="flex-grow flex items-center justify-end"> <picker mode="selector" :disable="rule.title.disable" :range="titleOptions"
<!-- <view class="mr-5 rounded-full" style="width: 64rpx;height: 64rpx;background: red;"></view> --> @change="changeTitle($event)">
<uni-icons color="#999" type="right" size="16" /> <view class="flex-grow flex items-center justify-end">
</view> <view class="text-base text-base">{{ formData.title }}</view>
<uni-icons color="#999" type="right" size="16" />
</view>
</picker>
</common-cell> </common-cell>
<common-cell title="dept" :name="rule.dept.name"> <common-cell title="dept" :name="rule.dept.name">
<view class="flex-grow flex items-center justify-end"> <view class="flex-grow flex items-center justify-end">
<!-- <view class="mr-5 rounded-full" style="width: 64rpx;height: 64rpx;background: red;"></view> -->
<uni-icons color="#999" type="right" size="16" /> <uni-icons color="#999" type="right" size="16" />
</view> </view>
</common-cell> </common-cell>
</view> </view>
<view class="bg-white rounded"> <view class="bg-white rounded">
<form-textarea <form-textarea autoHeight :border="false" :form="formData" title="memberTroduce" name="个人介绍" :wordLimit="300"
autoHeight @change="onChange($event)" />
:border="false"
:form="formData"
title="memberTroduce"
name="个人介绍"
:wordLimit="300"
@change="onChange($event)"
/>
</view> </view>
</view> </view>
<template #footer> <template #footer>
<button-footer <button-footer :cancelText="cancelText" :confirmText="confirmText" @confirm="save()" @cancel="back()" />
:cancelText="cancelText"
:confirmText="confirmText"
@confirm="save()"
@cancel="back()"
/>
</template> </template>
</full-page> </full-page>
</template> </template>
@ -100,6 +56,7 @@
<script setup> <script setup>
import { computed, ref } from "vue"; import { computed, ref } from "vue";
import { storeToRefs } from "pinia"; import { storeToRefs } from "pinia";
import { titleList } from "@/baseData";
import useGuard from "@/hooks/useGuard.js"; import useGuard from "@/hooks/useGuard.js";
import useAccountStore from "@/store/account.js"; import useAccountStore from "@/store/account.js";
import api from "@/utils/api.js"; import api from "@/utils/api.js";
@ -118,6 +75,8 @@ const { useLoad, useShow } = useGuard();
const { getDoctorInfo } = useAccountStore(); const { getDoctorInfo } = useAccountStore();
const job = { assistant: "医生助理", doctor: "医生" }; const job = { assistant: "医生助理", doctor: "医生" };
const jobOptions = [{ name: '医生', value: 'doctor' }, { name: '医生助理', value: 'assistant' }, { name: '无', value: '' }];
const titleOptions = [...titleList, '无'];
const form = ref({}); const form = ref({});
const inviteTeamId = ref(""); const inviteTeamId = ref("");
@ -183,7 +142,7 @@ function back() {
uni.navigateBack(); uni.navigateBack();
} else { } else {
uni.switchTab({ uni.switchTab({
url: "/pages/work/work", url: "/pages/home/work-home",
}); });
} }
} }
@ -207,15 +166,14 @@ function onChange({ title, value }) {
form.value[title] = value; form.value[title] = value;
} }
function selectJob() { function changeJob(e) {
if (rule.value.job.disabled) return; const data = jobOptions[e.detail.value];
uni.showActionSheet({ form.value.job = data.value;
itemList: ["医生", "医生助理", "无"], }
success: ({ tapIndex }) => {
const job = ["doctor", "assistant"][tapIndex]; function changeTitle(e) {
form.value.job = job ? [job] : []; const data = titleList[e.detail.value];
}, form.value.title = data || '';
});
} }
function toCert() { function toCert() {

View File

@ -5,7 +5,7 @@
柚康企微客服 柚康企微客服
</view> </view>
<view class="flex justify-center overflow-hidden"> <view class="flex justify-center overflow-hidden">
<uqrcode :canvas-id="`qrcode-${idx}`" value="https://uqrcode.cn/doc" :options="options"></uqrcode> <uqrcode canvas-id="qrcode" value="暂无二维码" :options="options"></uqrcode>
</view> </view>
<view class="mt-10 px-15 text-base text-dark leading-normal text-center"> <view class="mt-10 px-15 text-base text-dark leading-normal text-center">
扫码或长按添加柚康企微客服 扫码或长按添加柚康企微客服

View File

@ -18,7 +18,7 @@
成员: {{ i.memberList && i.memberList.length ? i.memberList.length : 0 }} 成员: {{ i.memberList && i.memberList.length ? i.memberList.length : 0 }}
</view> </view>
<view class="min-w-120 text-base text-dark"> <view class="min-w-120 text-base text-dark">
患者: 200 患者: {{ i.customerCount }}
</view> </view>
</view> </view>
</view> </view>
@ -61,13 +61,14 @@ function toDetail(team) {
} }
async function getTeams() { async function getTeams() {
const res = await api('getJoinedTeams', { corpId: account.value?.corpId, mateId: doctorInfo.value?.userid }); const res = await api('getJoinedTeams', { corpId: account.value?.corpId, mateId: doctorInfo.value?.userid, countCustomer: 'YES' });
const arr = res && Array.isArray(res.data) ? res.data.map(i => ({ const arr = res && Array.isArray(res.data) ? res.data.map(i => ({
id: i._id, id: i._id,
teamId: i.teamId, teamId: i.teamId,
name: i.name, name: i.name,
memberList: i.memberList, memberList: i.memberList,
creator: i.creator creator: i.creator,
customerCount: i.customerCount > 0 ? i.customerCount : 0
})) : []; })) : [];
list.value = arr; list.value = arr;
} }