This commit is contained in:
haomingming
2023-03-14 14:09:21 +08:00
parent 14bcbf1673
commit 959bfc61b1
79 changed files with 1601 additions and 438 deletions
+128 -16
View File
@@ -1,6 +1,7 @@
// commpents/myprofile/index.js
import Toast from '@vant/weapp/toast/toast';
import { API } from './../../utils/network/api'
import { FileUtil } from './../../utils/fileutil'
const api = new API()
const app = getApp()
@@ -88,6 +89,13 @@ Component({
iden_auth_status: 0,
iden_auth_disabled: 0,
iden_auth_status_txt: "未认证",
avatar_reason: "",
department_custom_mobile_reason: "",
brief_introduction_reason: "",
be_good_at_reason: "",
license_cert_reason: "",
qualification_cert_reason: "",
work_cert_reason: "",
},
options: {
@@ -97,6 +105,11 @@ Component({
lifetimes: {
attached(){
let _this = this;
console.log(_this.data.zhicheng_columns);
_this.setData({
"zhicheng_columns[0].text": "AAA"
})
console.log(_this.data.zhicheng_columns);
//获得医师身份认证
api.getDoctorAuthIden().then(response => {
console.log("getDoctorAuthIden: ",response);
@@ -115,6 +128,13 @@ Component({
select_yiyuan_id: response.data.hospital.hospital_id,
hospital: response.data.hospital,
iden_auth_status: response.data.iden_auth_status,
avatar_reason: response.data.avatar_reason,
department_custom_mobile_reason: response.data.department_custom_mobile_reason,
brief_introduction_reason: response.data.brief_introduction_reason,
be_good_at_reason: response.data.be_good_at_reason,
license_cert_reason: response.data.license_cert_reason,
qualification_cert_reason: response.data.qualification_cert_reason,
work_cert_reason: response.data.work_cert_reason,
});
let iden_auth_status = response.data.iden_auth_status;
console.log("iden_auth_status: ",iden_auth_status)
@@ -200,18 +220,24 @@ Component({
let zhicheng_huixian = false;
let area_huixian = false;
//执行回显
let huixian_try_count = 0;
let data_replay = setInterval(() => {
console.log("执行回显。。。")
try {
console.log("执行回显。。。", huixian_try_count);
//回显科室
if(_this.data.doctorauthiden_data_ready && _this.data.basicdepartment_data_ready){
let index = _this.data.keshi_columns.findIndex(item => {
console.log("value: ",item.value);
console.log("select_keshi_id: ", _this.data.select_keshi_id);
return item.value == _this.data.select_keshi_id
})
_this.setData({
select_keshi_index: index,
keshi_note: _this.data.keshi_columns[index].text
})
if(index){
_this.setData({
select_keshi_index: index,
keshi_note: _this.data.keshi_columns[index].text
})
}
keshi_huixian = true;
}
//回显职称
@@ -283,16 +309,19 @@ Component({
area_huixian = true;
}
} catch (error) {
console.error(error)
}
huixian_try_count = huixian_try_count + 1;
//都回显成功后,清除计时器
console.log("keshi_huixian: ", keshi_huixian)
console.log("zhicheng_huixian: ", zhicheng_huixian)
console.log("area_huixian: ", area_huixian)
if(keshi_huixian && zhicheng_huixian && area_huixian){
if((keshi_huixian && zhicheng_huixian && area_huixian) || huixian_try_count > 100){
clearInterval(data_replay);
}
console.log("计时器")
}, 1000);
console.log("计时器");
}, 100);
},
},
@@ -558,12 +587,21 @@ Component({
},
select_zhuanchang(e){
console.log(e);
let expertise_name = e.currentTarget.dataset.expertise_name;
let expertise_id = e.currentTarget.dataset.expertise_id;
let is_selected = e.currentTarget.dataset.is_selected;
let index = e.currentTarget.dataset.index;
let data = "zhuanchang_columns["+index+"].is_selected";
this.setData({[data]: is_selected==1?0:1})
let count = 0
this.data.zhuanchang_columns.forEach(item => {
count = count + 1;
})
if(count < 10){
let is_selected = e.currentTarget.dataset.is_selected;
let index = e.currentTarget.dataset.index;
let data = "zhuanchang_columns["+index+"].is_selected";
this.setData({[data]: is_selected==1?0:1})
}else{
wx.showToast({
title: '最多10个专长',
icon: "error"
})
}
},
zhuanchangConfirm(e){
this.setData({ zhuanchang_show: false });
@@ -617,6 +655,80 @@ Component({
})
}).catch(errors => {console.error(errors);})
}
},
doUploadFile(event) {
console.log("index douploadFIle: ", event);
const scene = event.currentTarget.dataset.scene;
const field_name = event.currentTarget.dataset.field_name;
const file_multiple = event.currentTarget.dataset.file_multiple;//是否为多张图
console.log("scene: ", scene);
console.log("field_name: ", field_name);
console.log("file_multiple: ", file_multiple);
let _this = this;
api.getOssSign({user_type:2,scene:scene}).then(response => {
console.log(response);
const { file } = event.detail;
console.log("file: ", file);
const filename = FileUtil.getFileName(file);
const host = response.data.host;
const signature = response.data.signature;
const ossAccessKeyId = response.data.accessid;
const policy = response.data.policy;
const key = response.data.dir+filename;
const filePath = file.url; // 待上传文件的文件路径。
wx.uploadFile({
url: host, // 开发者服务器的URL。
filePath: filePath,
name: 'file', // 必须填file。
formData: {
key,
policy,
OSSAccessKeyId: ossAccessKeyId,
signature,
},
success: (res) => {
console.log("upload: ", res);
if (res.statusCode === 204) {
if(scene == 1){
this.setData({
is_avatar: true
})
}
wx.showToast({title: '上传成功'})
if(file_multiple == "true"){//多张图
let img = {}
img.url = host+"/"+key;
img.isImg = true;
let img_list = _this.data[field_name];
console.log("img_list: ", img_list);
img_list.push(img);
console.log("img_list: ", img_list);
this.setData({
[field_name]: img_list
});
}else{
this.setData({[field_name]: host+"/"+key});
}
}
},
fail: err => {
console.log(err);
}
});
}).catch(errors => {
console.error(errors);
})
},
doDeleteFile(event){
console.log(event);
let url = event.detail.file.url;
let file_name = event.currentTarget.dataset.field_name;
let img_list = this.data[file_name].filter(item => item.url != url);
this.setData({
[file_name]: img_list
})
},
}
})
+22 -2
View File
@@ -1,4 +1,4 @@
<view class="photo">
<view class="photo" style="border-bottom: {{avatar_reason==''?'1px solid var(--td-cell-border-color, var(--td-gray-color-3, #e7e7e7));':'unset'}}">
<view class="title">头像 <text class="required"> *</text></view>
<van-uploader bind:after-read="doUploadFile" data-scene="1" data-field_name="avatar" data-file_multiple="false">
<view class="right">
@@ -11,6 +11,13 @@
</van-uploader>
</view>
<view class="has_error" wx:if="{{ avatar_reason != '' }}" >
<view class="error_box">
<t-icon color="red" name="close-circle-filled" size="48rpx" data-name="close-circle-filled" />
<text class="error_msg">{{ avatar_reason }}</text>
</view>
</view>
<!-- <t-cell title="头像" hover required arrow note="真人正脸" /> -->
<t-cell title="城市" hover required arrow note="{{ city_note }}" bindtap="onCityShow"/>
@@ -127,7 +134,7 @@
</view>
<view class="zhuanchang_box">
<view class="zhuanchang_box_item {{ data.is_selected==1?'zhuanchang_box_item_checked':'' }}" wx:key="expertise_name" bindtap="select_zhuanchang"
<view class="zhuanchang_box_item {{ data.is_selected==1?'zhuanchang_box_item_checked':'' }}" wx:key="expertise_name" bindtap="select_zhuanchang"
data-expertise_name="{{data.expertise_name}}"
data-expertise_id="{{data.expertise_id}}"
data-is_selected="{{data.is_selected}}"
@@ -160,9 +167,17 @@
input-align="right"
required
clearable
border="{{ department_custom_mobile_reason == '' }}"
custom-style="font-size:30rpx;"
/>
<view class="has_error" wx:if="{{ department_custom_mobile_reason != '' }}" >
<view class="error_box">
<t-icon color="red" name="close-circle-filled" size="48rpx" data-name="close-circle-filled" />
<text class="error_msg">{{ department_custom_mobile_reason }}</text>
</view>
</view>
<view class="zhuanchang" bindtap="onZhuanChangShow">
<view class="title">专长 <text class="required"> *</text></view>
<view class="content">
@@ -185,6 +200,7 @@
bind:showNote="onshowJianJieNote"
textarea_cell_content_placeholder="您的从业经历,职称,所获荣誉等信息(10~1000字)"
textarea_val="{{textarea_jianjie}}"
has_error_content="{{ be_good_at_reason }}"
data-textarea_name="textarea_jianjie" bindTextAreaBlur="getTextAreaVal" />
<m-textarea-cell
@@ -192,6 +208,7 @@
t_icon_name="view-module"
bind:showNote="onshowShanChangNote"
textarea_val="{{textarea_shanchang}}"
has_error_content="{{ brief_introduction_reason }}"
textarea_cell_content_placeholder="您的专业领域、擅长疾病、研究方法等信息(10~1000字)"
textarea_cell_note="查看示例" data-textarea_name="textarea_shanchang" bindTextAreaBlur="getTextAreaVal" />
@@ -208,6 +225,7 @@
bindDeleteFile="doDeleteFile"
upload_cell_desc="请提供清晰的职业证书原件照片,需包含证书编码、加盖钢印的证书照片、姓名、执业范围、最新执业医院,最少上传2张。"
upload_cell_note="查看示例"
has_error_content="{{ license_cert_reason }}"
wx:if="{{indentity}}"
/>
@@ -224,6 +242,7 @@
bind:showNote="onshowZiGeNote"
upload_cell_desc="请提供清晰的资格证书原件照片,需包含证书编码、加盖钢印的证书照片、姓名、职称等,最少上传1张。"
upload_cell_note="查看示例"
has_error_content="{{ qualification_cert_reason }}"
wx:if="{{indentity}}"
/>
@@ -240,6 +259,7 @@
bindDeleteFile="doDeleteFile"
upload_cell_desc="请提供清晰的职称证书原件照片,需包含证书编码、加盖钢印的证书照片、姓名等,最少上传1张。"
upload_cell_note="查看示例"
has_error_content="{{ work_cert_reason }}"
wx:if="{{indentity}}"
/>
+38 -13
View File
@@ -3,25 +3,15 @@
}
.photo{
position: relative;
padding: 32rpx;
padding: 32rpx 32rpx 32rpx 0;
margin-left: 32rpx;
display: flex;
justify-content: space-between;
font-size: 32rpx;
font-weight: 400;
align-items: center;
}
.photo::after {
position: absolute;
box-sizing: border-box;
content: ' ';
pointer-events: none;
right: 0;
left: 32rpx;
bottom: 0;
border-bottom: 1px solid var(--td-cell-border-color, var(--td-gray-color-3, #e7e7e7));
transform: scaleY(0.5);
left: 32rpx;
}
.title{
font-size: 30rpx;
color: #1C2023;
@@ -187,4 +177,39 @@
.zhuanchang_btn--confirm {
color: #3cc7c0;
}
.error_box{
position: relative;
display: flex;
background-color: #FEF1F1;
width: calc(95vw - 64rpx);
height: 100rpx;
margin: 30rpx auto 0 auto;
align-items: center;
padding-left: 32rpx;
border-radius: 10rpx;
}
.error_box::after{
border-radius: 5rpx;
position: absolute;
width: 0px;
height: 0px;
border-width: 16rpx;
border-style: solid;
border-color: transparent transparent #FEF1F1 transparent;
content: ' ';
left: 50rpx;
top: -30rpx;
}
.error_msg{
position: relative;
margin-left: 10rpx;
color: #FF0000;
letter-spacing: 3rpx;
font-weight: 600;
}
.has_error{
margin-left: 32rpx;
padding-bottom: 20rpx;
border-bottom: 1rpx solid #e7e7e7;
}
+5 -1
View File
@@ -31,7 +31,11 @@ Component({
textarea_val: {
type: String,
value: '',
}
},
has_error_content: {
type: String,
value: "",
},
},
/**
+4
View File
@@ -9,4 +9,8 @@
<view class="textarea-cell-content">
<textarea bindblur="bindTextAreaBlur" maxlength="1000" style="margin: 32rpx 32rpx 0 32rpx; width: 100%; height: 90%; background-color: #FAFAFA;" name="" id="" placeholder="{{ textarea_cell_content_placeholder }}" value="{{textarea_val}}"></textarea>
</view>
<view class="error_box" wx:if="{{ has_error_content != '' }}" >
<t-icon color="red" name="close-circle-filled" size="48rpx" data-name="close-circle-filled" />
<text class="error_msg">{{ has_error_content }}</text>
</view>
</view>
+30
View File
@@ -43,4 +43,34 @@
}
.textarea-cell-name{
font-size: 30rpx;
}
.error_box{
position: relative;
display: flex;
background-color: #FEF1F1;
width: calc(95vw - 64rpx);
height: 100rpx;
margin: 30rpx auto 0 auto;
align-items: center;
padding-left: 32rpx;
border-radius: 10rpx;
}
.error_box::after{
border-radius: 5rpx;
position: absolute;
width: 0px;
height: 0px;
border-width: 16rpx;
border-style: solid;
border-color: transparent transparent #FEF1F1 transparent;
content: ' ';
left: 50rpx;
top: -30rpx;
}
.error_msg{
position: relative;
margin-left: 10rpx;
color: #FF0000;
letter-spacing: 3rpx;
font-weight: 600;
}
+3 -3
View File
@@ -28,9 +28,9 @@ Component({
type: String,
value: '32rpx',
},
has_error: {
type: Boolean,
value: false,
has_error_content: {
type: String,
value: "",
},
fileList:{
type: Array,
+2 -2
View File
@@ -14,8 +14,8 @@
<van-image width="100" height="100" src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/upload_button.png" />
</van-uploader>
</view>
<view class="error_box" wx:if="{{ has_error }}" >
<view class="error_box" wx:if="{{ has_error_content != '' }}" >
<t-icon color="red" name="close-circle-filled" size="48rpx" data-name="close-circle-filled" />
<text class="error_msg">拒绝原因照片不清晰</text>
<text class="error_msg">{{ has_error_content }}</text>
</view>
</view>
+30 -14
View File
@@ -4,6 +4,10 @@ Component({
* 组件的属性列表
*/
properties: {
from_account: {
type: String,
value: '10000',
},
name: {
type: String,
value: '张三三',
@@ -23,6 +27,11 @@ Component({
desc: {
type: String,
value: '这是示例备注desc',
observer(desc) {
this.setData({
desc: desc,
});
},
},
status_text: {
type: String,
@@ -35,10 +44,23 @@ Component({
status_class: {
type: String,
},
order_inquiry_id: {
type: String,
value: '',
},
note: {
type: String,
value: '不接诊24小时后自动取消',
},
message_dot:{
type: Boolean,
value: false,
observer(dot) {
this.setData({
message_dot: dot,
});
},
}
},
/**
@@ -54,20 +76,14 @@ Component({
methods: {
go(e){
wx.navigateTo({
url: e.currentTarget.dataset.url,
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
acceptDataFromOpenedPage: function(data) {
console.log(data)
},
someEvent: function(data) {
console.log(data)
}
},
success: function(res) {
// 通过 eventChannel 向被打开页面传送数据
res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
}
url: e.currentTarget.dataset.url
})
},
goChat(e){
let from_account = e.currentTarget.dataset.from_account;
let order_inquiry_id = e.currentTarget.dataset.order_inquiry_id;
wx.navigateTo({
url: e.currentTarget.dataset.url+"?from_account="+from_account+"&order_inquiry_id="+order_inquiry_id
})
},
tabShow(){
+2 -1
View File
@@ -2,6 +2,7 @@
"component": true,
"usingComponents": {
"van-button": "@vant/weapp/button/index",
"van-popup": "@vant/weapp/popup/index"
"van-popup": "@vant/weapp/popup/index",
"t-badge": "tdesign-miniprogram/badge/badge"
}
}
+14 -10
View File
@@ -1,20 +1,24 @@
<view class="content">
<view class="content_1">
<view class="name"><text style="font-size: 34rpx;color: #333;">就诊人:</text>{{name}} {{sex}}{{age}}岁</view>
<view class="name">
<text style="font-size: 34rpx;color: #333;">就诊人:</text>
{{name}} {{sex}}{{age}}<t-badge dot="{{message_dot}}" offset="{{ [-4, 4] }}" content="岁" />
</view>
<view class="date"> {{date}}</view>
</view>
<view class="content_2">{{desc}}</view>
<view class="content_3">
<view class="status {{ status_class }}">{{status_text}}</view>
<view class="btn" wx:if="{{ status == 0 }}">
<van-button bind:click="go" data-url="/Pages/yishi/case/index" plain custom-style="width:200rpx; border-radius: 10rpx;" color="#3CC7C0">查看病历</van-button>
<van-button type="default" bindtap="tabShow" custom-style="width:200rpx; border-radius: 10rpx;" color="#3CC7C0">去接诊</van-button>
<view class="status {{ status_class }}">{{ status_text }}</view>
<view class="btn" wx:if="{{ status == 3 }}">
<van-button bind:click="go" data-url="/Pages/yishi/case/index?order_inquiry_id={{order_inquiry_id}}" plain custom-style="width:200rpx; border-radius: 10rpx;" color="#3CC7C0">查看病历</van-button>
<van-button type="default" bindtap="tabShow" custom-style="width:200rpx; border-radius: 10rpx;margin-left:20rpx;" color="#3CC7C0">去接诊</van-button>
</view>
<view class="btn" wx:if="{{ status == 1 }}">
<van-button plain custom-style="width:200rpx; border-radius: 10rpx;" color="#3CC7C0">问诊详情</van-button>
<view class="btn" wx:if="{{ status >= 4 }}">
<van-button bind:click="goChat" data-from_account="{{from_account}}" data-url="/Pages/yishi/chat/index" plain custom-style="width:200rpx; border-radius: 10rpx;" color="#3CC7C0">问诊详情</van-button>
<!-- <van-button bind:click="go" data-url="/Pages/yishi/chat_session/index" plain custom-style="width:200rpx; border-radius: 10rpx;" color="#3CC7C0">会话列表</van-button> -->
</view>
</view>
<view class="content_4" wx:if="{{ status == 0 }}">{{note}}</view>
<view class="content_4" wx:if="{{ status == 3 }}">{{note}}</view>
</view>
<van-popup show="{{ show }}" bind:close="onClose" round>
@@ -22,8 +26,8 @@
<view class="pop_title">温馨提示</view>
<view class="pop_note">为保障服务质量,请您查看患者病历信息在选择是否接诊。</view>
<view class="pop_btn">
<view class="pop_btn_left" bindtap="go" data-url="/Pages/yishi/case/index" >去查看</view>
<view class="pop_btn_right" bindtap="go" data-url="/Pages/yishi/chat/index" >去接诊</view>
<view class="pop_btn_left" bindtap="go" data-from_account="{{from_account}}" data-url="/Pages/yishi/case/index?order_inquiry_id={{order_inquiry_id}}" >去查看</view>
<view class="pop_btn_right" bindtap="goChat" data-from_account="{{from_account}}" data-order_inquiry_id="{{order_inquiry_id}}" data-url="/Pages/yishi/chat/index" >去接诊</view>
</view>
</view>
</van-popup>
+2 -3
View File
@@ -2,7 +2,7 @@
background-color: #fff;
display: flex;
flex-direction: column;
margin-bottom: 20rpx;
margin-top: 20rpx;
}
.content_1,.content_3,.content_2{
display: flex;
@@ -39,8 +39,7 @@
.btn{
flex: 2;
display: flex;
justify-content: space-around;
justify-content: flex-end;
}
.content_4{
flex: 5;