批量修改

This commit is contained in:
旺仔 2024-08-14 10:14:10 +08:00
parent ef53e538ae
commit a0cbb24405
15 changed files with 1261 additions and 950 deletions

View File

@ -6,15 +6,27 @@ import request from '@/config/axios'
*/
export const DeviceManageApi = {
/* 测试方法 */
getOrgList: async () => {
return await request.get({ url: `/org/org/getlist` })
},
getDepartmentList: async () => {
return await request.get({ url: `/system/department/getlist` })
},
getPage: async (params: any) => {
return await request.get({ url: `/test/device/page`, params })
},
get: async (id: any) => {
return await request.get({ url: `/test/device/get?id=`+ id })
},
create: async (data: any) => {
return await request.post({ url: `/test/device/create`, data })
}
},
update: async (data: any) => {
return await request.put({ url: `/test/device/update`, data })
},
delete: async (id: any) => {
return await request.delete({ url: `/test/device/delete?id=` + id })
},
}

View File

@ -6,15 +6,27 @@ import request from '@/config/axios'
*/
export const DiagnosisTemplateApi = {
/* 测试方法 */
getOrgList: async () => {
return await request.get({ url: `/org/org/getlist` })
},
getDoctorList: async () => {
return await request.get({ url: `/doctor/getlist` })
},
getPage: async (params: any) => {
return await request.get({ url: `/test/reporttemplate/page`, params })
},
get: async (id: any) => {
return await request.get({ url: `/test/reporttemplate/get?id=`+ id })
},
create: async (data: any) => {
return await request.post({ url: `/test/reporttemplate/create`, data })
}
},
update: async (data: any) => {
return await request.put({ url: `/test/reporttemplate/update`, data })
},
delete: async (id: any) => {
return await request.delete({ url: `/test/reporttemplate/delete?id=` + id })
},
}

View File

@ -12,9 +12,18 @@ export const ExampartManageApi = {
getPage: async (params: any) => {
return await request.get({ url: `/test/exampart/page`, params })
},
get: async (id: any) => {
return await request.get({ url: `/test/exampart/get?id=`+ id })
},
create: async (data: any) => {
return await request.post({ url: `/test/exampart/create`, data })
}
},
update: async (data: any) => {
return await request.put({ url: `/test/exampart/update`, data })
},
delete: async (id: any) => {
return await request.delete({ url: `/test/exampart/delete?id=` + id })
},
}

View File

@ -5,7 +5,16 @@ import request from '@/config/axios'
* IllnessCaseApi
*/
export const IllnessCaseApi = {
/* 测试方法 */
getDeviceList: async () => {
return await request.get({ url: `/test/device/getlist` })
},
getExamitemsList: async () => {
return await request.get({ url: `/examitems/examitems/getlist` })
},
getPage: async (params: any) => {
return await request.get({ url: `/tblist/patientexamlist/pageIllnessCase`, params })
}
}

View File

@ -5,7 +5,16 @@ import request from '@/config/axios'
* ReportPrintStatisticsApi
*/
export const ReportPrintStatisticsApi = {
/* 测试方法 */
getDeviceList: async () => {
return await request.get({ url: `/test/device/getlist` })
},
getExamitemsList: async () => {
return await request.get({ url: `/examitems/examitems/getlist` })
},
getPage: async (params: any) => {
return await request.get({ url: `/tblist/patientexamlist/pageReportPrintStatistics`, params })
}
}

View File

@ -18,6 +18,9 @@ export const ReservationInfoApi = {
getExamitemsList: async () => {
return await request.get({ url: `/examitems/examitems/getlist` })
},
create: async (data: any) => {
return await request.post({ url: `/applyregistration/applyform/createReservationInfo`, data })
},
}

View File

@ -1,6 +1,6 @@
<template>
<div>
<Dialog title="弹出框" v-model="dialogVisible" width="66%">
<Dialog :title="dialogTitle" v-model="dialogVisible" width="66%">
<el-form
ref="formRef"
:model="formData"
@ -8,26 +8,30 @@
label-width="100px"
label-position="right"
label-suffix=""
class="-ml-34px"
class="-ml-30px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="科室" prop="departmentCode" class="item-style">
<el-select
v-model="formData.departmentCode"
placeholder="请选择科室"
<el-form-item label="设备名称" prop="deviceName" class="item-style">
<el-input
v-model="formData.deviceName"
placeholder="请输入设备名称"
clearable
class="item-width"
>
<el-option
v-for="item in departmentList"
:key="item.id"
:label="item.departmentName"
:value="item.id"
/>
</el-select>
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设备状态" prop="deviceStatus" class="item-style">
<el-radio-group v-model="formData.deviceStatus" class="item-width radio-group">
<el-radio value="1" style="margin-left: 12px; margin-right: 10px">有效</el-radio>
<el-radio value="0" style="margin-right: 10px">无效</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="设备类型" prop="deviceType" class="item-style">
<el-select
@ -43,23 +47,11 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="名称" prop="deviceName" class="item-style">
<el-input
v-model="formData.deviceName"
placeholder="请输入名称"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="型号" prop="deviceModel" class="item-style">
<el-form-item label="设备型号" prop="deviceModel" class="item-style">
<el-input
v-model="formData.deviceModel"
placeholder="请输入型号"
placeholder="请输入设备型号"
clearable
class="item-width"
/>
@ -111,12 +103,53 @@
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="设备状态" prop="deviceStatus" class="item-style">
<el-radio-group v-model="formData.deviceStatus" class="item-width radio-group">
<el-radio value="1" style="margin-left: 8px; margin-right: 10px">有效</el-radio>
<el-radio value="0" style="margin-right: 10px">无效</el-radio>
</el-radio-group>
<el-col :span="12">
<el-form-item label="科室" prop="departmentCode" class="item-style">
<el-select
v-model="deviceDepartmentInfo"
value-key="departmentCode"
placeholder="请选择科室"
clearable
class="item-width"
@change="deviceDept_change"
>
<el-option
v-for="(item, index) in departmentList"
:key="index"
:label="item.departmentName"
:value="item"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="机构" prop="orgId" class="item-style">
<el-select
v-model="formData.orgId"
placeholder="请选择机构"
clearable
class="item-width"
>
<el-option
v-for="item in orgList"
:key="item.orgID"
:label="item.orgName"
:value="item.orgID"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="AET" prop="scheduledAET" class="item-style">
<el-input
v-model="formData.scheduledAET"
placeholder="请输入AET"
type="textarea"
:autosize="{ minRows: 3, maxRows: 9 }"
class="item-width"
/>
</el-form-item>
</el-col>
</el-row>
@ -127,7 +160,7 @@
v-model="formData.remark"
placeholder="请输入备注"
type="textarea"
:autosize="{ minRows: 6, maxRows: 9 }"
:autosize="{ minRows: 5, maxRows: 9 }"
class="item-width"
/>
</el-form-item>
@ -137,7 +170,7 @@
<template #footer>
<div style="text-align: center">
<el-button type="primary" @click="submitForm">保存</el-button>
<el-button type="primary" :disabled="formLoading" @click="submitForm">保存</el-button>
<el-button @click="dialogVisible = false">取消</el-button>
</div>
</template>
@ -156,6 +189,7 @@ defineOptions({ name: 'DeviceManageForm' })
* DeviceManageForm
**/
/** 导入内容 **/
const emit = defineEmits(['success'])
/** 组件引用 **/
const formRef = ref()
@ -164,6 +198,10 @@ const formRef = ref()
const message = useMessage()
const { t } = useI18n()
const dialogVisible = ref(false)
const dialogTitle = ref('')
const formLoading = ref(false)
const formType = ref('')
const orgList = ref<any[]>([])
const departmentList = ref<any[]>([])
//
const formData0 = ref({
@ -174,53 +212,124 @@ const formData0 = ref({
})
const formData = ref({
/** 测试数据 **/
departmentCode: '',
deviceType: '',
id: '',
deviceName: '',
deviceStatus: '',
deviceType: '',
deviceModel: '',
madeCompany: '',
madeCompanyTel: '',
saleCompany: '',
saleCompanyTel: '',
deviceStatus: '1',
remark: ''
scheduledAET: '',
remark: '',
departmentCode: '',
deviceDepartment: '',
orgId: ''
})
const deviceDepartmentInfo = ref<any>()
/****** 自定义内容 ******/
const resetForm = async () => {
formData.value = {
/** 测试数据 **/
id: '',
deviceName: '',
deviceStatus: '',
deviceType: '',
deviceModel: '',
madeCompany: '',
madeCompanyTel: '',
saleCompany: '',
saleCompanyTel: '',
scheduledAET: '',
remark: '',
departmentCode: '',
deviceDepartment: '',
orgId: ''
}
deviceDepartmentInfo.value = undefined
formRef.value?.clearValidate()
}
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
if (id) {
formLoading.value = true
try {
formData.value = await DeviceManageApi.get(id)
deviceDepartmentInfo.value = departmentList.value?.find((item) => {
return (
item?.departmentCode &&
formData.value?.departmentCode &&
item.departmentCode == formData.value.departmentCode
)
})
} finally {
formLoading.value = false
}
}
}
/****** 可参考内容 ******/
const emit = defineEmits(['success'])
/** 组件事件 **/
const deviceDept_change = async (value: any) => {
formData.value.departmentCode = value ? value.departmentCode : ''
formData.value.deviceDepartment = value ? value.departmentName : ''
}
const submitForm = async () => {
formLoading.value = true
try {
const data = formData.value
await DeviceManageApi.create(data)
//
if (!data.deviceName) {
await message.alertWarning('请输入设备名称')
return
}
if (!data.deviceStatus) {
await message.alertWarning('请选择设备状态')
return
}
if (!data.orgId) {
await message.alertWarning('请选择机构')
return
}
if (!data.departmentCode || !deviceDepartmentInfo.value) {
await message.alertWarning('请选择科室')
return
}
//
if (formType.value === 'create') {
await DeviceManageApi.create(data)
message.success(t('common.createSuccess'))
} else if (formType.value === 'update') {
await DeviceManageApi.update(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
emit('success')
} finally {
formLoading.value = false
}
}
const openTest = () => {
dialogVisible.value = true
//
}
/** 组件事件 **/
/** 钩子方法 **/
onMounted(async () => {
//ceshi
orgList.value = await DeviceManageApi.getOrgList()
departmentList.value = await DeviceManageApi.getDepartmentList()
})
/** 防空作用域 **/
console.log(dateFormatter)
console.log(message)
console.log(t)
console.log(DeviceManageApi)
console.log(formData0)
//console.log(null)
/** 导出内容 **/
defineExpose({ openTest })
defineExpose({ open })
/**
* 备注
*

View File

@ -11,47 +11,89 @@
class="-mb-15px"
>
<el-row>
<el-col :span="9">
<!-- Notes -->
<el-form-item label="科室" prop="deviceDepartment" class="item-style">
<el-select
v-model="queryParams.deviceDepartment"
placeholder="请选择科室"
clearable
class="item-width"
>
<el-option
v-for="item in departmentList"
:key="item.id"
:label="item.departmentName"
:value="item.departmentName"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-col :span="6" v-if="false">
<!-- Notes -->
<el-form-item
label="名称/拼音码/型号"
label="名称/类型/型号"
prop="deviceDesc"
label-width="120px"
class="item-style"
>
<el-input
v-model="queryParams.deviceDesc"
placeholder="请输入名称/拼音码/型号"
placeholder="请输入设备名称/类型/型号"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-col :span="6">
<!-- Notes -->
<el-form-item class="item-style">
<el-form-item label="科室" prop="departmentCode" class="item-style">
<el-select
v-model="deviceDepartmentInfo"
value-key="departmentCode"
placeholder="请选择科室"
clearable
class="item-width"
@change="deviceDept_change"
>
<el-option
v-for="(item, index) in departmentList"
:key="index"
:label="item.departmentName"
:value="item"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<!-- Notes -->
<el-form-item label="设备名称" prop="deviceName" class="item-style">
<el-input
v-model="queryParams.deviceName"
placeholder="请输入设备名称"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<!-- Notes -->
<el-form-item label="设备类型" prop="deviceType" class="item-style">
<el-select
v-model="queryParams.deviceType"
placeholder="请选择设备类型"
clearable
class="item-width"
>
<el-option label="DR" value="DR" />
<el-option label="CT" value="CT" />
<el-option label="MR" value="MR" />
<el-option label="超声" value="超声" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<!-- Notes -->
<el-form-item label="设备型号" prop="deviceModel" class="item-style">
<el-input
v-model="queryParams.deviceModel"
placeholder="请输入设备型号"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :offset="18" :span="6">
<!-- Notes -->
<el-form-item label-width="8px" class="item-style">
<el-button @click="handleQuery">
<Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button>
<el-button type="primary" plain @click="openFormTest()">
<el-button type="primary" plain @click="openForm('create')">
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
</el-form-item>
@ -70,13 +112,19 @@
:data="list_devices"
height="max(53vh,80px)"
>
<el-table-column label="科室名称" align="center" prop="deviceDepartment" />
<el-table-column label="名称" align="center" prop="deviceName" />
<el-table-column label="型号" align="center" prop="deviceModel" />
<el-table-column type="index" label="序号" align="center" width="54px" />
<el-table-column label="科室" align="center" prop="deviceDepartment" />
<el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="设备类型" align="center" prop="deviceType" />
<el-table-column label="设备型号" align="center" prop="deviceModel" />
<el-table-column label="AET" align="center" prop="scheduledAET" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center">
<template #default>
<el-button link type="primary"> 编辑 </el-button>
<el-button link type="danger"> 删除 </el-button>
<template #default="scope">
<el-button link type="primary" @click="openForm('update', scope.row.id)">
编辑
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)"> 删除 </el-button>
</template>
</el-table-column>
<!-- 数据列 -->
@ -130,16 +178,40 @@ const queryParams = ref({
pageNo: 1,
pageSize: 10,
/** 测试数据 **/
deviceDesc: undefined,
departmentCode: '',
deviceDepartment: '',
deviceDesc: ''
deviceName: '',
deviceType: '',
deviceModel: ''
})
const deviceDepartmentInfo = ref<any>()
//
const list_devices = ref<any[]>([])
const total = ref(0)
const loading = ref(false)
const loading = ref(true)
/****** 自定义内容 ******/
/****** 可参考内容 ******/
/** 组件事件 **/
const deviceDept_change = async (value: any) => {
queryParams.value.departmentCode = value ? value.departmentCode : ''
queryParams.value.deviceDepartment = value ? value.departmentName : ''
}
const openForm = (type: string, id?: any) => {
formRef.value.open(type, id)
}
const handleDelete = async (id: any) => {
try {
await message.delConfirm()
await DeviceManageApi.delete(id)
message.success(t('common.delSuccess'))
await getList()
} catch {}
}
const getList = async () => {
loading.value = true
try {
@ -150,19 +222,14 @@ const getList = async () => {
loading.value = false
}
}
const handleQuery = () => {
queryParams.value.pageNo = 1
getList()
}
const openFormTest = () => {
formRef.value.openTest()
}
/** 组件事件 **/
/** 钩子方法 **/
onMounted(async () => {
//ceshi
departmentList.value = await DeviceManageApi.getDepartmentList()
getList()
})
@ -170,10 +237,6 @@ onMounted(async () => {
/** 防空作用域 **/
console.log(dateFormatter)
console.log(download)
console.log(message)
console.log(t)
console.log(DeviceManageApi)
console.log(DeviceManageForm)
console.log(queryParams0)
//console.log(null)
@ -190,7 +253,7 @@ console.log(queryParams0)
}
.item-style {
margin-bottom: 6px;
margin-bottom: 8px;
}
.item-width {

View File

@ -1,6 +1,6 @@
<template>
<div>
<Dialog title="弹出框" v-model="dialogVisible" width="60%">
<Dialog :title="dialogTitle" v-model="dialogVisible" width="60%">
<el-form
ref="formRef"
:model="formData"
@ -9,6 +9,7 @@
label-position="right"
label-suffix=""
class="-ml-30px"
v-loading="formLoading"
>
<el-row>
<el-col :span="24">
@ -49,6 +50,23 @@
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="机构" prop="orgId" class="item-style">
<el-select
v-model="formData.orgId"
placeholder="请选择机构"
clearable
class="item-width"
>
<el-option
v-for="item in orgList"
:key="item.orgID"
:label="item.orgName"
:value="item.orgID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="医生" prop="privateDoctorId" class="item-style">
<el-select
@ -71,7 +89,7 @@
<template #footer>
<div style="text-align: center">
<el-button type="primary" @click="submitForm">保存</el-button>
<el-button type="primary" :disabled="formLoading" @click="submitForm">保存</el-button>
<el-button @click="dialogVisible = false">取消</el-button>
</div>
</template>
@ -90,6 +108,7 @@ defineOptions({ name: 'DiagnosisTemplateForm' })
* DiagnosisTemplateForm
**/
/** 导入内容 **/
const emit = defineEmits(['success'])
/** 组件引用 **/
const formRef = ref()
@ -98,6 +117,10 @@ const formRef = ref()
const message = useMessage()
const { t } = useI18n()
const dialogVisible = ref(false)
const dialogTitle = ref('')
const formLoading = ref(false)
const formType = ref('')
const orgList = ref<any[]>([])
const doctorList = ref<any[]>([])
//
const formData0 = ref({
@ -111,31 +134,59 @@ const formData = ref({
templateName: '',
examDescription: '',
diagResults: '',
privateDoctorId: ''
privateDoctorId: '',
orgId: ''
})
/****** 自定义内容 ******/
/****** 可参考内容 ******/
const emit = defineEmits(['success'])
const submitForm = async () => {
try {
const data = formData.value
await DiagnosisTemplateApi.create(data)
dialogVisible.value = false
emit('success')
} finally {
const resetForm = () => {
formRef.value?.resetFields()
}
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
if (id) {
formLoading.value = true
try {
formData.value = await DiagnosisTemplateApi.get(id)
} finally {
formLoading.value = false
}
}
}
/****** 可参考内容 ******/
const openTest = () => {
dialogVisible.value = true
//
}
/** 组件事件 **/
const submitForm = async () => {
formLoading.value = true
try {
const data = formData.value
if (formType.value === 'create') {
await DiagnosisTemplateApi.create(data)
message.success(t('common.createSuccess'))
} else if (formType.value === 'update') {
await DiagnosisTemplateApi.update(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
emit('success')
} finally {
formLoading.value = false
}
}
/** 钩子方法 **/
onMounted(async () => {
//ceshi
orgList.value = await DiagnosisTemplateApi.getOrgList()
doctorList.value = await DiagnosisTemplateApi.getDoctorList()
})
@ -148,7 +199,7 @@ console.log(formData0)
//console.log(null)
/** 导出内容 **/
defineExpose({ openTest })
defineExpose({ open, openTest })
/**
* 备注
*

View File

@ -41,7 +41,7 @@
<el-button @click="handleQuery">
<Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button>
<el-button type="primary" plain @click="openFormTest()">
<el-button type="primary" plain @click="openForm('create')">
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
</el-form-item>
@ -60,13 +60,16 @@
:data="list_templates"
height="max(53vh,80px)"
>
<el-table-column type="index" label="序号" align="center" width="50px" />
<el-table-column label="节点" align="center" prop="templateName" />
<el-table-column label="所见" align="center" prop="examDescription" />
<el-table-column label="所得" align="center" prop="diagResults" />
<el-table-column label="操作" align="center">
<template #default>
<el-button link type="primary"> 编辑 </el-button>
<el-button link type="danger"> 删除 </el-button>
<template #default="scope">
<el-button link type="primary" @click="openForm('update', scope.row.id)">
编辑
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)"> 删除 </el-button>
</template>
</el-table-column>
<!-- 数据列 -->
@ -129,6 +132,21 @@ const loading = ref(false)
/****** 自定义内容 ******/
/****** 可参考内容 ******/
/** 组件事件 **/
const openForm = (type: string, id?: any) => {
formRef.value.open(type, id)
}
const handleDelete = async (id: any) => {
try {
await message.delConfirm()
await DiagnosisTemplateApi.delete(id)
message.success(t('common.delSuccess'))
await getList()
} catch {}
}
const getList = async () => {
loading.value = true
try {
@ -139,19 +157,14 @@ const getList = async () => {
loading.value = false
}
}
const handleQuery = () => {
queryParams.value.pageNo = 1
getList()
}
const openFormTest = () => {
formRef.value.openTest()
}
/** 组件事件 **/
/** 钩子方法 **/
onMounted(() => {
//ceshi
getList()
})

View File

@ -1,6 +1,6 @@
<template>
<div>
<Dialog title="弹出框" v-model="dialogVisible" width="45%">
<Dialog :title="dialogTitle" v-model="dialogVisible" width="45%">
<el-form
ref="formRef"
:model="formData"
@ -9,6 +9,7 @@
label-position="right"
label-suffix=""
class="-ml-30px"
v-loading="formLoading"
>
<el-row>
<el-col :span="24">
@ -70,7 +71,7 @@
<template #footer>
<div style="text-align: center">
<el-button type="primary" @click="submitForm">保存</el-button>
<el-button type="primary" :disabled="formLoading" @click="submitForm">保存</el-button>
<el-button @click="dialogVisible = false">取消</el-button>
</div>
</template>
@ -89,6 +90,7 @@ defineOptions({ name: 'ExampartManageForm' })
* ExampartManageForm
**/
/** 导入内容 **/
const emit = defineEmits(['success'])
/** 组件引用 **/
const formRef = ref()
@ -96,8 +98,11 @@ const formRef = ref()
/** 数据结构 **/
const message = useMessage()
const { t } = useI18n()
const orgList = ref<any[]>([])
const dialogVisible = ref(false)
const dialogTitle = ref('')
const formLoading = ref(false)
const formType = ref('')
const orgList = ref<any[]>([])
//
const formData0 = ref({
pageNo: 1,
@ -107,47 +112,87 @@ const formData0 = ref({
})
const formData = ref({
/** 测试数据 **/
id: '',
examPartCode: '',
examPartName: '',
orgId: '',
remark: ''
remark: '',
orgId: ''
})
/****** 自定义内容 ******/
const resetForm = async () => {
formData.value = {
/** 测试数据 **/
id: '',
examPartCode: '',
examPartName: '',
remark: '',
orgId: ''
}
formRef.value?.clearValidate()
}
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
if (id) {
formLoading.value = true
try {
formData.value = await ExampartManageApi.get(id)
} finally {
formLoading.value = false
}
}
}
/****** 可参考内容 ******/
const emit = defineEmits(['success'])
/** 组件事件 **/
const submitForm = async () => {
formLoading.value = true
try {
const data = formData.value
await ExampartManageApi.create(data)
//
if (!data.examPartCode) {
await message.alertWarning('请输入检查部位编码')
return
}
if (!data.examPartName) {
await message.alertWarning('请输入检查部位名称')
return
}
if (!data.orgId) {
await message.alertWarning('请选择机构')
return
}
//
if (formType.value === 'create') {
await ExampartManageApi.create(data)
message.success(t('common.createSuccess'))
} else if (formType.value === 'update') {
await ExampartManageApi.update(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
emit('success')
} finally {
formLoading.value = false
}
}
const openTest = () => {
dialogVisible.value = true
//
}
/** 组件事件 **/
/** 钩子方法 **/
onMounted(async () => {
//ceshi
orgList.value = await ExampartManageApi.getOrgList()
})
/** 防空作用域 **/
console.log(dateFormatter)
console.log(message)
console.log(t)
console.log(ExampartManageApi)
console.log(formData0)
//console.log(null)
/** 导出内容 **/
defineExpose({ openTest })
defineExpose({ open })
/**
* 备注
*

View File

@ -38,7 +38,7 @@
<el-button @click="handleQuery">
<Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button>
<el-button type="primary" plain @click="openFormTest()">
<el-button type="primary" plain @click="openForm('create')">
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
</el-form-item>
@ -57,13 +57,16 @@
:data="list_examparts"
height="max(53vh,80px)"
>
<el-table-column type="index" label="序号" align="center" width="54px" />
<el-table-column label="检查部位编码" align="center" prop="examPartCode" />
<el-table-column label="检查部位名称" align="center" prop="examPartName" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center">
<template #default>
<el-button link type="primary"> 编辑 </el-button>
<el-button link type="danger"> 删除 </el-button>
<template #default="scope">
<el-button link type="primary" @click="openForm('update', scope.row.id)">
编辑
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)"> 删除 </el-button>
</template>
</el-table-column>
<!-- 数据列 -->
@ -122,10 +125,24 @@ const queryParams = ref({
//
const list_examparts = ref<any[]>([])
const total = ref(0)
const loading = ref(false)
const loading = ref(true)
/****** 自定义内容 ******/
/****** 可参考内容 ******/
/** 组件事件 **/
const openForm = (type: string, id?: any) => {
formRef.value.open(type, id)
}
const handleDelete = async (id: any) => {
try {
await message.delConfirm()
await ExampartManageApi.delete(id)
message.success(t('common.delSuccess'))
await getList()
} catch {}
}
const getList = async () => {
loading.value = true
try {
@ -136,31 +153,21 @@ const getList = async () => {
loading.value = false
}
}
const handleQuery = () => {
queryParams.value.pageNo = 1
getList()
}
const openFormTest = () => {
formRef.value.openTest()
}
/** 组件事件 **/
/** 钩子方法 **/
onMounted(() => {
//ceshi
getList()
})
/** 防空作用域 **/
console.log(dateFormatter)
console.log(download)
console.log(message)
console.log(t)
console.log(ExampartManageApi)
console.log(ExampartManageForm)
console.log(queryParams0)
console.log(openFormTest)
//console.log(null)
/** 导出内容 **/

View File

@ -2,7 +2,7 @@
<div>
<el-row>
<el-col :span="24">
<el-card shadow="never" style="margin-bottom: 8px">
<el-card shadow="never" style="margin-bottom: 4px">
<el-form
ref="queryFormRef"
:model="queryParams"
@ -13,49 +13,59 @@
class="-mb-15px"
>
<el-row>
<el-col :span="5">
<!-- Notes -->
<el-form-item label="开始日期" prop="it_1" class="item-style date-picker">
<el-date-picker
v-model="queryParams.it_1"
type="date"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择开始日期"
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<!-- Notes -->
<el-form-item label="" label-width="0px" prop="it_2" class="item-style date-picker">
<el-date-picker
v-model="queryParams.it_2"
type="date"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择结束日期"
<el-col :span="8">
<el-form-item label="登记号" prop="regId" class="item-style">
<el-input
v-model="queryParams.regId"
placeholder="请输入登记号"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<!-- Notes -->
<el-form-item label="报告状态" prop="it_3" class="item-style">
<el-select
v-model="queryParams.it_3"
placeholder="请选择报告状态"
<el-form-item label="检查号" prop="examId" class="item-style">
<el-input
v-model="queryParams.examId"
placeholder="请输入检查号"
clearable
class="item-width"
>
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
</el-select>
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="5">
<!-- Notes -->
<el-form-item label="患者来源" prop="it_4" class="item-style">
<el-radio-group v-model="queryParams.it_4" class="item-width radio-group">
<el-form-item label="检查日期" prop="examDate_ge" class="item-style date-picker">
<el-date-picker
v-model="queryParams.examDate_ge"
type="date"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="开始日期"
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="3">
<!-- Notes -->
<el-form-item
label=""
label-width="0px"
prop="examDate_le"
class="item-style date-picker"
>
<el-date-picker
v-model="queryParams.examDate_le"
type="date"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="结束日期"
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="7" v-if="false">
<!-- Notes -->
<el-form-item label="患者来源" prop="regSource" class="item-style">
<el-radio-group class="item-width radio-group">
<el-radio value="全部" style="margin-left: 6px; margin-right: 16px"
>全部</el-radio
>
@ -67,62 +77,95 @@
</el-col>
</el-row>
<el-row>
<el-col :span="9">
<el-col :span="8">
<!-- Notes -->
<el-form-item label="检查设备" prop="it_5" class="item-style">
<el-form-item label="影像设备" prop="deviceName" class="item-style">
<el-select
v-model="queryParams.it_5"
placeholder="请选择检查设备"
v-model="queryParams.deviceName"
placeholder="请选择影像设备"
clearable
class="item-width"
>
<el-option
v-for="item in deviceList"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.deviceId"
:label="item.deviceName"
:value="item.deviceName"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<!-- Notes -->
<el-form-item label="检查部位" prop="it_6" class="item-style">
<el-form-item label="设备类型" prop="deviceType" class="item-style">
<el-select
v-model="queryParams.it_6"
v-model="queryParams.deviceType"
placeholder="请选择设备类型"
clearable
class="item-width"
>
<el-option label="DR" value="DR" />
<el-option label="CT" value="CT" />
<el-option label="MR" value="MR" />
<el-option label="超声" value="超声" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<!-- Notes -->
<el-form-item label="阴性阳性" prop="diagFlag" class="item-style">
<el-radio-group v-model="queryParams.diagFlag" class="item-width radio-group">
<el-radio value="" style="margin-left: 12px; margin-right: 18px">全部</el-radio>
<el-radio value="0" style="margin-right: 18px">阴性</el-radio>
<el-radio value="1" style="margin-right: 18px">阳性</el-radio>
<el-radio value="2" style="margin-right: 4px">重大阳性</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<!-- Notes -->
<el-form-item label="检查部位" prop="examItemName" class="item-style">
<el-select
v-model="queryParams.examItemName"
placeholder="请选择检查部位"
clearable
class="item-width"
>
<el-option
v-for="item in examitemsList"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.examItemCode"
:label="item.examItemName"
:value="item.examItemName"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<!-- Notes -->
<el-form-item label="阳性" prop="it_7" class="item-style">
<el-radio-group v-model="queryParams.it_7" class="item-width radio-group">
<el-radio value="全部" style="margin-left: 6px; margin-right: 16px"
>全部</el-radio
>
<el-radio value="正常" style="margin-right: 16px">正常</el-radio>
<el-radio value="阳性" style="margin-right: 4px">阳性</el-radio>
</el-radio-group>
<el-form-item label="报告状态" prop="reportstatus" class="item-style">
<el-select
v-model="queryParams.reportstatus"
placeholder="请选择报告状态"
clearable
class="item-width"
>
<el-option label="已分检" value="已分检" />
<el-option label="待分析" value="待分析" />
<el-option label="已分析" value="已分析" />
<el-option label="已审核" value="已审核" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="9">
<el-col :span="8">
<!-- Notes -->
<el-form-item label="姓名" prop="it_8" class="item-style">
<el-form-item label="患者姓名" prop="pname" class="item-style">
<el-input
v-model="queryParams.it_8"
placeholder="请输入姓名"
v-model="queryParams.pname"
placeholder="请输入患者姓名"
clearable
class="item-width"
/>
@ -130,23 +173,22 @@
</el-col>
<el-col :span="4">
<!-- Notes -->
<el-form-item label="性别" prop="it_9" class="item-style">
<el-form-item label="性别" prop="gender" class="item-style">
<el-select
v-model="queryParams.it_9"
v-model="queryParams.gender"
placeholder="请选择性别"
clearable
class="item-width"
>
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
<el-option label="男" value="男" />
<el-option label="女" value="女" />
</el-select>
</el-form-item>
</el-col>
<el-col
:span="7"
:offset="4"
style="text-align: left; padding-left: 8px; margin-bottom: 6px"
:span="8"
style="text-align: left; padding-left: 10px; margin-bottom: 6px"
>
<el-button @click="handleQuery">
<Icon icon="ep:search" class="mr-5px" /> 搜索
@ -158,31 +200,58 @@
</el-col>
</el-row>
<el-row>
<el-col :span="15">
<el-col :span="16">
<el-card shadow="never" style="min-height: 400px">
<el-table
v-loading="loading_patExamitems"
v-loading="loading"
size="small"
border
fit
:stripe="true"
:show-overflow-tooltip="true"
:data="list"
:data="list_IllnessCase"
height="max(45vh,330px)"
@row-click="handleRowClick"
@row-click="handleRowClick"
>
<el-table-column label="主键" align="center" prop="id" v-if="false" />
<el-table-column label="检查ID" align="center" prop="examId" />
<el-table-column label="患者姓名" align="center" prop="pname" />
<el-table-column label="性别" align="center" prop="gender" />
<el-table-column type="index" label="序号" align="center" width="54px" />
<el-table-column label="登记号" align="center" prop="regId" width="120px" />
<el-table-column label="检查号" align="center" prop="examId" width="120px" />
<el-table-column label="患者姓名" align="center" prop="pname" width="100px" />
<el-table-column label="性别" align="center" prop="gender" width="48px" />
<el-table-column
label="出生日期"
align="center"
prop="birthday"
:formatter="dateFormatter2"
width="180px"
width="90px"
/>
<el-table-column label="机构ID" align="center" prop="orgId" v-if="false" />
<el-table-column label="登记单号" align="center" prop="regId" />
<el-table-column
label="检查日期"
align="center"
prop="examDate"
:formatter="dateFormatter2"
width="90px"
/>
<el-table-column
label="检查部位"
header-align="center"
prop="examItemName"
width="160px"
/>
<el-table-column
label="影像设备"
header-align="center"
prop="deviceName"
width="160px"
/>
<el-table-column label="阴性阳性" align="center" prop="diagFlag">
<template #default="scope">
<el-tag v-if="scope.row.diagFlag == '0'">阴性</el-tag>
<el-tag v-else-if="scope.row.diagFlag == '1'">阳性</el-tag>
<el-tag v-else-if="scope.row.diagFlag == '2'">重大阳性</el-tag>
<el-tag type="danger" v-else>暂无</el-tag>
</template>
</el-table-column>
<!-- 数据列 -->
</el-table>
<div style="display: flex; justify-content: center">
@ -192,11 +261,12 @@
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</div>
</el-card>
</el-col>
<el-col :span="9">
<el-col :span="8">
<el-card shadow="never" style="height: 100%" class="ml-1">
<el-scrollbar>
<el-form size="small" label-width="68px" label-position="top" label-suffix="">
@ -239,7 +309,7 @@
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
import download from '@/utils/download'
import { IllnessCaseApi } from '@/api/applyregistration/illnessCase'
import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexamlist'
defineOptions({ name: 'IllnessCase' })
/*
* 李传洋
@ -264,101 +334,69 @@ const queryParams0 = ref({
doctorName: undefined,
departmentName: undefined
})
const queryParams = ref({
pageNo: 1,
pageSize: 10,
examId: undefined,
pname: undefined,
gender: undefined,
birthday: undefined,
examDate: [],
deviceType: '',
seDc: undefined,
examItemName: undefined,
reportstatus: undefined,
applicationDate: [],
uploadDate: [],
orgName: undefined,
orgId: '',
highLevelOrgId: '',
createDate: [],
examDescription: undefined,
diagResults: undefined,
diagDate: [],
diagDoctor: undefined,
reviewDoctor: undefined,
reviewDate: [],
thumbnailImgUrl: undefined,
createTime: [],
regId: '',
/** 测试数据 **/
it_1: '',
it_2: '',
it_3: '',
it_4: '',
it_5: '',
it_6: '',
it_7: '',
it_8: '',
it_9: ''
regId: '',
examId: '',
examDate_ge: '',
examDate_le: '',
deviceType: '',
deviceName: '',
diagFlag: '',
examItemName: '',
reportstatus: '',
pname: '',
gender: ''
})
//
//
const list_IllnessCase = ref<any[]>([])
const total = ref(0)
const loading_patExamitems = ref(false)
//
const list = ref<PatientexamlistVO[]>([])
/** 查询列表 */
const getList = async () => {
resetForm()
loading_patExamitems.value = true
try {
const data = await PatientexamlistApi.getPatientexamlistPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading_patExamitems.value = false
}
}
//
const handleRowClick = (row) => {
//
examitemsDesc .value= row.examDescription
//
diagnosisDesc.value = row.diagResults
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNo = 1
//
queryParams.value.orgId = ''
queryParams.value.highLevelOrgId = ''
getList()
}
/** 重置表单 */
const resetForm = () => {
list.value = []
examitemsDesc.value=''
diagnosisDesc.value=''
}
const loading = ref(true)
/****** 自定义内容 ******/
/****** 可参考内容 ******/
const resetDesc = async () => {
examitemsDesc.value = ''
diagnosisDesc.value = ''
}
/****** 可参考内容 ******/
/** 组件事件 **/
const getList = async () => {
resetDesc()
loading.value = true
try {
const data = await IllnessCaseApi.getPage(queryParams.value)
console.log('---------------------')
console.log(data.list)
list_IllnessCase.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
const handleQuery = async () => {
queryParams.value.pageNo = 1
getList()
}
const handleRowClick = async (row) => {
examitemsDesc.value = row ? row.examDescription : ''
diagnosisDesc.value = row ? row.diagResults : ''
}
/** 钩子方法 **/
onMounted(() => {
onMounted(async () => {
deviceList.value = await IllnessCaseApi.getDeviceList()
examitemsList.value = await IllnessCaseApi.getExamitemsList()
getList()
})
/** 防空作用域 **/
console.log(dateFormatter)
console.log(download)
console.log(IllnessCaseApi)
console.log(message)
console.log(t)
console.log(queryParams0)

View File

@ -12,11 +12,35 @@
label-suffix=""
class="mb-2px -ml-14px"
>
<el-row>
<el-col :span="24">
<el-form-item label="登记号" prop="regId" class="item-style">
<el-input
v-model="queryParams.regId"
placeholder="请输入登记号"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="检查号" prop="examId" class="item-style">
<el-input
v-model="queryParams.examId"
placeholder="请输入检查号"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="13">
<el-form-item label="日期" prop="it_1" class="item-style date-picker">
<el-form-item label="检查日期" prop="examDate_ge" class="item-style date-picker">
<el-date-picker
v-model="queryParams.it_1"
v-model="queryParams.examDate_ge"
type="date"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="开始日期"
@ -28,11 +52,11 @@
<el-form-item
label=""
label-width="0px"
prop="it_1a"
prop="examDate_le"
class="item-style date-picker"
>
<el-date-picker
v-model="queryParams.it_1a"
v-model="queryParams.examDate_le"
type="date"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="结束日期"
@ -43,59 +67,29 @@
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="设备" prop="it_2" class="item-style">
<el-form-item label="影像设备" prop="deviceName" class="item-style">
<el-select
v-model="queryParams.it_2"
v-model="queryParams.deviceName"
placeholder="请选择设备"
clearable
class="item-width"
>
<el-option
v-for="item in deviceList"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.deviceId"
:label="item.deviceName"
:value="item.deviceName"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="13">
<el-form-item label="类别" prop="it_3" class="item-style">
<el-select
v-model="queryParams.it_3"
placeholder="请选择类别"
clearable
class="item-width"
>
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="打印" label-width="44px" prop="it_4" class="item-style">
<el-select
v-model="queryParams.it_4"
placeholder="请选择打印"
clearable
class="item-width"
>
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="检查号" prop="it_5" class="item-style">
<el-form-item label="患者姓名" prop="pname" class="item-style">
<el-input
v-model="queryParams.it_5"
placeholder="请输入检查号"
v-model="queryParams.pname"
placeholder="请输入患者姓名"
clearable
class="item-width"
/>
@ -108,9 +102,9 @@
<el-button @click="handleQuery">
<Icon icon="ep:search" class="mr-2px" /> 搜索
</el-button>
<!-- <el-button type="primary" plain>
<el-button type="primary" plain>
<Icon icon="ep:printer" class="mr-2px" /> 打印
</el-button> -->
</el-button>
</div>
</el-col>
</el-row>
@ -121,23 +115,49 @@
border
:stripe="true"
:show-overflow-tooltip="true"
:data="list"
height="max(43vh,294px)"
:data="list_infos"
height="max(30vh,294px)"
@row-click="handleRowClick"
>
<el-table-column label="主键" align="center" prop="id" v-if="false" />
<el-table-column label="检查ID" align="center" prop="examId" />
<el-table-column label="患者姓名" align="center" prop="pname" />
<el-table-column label="性别" align="center" prop="gender" />
<el-table-column type="index" label="序号" align="center" width="54px" />
<el-table-column label="登记号" align="center" prop="regId" width="120px" />
<el-table-column label="检查号" align="center" prop="examId" width="120px" />
<el-table-column label="患者姓名" align="center" prop="pname" width="100px" />
<el-table-column label="性别" align="center" prop="gender" width="48px" />
<el-table-column
label="出生日期"
align="center"
prop="birthday"
:formatter="dateFormatter2"
width="180px"
width="90px"
/>
<el-table-column label="机构ID" align="center" prop="orgId" v-if="false" />
<el-table-column label="登记单号" align="center" prop="regId" />
<el-table-column
label="检查日期"
align="center"
prop="examDate"
:formatter="dateFormatter2"
width="90px"
/>
<el-table-column
label="检查部位"
header-align="center"
prop="examItemName"
width="160px"
/>
<el-table-column
label="影像设备"
header-align="center"
prop="deviceName"
width="160px"
/>
<el-table-column label="阴性阳性" align="center" prop="diagFlag">
<template #default="scope">
<el-tag v-if="scope.row.diagFlag == '0'">阴性</el-tag>
<el-tag v-else-if="scope.row.diagFlag == '1'">阳性</el-tag>
<el-tag v-else-if="scope.row.diagFlag == '2'">重大阳性</el-tag>
<el-tag type="danger" v-else>暂无</el-tag>
</template>
</el-table-column>
<!-- 数据列 -->
</el-table>
<div style="display: flex; justify-content: center">
@ -166,266 +186,104 @@
>
<el-row>
<el-col :span="13">
<el-form-item label="检查号" prop="it_1" class="item-style">
<el-form-item label="检查号" prop="examId" class="item-style">
<el-input
v-model="infoParams.it_1"
v-model="infoParams.examId"
clearable
:readonly="true"
:readonly="diagnosisInfo_readonly"
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="病例号" prop="it_2" class="item-style">
<el-form-item label="病例号" prop="regId" class="item-style">
<el-input
v-model="infoParams.it_2"
v-model="infoParams.regId"
clearable
:readonly="true"
:readonly="diagnosisInfo_readonly"
class="item-width"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- <el-col :span="6">
<el-form-item label="类别" prop="it_3" class="item-style">
<el-select
v-model="infoParams.it_3"
placeholder=""
clearable
:disabled="true"
class="item-width"
>
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
</el-select>
</el-form-item>
</el-col> -->
<!-- <el-col :span="7">
<el-form-item label="床号" prop="it_4" class="item-style">
<el-input
v-model="infoParams.it_4"
clearable
:readonly="true"
class="item-width"
/>
</el-form-item>
</el-col> -->
<!-- <el-col :span="2">
<el-form-item label="" label-width="4px" prop="it_5" class="item-style">
<el-checkbox v-model="infoParams.it_5" label="初诊" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="备注" label-width="64px" prop="it_6" class="item-style">
<el-input
v-model="infoParams.it_6"
clearable
:readonly="true"
class="item-width"
/>
</el-form-item>
</el-col> -->
</el-row>
<el-row>
<el-col :span="13">
<el-form-item label="姓名" prop="it_7" class="item-style">
<el-form-item label="姓名" prop="pname" class="item-style">
<el-input
v-model="infoParams.it_7"
v-model="infoParams.pname"
clearable
:readonly="true"
:readonly="diagnosisInfo_readonly"
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="性别" prop="it_8" class="item-style">
<el-col :span="6">
<el-form-item label="性别" prop="gender" class="item-style">
<el-select
v-model="infoParams.it_8"
v-model="infoParams.gender"
placeholder=""
clearable
:disabled="true"
:disabled="diagnosisInfo_readonly"
class="item-width"
>
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
<el-option label="男" value="男" />
<el-option label="女" value="女" />
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="6">
<el-form-item label="婚否" prop="it_9" class="item-style">
<el-select
v-model="infoParams.it_9"
placeholder=""
clearable
:disabled="true"
class="item-width"
>
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
</el-select>
</el-form-item>
</el-col> -->
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="生日" prop="it_10" class="item-style date-picker">
<el-col :span="13">
<el-form-item label="出生日期" prop="birthday" class="item-style date-picker">
<el-date-picker
v-model="infoParams.it_10"
v-model="infoParams.birthday"
type="date"
:readonly="true"
:readonly="diagnosisInfo_readonly"
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="年龄" prop="it_11" class="item-style">
<el-col :span="6">
<el-form-item label="年龄" class="item-style">
<el-input
v-model="age"
clearable
:readonly="true"
:readonly="diagnosisInfo_readonly"
class="item-width"
>
<!-- <template #append>
<el-select
v-model="infoParams.it_11a"
placeholder=""
clearable
:disabled="true"
style="width: 90px"
>
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
</el-select>
</template> -->
<template #append></template>
</el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="9">
<el-form-item label="临床诊断" label-width="64px" prop="it_12" class="item-style">
<el-input
v-model="infoParams.it_12"
clearable
:readonly="true"
class="item-width"
/>
</el-form-item>
</el-col> -->
</el-row>
<el-row>
<el-col :span="13">
<el-form-item label="科室" prop="it_13" class="item-style">
<el-form-item label="送检科室" prop="billDoctorDepartment" class="item-style">
<el-input
v-model="infoParams.billDoctorDepartment"
clearable
:readonly="true"
:readonly="diagnosisInfo_readonly"
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="11">
<el-col :span="11" v-if="false">
<el-form-item label="申请医生" prop="it_14" class="item-style">
<el-input
v-model="infoParams.it_14"
clearable
:readonly="true"
class="item-width"
/>
<el-input clearable :readonly="true" class="item-width" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="申请日期" prop="it_15" class="item-style date-picker">
<el-date-picker
v-model="infoParams.it_15"
type="datetime"
:readonly="true"
class="item-width"
/>
</el-form-item>
</el-col>
<!-- <el-col :span="17">
<el-form-item label="末次月经" prop="it_16" class="item-style">
<el-input
v-model="infoParams.it_16"
clearable
:readonly="true"
class="item-width"
/>
</el-form-item>
</el-col> -->
</el-row>
<el-row>
<!-- <el-col :span="7">
<el-form-item label="孕次" prop="it_17" class="item-style">
<el-input
v-model="infoParams.it_17"
clearable
:readonly="true"
class="item-width"
/>
</el-form-item>
</el-col> -->
<!-- <el-col :span="6">
<el-form-item label="产次" prop="it_18" class="item-style">
<el-input
v-model="infoParams.it_18"
clearable
:readonly="true"
class="item-width"
/>
</el-form-item>
</el-col> -->
<!-- <el-col :span="11">
<el-form-item label="避孕方式" prop="it_19" class="item-style">
<el-select
v-model="infoParams.it_19"
placeholder=""
clearable
:disabled="true"
class="item-width"
>
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" />
</el-select>
</el-form-item>
</el-col> -->
</el-row>
<el-row>
<!-- <el-col :span="13">
<el-form-item label="活检部位" prop="it_20" class="item-style">
<el-input
v-model="infoParams.it_20"
clearable
:readonly="true"
class="item-width"
/>
</el-form-item>
</el-col> -->
<!-- <el-col :span="11">
<el-form-item label="HP" prop="it_21" class="item-style">
<el-input
v-model="infoParams.it_21"
clearable
:readonly="true"
class="item-width"
/>
</el-form-item>
</el-col> -->
</el-row>
<el-row>
<el-col :span="13">
<el-form-item label="建议" prop="it_22" class="item-style">
<el-input
v-model="infoParams.it_22"
clearable
:readonly="true"
<el-form-item
label="检查日期"
prop="applicationDate"
class="item-style date-picker"
>
<el-date-picker
v-model="infoParams.applicationDate"
type="datetime"
:readonly="diagnosisInfo_readonly"
class="item-width"
/>
</el-form-item>
@ -433,12 +291,12 @@
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="所见" prop="it_23" class="item-style">
<el-form-item label="所见" prop="examDescription" class="item-style">
<el-input
v-model="infoParams.it_23"
v-model="infoParams.examDescription"
type="textarea"
:autosize="{ minRows: 4, maxRows: 6 }"
:readonly="true"
:autosize="{ minRows: 6, maxRows: 9 }"
:readonly="diagnosisInfo_readonly"
class="item-width"
/>
</el-form-item>
@ -446,12 +304,12 @@
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="结论" prop="it_24" class="item-style">
<el-form-item label="结论" prop="diagResults" class="item-style">
<el-input
v-model="infoParams.it_24"
v-model="infoParams.diagResults"
type="textarea"
:autosize="{ minRows: 4, maxRows: 6 }"
:readonly="true"
:autosize="{ minRows: 6, maxRows: 9 }"
:readonly="diagnosisInfo_readonly"
class="item-width"
/>
</el-form-item>
@ -460,36 +318,47 @@
</el-form>
</el-tab-pane>
<el-tab-pane label="报告单" name="reportInfo">
<!--报告区域-->
<div class="flex-center" id="printMe" style="height: calc(100% - 15px)">
<div class="ultrasound-report" id="PDF">
<h2>超声检查报告单</h2>
<hr />
<div class="patient-info">
<p class="info-item">姓名{{infoParams.it_7}}</p>
<p class="info-item">送检科室{{infoParams.billDoctorDepartment}}</p>
<p class="info-item">门诊号{{infoParams.it_2}}</p>
<p class="info-item">性别{{infoParams.it_8}}</p>
<p class="info-item">年龄{{age}}</p>
<p class="info-item">设备{{ infoParams.deviceName}}</p>
<p class="info-item">检查号{{infoParams.it_1 }}</p>
<p class="info-item">检查类型{{infoParams.examItemName }}</p>
<p class="info-item">姓名{{ infoParams.pname }}</p>
<p class="info-item">送检科室{{ infoParams.billDoctorDepartment }}</p>
<p class="info-item">门诊号{{ infoParams.regId }}</p>
<p class="info-item">性别{{ infoParams.gender }}</p>
<p class="info-item">年龄{{ age }}</p>
<p class="info-item">设备{{ infoParams.deviceName }}</p>
<p class="info-item">检查号{{ infoParams.examId }}</p>
<p class="info-item">检查类型{{ infoParams.examItemName }}</p>
</div>
<hr />
<!-- 图片展示区域 -->
<h3>超声图像</h3>
<div class="image-gallery">
<div class="image-item-container" v-for="image in reportimages" :key="image.id">
<img :src="image.imgUrl" alt="" style="width: 180px; height: 180px" />
<div v-for="image in reportimages" :key="image.id">
<img
alt=""
style="width: 140px; height: 140px"
:src="image.imgUrl"
v-if="false"
/>
<el-image
alt=""
fit="fill"
style="width: 99%; height: 99%"
:src="image.imgUrl"
:preview-src-list="[image.imgUrl]"
v-if="true"
/>
</div>
</div>
<div class="ultrasound-findings">
<h3>超声所见</h3>
<p>{{infoParams.it_23}}</p>
<p>{{ infoParams.examDescription }}</p>
</div>
<div class="ultrasound-recommendation">
<h3>超声提示</h3>
<p>{{infoParams.it_24}}</p>
<p>{{ infoParams.diagResults }}</p>
</div>
<div style="position: absolute; bottom: 20px; right: 20px">
<p>医生签名{{}}</p>
@ -521,8 +390,8 @@
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
import download from '@/utils/download'
import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics'
import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexamlist'
import { ultrasoniccomApi, updateexamineimageVO } from '@/api/ultrasoniccom'
import { ultrasoniccomApi } from '@/api/ultrasoniccom'
defineOptions({ name: 'ReportPrintStatistics' })
/*
* 李传洋
@ -538,9 +407,10 @@ const infoFormRef = ref()
const message = useMessage()
const { t } = useI18n()
const activeTabName = ref('diagnosisInfo')
const diagnosisInfo_readonly = ref(true)
const deviceList = ref<any[]>([])
//
const total = ref(0)
const reportimages = ref<any[]>([])
const age = ref<any>('')
//
const queryParams0 = ref({
pageNo: 1,
@ -551,168 +421,113 @@ const queryParams0 = ref({
const queryParams = ref({
pageNo: 1,
pageSize: 10,
examId: undefined,
pname: undefined,
gender: undefined,
birthday: undefined,
examDate: [],
deviceType: '',
seDc: undefined,
examItemName: undefined,
reportstatus: undefined,
applicationDate: [],
uploadDate: [],
orgName: undefined,
orgId: '',
highLevelOrgId: '',
createDate: [],
examDescription: undefined,
diagResults: undefined,
diagDate: [],
diagDoctor: undefined,
reviewDoctor: undefined,
reviewDate: [],
thumbnailImgUrl: undefined,
createTime: [],
regId: ''
/** 测试数据 **/
regId: '',
examId: '',
examDate_ge: '',
examDate_le: '',
deviceName: '',
deviceType: 'US', //
pname: ''
})
//
const age = ref()
const calculateAge = (birthdate) => {
if (!birthdate) {
age.value = null
return
}
const today = new Date()
const birth = new Date(birthdate)
let yearsDiff = today.getFullYear() - birth.getFullYear()
// Check if the birthday hasn't occurred yet this year
const hasBirthdayPassed =
today.getMonth() > birth.getMonth() ||
(today.getMonth() === birth.getMonth() && today.getDate() >= birth.getDate())
if (!hasBirthdayPassed) {
yearsDiff--
}
age.value = yearsDiff
}
//
const list = ref<PatientexamlistVO[]>([])
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
queryParams.deviceType = 'US'
const data = await PatientexamlistApi.getPatientexamlistPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNo = 1
queryParams.value.deviceType = 'US'
//
queryParams.value.orgId = ''
queryParams.value.highLevelOrgId = ''
getList()
}
//
//
const reportimages = ref<any[]>([])
//
const loadimage = async (orgId:string,regId:string) => {
const imageslist = await ultrasoniccomApi.getimageslist(orgId, regId, '1')
console.log(imageslist)
reportimages.value = imageslist
}
//
const handleRowClick = (row) => {
//
infoParams.value.it_23 = row.examDescription
//
infoParams.value.it_24 = row.diagResults
//
infoParams.value.it_7 = row.pname
//
infoParams.value.it_8 = row.gender
//
infoParams.value.it_10 = row.birthday
//
infoParams.value.it_2 = row.examId
//
infoParams.value.it_1 = row.regId
//
infoParams.value.it_15 = row.applicationDate
//
infoParams.value.billDoctorDepartment= row.billDoctorDepartment
//
infoParams.value.deviceName= row.deviceName
//
calculateAge(row.birthday)
//
infoParams.value.examItemName=row.examItemName
loadimage(row.orgId,row.regId)
}
const infoParams0 = ref({
doctorName: undefined,
departmentName: undefined
})
const infoParams = ref({
/** 测试数据 **/
it_1: '',
it_2: '',
it_3: '',
it_4: '',
it_5: '',
it_6: '',
it_7: '',
it_8: '',
it_9: '',
it_10: '',
it_11: '',
it_11a: '',
it_12: '',
it_13: '',
it_14: '',
it_15: '',
it_16: '',
it_17: '',
it_18: '',
it_19: '',
it_20: '',
it_21: '',
it_22: '',
it_23: '',
it_24: '',
billDoctorDepartment:'',
deviceName:'',
examItemName:'',
examId: '',
regId: '',
pname: '',
gender: '',
birthday: '',
billDoctorDepartment: '',
applicationDate: '',
examDescription: '',
diagResults: '',
examItemName: '',
deviceName: ''
})
//
const list_infos = ref<any[]>([])
const loading = ref(false)
const total = ref(0)
const loading = ref(true)
/****** 自定义内容 ******/
/****** 可参考内容 ******/
const calculateAge = async (birthdate) => {
if (!birthdate) {
age.value = ''
return
}
const today = new Date()
const birth = new Date(birthdate)
let yearsDiff = today.getFullYear() - birth.getFullYear()
// Check if the birthday hasn't occurred yet this year
const hasBirthdayPassed =
today.getMonth() > birth.getMonth() ||
(today.getMonth() === birth.getMonth() && today.getDate() >= birth.getDate())
if (!hasBirthdayPassed) {
yearsDiff--
}
age.value = yearsDiff
}
const loadimage = async (orgId: string, regId: string) => {
const imageslist = await ultrasoniccomApi.getimageslist(orgId, regId, '1')
reportimages.value = imageslist
}
const resetDiagnosisInfo = async () => {
infoParams.value = {
/** 测试数据 **/
examId: '',
regId: '',
pname: '',
gender: '',
birthday: '',
billDoctorDepartment: '',
applicationDate: '',
examDescription: '',
diagResults: '',
examItemName: '',
deviceName: ''
}
age.value = ''
reportimages.value = []
infoFormRef.value?.clearValidate()
}
/****** 可参考内容 ******/
/** 组件事件 **/
const getList = async () => {
resetDiagnosisInfo()
loading.value = true
try {
const data = await ReportPrintStatisticsApi.getPage(queryParams.value)
list_infos.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
const handleQuery = () => {
queryParams.value.pageNo = 1
getList()
}
const handleRowClick = (row) => {
resetDiagnosisInfo()
if (row) {
infoParams.value = row
calculateAge(row.birthday)
loadimage(row.orgId, row.regId)
}
}
/** 钩子方法 **/
onMounted(() => {
//ceshi
onMounted(async () => {
deviceList.value = await ReportPrintStatisticsApi.getDeviceList()
getList()
})
@ -721,7 +536,6 @@ console.log(dateFormatter)
console.log(download)
console.log(message)
console.log(t)
console.log(ReportPrintStatisticsApi)
console.log(queryParams0)
console.log(infoParams0)
//console.log(null)
@ -781,8 +595,6 @@ console.log(infoParams0)
margin: 5px 0;
}
.ultrasound-findings h3,
.ultrasound-recommendation h3 {
margin-top: 20px;

View File

@ -2,43 +2,24 @@
<div>
<el-row>
<el-col :span="10">
<el-card shadow="never" style="min-height: 540px; height: 76vh">
<el-card shadow="never" v-loading="formLoading" style="min-height: 540px; height: 76vh">
<el-form
ref="queryFormRef"
:model="queryParams"
ref="infoFormRef"
:model="infoParams"
size="small"
label-width="68px"
label-position="right"
label-suffix=""
class="-mb-15px"
class="-mb-10px"
:disabled="infoFormRef_disabled"
>
<el-row>
<el-col :span="24">
<!-- Notes -->
<el-form-item label="检查设备" prop="it_1" class="item-style">
<el-select
v-model="queryParams.it_1"
placeholder="请选择检查设备"
clearable
class="item-width"
>
<el-option
v-for="item in deviceList"
:key="item.deviceId"
:label="item.deviceName"
:value="item.deviceId"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="13">
<!-- Notes -->
<el-form-item label="病例号" prop="it_2" class="item-style">
<el-form-item label="登记号" prop="regId" class="item-style">
<el-input
v-model="queryParams.it_2"
placeholder="请输入病例号"
v-model="infoParams.regId"
placeholder="请输入登记号"
clearable
class="item-width"
/>
@ -46,14 +27,13 @@
</el-col>
<el-col :span="11">
<!-- Notes -->
<el-form-item label="患者来源" prop="it_3" class="item-style">
<el-form-item label="患者来源" prop="regSource" class="item-style">
<el-select
v-model="queryParams.it_3"
v-model="infoParams.regSource"
placeholder="请选择患者来源"
clearable
class="item-width"
>
<el-option label="全部" value="全部" />
<el-option label="门诊" value="门诊" />
<el-option label="住院" value="住院" />
<el-option label="体检" value="体检" />
@ -61,144 +41,12 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<!-- Notes -->
<el-form-item label="姓名" prop="it_4" class="item-style">
<el-input
v-model="queryParams.it_4"
placeholder="请输入姓名"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<!-- Notes -->
<el-form-item label="性别" prop="it_5" class="item-style">
<el-select
v-model="queryParams.it_5"
placeholder="请选择性别"
clearable
class="item-width"
>
<el-option label="男" value="1" />
<el-option label="女" value="2" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="14">
<!-- Notes -->
<el-form-item label="联系电话" prop="it_8" class="item-style">
<el-input
v-model="queryParams.it_8"
placeholder="请输入联系电话"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="13">
<!-- Notes -->
<el-form-item label="出生日期" prop="it_7" class="item-style date-picker">
<el-date-picker
v-model="queryParams.it_7"
type="date"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择出生日期"
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="11">
<!-- Notes -->
<el-form-item label="年龄" prop="it_6" class="item-style">
<el-form-item label="申请单号" class="item-style">
<el-input
v-model="queryParams.it_6"
placeholder="请输入年龄"
clearable
class="item-width"
>
<template #append></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<!-- Notes -->
<el-form-item label="开单科室" prop="it_9" class="item-style">
<el-select
v-model="queryParams.it_9"
placeholder="请选择开单科室"
clearable
class="item-width"
>
<el-option
v-for="item in departmentList"
:key="item.departmentCode"
:label="item.departmentName"
:value="item.departmentCode"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<!-- Notes -->
<el-form-item label="开单医生" prop="it_10" class="item-style">
<el-select
v-model="queryParams.it_10"
placeholder="请选择开单医生"
clearable
class="item-width"
>
<el-option
v-for="item in doctorList"
:key="item.doctorID"
:label="item.doctorName"
:value="item.doctorID"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="13">
<!-- Notes -->
<el-form-item label="开单时间" prop="it_11" class="item-style date-picker">
<el-date-picker
v-model="queryParams.it_11"
type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择开单时间"
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="11">
<!-- Notes -->
<el-form-item label="床号" prop="it_12" class="item-style">
<el-input
v-model="queryParams.it_12"
placeholder="请输入床号"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="13">
<!-- Notes -->
<el-form-item label="申请单号" prop="it_13" class="item-style">
<el-input
v-model="queryParams.it_13"
v-model="examIdFirst"
placeholder="申请单号"
:disabled="true"
class="item-width"
@ -207,11 +55,154 @@
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<!-- Notes -->
<el-form-item label="姓名" prop="pname" class="item-style">
<el-input
v-model="infoParams.pname"
placeholder="请输入姓名"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<!-- Notes -->
<el-form-item label="性别" prop="gender" class="item-style">
<el-select
v-model="infoParams.gender"
placeholder="请选择性别"
clearable
class="item-width"
>
<el-option label="男" value="男" />
<el-option label="女" value="女" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="14">
<!-- Notes -->
<el-form-item label="联系电话" prop="contactTel" class="item-style">
<el-input
v-model="infoParams.contactTel"
placeholder="请输入联系电话"
clearable
class="item-width"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="13">
<!-- Notes -->
<el-form-item label="出生日期" prop="birthday" class="item-style date-picker">
<el-date-picker
v-model="infoParams.birthday"
type="date"
value-format="x"
placeholder="请选择出生日期"
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="11" v-if="false">
<!-- Notes -->
<el-form-item label="年龄" prop="it_6" class="item-style">
<el-input placeholder="请输入年龄" clearable class="item-width">
<template #append></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<!-- Notes -->
<el-form-item label="检查设备" prop="deviceId" class="item-style">
<el-select
v-model="deviceInfo"
value-key="deviceId"
placeholder="请选择检查设备"
clearable
class="item-width"
@change="deviceInfo_change"
>
<el-option
v-for="item in deviceList"
:key="item.deviceId"
:label="item.deviceName"
:value="item"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<!-- Notes -->
<el-form-item label="开单科室" prop="billDoctorDepartment" class="item-style">
<el-select
v-model="infoParams.billDoctorDepartment"
placeholder="请选择开单科室"
clearable
class="item-width"
>
<el-option
v-for="item in departmentList"
:key="item.departmentCode"
:label="item.departmentName"
:value="item.departmentName"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<!-- Notes -->
<el-form-item label="开单医生" prop="billgDoctor" class="item-style">
<el-select
v-model="infoParams.billgDoctor"
placeholder="请选择开单医生"
clearable
class="item-width"
>
<el-option
v-for="item in doctorList"
:key="item.doctorID"
:label="item.doctorName"
:value="item.doctorName"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="13">
<!-- Notes -->
<el-form-item label="开单时间" prop="regDate" class="item-style date-picker">
<el-date-picker
v-model="infoParams.regDate"
type="datetime"
value-format="x"
placeholder="请选择开单时间"
class="item-width"
/>
</el-form-item>
</el-col>
<el-col :span="11" v-if="false">
<!-- Notes -->
<el-form-item label="床号" prop="it_12" class="item-style">
<el-input placeholder="请输入床号" clearable class="item-width" />
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="24">
<!-- Notes -->
<el-form-item label="诊断" prop="it_14" class="item-style">
<el-input
v-model="queryParams.it_14"
placeholder="请输入诊断"
type="textarea"
:autosize="{ minRows: 4 }"
@ -223,28 +214,44 @@
<el-row>
<el-col :span="24">
<!-- Notes -->
<el-form-item label="备注" prop="it_15" class="item-style">
<el-form-item label="备注" prop="remark" class="item-style">
<el-input
v-model="queryParams.it_15"
v-model="infoParams.remark"
placeholder="请输入备注"
type="textarea"
:autosize="{ minRows: 4 }"
:autosize="{ minRows: 7 }"
class="item-width"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="text-align: center; margin-top: 6px; margin-bottom: 10px">
<el-button type="primary" plain>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button type="success" plain>
<Icon icon="ep:check" class="mr-5px" /> 保存
</el-button>
</el-col>
</el-row>
</el-form>
<el-row>
<el-col
:span="24"
style="text-align: center; margin-left: 8px; margin-top: 16px; margin-bottom: 10px"
>
<el-button type="primary" size="small" v-show="btnAdd_show" @click="btnAdd_click">
<Icon icon="ep:plus" class="mr-10px" /> 新增
</el-button>
<el-button
type="primary"
size="small"
v-show="btnSubmit_show"
@click="btnSubmit_click"
>
<Icon icon="ep:check" class="mr-10px" /> 保存
</el-button>
<el-button
type="default"
size="small"
v-show="btnCancel_show"
@click="btnCancel_click"
>
<Icon icon="ep:close" class="mr-10px" /> 取消
</el-button>
</el-col>
</el-row>
</el-card>
</el-col>
@ -252,7 +259,9 @@
<el-card shadow="never" class="card-right ml-2">
<el-scrollbar>
<el-checkbox-group
v-model="queryParams.cks"
v-model="infoParams.examItems"
v-loading="formLoading"
:disabled="infoFormRef_disabled"
style="
display: flex;
flex-direction: column;
@ -263,10 +272,10 @@
>
<el-checkbox
v-for="item in examitemsList"
:key="item.id"
:key="item.examItemCode"
:label="item.examItemName"
:value="item.id"
style="margin-right: 15px; margin-bottom: -1px"
:value="{ examItemCode: item.examItemCode, examItemName: item.examItemName }"
style="margin-right: 15px; margin-bottom: -8px"
/>
</el-checkbox-group>
</el-scrollbar>
@ -277,8 +286,7 @@
</template>
<script setup lang="ts">
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { formatDate, dateFormatter } from '@/utils/formatTime'
import { ReservationInfoApi } from '@/api/applyregistration/reservationInfo'
defineOptions({ name: 'ReservationInfo' })
@ -289,52 +297,166 @@ defineOptions({ name: 'ReservationInfo' })
/** 导入内容 **/
/** 组件引用 **/
const queryFormRef = ref()
const infoFormRef = ref()
/** 数据结构 **/
const message = useMessage()
const { t } = useI18n()
const formLoading = ref(false)
const examitemsList = ref<any[]>([])
const doctorList = ref<any[]>([])
const deviceList = ref<any[]>([])
const departmentList = ref<any[]>([])
//
const queryParams0 = ref({
const infoFormRef_disabled = ref(true)
const btnAdd_show = ref(true)
const btnSubmit_show = ref(false)
const btnCancel_show = ref(false)
const infoParams0 = ref({
pageNo: 1,
pageSize: 10,
doctorName: undefined,
departmentName: undefined
})
const queryParams = ref({
pageNo: 1,
pageSize: 10,
const infoParams = ref({
/** 测试数据 **/
it_1: '',
it_2: '',
it_3: '',
it_4: '',
it_5: '',
it_6: '',
it_7: '',
it_8: '',
it_9: '',
it_10: '',
it_11: '',
it_12: '',
it_13: '',
it_14: '',
it_15: '',
cks: []
regId: '',
regSource: '',
examIdBase: '',
pname: '',
gender: '',
contactTel: '',
birthday: '',
deviceId: '',
deviceName: '',
billDoctorDepartment: '',
billgDoctor: '',
regDate: '',
remark: '',
examItems: []
})
const deviceInfo = ref<any>()
const examIdFirst = ref('')
/****** 自定义内容 ******/
const resetInfoForm = async () => {
infoParams.value = {
/** 测试数据 **/
regId: '',
regSource: '',
examIdBase: '',
pname: '',
gender: '',
contactTel: '',
birthday: '',
deviceId: '',
deviceName: '',
billDoctorDepartment: '',
billgDoctor: '',
regDate: '',
remark: '',
examItems: []
}
deviceInfo.value = undefined
examIdFirst.value = ''
infoFormRef.value?.clearValidate()
}
/****** 可参考内容 ******/
/** 组件事件 **/
const deviceInfo_change = async (value: any) => {
infoParams.value.deviceId = value ? value.deviceId : ''
infoParams.value.deviceName = value ? value.deviceName : ''
}
const btnAdd_click = async () => {
try {
resetInfoForm()
infoParams.value.examIdBase = formatDate(new Date(), 'YYYYMMDDHHmmssSSS') + '_'
examIdFirst.value = infoParams.value.examIdBase + '1'
btnAdd_show.value = false
btnSubmit_show.value = true
btnCancel_show.value = true
infoFormRef_disabled.value = false
} finally {
}
}
const btnSubmit_click = async () => {
formLoading.value = true
try {
const data = infoParams.value
console.log('-----------------------')
console.log(data)
//
if (!data.regId) {
await message.alertWarning('请输入登记号')
return
}
if (!data.regSource) {
await message.alertWarning('请选择患者来源')
return
}
if (!data.pname) {
await message.alertWarning('请输入姓名')
return
}
if (!data.gender) {
await message.alertWarning('请选择性别')
return
}
if (!data.contactTel) {
await message.alertWarning('请输入联系电话')
return
}
if (!data.birthday) {
await message.alertWarning('请选择出生日期')
return
}
if (!data.deviceId || !deviceInfo.value) {
await message.alertWarning('请选择检查设备')
return
}
if (!data.billDoctorDepartment) {
await message.alertWarning('请选择开单科室')
return
}
if (!data.billgDoctor) {
await message.alertWarning('请选择开单医生')
return
}
if (!data.regDate) {
await message.alertWarning('请选择开单时间')
return
}
if (!data.examItems || !Array.isArray(data.examItems) || data.examItems.length <= 0) {
await message.alertWarning('请选择右侧检查项目')
return
}
//
await ReservationInfoApi.create(data)
message.success(t('common.createSuccess'))
btnAdd_click()
} finally {
formLoading.value = false
}
}
const btnCancel_click = async () => {
try {
await message.confirm('确认取消本次新增操作')
resetInfoForm()
btnAdd_show.value = true
btnSubmit_show.value = false
btnCancel_show.value = false
infoFormRef_disabled.value = true
} finally {
}
}
/** 钩子方法 **/
onMounted(async () => {
//ceshi
examitemsList.value = await ReservationInfoApi.getExamitemsList()
doctorList.value = await ReservationInfoApi.getDoctorList()
deviceList.value = await ReservationInfoApi.getDeviceList()
@ -343,11 +465,8 @@ onMounted(async () => {
/** 防空作用域 **/
console.log(dateFormatter)
console.log(download)
console.log(message)
console.log(t)
console.log(ReservationInfoApi)
console.log(queryParams0)
console.log(infoParams0)
//console.log(null)
/** 导出内容 **/