@@ -12,11 +12,7 @@
< a-input v-model = "queryForm.hospital_name" placeholder="请输入所属医院" @press-enter="handleQuery" / >
< / a-form-item >
< a-form-item field = "inquiry_service" label = "服务类型" >
< a-select
v-model = "queryForm.inquiry_service"
placeholder = "请选择服务类型"
: style = "{ width: '182px' }"
>
< a-select v-model = "queryForm.inquiry_service" placeholder="请选择服务类型" :style="{ width: '182px' }" >
< ! - - 1 : 专家问诊 2 : 快速问诊 3 : 公益问诊 4 : 问诊购药 - - >
< a-option :value = "1" > 专家问诊 < / a-option >
< a-option :value = "2" > 快速问诊 < / a-option >
@@ -25,11 +21,7 @@
< / a-select >
< / a-form-item >
< a-form-item field = "multi_point_status" label = "认 证" >
< a-select
v-model = "queryForm.multi_point_status"
placeholder = "请选择多点认证状态"
: style = "{ width: '180px' }"
>
< a-select v-model = "queryForm.multi_point_status" placeholder="请选择多点认证状态" :style="{ width: '180px' }" >
< ! - - 医生多点执业认证状态 ( 0 : 未认证 1 : 认证通过 2 : 审核中 3 : 认证失败 ) - - >
< a-option :value = "0" > 未认证 < / a-option >
< a-option :value = "1" > 认证通过 < / a-option >
@@ -51,22 +43,17 @@
< div class = "action" >
< a-space >
< a-button v-has = "'admin:sysDoctor:add'" type="primary" @click="handleAdd" > < icon -plus / > 新增 < / a-button >
< a-button v-has = "'admin:sysDoctor:remove'" type="primary" status="danger" @click="() => { deleteVisible = true; }" > < icon -delete / > 批量删除 < / a-button >
< a-button v-has = "'admin:sysDoctor:remove'" type="primary" status="danger"
@click ="() => { deleteVisible = true; }" > < icon -delete / > 批量删除 < / a-button >
< / a-space >
< / div >
<!-- table -- >
< a-table
:columns = "columns"
: scroll = "{ x: 2000 }"
:data = "tableData"
< a-table :columns = "columns" : scroll = "{ x: 2000 }" :data = "tableData"
: pagination = "{ 'show-total': true, 'show-jumper': true, 'show-page-size': true, total: pager.total, current: currentPage }"
: row -selection = " { type : ' checkbox ' , showCheckedAll : true } "
row -key = " doctor_id "
@ selection -change = " ( selection ) = > { deleteData = selection ; } "
@page-change=" handlePageChange "
@page-size-change=" handlepage _sizeChange "
>
: row -selection = " { type : ' checkbox ' , showCheckedAll : true } " row -key = " doctor_id "
@ selection -change = " ( selection ) = > { deleteData = selection ; } " @page-change=" handlePageChange "
@page-size-change=" handlepage _sizeChange ">
<template #doctor_id=" { record , rowIndex } ">
<div>{{(rowIndex+1)+(pager.page-1)*10}}</div>
</template>
@@ -103,129 +90,140 @@
</template>
<template #action=" { record } ">
<a-space>
<a-button v-has=" 'admin:sysDoctor:detail' " type=" text " @click=" handleDetail ( record ) "><icon-edit />详情</a-button>
<a-button v-has=" 'admin:sysDoctor:detail' " type=" text "
@click=" handleDetail ( record ) "><icon-edit />详情</a-button>
<a-button v-has=" 'admin:sysDoctor:edit' " type=" text " @click=" handleUpdate ( record ) "><icon-edit /> 修改</a-button>
<a-button v-has=" 'admin:sysDoctor:remove' " type=" text " @click=" ( ) => { deleteVisible = true ; deleteData = [ record . doctor _id ] ; } "><icon-delete /> 删除</a-button>
<a-button v-has=" 'admin:sysDoctor:remove' " type=" text "
@click=" ( ) => { deleteVisible = true ; deleteData = [ record . doctor _id ] ; } "><icon-delete /> 删除</a-button>
</a-space>
</template>
</a-table>
<!-- Modal -->
<a-modal
v-model:visible=" modalVisible "
fullscreen
:title=" modalTitle "
title-align=" start "
:footer=" false "
@before-ok=" handleSubmit "
@close=" ( ) => { $refs . modalFormRef . resetFields ( ) ; modalForm . doctor _id = null ; } "
>
<a-modal v-model:visible=" modalVisible " fullscreen :title=" modalTitle " title-align=" start " :footer=" false "
@before-ok=" handleSubmit " @close=" ( ) => { $refs . modalFormRef . resetFields ( ) ; modalForm . doctor _id = null ; } ">
<div class=" titlebox ">
<div class=" bar "></div>
<div class=" name ">医生信息</div>
</div>
<a-form :model=" modalForm " :ru les =" rules " ref ="modalFormRef " :auto-label-width =" true ">
<a-form-item field=" user _name " label=" 医生头像 ">
<a-form :model=" modalForm " :disab led =" modalSatus == 'detail' " :rules ="rules " ref =" modalFormRef "
:auto-label-width=" true ">
<a-form-item field=" avatar " label=" 医生头像 : ">
<a-space size=" large ">
<a-avatar :size=" 80 " :shape=" circle " imageUrl=" https : //p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp ">
<a-avatar :size=" 80 " :imageUrl=" modalForm . avatar ">
</a-avatar>
</a-space>
< a-upload action = "/" / >
<a-upload action=" / " :fileList=" file ? [ file ] : [ ] " class=" upload " :auto-upload=" false " @change=" onChangeFile "
accept=" image / png , image / jpeg " @before-upload=" beforeUpload " :show-file-list=" false "
v-if=" modalSatus != 'detail' " />
</a-form-item>
<a-row :gutter=" 24 ">
<a-col :span=" 12 ">
< a-form-item field = "user_name" label = "医生名字" >
<a-form-item field=" user _name " label=" 医生名字 : ">
{{modalForm.user_name}}
</a-form-item>
</a-col>
<a-col :span=" 12 ">
< a-form-item field = "user_name" label = "身份证号" >
<!-- { { modalForm . user _doctor _info . card _num _mask } } -- >
<a-form-item field=" idCard " label=" 身份证号 : ">
<div class=" box " v-show=" ! showEye ">
<div>{{modalForm.user_doctor_info.card_num_mask}}</div>
<icon-eye-invisible class=" eye " @click=" ( ) => { showEye = true } " />
</div>
<div class=" box " v-show=" showEye ">
<div>{{id_card_num}}</div>
<icon-eye class=" eye " @click=" ( ) => { showEye = false } " />
</div>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter=" 24 ">
<a-col :span=" 12 ">
< a-form-item field = "user_name" label = "联系电话" >
{ { modalForm . user _name } }
<a-form-item field=" mobile " label=" 联系电话 : ">
{{modalForm.user.mobile}}
</a-form-item>
</a-col>
<a-col :span=" 12 ">
< a-form-item field = "user_name" label = "多点执业" >
<!-- { { modalForm . user _doctor _info . card _num _mask } } -- >
<a-form-item field=" multi _point _status " label=" 多点执业 : ">
<span v-if=" modalForm . multi _point _status == 1 ">可处方</span>
<span v-else>不可处方</span>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter=" 24 ">
<a-col :span=" 12 ">
< a-form-item field = "user_name" label = "医院地址" >
< a-input v-model = "queryForm.dept_name " placeholder="请输入部门名称" / >
<a-form-item field=" address " label=" 医院地址 : ">
<a-input v-model=" modalForm . hospital . address " placeholder=" 请输入医院地址 " />
</a-form-item>
</a-col>
<a-col :span=" 12 ">
< a-form-item field = "user_name" label = "医院名称" >
< a-input v-model = "queryForm.dept_name " placeholder="请输入部门名称" / >
<a-form-item field=" hospital _name " label=" 医院名称 : ">
<a-input v-model=" modalForm . hospital . hospital _name " placeholder=" 请输入医院名称 " />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter=" 24 ">
<a-col :span=" 12 ">
< a-form-item field = "user_name" label = "所在科室" >
< a-input v-model = "queryForm.dept_name" placeholder="请输入部门名称" / >
<a-form-item field=" department _custom _id " label=" 所在科室 : ">
<a-select placeholder=" 请选择所在科室 " v-model=" modalForm . department _custom _id ">
<a-option v-for=" item in departmentData " :key=" item . department _custom _id "
:value=" item . department _custom _id "
:label=" item . department _custom _name ">{{item.department_custom_name}}</a-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span=" 12 ">
< a-form-item field = "user_name" label = "科室名称" >
< a-input v-model = "queryForm.dept_name " placeholder="请输入部门名称" / >
<a-form-item field=" department _custom _name " label=" 科室名称 : ">
<a-input v-model=" modalForm . department _custom _name " placeholder=" 请输入科室名称 " />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter=" 24 ">
<a-col :span=" 12 ">
< a-form-item field = "user_name" label = "职 称" >
< a-input v-model = "queryForm.dept_name " placeholder="请输入部门名称" / >
<a-form-item field=" doctor _title " label=" 职 称 : ">
<a-input v-model=" doctor _title _name " placeholder=" 请输入职称 " />
</a-form-item>
</a-col>
<a-col :span=" 12 ">
< a-form-item field = "user_name" label = "科室电话" >
< a-input v-model = "queryForm.dept_name " placeholder="请输入部门名称" / >
<a-form-item field=" department _custom _mobile " label=" 科室电话 : ">
<a-input v-model=" modalForm . department _custom _mobile " placeholder=" 请输入科室电话 " />
</a-form-item>
</a-col>
</a-row>
<!-- <a-row :gutter=" 24 ">
<a-col :span=" 24 ">
<a-form-item field=" license _cert _num " label=" 执业证编码 : ">
<a-input v-model=" modalForm . license _cert . license _cert _num " placeholder=" 请输入部门名称 " />
</a-form-item>
</a-col>
</a-row> -->
<a-row :gutter=" 24 ">
<a-col :span=" 24 ">
< a-form-item field = "user_name" label = "执业证编码" >
< a-input v-model = "queryForm.dept_name " placeholder="请输入部门名称" / >
<a-form-item field=" qualification _cert _num " label=" 资格证编码 : ">
<a-input v-model=" modalForm . user _doctor _info . qualification _cert _num " placeholder=" 请输入部门名称 " />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter=" 24 ">
<a-col :span=" 24 ">
< a-form-item field = "user_name" label = "资格证编码" >
< a-input v-model = "queryForm.dept_name" placeholder="请输入部门名称" / >
< / a-form-item >
< / a-col >
< / a-row >
< a-row :gutter = "24" >
< a-col :span = "24" >
< a-form-item field = "user_name" label = "专长" >
<a-form-item field=" user _name " label=" 专长 : ">
<a-textarea v-model=" modalForm . remark " placeholder=" 请输入备注内容 " />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter=" 24 ">
<a-col :span=" 24 ">
< a-form-item field = "user_name" label = "擅长信息" >
< a-textarea v-model = "modalForm.remark " placeholder="请输入备注内容" / >
<a-form-item field=" be _good _at " label=" 擅长信息 : ">
<a-textarea v-model=" modalForm . be _good _at " placeholder=" 请输入备注内容 " />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter=" 24 ">
<a-col :span=" 24 ">
< a-form-item field = "user_name" label = "个人简介" >
< a-textarea v-model = "modalForm.remark " placeholder="请输入备注内容" / >
<a-form-item field=" brief _introduction " label=" 个人简介 : ">
<a-textarea v-model=" modalForm . brief _introduction " placeholder=" 请输入备注内容 " />
</a-form-item>
</a-col>
</a-row>
@@ -236,93 +234,93 @@
</div>
<a-row :gutter=" 24 " style=" margin - top : 35 px ; ">
<a-col :span=" 4 ">
< a-form-item field = "" label = "状态" >
< a-switch checked -color = " # 14C9C9 " / >
<a-form-item field=" " label=" 状态 : ">
<a-space size=" large ">
<a-switch checked-color=" # 14 C9C9 " :checked-value=" 1 " :unchecked-value=" 0 "
v-model=" modalForm . is _recommend " style=" cursor : not - allowed ! important ; " />
</a-space>
</a-form-item>
</a-col>
< a-col :span = "20" > < div > 理由 : 平台合作 < / div > < / a-col >
<a-col :span=" 20 " v-if=" modalForm . is _recommend == 1 ">
<div>理由:平台合作</div>
</a-col>
</a-row>
<a-divider />
<div class=" titlebox ">
<div class=" bar "></div>
<div class=" name ">医师证件</div>
</div>
< a-row :gutter = "24" style = "margin-top: 35px;" >
<a-row :gutter=" 24 " style=" margin - top : 35 px ; "
v-if=" modalForm . user _doctor _info . license _cert && modalForm . user _doctor _info . license _cert . length > 0 ">
<a-col :span=" 24 ">
<a-form-item field=" " label=" " no-style>
<div class=" titletip ">医师执业证<span>(点击图片查看大图)</span></div>
<a-image-preview-group infinite>
<a-space>
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/cd7a1aaea8e1c5e3d26fe2591e561798.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/6480dbc69be1b5de95010289787d64f1.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/0265a04fddbd77a19602a15d9d55d797.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/24e0dd27418d2291b65db1b21aa62254.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
<a-image v-for=" item in modalForm . user _doctor _info . license _cert " show-loader :src=" item " />
</a-space>
</a-image-preview-group>
</a-form-item>
</a-col>
</a-row>
< a-row :gutter = "24" style = "margin-top: 35px;" >
<a-row :gutter=" 24 " style=" margin - top : 35 px ; "
v-if=" modalForm . user _doctor _info . qualification _cert && modalForm . user _doctor _info . qualification _cert . length > 0 ">
<a-col :span=" 24 ">
<a-form-item field=" " label=" " no-style>
<div class=" titletip ">医师资格证<span>(点击图片查看大图)</span></div>
<a-image-preview-group infinite>
<a-space>
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/cd7a1aaea8e1c5e3d26fe2591e561798.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/6480dbc69be1b5de95010289787d64f1.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/0265a04fddbd77a19602a15d9d55d797.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/24e0dd27418d2291b65db1b21aa62254.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
<a-image v-for=" item in modalForm . user _doctor _info . license _cert " show-loader :src=" item " />
</a-space>
</a-image-preview-group>
</a-form-item>
</a-col>
</a-row>
< a-row :gutter = "24" style = "margin-top: 35px;" >
<a-row :gutter=" 24 " style=" margin - top : 35 px ; "
v-if=" modalForm . user _doctor _info . work _cert && modalForm . user _doctor _info . work _cert . length > 0 ">
<a-col :span=" 24 ">
<a-form-item field=" " label=" " no-style>
<div class=" titletip ">医师职称证<span>(点击图片查看大图)</span></div>
<a-image-preview-group infinite>
<a-space>
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/cd7a1aaea8e1c5e3d26fe2591e561798.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/6480dbc69be1b5de95010289787d64f1.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/0265a04fddbd77a19602a15d9d55d797.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/24e0dd27418d2291b65db1b21aa62254.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
<a-image v-for=" item in modalForm . user _doctor _info . work _cert " show-loader :src=" item " />
</a-space>
</a-image-preview-group>
</a-form-item>
</a-col>
</a-row>
< a-row :gutter = "24" style = "margin-top: 35px;" >
<a-row :gutter=" 24 " style=" margin - top : 35 px ; "
v-if=" modalForm . user _doctor _info . id _card _front || modalForm . user _doctor _info . id _card _back ">
<a-col :span=" 24 ">
<a-form-item field=" " label=" " no-style>
<div class=" titletip ">医师身份证<span>(点击图片查看大图)</span></div>
<a-image-preview-group infinite>
<a-space>
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/cd7a1aaea8e1c5e3d26fe2591e561798.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/6480dbc69be1b5de95010289787d64f1.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/0265a04fddbd77a19602a15d9d55d797.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/24e0dd27418d2291b65db1b21aa62254.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
<a-image
v-for=" item in [ modalForm . user _doctor _info . id _card _front , modalForm . user _doctor _info . id _card _back ] "
show-loader :src=" item " v-show=" item " />
</a-space>
</a-image-preview-group>
</a-form-item>
</a-col>
</a-row>
< a-row :gutter = "24" style = "margin-top: 35px;" >
<a-row :gutter=" 24 " style=" margin - top : 35 px ; " v-if=" modalForm . user _doctor _info . sign _image ">
<a-col :span=" 24 ">
<a-form-item field=" " label=" " no-style>
<div class=" titletip ">医师手写签名<span>(点击图片查看大图)</span></div>
<a-image-preview-group infinite>
<a-space>
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/cd7a1aaea8e1c5e3d26fe2591e561798.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/6480dbc69be1b5de95010289787d64f1.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/0265a04fddbd77a19602a15d9d55d797.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/24e0dd27418d2291b65db1b21aa62254.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
<a-image v-for=" item in [ modalForm . user _doctor _info . sign _image ] " show-loader :src=" item "
v-show=" item " />
</a-space>
</a-image-preview-group>
</a-form-item>
</a-col>
</a-row>
< a-row :gutter = "24" style = "margin-top: 35px;" >
<!-- <a-row :gutter=" 24 " style=" margin - top : 35 px ; ">
<a-col :span=" 24 ">
<a-form-item field=" " label=" " no-style>
<div class=" titletip ">医师云证书<span>(点击图片查看大图)</span></div>
@@ -336,23 +334,21 @@
< / a-image-preview-group >
< / a-form-item >
< / a-col >
< / a-row >
< a-row :gutter = "24" style = "margin-top: 35px;" >
< / a-row > -- >
< a-row :gutter = "24" style = "margin-top: 35px;" v-if = "modalForm.qr_code" >
< a -col :span = "24" >
< a-form-item field = "" label = "" no -style >
< div class = "titletip" > 医师二维码 < span > ( 点击图片查看大图 ) < / span > < / div >
< a-image-preview-group infinite >
< a-space >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/cd7a1aaea8e1c5e3d26fe2591e561798.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/6480dbc69be1b5de95010289787d64f1.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/0265a04fddbd77a19602a15d9d55d797.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image show -loader src = "https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/24e0dd27418d2291b65db1b21aa62254.png~tplv-uwbnlip3yd-webp.webp" width = "200" / >
< a-image v-for = "item in [modalForm.qr_code]" show-loader :src="item" v-show="item" width= "200" / >
< / a-space >
< / a-image-preview-group >
< / a-form-item >
< / a-col >
< / a-row >
< a-divider / >
< / a-form >
< div class = "titlebox" >
< div class = "bar" > < / div >
< div class = "name" > 操作 < / div >
@@ -361,41 +357,28 @@
< a-col :span = "24" >
< a-form-item field = "" label = "" no -style >
< a-space >
< a-button type = "primary" > 保存 < / a-button >
< a-button type = "primary" status = "success" v-if = "modalSatus=='detail'" > 启用 < / a -button >
< a-button type = "primary" status = "danger" v-if = "modalSatus=='detail'" > 禁用 < / a -button >
< a-button type = "primary" v-if = "modalSatus=='edit'" > 保存 < / a -button >
< a-button type = "primary" status = "warning" > 拉黑 < / a-button >
< a-button type = "primary" status = "danger" > 删除 < / a-button >
< a-button type = "primary" status = "danger" v-if = "modalSatus=='edit'" > 删除 < / a -button >
< / a-space >
< / a-form-item >
< / a-col >
< / a-row >
<!-- < a-form-item field = "status" label = "医生状态" >
< a-radio-group v-model = "modalForm.status" >
< a -radio :value = "2" > 正常 < / a-radio >
< a-radio :value = "1" > 停用 < / a-radio >
< / a-radio-group >
< / a-form-item >
< a-form-item field = "remark" label = "备注" >
< a-textarea v-model = "modalForm.remark" placeholder="请输入备注内容" / >
< / a-form-item > -- >
< / a-form >
< / a-modal >
<!-- Akiraka 20230223 删除与批量删除 开始 -- >
< DeleteModal
:data = "deleteData"
:visible = "deleteVisible"
:apiDelete = "removeDoctor"
@deleteVisibleChange ="() => deleteVisible = false"
/ >
< DeleteModal :data = "deleteData" :visible = "deleteVisible" :apiDelete = "removeDoctor"
@deleteVisibleChange ="() => deleteVisible = false" / >
<!-- Akiraka 20230223 删除与批量删除 结束 -- >
< / div >
< / template >
< script setup >
import { reactive , ref , getCurrentInstance , onMounted , nextTick , watch } from 'vue' ;
import { getDoctorList , addDoctor , removeDoctor , updateDoctor } from '@/api/doctor/list' ;
import { parseTime } from '@/utils/parseTime ' ;
import { reactive , ref , getCurrentInstance , onMounted , nextTick , watch , computed } from 'vue' ;
import { getDoctorList , addDoctor , removeDoctor , updateDoctor , getDoctorDetail , departmentList , decryptCard , hospitalList } from '@/api/doctor/list' ;
import { ossSign , ossUpload } from '@/api/oss ' ;
// Akiraka 20230210 删除数据
const deleteData = ref ( [ ] )
// Akiraka 20230210 删除对话框
@@ -405,8 +388,9 @@
if ( value == false ) {
getDoctorInfo ( pager ) ;
}
} )
} ) ;
const file = ref ( ) ;
const { proxy } = getCurrentInstance ( ) ;
const currentPage = ref ( 1 ) ;
@@ -421,10 +405,23 @@
inquiry _service : ''
} ) ;
const modalForm = reactive ( {
sort : 0 ,
hospital : { } ,
user _doctor _info : { } ,
user : { } ,
doctor _id : '' ,
user _id : '' ,
status : 1 ,
} ) ;
watch ( ( ) => modalForm . user _id , ( value ) => {
if ( value ) {
handelDecryptCard ( value ) ;
}
} ) ;
const doctor _title _name = computed ( ( ) => {
let obj = { 1 : '主任医师' , 2 : '主任中医师' , 3 : '副主任医师' , 4 : '副主任中医师' , 5 : '主治医师' , 6 : '住院医师' } ;
return obj [ modalForm . doctor _title ]
} )
// Rules
const rules = {
user _name : [ { required : true , message : '请输入医生名字' } ]
@@ -455,24 +452,40 @@
// Table Data
const tableData = ref ( [ ] ) ;
//弹框状态
const modalSatus = ref ( 'add' ) ;
// 新增
// 新增Satus
const handleAdd = ( ) => {
modalVisible . value = true ;
modalTitle . value = '新增医生' ;
modalSatus . value = 'add' ;
} ;
//详情
const handleDetail = ( ) => {
const handleDetail = async ( record ) => {
modalVisible . value = true ;
modalTitle . value = '医生详情' ;
modalSatus . value = 'detail' ;
const { code , data , message } = await getDoctorDetail ( record . doctor _id ) ;
if ( code == 200 ) {
Object . assign ( modalForm , data ) ;
} else {
proxy . $notification . error ( message ) ;
}
} ;
// 修改
const handleUpdate = async ( record ) => {
modalVisible . value = true ;
modalTitle . value = '修改医生' ;
modalSatus . value = 'edit' ;
const { code , data , message } = await getDoctorDetail ( record . doctor _id ) ;
if ( code == 200 ) {
Object . assign ( modalForm , data ) ;
} else {
proxy . $notification . error ( message ) ;
}
//await nextTick();
await nextTick ( ) ;
Object . assign ( modalForm , record ) ;
} ;
//开启服务处理
const filterService = ( record ) => {
@@ -497,7 +510,6 @@
str += ',' + item
}
} )
return str ? str : "暂无"
}
// Modal ok
@@ -591,15 +603,87 @@
getDoctorInfo ( params ) ;
} ;
const departmentData = ref ( [ ] ) ;
//获取科室列表
const getDepartmentList = ( ) => {
const { data , code , message } = departmentList ( ) ;
if ( code == 200 ) {
departmentData . value = data ;
} else {
proxy . $notification . error ( message ) ;
}
} ;
//切换小眼睛
const showEye = ref ( false ) ;
const id _card _num = ref ( '' ) ;
//解密身份证号码
const handelDecryptCard = ( ) => {
const { data , code , message } = decryptCard ( ) ;
if ( code == 200 ) {
id _card _num . value = data ;
} else {
proxy . $notification . error ( message ) ;
}
} ;
//获取医院列表
const handleHospitalList = ( ) => {
const { data , code , message } = hospitalList ( ) ;
if ( code == 200 ) {
//id_card_num.value = data;
} else {
proxy . $notification . error ( message ) ;
}
}
// 重置搜索
const handleResetQuery = ( ) => {
proxy . $refs . queryFormRef . resetFields ( ) ;
getDoctorInfo ( queryForm ) ;
}
//获取oss签名
const getOssSign = async ( scene , File ) => {
const { data , code , message } = await ossSign ( {
user _type : 4 ,
scene ,
} ) ;
if ( code == 200 ) {
let { access _id , dir , policy , signature , host } = data ;
//let index = File.lastIndexOf("/");
let filename = File . name ;
let formData = new FormData ( ) ;
formData . append ( 'OSSAccessKeyId' , access _id ) ;
formData . append ( 'policy' , policy ) ;
formData . append ( 'signature' , signature ) ;
formData . append ( 'key' , dir + filename ) ;
formData . append ( 'file' , File , filename ) ;
ossUpload ( host , formData ) . then ( ( res ) => {
console . log ( res ) ;
} ) ;
} else {
proxy . $notification . error ( message ) ;
}
}
//上传前验证
const beforeUpload = ( file ) => {
return new Promise ( ( resolve , reject ) => {
if ( file . size >= 10 * 1024 * 1024 ) {
proxy . $notification . error ( "图片大小不能超过10M" ) ;
reject ( 'cancel' )
} else {
resolve ( true )
}
} ) ;
} ;
//上传文件
const onChangeFile = ( fileList ) => {
console . log ( fileList )
getOssSign ( 1 , fileList [ 0 ] . file ) ;
}
onMounted ( ( ) => {
getDoctorInfo ( pager ) ;
handleHospitalList ( ) ;
getDepartmentList ( ) ;
} ) ;
< / script >
@@ -607,18 +691,35 @@
. action {
margin - bottom : 12 px ;
}
. hospital _name {
width : 100 % ;
white - space : nowrap ;
overflow : hidden ;
text - overflow : ellipsis ;
}
. headImg {
margin - right : 20 px ;
border - radius : 50 % ;
}
. arco - form - item - layout - horizontal : first - child {
align - items : center ;
}
< / style >
. upload {
margin - left : 20 px ;
}
. eye {
margin - left : 20 px ;
cursor : pointer ;
font - size : 18 px ;
}
. box {
display : flex ;
align - items : center ;
}
< / style >