分包医生

This commit is contained in:
zoujiandong
2024-01-16 14:59:06 +08:00
parent 562d4e9691
commit d5a9339ddd
1060 changed files with 3177 additions and 44707 deletions
File diff suppressed because it is too large Load Diff
+27
View File
@@ -0,0 +1,27 @@
{
"component": true,
"usingComponents": {
"te-nav-bar": "../../../commpents/te_navbar",
"m-textarea-cell": "../textarea-cell/index",
"m-upload-cell": "../upload-cell/index",
"t-tabs": "tdesign-miniprogram/tabs/tabs",
"t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel",
"t-cell": "tdesign-miniprogram/cell/cell",
"t-icon": "tdesign-miniprogram/icon/icon",
"t-avatar": "tdesign-miniprogram/avatar/avatar",
"t-button": "tdesign-miniprogram/button/button",
"t-cascader": "tdesign-miniprogram/cascader/cascader",
"t-popup": "tdesign-miniprogram/popup/popup",
"van-field": "@vant/weapp/field/index",
"van-uploader": "@vant/weapp/uploader/index",
"van-popup": "@vant/weapp/popup/index",
"van-picker": "@vant/weapp/picker/index",
"van-toast": "@vant/weapp/toast/index",
"van-button": "@vant/weapp/button/index",
"van-icon": "@vant/weapp/icon/index",
"van-search": "@vant/weapp/search/index",
"van-empty": "@vant/weapp/empty/index",
"van-image": "@vant/weapp/image/index",
"image-cropper": "../image-cropper/image-cropper"
}
}
+370
View File
@@ -0,0 +1,370 @@
<view class="{{avatar_reason!=''?'photo':'photo_reason'}}">
<view class="title">头像 <text class="required"> *</text></view>
<van-uploader disabled="{{ indentity && iden_auth_disabled }}" bind:after-read="doUploadPhoto" data-scene="1" data-field_name="avatar" data-file_multiple="false">
<view class="right">
<view class="note">真人正脸</view>
<t-avatar image="{{ avatar }}" />
<view class="icon" wx:if="{{ !(indentity && iden_auth_disabled) }}">
<t-icon name="chevron-right" size="48rpx" data-name="chevron-right" />
</view>
</view>
</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="{{ !(indentity && iden_auth_disabled) }}" note="{{ city_note }}" bindtap="{{(indentity && iden_auth_disabled)?'':'onCityShow'}}"/>
<t-cascader
visible="{{ city_show }}"
theme="tab"
value="{{ select_county_id }}"
options="{{ areaList }}"
title="请选择地址"
sub-titles="{{area_sub_titles}}"
bind:change="onChangeCity"
bind:close="onCloseCity"
></t-cascader>
<t-cell title="医院" hover required arrow="{{ !(indentity && iden_auth_disabled) }}" note="{{ yiyuan_note }}" bindtap="{{(indentity && iden_auth_disabled)?'':'onYiYuanShow'}}"/>
<van-popup
show="{{ yiyuan_show }}"
position="bottom"
bind:close="onYiYuanClose"
round
>
<van-picker
show-toolbar
title="请选择医院"
columns="{{ yiyuan_columns }}"
default-index="{{select_yiyuan_index}}"
bind:cancel="onYiYuanCancel"
bind:confirm="onYiYuanConfirm"
bind:change="onYiYuanChange"
/>
<van-search
value="{{ hospital_search_val }}"
shape="round"
placeholder="搜索医院"
clearable
bind:change="hospitalSearchChange"
bind:search="hospitalSearch"
/>
<van-empty description="暂无医院" wx:if="{{yiyuan_columns.length == 0}}"/>
</van-popup>
<t-cell title="科室" hover required arrow="{{ !(indentity && iden_auth_disabled) }}" note="{{keshi_note}}"
bindtap="{{(indentity && iden_auth_disabled)?'':'onKeshiShow'}}" bordered="{{ select_keshi_id == '' }}"/>
<view class="custom_keshi" wx:if="{{ select_keshi_id != ''}}">
<van-field bind:change="onCustomKeshiChange"
disabled="{{(indentity && iden_auth_disabled)}}"
type="text" model:value="{{custom_keshi}}" label=""
placeholder="请输入您所在科室实际名称" border="{{department_custom_name_reason == ''}}" />
</view>
<view class="has_error" wx:if="{{ department_custom_name_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_name_reason }}</text>
</view>
</view>
<van-popup
show="{{ keshi_show }}"
position="bottom"
bind:close="onKeshiClose"
round
>
<van-picker
show-toolbar
title="请选择科室"
columns="{{ keshi_columns }}"
default-index="{{select_keshi_index}}"
bind:cancel="onKeshiCancel"
bind:confirm="onKeshiConfirm"
bind:change="onKeshiChange" />
</van-popup>
<van-popup
show="{{ zhicheng_show }}"
position="bottom"
bind:close="onZhiChengClose"
round
>
<van-picker
show-toolbar
title="请选择职称"
default-index="{{select_zhicheng_index}}"
columns="{{ zhicheng_columns }}"
bind:cancel="onZhiChengCancel"
bind:confirm="onZhiChengConfirm"
bind:change="onZhiChengChange" />
</van-popup>
<van-popup
show="{{ zhiye_show }}"
closeable
round
lock-scroll
position="bottom"
bind:close="onZhiYeClose"
>
<view class="zhiye_popup">
<view class="zhiye_popup_title">医师执业证示例</view>
<view class="zhiye_popup_img">
<van-image lazy-load slot="loading" type="spinner" fit="widthFix" width="420rpx" src="{{static_host}}/applet/doctor/static/images/yishi/cert/zhiye1.png" />
</view>
<view class="zhiye_popup_img">
<van-image lazy-load slot="loading" type="spinner" fit="widthFix" width="420rpx" src="{{static_host}}/applet/doctor/static/images/yishi/cert/zhiye2.png" />
</view>
</view>
</van-popup>
<van-popup
show="{{ zige_show }}"
closeable
round
lock-scroll
position="bottom"
bind:close="onZiGeClose"
>
<view class="zhiye_popup">
<view class="zhiye_popup_title">医师资格证示例</view>
<view class="zhiye_popup_img">
<van-image lazy-load slot="loading" type="spinner" fit="widthFix" width="420rpx" src="{{static_host}}/applet/doctor/static/images/yishi/cert/zige1.png" />
</view>
<view class="zhiye_popup_img">
<van-image lazy-load slot="loading" type="spinner" fit="widthFix" width="420rpx" src="{{static_host}}/applet/doctor/static/images/yishi/cert/zige2.png" />
</view>
</view>
</van-popup>
<van-popup
show="{{ zhicheng_img_show }}"
closeable
round
lock-scroll
position="bottom"
bind:close="onZhiChengImgClose"
>
<view class="zhiye_popup">
<view class="zhiye_popup_title">职称证示例</view>
<view class="zhiye_popup_img">
<van-image lazy-load slot="loading" type="spinner" fit="widthFix" width="420rpx" src="{{static_host}}/applet/doctor/static/images/yishi/cert/zhicheng.png" />
</view>
</view>
</van-popup>
<van-popup
show="{{ jianjie_show }}"
closeable
round
position="bottom"
bind:close="onJianjieClose"
>
<view class="jianjie_popup">
博士,xxxx医院肝病科副主任医师,硕士研究生导师;中华医学会肝病学分会青年委员,北京医学会感染病学分会委员;2015首都十大杰出青年医生,2020年中华医学会抗击新冠优秀个人;作为主要研究者参与各级科研课题10项,发表学术论文10余篇,其中SCI文章2篇
</view>
</van-popup>
<van-popup
show="{{ shanchang_show }}"
closeable
round
position="bottom"
bind:close="onshowShanChangNoteClose"
>
<view class="jianjie_popup">
肝病的个体化治疗、致力于各种肝病尤其肝衰竭的临床诊治,尤其专注于终末期肝病营养相关临床和基础研究。
</view>
</van-popup>
<t-popup visible="{{zhuanchang_show}}"
prevent-scroll-through
bind:visible-change="onZhuanChangVisibleChange" placement="bottom">
<view class="zhuanchang_block" catchtouchmove="moveZhuanChang">
<view class="zhuanchang_header">
<view class="zhuanchang_btn zhuanchang_btn--cancel" aria-role="button" bindtap="zhuanchangConcle">取消</view>
<view class="zhuanchang_title">选择专长</view>
<view class="zhuanchang_btn zhuanchang_btn--confirm" aria-role="button" bindtap="zhuanchangConfirm">确定</view>
</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"
data-expertise_name="{{data.expertise_name}}"
data-expertise_id="{{data.expertise_id}}"
data-is_selected="{{data.is_selected}}"
data-index="{{idx}}"
wx:for="{{zhuanchang_columns}}"
wx:for-index="idx"
wx:for-item="data">
{{data.expertise_name}}
</view>
</view>
<view style="height: 60rpx;">
</view>
</view>
</t-popup>
<t-cell title="职称" hover required arrow="{{ !(indentity && iden_auth_disabled) }}" note="{{zhicheng_note}}"
bindtap="{{(indentity && iden_auth_disabled)?'':'onZhiChengShow'}}" />
<!-- <t-input
label="科室电话"
placeholder="请输入科室电话"
placeholder-style="font-size: 25rpx !important; letter-spacing: 2rpx;color:rgba(0, 0, 0, 0.4);"
align="right"
suffixIcon="{{ { name: 'chevron-right', ariaLabel: '右' } }}" /> -->
<!-- <t-cell title="专长" hover required arrow note="请选择专长"/> -->
<van-field
model:value="{{ office_phone }}"
bind:change="onOfficePhoneChange"
placeholder="请输入科室电话"
placeholder-style="font-size:30rpx;letter-spacing: 2rpx;color:rgba(0, 0, 0, 0.4);"
input-align="right"
type="number"
clearable
disabled="{{(indentity && iden_auth_disabled)}}"
border="{{ department_custom_mobile_reason == '' }}"
custom-style="font-size:30rpx;"
>
<text slot="label">科室电话 <text style="color: #e34d59;">*</text> </text>
</van-field>
<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="{{(indentity && iden_auth_disabled)?'':'onZhuanChangShow'}}">
<view class="title">专长 <text class="required"> *</text></view>
<view class="content">
<view class="content_item" wx:key="expertise_name" wx:if="{{data.is_selected == 1}}" wx:for="{{ zhuanchang_columns }}" wx:for-item="data">
{{data.expertise_name}}
</view>
</view>
<view class="right">
<view class="note">{{zhuanchang_note}}</view>
<view class="icon" wx:if="{{ !(indentity && iden_auth_disabled) }}">
<t-icon name="chevron-right" size="48rpx" data-name="chevron-right" />
</view>
</view>
</view>
<m-textarea-cell
textarea_cell_name="个人简介"
t_icon_name="view-module"
bind:showNote="onshowJianJieNote"
textarea_cell_note_show="{{!(indentity && iden_auth_disabled)}}"
textarea_cell_content_placeholder="您目前就职医院与科室、社会兼职、所获荣誉、参与科研课题及发表论文等信息(10~1000字)"
textarea_val="{{textarea_jianjie}}"
disabled="{{(indentity && iden_auth_disabled)}}"
has_error_content="{{ brief_introduction_reason }}"
data-textarea_name="textarea_jianjie"
bindTextAreaBlur="getTextAreaVal" />
<m-textarea-cell
textarea_cell_name="擅长领域"
t_icon_name="view-module"
bind:showNote="onshowShanChangNote"
textarea_cell_note_show="{{!(indentity && iden_auth_disabled)}}"
disabled="{{(indentity && iden_auth_disabled)}}"
textarea_val="{{textarea_shanchang}}"
has_error_content="{{ be_good_at_reason }}"
textarea_cell_content_placeholder="描述您所擅长治疗的疾病或者研究方向(10~1000字)"
data-textarea_name="textarea_shanchang" bindTextAreaBlur="getTextAreaVal" />
<m-upload-cell
upload_cell_name="医师执业证"
t_icon_name="view-module"
fileList="{{ zhiye_file_list }}"
max_count="3"
data-scene="2"
data-field_name="zhiye_file_list"
data-file_multiple="true"
bind:showNote="onshowZhiYeNote"
upload_cell_note_show="{{!(indentity && iden_auth_disabled)}}"
deletable="{{!(indentity && iden_auth_disabled)}}"
bindUploadFile="doUploadFile"
bindDeleteFile="doDeleteFile"
upload_cell_desc="请提供清晰的执业证书原件照片,照片需包含证书编号、加盖钢印的证书照片及姓名、执业范围、执业医院等信息,最少上传2张。"
upload_cell_note="查看示例"
has_error_content="{{ license_cert_reason }}"
wx:if="{{indentity}}"
disabled="{{(indentity && iden_auth_disabled)}}"
is_multiple="true"
static_host="{{static_host}}"
/>
<m-upload-cell
upload_cell_name="医师资格证"
t_icon_name="view-module"
fileList="{{ zige_file_list }}"
max_count="3"
data-scene="2"
data-field_name="zige_file_list"
data-file_multiple="true"
bindUploadFile="doUploadFile"
bindDeleteFile="doDeleteFile"
bind:showNote="onshowZiGeNote"
upload_cell_desc="请提供清晰的资格证书原件照片,照片需包含证书编号、加盖钢印的证书照片、姓名等信息,最少上传2张。"
upload_cell_note="查看示例"
upload_cell_note_show="{{!(indentity && iden_auth_disabled)}}"
deletable="{{!(indentity && iden_auth_disabled)}}"
has_error_content="{{ qualification_cert_reason }}"
wx:if="{{indentity}}"
disabled="{{(indentity && iden_auth_disabled)}}"
is_multiple="true"
static_host="{{static_host}}"
/>
<m-upload-cell
upload_cell_name="职称证"
t_icon_name="view-module"
fileList="{{ zhicheng_file_list }}"
max_count="3"
data-scene="2"
data-field_name="zhicheng_file_list"
data-file_multiple="true"
bind:showNote="onshowZhiChengImgNote"
bindUploadFile="doUploadFile"
bindDeleteFile="doDeleteFile"
upload_cell_desc="请提供清晰的职称证书原件照片,照片需包含编号、加盖钢印的证书照片、姓名及职称等信息,最少上传1张。"
upload_cell_note="查看示例"
upload_cell_note_show="{{!(indentity && iden_auth_disabled)}}"
deletable="{{!(indentity && iden_auth_disabled)}}"
has_error_content="{{ work_cert_reason }}"
wx:if="{{indentity}}"
disabled="{{(indentity && iden_auth_disabled)}}"
is_multiple="true"
static_host="{{static_host}}"
/>
<view class="sub_button" wx:if="{{indentity}}">
<van-button data-from="doctorauthiden" disabled="{{iden_auth_disabled}}" color="#3CC7C0" custom-style="border-radius: 20rpx;" type="primary" block bind:click="addDoctorAuthIden">{{iden_auth_status_txt}}</van-button>
</view>
<view class="sub_button" wx:else>
<van-button color="#3CC7C0" data-from="myinfo" disabled custom-style="border-radius: 20rpx;" type="primary" block bind:click="addDoctorAuthIden">{{iden_auth_status_txt}}</van-button>
</view>
<van-toast id="van-toast" />
<image-cropper show_cropper="{{show_cropper}}" id="image-cropper" limit_move="{{true}}" disable_rotate="{{true}}" width="{{img_cropper_width}}" height="{{img_cropper_height}}" imgSrc="{{img_cropper_src}}" disable_height="{{true}}" disable_width="{{true}}" disable_ratio="{{true}}" min_scale="0.1" max_scale="5" bindload="cropperload" bindimageload="loadimage" bindtapcut="clickcut"></image-cropper>
+266
View File
@@ -0,0 +1,266 @@
.photo{
position: relative;
padding: 32rpx 32rpx 32rpx 0;
margin-left: 32rpx;
display: flex;
justify-content: space-between;
font-size: 34rpx;
font-weight: 400;
align-items: center;
}
.photo_reason{
position: relative;
padding: 32rpx 32rpx 32rpx 0;
margin-left: 32rpx;
display: flex;
justify-content: space-between;
font-size: 34rpx;
font-weight: 400;
align-items: center;
}
.photo_reason::after{
position: absolute;
box-sizing: border-box;
content: ' ';
pointer-events: none;
right: 0;
bottom: 0;
border-bottom: 1px solid var(--td-cell-border-color, var(--td-gray-color-3, #e7e7e7));
transform: scaleY(0.5);
left: 0rpx;
}
.required{
color: #e34d59;
}
.title{
font-size: 16px;
color: #000000E6;
}
.right{
display: flex;
color: rgba(0, 0, 0, 0.4);
font-size: 25rpx;
letter-spacing: 2rpx;
align-items: center;
}
.t-input__label{
font-size: 30rpx !important;
}
.van-field__label{
color: #000 !important;
font-size: 30rpx !important;
}
.zhuanchang{
position: relative;
padding: 32rpx;
display: flex;
justify-content: space-between;
font-size: 32rpx;
font-weight: 400;
align-items: center;
}
.zhuanchang::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;
}
.zhuanchang .content{
flex: 1;
display: flex;
flex-wrap: wrap;
margin-left: 20rpx;
}
.content_item{
height: 60rpx;
line-height: 60rpx;
padding: 0rpx 20rpx;
background: #3CC7C0;
border-radius: 29rpx;
color: #fff;
margin: 20rpx 10rpx 20rpx 0;
font-size: 28rpx;
}
.t-tabs__item--active{
color: #49B9AD !important;
}
.t-tabs__track{
background-color: #49B9AD !important;
}
.t-icon-check{
color: #49B9AD !important;
}
.t-cell__note {
font-size: 25rpx !important;
letter-spacing: 2rpx;
}
.t-cell__title-text{
font-size: 30rpx !important;
}
.t-input__wrap--suffix-icon{
padding-left: var(--td-spacer-1, 8rpx) !important;
}
.t-tabs__content {
overflow: unset !important;
}
.bottom_note{
color: #999999;
font-size: 28rpx;
width: 95vw;
margin: 30rpx auto;
letter-spacing: 3rpx;
}
.bottom_next{
width: 95vw;
margin: 530rpx auto 0 auto;
}
.sub_button{
width: 95vw;
margin: 0 auto 30rpx auto;
}
.zhiye_popup{
display: flex;
flex-direction: column;
align-items: center;
padding-bottom: 20rpx;
min-height: 550rpx;
}
.zhiye_popup_title{
margin-top: 16px;
font-size: 32rpx;
font-weight: 600;
letter-spacing: 5rpx;
}
.zhiye_popup_img{
margin-top: 30rpx;
}
.zhuanchang_box{
display: flex;
flex-wrap: wrap;
margin: 0 20rpx;
}
.zhuanchang_box_item{
background-color: #f2f2f2;
padding: 10rpx 20rpx;
border-radius: 20rpx;
color: #000;
font-size: 28rpx;
margin: 20rpx 10rpx;
}
.zhuanchang_box_item_checked{
background-color: #3cc7c0;
color: #fff;
}
.zhuanchang_block {
width: 100vw;
background: #fff;
border-top-left-radius: 16rpx;
border-top-right-radius: 16rpx;
}
.zhuanchang_wrapper {
margin: 32rpx;
display: block;
}
.zhuanchang_header {
display: flex;
align-items: center;
border-bottom: 1px solid #e7e7e7;
}
.zhuanchang_title {
flex: 1;
text-align: center;
font-weight: 600;
font-size: 36rpx;
}
.zhuanchang_btn {
font-size: 32rpx;
padding: 32rpx;
}
.zhuanchang_btn--cancel {
color: rgba(0, 0, 0, .6);
}
.zhuanchang_btn--confirm {
color: #3cc7c0;
}
.van-picker__columns {
height: 264px !important;
top: 40px !important;
}
.van-search {
top: -270px !important;
position: relative !important;
}
.van-picker__confirm{
color: #3cc7c0 !important;
}
.van-cell:after {
border-bottom: 1px solid var(--td-cell-border-color, var(--td-gray-color-3, #e7e7e7));
bottom: 0;
box-sizing: border-box;
content: " ";
pointer-events: none;
position: absolute;
width: calc(100vw - 32rpx);
transform: scaleY(.5);
transform-origin: center;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: var(--td-cell-border-color, var(--td-gray-color-3, #e7e7e7));
}
.van-cell {
padding: 32rpx !important;
}
.jianjie_popup{
margin: 100rpx 20rpx;
}
.has_error{
margin-left: 32rpx;
padding-bottom: 20rpx;
border-bottom: 1rpx solid #e7e7e7;
}
.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;
}