更新
This commit is contained in:
@@ -100,6 +100,41 @@
|
||||
<el-input v-model="formData.title" placeholder="如:主任医师、副主任医师" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 执业证书编号 -->
|
||||
<el-form-item label="执业证书编号" prop="license_no">
|
||||
<el-input v-model="formData.license_no" placeholder="请输入执业证书编号" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 图文问诊 -->
|
||||
<el-form-item label="图文问诊">
|
||||
<el-switch
|
||||
v-model="formData.enable_image_consult"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
/>
|
||||
<span class="ml-2 text-gray-500">{{ formData.enable_image_consult === 1 ? '已开启' : '已关闭' }}</span>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 视频问诊 -->
|
||||
<el-form-item label="视频问诊">
|
||||
<el-switch
|
||||
v-model="formData.enable_video_consult"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
/>
|
||||
<span class="ml-2 text-gray-500">{{ formData.enable_video_consult === 1 ? '已开启' : '已关闭' }}</span>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 是否开启收费 -->
|
||||
<el-form-item label="是否开启收费">
|
||||
<el-switch
|
||||
v-model="formData.enable_charge"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
/>
|
||||
<span class="ml-2 text-gray-500">{{ formData.enable_charge === 1 ? '已开启' : '已关闭' }}</span>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 所属科室 -->
|
||||
<el-form-item label="所属科室" prop="department">
|
||||
<el-input v-model="formData.department" placeholder="如:中医科、内科" clearable />
|
||||
@@ -228,6 +263,10 @@ const formData = reactive({
|
||||
jobs_id: [],
|
||||
avatar: '',
|
||||
title: '', // 职称
|
||||
license_no: '', // 执业证书编号
|
||||
enable_image_consult: 1, // 是否开启图文问诊
|
||||
enable_video_consult: 1, // 是否开启视频问诊
|
||||
enable_charge: 0, // 是否开启收费
|
||||
department: '', // 所属科室
|
||||
specialty: '', // 擅长领域
|
||||
education: '', // 教育背景
|
||||
@@ -353,6 +392,10 @@ const open = (type = 'add') => {
|
||||
jobs_id: [],
|
||||
avatar: '',
|
||||
title: '',
|
||||
license_no: '',
|
||||
enable_image_consult: 1,
|
||||
enable_video_consult: 1,
|
||||
enable_charge: 0,
|
||||
department: '',
|
||||
specialty: '',
|
||||
education: '',
|
||||
|
||||
@@ -37,6 +37,15 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="快捷日期">
|
||||
<el-radio-group v-model="formData.date_preset" @change="handleDatePresetChange" size="default">
|
||||
<el-radio-button label="">不限</el-radio-button>
|
||||
<el-radio-button label="today">今天</el-radio-button>
|
||||
<el-radio-button label="tomorrow">明天</el-radio-button>
|
||||
<el-radio-button label="day_after">后天</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="handleSearch">查询</el-button>
|
||||
<el-button @click="handleReset">重置</el-button>
|
||||
@@ -51,7 +60,7 @@
|
||||
<el-tab-pane label="全部" name="all" />
|
||||
<el-tab-pane name="1">
|
||||
<template #label>
|
||||
<span>已预约</span>
|
||||
<span>未就诊</span>
|
||||
<el-badge v-if="statusCount[1]" :value="statusCount[1]" class="ml-2" type="success" />
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
@@ -303,6 +312,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { watch } from 'vue'
|
||||
import { appointmentLists, cancelAppointment, completeAppointment, appointmentDetail } from '@/api/doctor'
|
||||
import { getCallSignature, generateMiniProgramQrcode } from '@/api/tcm'
|
||||
import feedback from '@/utils/feedback'
|
||||
@@ -332,7 +342,8 @@ const formData = reactive({
|
||||
doctor_name: '',
|
||||
status: '' as string | number,
|
||||
start_date: '',
|
||||
end_date: ''
|
||||
end_date: '',
|
||||
date_preset: '' as '' | 'today' | 'tomorrow' | 'day_after'
|
||||
})
|
||||
|
||||
const activeTab = ref('all')
|
||||
@@ -348,6 +359,28 @@ const { pager, getLists, resetPage, resetParams } = usePaging({
|
||||
params: formData
|
||||
})
|
||||
|
||||
// 手动修改日期范围时清除快捷日期
|
||||
watch(
|
||||
() => [formData.start_date, formData.end_date],
|
||||
([start, end]) => {
|
||||
if (!formData.date_preset) return
|
||||
const today = new Date()
|
||||
const pad = (n: number) => String(n).padStart(2, '0')
|
||||
const todayStr = `${today.getFullYear()}-${pad(today.getMonth() + 1)}-${pad(today.getDate())}`
|
||||
const tomorrow = new Date(today)
|
||||
tomorrow.setDate(tomorrow.getDate() + 1)
|
||||
const tomorrowStr = `${tomorrow.getFullYear()}-${pad(tomorrow.getMonth() + 1)}-${pad(tomorrow.getDate())}`
|
||||
const dayAfter = new Date(today)
|
||||
dayAfter.setDate(dayAfter.getDate() + 2)
|
||||
const dayAfterStr = `${dayAfter.getFullYear()}-${pad(dayAfter.getMonth() + 1)}-${pad(dayAfter.getDate())}`
|
||||
const expected = formData.date_preset === 'today' ? todayStr : formData.date_preset === 'tomorrow' ? tomorrowStr : dayAfterStr
|
||||
const startStr = (start || '').split(' ')[0]
|
||||
if (startStr !== expected) {
|
||||
formData.date_preset = ''
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
// 获取各状态数量
|
||||
const getStatusCount = async () => {
|
||||
try {
|
||||
@@ -387,15 +420,46 @@ const loadData = async () => {
|
||||
await getStatusCount()
|
||||
}
|
||||
|
||||
// 快捷日期变更
|
||||
const handleDatePresetChange = (val: string | number | boolean | undefined) => {
|
||||
const v = String(val || '')
|
||||
if (!v) {
|
||||
formData.start_date = ''
|
||||
formData.end_date = ''
|
||||
loadData()
|
||||
return
|
||||
}
|
||||
const today = new Date()
|
||||
const pad = (n: number) => String(n).padStart(2, '0')
|
||||
let target: Date
|
||||
if (v === 'today') {
|
||||
target = today
|
||||
} else if (v === 'tomorrow') {
|
||||
target = new Date(today)
|
||||
target.setDate(target.getDate() + 1)
|
||||
} else {
|
||||
target = new Date(today)
|
||||
target.setDate(target.getDate() + 2)
|
||||
}
|
||||
const dateStr = `${target.getFullYear()}-${pad(target.getMonth() + 1)}-${pad(target.getDate())}`
|
||||
formData.start_date = dateStr
|
||||
formData.end_date = dateStr
|
||||
pager.page = 1
|
||||
loadData()
|
||||
}
|
||||
|
||||
// 搜索
|
||||
const handleSearch = () => {
|
||||
resetPage()
|
||||
pager.page = 1
|
||||
loadData()
|
||||
}
|
||||
|
||||
// 重置
|
||||
const handleReset = () => {
|
||||
activeTab.value = 'all'
|
||||
formData.date_preset = ''
|
||||
resetParams()
|
||||
getStatusCount()
|
||||
}
|
||||
|
||||
const detailVisible = ref(false)
|
||||
|
||||
Reference in New Issue
Block a user