3.27后台管理
This commit is contained in:
parent
9ee2411d1e
commit
654545884b
2
components.d.ts
vendored
2
components.d.ts
vendored
@ -16,6 +16,8 @@ declare module '@vue/runtime-core' {
|
||||
ConfirmModal: typeof import('./src/components/confirmModal.vue')['default']
|
||||
DeleteModal: typeof import('./src/components/DeleteModal.vue')['default']
|
||||
DoctorModal: typeof import('./src/components/doctorModal.vue')['default']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
FamilyModal: typeof import('./src/components/familyModal.vue')['default']
|
||||
InquiryDetailModal: typeof import('./src/components/inquiryDetailModal.vue')['default']
|
||||
InquiryDetailMoneyModal: typeof import('./src/components/inquiryDetailMoneyModal.vue')['default']
|
||||
|
||||
24
src/api/doctor/introduction.js
Normal file
24
src/api/doctor/introduction.js
Normal file
@ -0,0 +1,24 @@
|
||||
import request from '../../utils/request'
|
||||
|
||||
const url = '/admin/doctor/introduction';
|
||||
|
||||
export function getDoctorList(params){
|
||||
return request({
|
||||
url:'/admin/doctor/introduction',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
export function getDoctorDetail(id){
|
||||
return request({
|
||||
url:'/admin/doctor/'+id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function checkDoctor(data,id){
|
||||
return request({
|
||||
url:'/admin/doctor/introduction/'+id,
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -34,6 +34,32 @@
|
||||
</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-col :span="12">
|
||||
<a-form-item field="inquiry_type" :hide-label="true">
|
||||
<a-select
|
||||
:disabled="inquiry_config_id?true:false"
|
||||
v-model="modalForm.inquiry_mode"
|
||||
placeholder="请选择问诊类型"
|
||||
@change="changeType"
|
||||
:style="{ width: '320px' }"
|
||||
>
|
||||
<!-- 1:图文 2:视频 3:语音 4:电话 5:会员 -->
|
||||
<a-option :value="1">图文问诊</a-option>
|
||||
<a-option :value="2">视频问诊</a-option>
|
||||
<a-option :value="3">语音问诊</a-option>
|
||||
<a-option :value="4">电话购药</a-option>
|
||||
<a-option :value="5">会员</a-option>
|
||||
<a-option :value="6">疑难会诊</a-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-divider />
|
||||
<div class="titlebox">
|
||||
<div class="bar"></div>
|
||||
<div class="name">添加医生</div>
|
||||
|
||||
@ -220,6 +220,27 @@
|
||||
</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-col :span="24">
|
||||
<a-form-item field="max_work_num_day" :hide-label="true">
|
||||
<a-space direction="vertical" size="large">
|
||||
<a-input-number
|
||||
mode="button"
|
||||
v-model="modalForm.default_work_num_day"
|
||||
:style="{ width: '180px' }"
|
||||
placeholder="每日最大接诊量"
|
||||
class="input-demo"
|
||||
:min="1"
|
||||
/>
|
||||
</a-space>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-divider />
|
||||
</a-form>
|
||||
<div class="titlebox">
|
||||
<div class="bar"></div>
|
||||
@ -397,8 +418,10 @@ const handleSubmit = () => {
|
||||
if(modalForm.inquiry_type==3){
|
||||
modalForm.inquiry_price=modalForm.temp_free_price.join(',')
|
||||
}else if(modalForm.inquiry_type==2 || modalForm.inquiry_type==4){
|
||||
modalForm.inquiry_price=String(modalForm.inquiry_price)
|
||||
modalForm.inquiry_price=String(modalForm.inquiry_price);
|
||||
|
||||
}
|
||||
console.log(modalForm)
|
||||
const {data,code}=await editSysconfig(modalForm, props.inquiry_config_id);
|
||||
if (code == 200) {
|
||||
proxy.$message.success('修改成功')
|
||||
|
||||
@ -5,9 +5,12 @@
|
||||
提示
|
||||
</template>
|
||||
<a-form :model="form" :rules="rules" ref="modalFormRef" size="medium" label-align="left" auto-label-width>
|
||||
<a-form-item field="cancel_remarks" label="理由" >
|
||||
<a-textarea v-model.trim="form.cancel_remarks" allow-clear placeholder="请输入取消订单理由"></a-textarea>
|
||||
</a-form-item>
|
||||
<a-form-item field="cancel_remarks" label="理由" >
|
||||
<a-textarea v-model.trim="form.cancel_remarks" allow-clear placeholder="请输入取消订单理由"></a-textarea>
|
||||
</a-form-item>
|
||||
<a-form-item field="refund_amount" label="退款金额(元)" >
|
||||
<a-input-number v-model="form.refund_amount" placeholder="请输入退款金额" size="large" class="input-demo" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<template #footer>
|
||||
<a-button @click="handleClose"><template #icon><icon-close /></template>取消</a-button>
|
||||
@ -17,11 +20,12 @@
|
||||
</a-modal>
|
||||
</template>
|
||||
<script setup>
|
||||
import { reactive, toRefs, getCurrentInstance } from 'vue';
|
||||
import { reactive, toRefs, getCurrentInstance,watch } from 'vue';
|
||||
import { Message } from '@arco-design/web-vue';
|
||||
const { proxy } = getCurrentInstance();
|
||||
const form = reactive({
|
||||
cancel_remarks: ''
|
||||
cancel_remarks: '',
|
||||
refund_amount:null
|
||||
});
|
||||
const props = defineProps({
|
||||
// 是否显示
|
||||
@ -33,6 +37,10 @@ const props = defineProps({
|
||||
type: String,
|
||||
default:'',
|
||||
},
|
||||
payment_amount_total:{
|
||||
type:Number,
|
||||
default:''
|
||||
},
|
||||
dealType:{
|
||||
type: String,
|
||||
default:'',
|
||||
@ -46,16 +54,20 @@ const props = defineProps({
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(['closeChange']);
|
||||
const {okVisible,title,id,api} = toRefs(props);
|
||||
const {okVisible,title,id,api,payment_amount_total} = toRefs(props);
|
||||
|
||||
// Akiraka 20230210 关闭弹窗
|
||||
const handleClose = () => {
|
||||
emits('closeChange',false);
|
||||
// alert(flag)
|
||||
}
|
||||
watch(()=>props.payment_amount_total,(newVal,oldVal)=>{
|
||||
form.refund_amount=newVal;
|
||||
},{immediate:true})
|
||||
// Akiraka 20230210 删除数据校验
|
||||
const rules = reactive({
|
||||
cancel_remarks: [{ required: true, message: '请输入取消订单理由' }]
|
||||
cancel_remarks: [{ required: true, message: '请输入取消订单理由' }],
|
||||
refund_amount:[{ required: true, message: '请输入退款金额' }]
|
||||
});
|
||||
// Akiraka 20230210 确认按钮 => 开始数据检查
|
||||
const handleConfirm = () => {
|
||||
|
||||
@ -178,6 +178,13 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<a-form-item field="user.email" label="邮箱:">
|
||||
<a-input v-model="modalForm.user.email" placeholder="请输入邮箱" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<a-form-item field="cur_doctor_expertise" label="专长:">
|
||||
|
||||
563
src/views/doctor/doctor-introduction/index.vue
Normal file
563
src/views/doctor/doctor-introduction/index.vue
Normal file
@ -0,0 +1,563 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<a-form :model="queryForm" ref="queryFormRef" layout="inline">
|
||||
|
||||
<a-form-item field="user_name" label="医生名字">
|
||||
<a-input v-model="queryForm.user_name" placeholder="请输入医生名字" @press-enter="handleQuery" />
|
||||
</a-form-item>
|
||||
<a-form-item field="mobile" label="电话号码">
|
||||
<a-input v-model="queryForm.mobile" placeholder="请输入电话号码" @press-enter="handleQuery" />
|
||||
</a-form-item>
|
||||
<!-- <a-form-item field="multi_point_status" label="审核状态">
|
||||
<a-select v-model="queryForm.multi_point_status" placeholder="请选择审核状态" :style="{ width: '180px' }">
|
||||
<a-option :value="2">审核中</a-option>
|
||||
<a-option :value="3">认证失败</a-option>
|
||||
</a-select>
|
||||
</a-form-item> -->
|
||||
<a-form-item>
|
||||
<a-space>
|
||||
<a-button type="primary" @click="handleQuery"><icon-search /> 搜索</a-button>
|
||||
<a-button @click="handleResetQuery"><icon-loop /> 重置</a-button>
|
||||
</a-space>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
|
||||
<!-- <a-divider /> -->
|
||||
|
||||
<!-- action -->
|
||||
|
||||
<!-- table -->
|
||||
<a-table :columns="columns" :data="tableData"
|
||||
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
|
||||
:pagination="{ 'show-total': true, 'show-jumper': true, 'show-page-size': true, total: pager.total, current: currentPage }"
|
||||
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)*pager.page_size}}</div>
|
||||
</template>
|
||||
<template #doctor_title="{ record }">
|
||||
<!-- 医生职称(1:主任医师 2:主任中医师 3:副主任医师 4:副主任中医师 5:主治医师 6:住院医师) -->
|
||||
<div v-if="record.doctor_title==1">主任医师</div>
|
||||
<div v-else-if="record.doctor_title==2">主任中医师</div>
|
||||
<div v-else-if="record.doctor_title==3">副主任医师</div>
|
||||
<div v-else-if="record.doctor_title==4">副主任中医师</div>
|
||||
<div v-else-if="record.doctor_title==5">主治医师</div>
|
||||
<div v-else-if="record.doctor_title==6">住院医师</div>
|
||||
</template>
|
||||
<template #created_at="{ record }">
|
||||
{{ parseTime(record.created_at) }}
|
||||
</template>
|
||||
<template #hospital_name="{record}">
|
||||
<div class="hospital_name" :title="record.hospital_name">{{record.hospital_name}}</div>
|
||||
</template>
|
||||
<template #inquiry_service="{ record }">
|
||||
<span>{{filterService(record)}}</span>
|
||||
</template>
|
||||
<template #introduction_status="{ record }">
|
||||
<!-- 简介认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败) -->
|
||||
<a-tag v-if="record.introduction_status == 0" color="gray">未审核</a-tag>
|
||||
<a-tag v-else-if="record.introduction_status == 1" color="green">审核通过</a-tag>
|
||||
<a-tag v-else-if="record.introduction_status == 2" color="#ffb400">审核中</a-tag>
|
||||
<a-tag v-else color="red">审核失败</a-tag>
|
||||
</template>
|
||||
<template #is_recommend="{ record }">
|
||||
<!-- 身份认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败) -->
|
||||
<a-tag v-if="record.is_recommend == 0" color="gray">否</a-tag>
|
||||
<a-tag v-else color="green">是</a-tag>
|
||||
</template>
|
||||
<template #status="{ record }">
|
||||
<!-- 状态(0:禁用 1:正常 2:删除) -->
|
||||
<a-switch v-model="record.status" checked-color="#14C9C9" :checked-value="1" unchecked-value="0" />
|
||||
</template>
|
||||
<template #action="{ record }">
|
||||
<a-space>
|
||||
<a-button v-has="'admin:sysDoctorMultipoint:check'" type="text"
|
||||
@click="handleDetail(record)"><icon-book />审核</a-button>
|
||||
</a-space>
|
||||
</template>
|
||||
</a-table>
|
||||
|
||||
<!-- Modal -->
|
||||
<a-modal v-model:visible="modalVisible" fullscreen :title="modalTitle" title-align="start" :footer="false"
|
||||
@close="() => {$refs.modalFormRef.resetFields(); modalForm.doctor_id = null;}">
|
||||
<div class="titlebox">
|
||||
<div class="bar"></div>
|
||||
<div class="name">医生信息</div>
|
||||
</div>
|
||||
<a-form :model="modalForm" :disabled="true" ref="modalFormRef"
|
||||
:auto-label-width="true">
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<a-form-item field="avatar" label="医生头像:">
|
||||
<a-space size="large">
|
||||
<a-image width="80" height="80" class="headImg" :src="modalForm.avatar">
|
||||
</a-image>
|
||||
</a-space>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<a-form-item field="cur_doctor_expertise" label="专长:">
|
||||
<a-select multiple placeholder="请选择专长" v-model="modalForm.cur_doctor_expertise">
|
||||
<a-option v-for="item in expertiseData" :key="item.expertise_id" :value="item.expertise_id"
|
||||
:label="item.expertise_name">{{item.expertise_name}}</a-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<a-form-item field="be_good_at" label="擅长信息:">
|
||||
<a-textarea :auto-size="{minRows:2}" :max-length="{length:1000,errorOnly:true}" allow-clear
|
||||
show-word-limit v-model="modalForm.be_good_at"
|
||||
placeholder="请填写医生擅长信息。内容为医生专业领域、擅长疾病、研究方法等信息(字数在10-1000字)" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<a-form-item field="brief_introduction" label="个人简介:">
|
||||
<a-textarea :auto-size="{minRows:2}" :max-length="{length:1000,errorOnly:true}" allow-clear
|
||||
show-word-limit v-model="modalForm.brief_introduction"
|
||||
placeholder="请填写医生从业经历,职称和所获荣誉等信息(字数在10-1000字)" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-divider />
|
||||
</a-form>
|
||||
<div class="titlebox" >
|
||||
<div class="bar"></div>
|
||||
<div class="name">操作</div>
|
||||
</div>
|
||||
<a-row :gutter="24" style="margin-top: 35px;" >
|
||||
<a-col :span="24">
|
||||
<a-form-item field="" label="" no-style>
|
||||
<a-space >
|
||||
<a-button type="primary" v-has="'admin:sysDoctorMultipoint:ok'" @click="handleCheck('ok')">审核通过</a-button>
|
||||
<a-button type="primary" v-has="'admin:sysDoctorMultipoint:deny'" status="danger" @click="handleCheck(deny)">审核拒绝</a-button>
|
||||
</a-space>
|
||||
<!-- <a-space v-if="modalSatus=='edit'">
|
||||
<a-button type="primary" status="warning">拉黑</a-button>
|
||||
<a-button type="primary" status="danger">删除</a-button>
|
||||
</a-space> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-modal>
|
||||
|
||||
<!-- 审核失败弹框 -->
|
||||
<a-modal :mask-closable="false" v-model:visible="modalCheckVisible" :title="'拒绝理由'" title-align="start"
|
||||
@before-ok="handleSubmit" @close="() => { $refs.checkFormRef.resetFields();}">
|
||||
<a-form :model="modalCheckForm" ref="checkFormRef"
|
||||
:auto-label-width="true" :mask-closable="false" >
|
||||
<a-form-item field="avatar_reason" label="头像原因:">
|
||||
<a-textarea v-model="modalCheckForm.avatar_reason" placeholder="请输入头像原因" />
|
||||
</a-form-item>
|
||||
<a-form-item field="doctor_expertise_reason" label="专长原因:">
|
||||
<a-textarea v-model="modalCheckForm.doctor_expertise_reason" placeholder="请输入专长原因" />
|
||||
</a-form-item>
|
||||
<a-form-item field="brief_introduction_reason" label="简介原因:">
|
||||
<a-textarea v-model="modalCheckForm.brief_introduction_reason" placeholder="请输入简介原因" />
|
||||
</a-form-item>
|
||||
<a-form-item field="be_good_at_reason" label="擅长原因:">
|
||||
<a-textarea v-model="modalCheckForm.be_good_at_reason" placeholder="请输入擅长原因" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch, computed } from 'vue';
|
||||
import { getDoctorList,getDoctorDetail,checkDoctor} from '@/api/doctor/introduction';
|
||||
import {departmentList, decryptCard, hospitalList, expertiseList } from '@/api/doctor/list';
|
||||
import dayjs from 'dayjs'
|
||||
import { parseTime } from '@/utils/parseTime';
|
||||
// Akiraka 20230210 删除数据
|
||||
const deleteData = ref([])
|
||||
// Akiraka 20230210 删除对话框
|
||||
const deleteVisible = ref(false)
|
||||
const modalCheckVisible = ref(false)
|
||||
// Akiraka 20230210 监听删除事件
|
||||
watch(() => deleteVisible.value, (value) => {
|
||||
if (value == false) {
|
||||
getDoctorInfo(pager);
|
||||
}
|
||||
});
|
||||
const file = ref();
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const currentPage = ref(1);
|
||||
// Pager
|
||||
const pager = {
|
||||
total: 0,
|
||||
page: 1,
|
||||
page_size: 10,
|
||||
};
|
||||
// form
|
||||
const queryForm = reactive({
|
||||
inquiry_service: ''
|
||||
});
|
||||
const modalCheckForm = reactive({
|
||||
avatar_reason:'',
|
||||
doctor_expertise_reason:'',
|
||||
brief_introduction_reason:'',
|
||||
be_good_at_reason:''
|
||||
});
|
||||
const modalForm = reactive({
|
||||
hospital: {},
|
||||
user_doctor_info: {
|
||||
|
||||
},
|
||||
user: {},
|
||||
doctor_id: '',
|
||||
license_cert: [],
|
||||
qualification_cert: [],
|
||||
work_cert: [],
|
||||
department_custom_name: '',
|
||||
user_id: '',
|
||||
status: 1,
|
||||
id_card_front: '',
|
||||
id_card_back: '',
|
||||
sign_image: '',
|
||||
card_num: null,
|
||||
cur_doctor_expertise: [],
|
||||
avatar: 'https://img.applets.igandanyiyuan.com/basic/file/doctor_avatar.png'
|
||||
});
|
||||
|
||||
|
||||
// Modal
|
||||
const modalVisible = ref(false);
|
||||
const modalTitle = ref('默认标题');
|
||||
//let obj = { 1: '主任医师', 2: '主任中医师', 3: '副主任医师', 4: '副主任中医师', 5: '主治医师', 6: '住院医师' };
|
||||
const doctor_title_data = [
|
||||
{
|
||||
doctor_title: 1,
|
||||
doctor_title_name: '主任医师'
|
||||
},
|
||||
{
|
||||
doctor_title: 2,
|
||||
doctor_title_name: '主任中医师'
|
||||
},
|
||||
{
|
||||
doctor_title: 3,
|
||||
doctor_title_name: '副主任医师'
|
||||
},
|
||||
{
|
||||
doctor_title: 4,
|
||||
doctor_title_name: '副主任中医师'
|
||||
},
|
||||
{
|
||||
doctor_title: 5,
|
||||
doctor_title_name: '主治医师'
|
||||
},
|
||||
{
|
||||
doctor_title: 6,
|
||||
doctor_title_name: '住院医师'
|
||||
}
|
||||
];
|
||||
|
||||
// rules
|
||||
// const rules = reactive({
|
||||
// multi_point_fail_reason: [{
|
||||
// required: true,
|
||||
// message: '请输入审核失败原因'
|
||||
// }],
|
||||
// });
|
||||
// Batch Del List
|
||||
let batchList = [];
|
||||
|
||||
// Table Columns
|
||||
const columns = [
|
||||
{ title: '编号', dataIndex: 'doctor_id', slotName: 'doctor_id', width: '90' },
|
||||
{ title: '医生名字', dataIndex: 'user_name' },
|
||||
{ title: '手机号码', dataIndex: 'mobile' },
|
||||
{ title: '医院', dataIndex: 'hospital_name', width: 160, slotName: 'hospital_name' },
|
||||
{ title: '科室', dataIndex: 'department_custom_name',},
|
||||
{ title: '职称', dataIndex: 'doctor_title', slotName: 'doctor_title' },
|
||||
{ title: '申请时间', dataIndex: 'created_at', slotName: 'created_at' },
|
||||
{ title: '审核状态', dataIndex: 'introduction_status', slotName: 'introduction_status' },
|
||||
{ title: '操作', slotName: 'action' },
|
||||
];
|
||||
|
||||
// Table Data
|
||||
const tableData = ref([]);
|
||||
//改变科室
|
||||
const changeSelect = (value) => {
|
||||
let arr = departmentData.value.filter((item) => {
|
||||
return item.department_custom_id == value
|
||||
})
|
||||
modalForm.department_custom_name = arr[0].department_custom_name
|
||||
}
|
||||
|
||||
//详情
|
||||
const handleDetail = async (record) => {
|
||||
modalVisible.value = true;
|
||||
modalTitle.value = '医生详情';
|
||||
const { code, data, message } = await getDoctorDetail(record.doctor_id);
|
||||
|
||||
if (code == 200) {
|
||||
Object.assign(modalForm, data);
|
||||
if(data.doctor_title==0){
|
||||
modalForm.doctor_title='';
|
||||
}
|
||||
if(data.hospital_id==0){
|
||||
modalForm.hospital_id='';
|
||||
}
|
||||
if(data.department_custom_id==0){
|
||||
modalForm.department_custom_id=''
|
||||
}
|
||||
if (!data.user_doctor_info) {
|
||||
data.user_doctor_info = {};
|
||||
modalForm.user_doctor_info = {};
|
||||
}
|
||||
if (!data.hospital) {
|
||||
modalForm.hospital = {};
|
||||
}
|
||||
if (!data.doctor_bank_card) {
|
||||
modalForm.doctor_bank_card = {
|
||||
province_id: '',
|
||||
city_id: '',
|
||||
county_id: '',
|
||||
bank_id: ''
|
||||
}
|
||||
};
|
||||
if (data.doctor_expertise && data.doctor_expertise.length > 0) {
|
||||
let arr = [];
|
||||
data.doctor_expertise.forEach((item) => {
|
||||
arr.push(item.expertise_id)
|
||||
})
|
||||
modalForm.cur_doctor_expertise = arr;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//开启服务处理
|
||||
const filterService = (record) => {
|
||||
let arr = [];
|
||||
let str = '';
|
||||
if (record.is_img_expert_reception == 1) {
|
||||
arr.push("专家问诊");
|
||||
}
|
||||
if (record.is_img_welfare_reception == 1) {
|
||||
arr.push("公益问诊")
|
||||
}
|
||||
if (record.is_img_quick_reception == 1) {
|
||||
arr.push("快速问诊")
|
||||
};
|
||||
if (record.multi_point_status == 1) {
|
||||
arr.push("问诊购药")
|
||||
}
|
||||
arr.forEach((item) => {
|
||||
if (!str) {
|
||||
str += item
|
||||
} else {
|
||||
str += ',' + item
|
||||
}
|
||||
})
|
||||
return str ? str : "暂无"
|
||||
}
|
||||
/**
|
||||
* 分页改变
|
||||
* @param {Number} [page]
|
||||
*/
|
||||
const handlePageChange = (page) => {
|
||||
pager.page = page;
|
||||
|
||||
// 修改当前页码
|
||||
currentPage.value = page;
|
||||
getDoctorInfo({ ...pager, ...queryForm });
|
||||
};
|
||||
|
||||
// 每页数据量
|
||||
const handlepage_sizeChange = (page_size) => {
|
||||
pager.page_size = page_size;
|
||||
getDoctorInfo({ ...pager, ...queryForm });
|
||||
};
|
||||
|
||||
// 获取医生信息
|
||||
const getDoctorInfo = async (params = {}) => {
|
||||
const { data, code, message } = await getDoctorList(params);
|
||||
if (code == 200) {
|
||||
tableData.value = data.data;
|
||||
Object.assign(pager, { total: data.total, page: data.page, page_size: data.page_size });
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
// 查询医生信息
|
||||
const handleQuery = async () => {
|
||||
pager.page=1;
|
||||
const params = {
|
||||
page: pager.page,
|
||||
page_size: pager.page_size,
|
||||
...queryForm,
|
||||
};
|
||||
|
||||
getDoctorInfo(params);
|
||||
};
|
||||
|
||||
const departmentData = ref([]);
|
||||
//获取科室列表
|
||||
const getDepartmentList = () => {
|
||||
departmentList().then((res) => {
|
||||
const { data, code, message } = res;
|
||||
if (code == 200) {
|
||||
departmentData.value = data;
|
||||
}
|
||||
});
|
||||
}
|
||||
//切换小眼睛
|
||||
const showEye = ref(false);
|
||||
const id_card_num = ref('');
|
||||
//解密身份证号码
|
||||
const handelDecryptCard = async (user_id) => {
|
||||
showEye.value=true
|
||||
const { data, code, message } = await decryptCard({
|
||||
user_id
|
||||
});
|
||||
if (code == 200) {
|
||||
id_card_num.value = data;
|
||||
}
|
||||
};
|
||||
const hospitalData = ref([]);
|
||||
//获取医院列表
|
||||
const handleHospitalList = () => {
|
||||
hospitalList().then((res) => {
|
||||
const { data, code, message } = res;
|
||||
if (code == 200) {
|
||||
hospitalData.value = data;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
const expertiseData = ref([]);
|
||||
// 获取专长列表
|
||||
const handlExpertiseList = () => {
|
||||
expertiseList().then((res) => {
|
||||
const { data, code, message } = res;
|
||||
if (code == 200) {
|
||||
expertiseData.value = data;
|
||||
}
|
||||
})
|
||||
}
|
||||
// 异步关闭Modal需要调用 done()
|
||||
const handleSubmit = (done) => {
|
||||
proxy.$refs.checkFormRef.validate(async (valid) => {
|
||||
if (!valid) {
|
||||
if(!modalCheckForm.avatar_reason && !modalCheckForm.doctor_expertise_reason && !modalCheckForm.brief_introduction_reason && !modalForm.be_good_at_reason){
|
||||
proxy.$notification.error("理由至少填写一个");
|
||||
return false
|
||||
}
|
||||
proxy.$loading.show();
|
||||
let dataFrom=Object.assign({},modalCheckForm,{
|
||||
introduction_status:3
|
||||
})
|
||||
const {code,message,data}= await checkDoctor(dataFrom,modalForm.doctor_id);
|
||||
if (code == 200) {
|
||||
proxy.$loading.hide();
|
||||
proxy.$notification.success("提交成功");
|
||||
modalVisible.value=false;
|
||||
}
|
||||
done();
|
||||
getDoctorInfo(pager);
|
||||
|
||||
} else {
|
||||
console.log(valid)
|
||||
proxy.$message.error('表单校验失败');
|
||||
done(false);
|
||||
}
|
||||
});
|
||||
};
|
||||
//审核
|
||||
const handleCheck= async(type)=>{
|
||||
|
||||
if(type=="ok"){
|
||||
proxy.$loading.show();
|
||||
const {code,message,data}= await checkDoctor({
|
||||
introduction_status:1
|
||||
},modalForm.doctor_id);
|
||||
if (code == 200) {
|
||||
proxy.$notification.success("审核通过");
|
||||
modalVisible.value=false;
|
||||
};
|
||||
proxy.$loading.hide();
|
||||
getDoctorInfo(pager);
|
||||
|
||||
}else{
|
||||
modalCheckVisible.value=true;
|
||||
}
|
||||
|
||||
}
|
||||
// 重置搜索
|
||||
const handleResetQuery = () => {
|
||||
proxy.$refs.queryFormRef.resetFields();
|
||||
getDoctorInfo(queryForm);
|
||||
}
|
||||
onMounted(() => {
|
||||
getDoctorInfo(pager);
|
||||
handleHospitalList();
|
||||
getDepartmentList();
|
||||
handlExpertiseList();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.action {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.hospital_name {
|
||||
width: 160px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.headImg {
|
||||
margin-right: 20px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.arco-form-item-layout-horizontal:first-child,
|
||||
.arco-form-item-layout-horizontal:nth-child(2) {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.upload {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.eye {
|
||||
margin-left: 20px;
|
||||
cursor: pointer;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.cert .arco-form-item-label-col {
|
||||
flex: 0 0 8px !important;
|
||||
}
|
||||
|
||||
.red {
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
font-size: 14px;
|
||||
color: red;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.cardNum{
|
||||
width: 148px;
|
||||
}
|
||||
.codbox{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
@ -303,6 +303,13 @@
|
||||
</a-col>
|
||||
|
||||
</a-row> -->
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<a-form-item field="user.email" label="邮箱:">
|
||||
<a-input v-model="modalForm.user.email" placeholder="请输入邮箱" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<a-form-item field="cur_doctor_expertise" label="专长:">
|
||||
@ -895,6 +902,7 @@ const showCheckedAll=ref(true);
|
||||
}
|
||||
}
|
||||
}],
|
||||
|
||||
'hospital.address': [{ required: true, message: '请输入医院地址' }],
|
||||
'hospital_id': [{ required: true, message: '请选择医院名称' }],
|
||||
'department_custom_mobile': [{
|
||||
@ -903,7 +911,16 @@ const showCheckedAll=ref(true);
|
||||
department_custom_id: [{ required: true, message: '请选择所在科室' }],
|
||||
department_custom_name: [{ required: true, message: '请输入科室名称' }],
|
||||
doctor_title: [{ required: true, message: '请选择职称' }],
|
||||
// 'user_doctor_info.qualification_cert_num': [{ required: true, message: '请输入资格证编码' }],
|
||||
'user.email': [
|
||||
{ required: true, message: '请输入邮箱' },
|
||||
{
|
||||
validator: (value, cb) => {
|
||||
let reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
|
||||
if (!reg.test(value)) {
|
||||
cb('邮箱格式不正确');
|
||||
}
|
||||
}
|
||||
}],
|
||||
cur_doctor_expertise: [
|
||||
{ type: 'array', required: true, message: '请选择专长' },
|
||||
{
|
||||
@ -1283,7 +1300,7 @@ const showCheckedAll=ref(true);
|
||||
let modalData = {
|
||||
card_name: modalForm.user_name,
|
||||
mobile: modalForm.user.mobile,
|
||||
mobile: modalForm.user.mobile,
|
||||
|
||||
is_recommend: modalForm.is_recommend,
|
||||
avatar: modalForm.avatar,
|
||||
doctor_title: modalForm.doctor_title,
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
</a-select>
|
||||
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item field="is_enable" label="启用状态">
|
||||
<a-select v-model="queryForm.is_enable" placeholder="请选择启用状态" :style="{ width: '182px' }">
|
||||
<a-option :value="0">关闭</a-option>
|
||||
|
||||
@ -403,7 +403,7 @@
|
||||
<!-- 患者详情弹窗 -->
|
||||
<patientModal :patientVisible="patientVisible" :data="patientData" @patientVisibleChange="() => {patientVisible = false;}"></patientModal>
|
||||
|
||||
<confirmModal :okVisible="okVisible" :api="cancelInquiry" :title="'确定取消此订单吗?'" :dealType="'order_inquiry_id'" :id="cur_inruiry_id" @closeChange="handelCloseChange"></confirmModal>
|
||||
<confirmModal :okVisible="okVisible" :payment_amount_total="modalForm.payment_amount_total" :api="cancelInquiry" :title="'确定取消此订单吗?'" :dealType="'order_inquiry_id'" :id="cur_inruiry_id" @closeChange="handelCloseChange"></confirmModal>
|
||||
|
||||
<!-- 聊天记录 -->
|
||||
<!-- Modal -->
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user