修改用户信息界面 增加机构字典和科室字典

This commit is contained in:
lxd 2024-07-30 14:59:39 +08:00
parent e0d05c12d6
commit f1d586c0cf
14 changed files with 795 additions and 314 deletions

View File

@ -0,0 +1,54 @@
import request from '@/config/axios'
// 科室管理 VO
export interface DepartmentVO {
id: string // 主键
departmentName: string // 科室名称
createPerson: string // 创建人
createDate: Date // 创建时间
departmentRemark: string // 科室备注
deletePerson: string // 删除操作人
deleteDate: Date // 删除时间
departmentAddress: string // 科室具体位置
orgId: string // 机构ID
departmentCode: string // 科室代号:科室短号
isDelete: string // 删除标记1为删除
}
// 科室管理 API
export const DepartmentApi = {
// 查询科室管理分页
getDepartmentPage: async (params: any) => {
return await request.get({ url: `/system/department/page`, params })
},
// 查询科室管理详情
getDepartment: async (id: number) => {
return await request.get({ url: `/system/department/get?id=` + id })
},
// 查询科室相关数据字典
getDepartmentList: async () => {
return await request.get({ url: `/system/department/getlist` })
},
// 新增科室管理
createDepartment: async (data: DepartmentVO) => {
return await request.post({ url: `/system/department/create`, data })
},
// 修改科室管理
updateDepartment: async (data: DepartmentVO) => {
return await request.put({ url: `/system/department/update`, data })
},
// 删除科室管理
deleteDepartment: async (id: number) => {
return await request.delete({ url: `/system/department/delete?id=` + id })
},
// 导出科室管理 Excel
exportDepartment: async (params) => {
return await request.download({ url: `/system/department/export-excel`, params })
},
}

View File

@ -27,6 +27,10 @@ export const OrgApi = {
getOrg: async (id: number) => { getOrg: async (id: number) => {
return await request.get({ url: `/org/org/get?id=` + id }) return await request.get({ url: `/org/org/get?id=` + id })
}, },
// 查询机构管理字典
getOrglist: async () => {
return await request.get({ url: `/org/org/getlist` })
},
// 新增机构管理 // 新增机构管理
createOrg: async (data: OrgVO) => { createOrg: async (data: OrgVO) => {

View File

@ -15,6 +15,7 @@ export interface UserVO {
remark: string remark: string
loginDate: Date loginDate: Date
createTime: Date createTime: Date
orgId:string
} }
// 查询用户管理列表 // 查询用户管理列表

View File

@ -91,6 +91,7 @@ export default defineComponent({
textColor="var(--left-menu-text-color)" textColor="var(--left-menu-text-color)"
activeTextColor="var(--left-menu-text-active-color)" activeTextColor="var(--left-menu-text-active-color)"
onSelect={menuSelect} onSelect={menuSelect}
> >
{{ {{
default: () => { default: () => {

View File

@ -74,8 +74,6 @@
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="检查日期" prop="examDate"> <!-- <el-form-item label="检查日期" prop="examDate">
<el-date-picker <el-date-picker
v-model="queryParams.examDate" v-model="queryParams.examDate"
@ -117,15 +115,11 @@
clearable clearable
class="!w-200px" class="!w-200px"
> >
<el-option label="影像科" value="影像科" /> <el-option v-for="item in fordepartementData" :key="item.id" :label="item.departmentName" :value="item.departmentName" />
<!-- <el-option label="影像科" value="影像科" /> -->
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
@ -155,20 +149,29 @@
> >
<Icon icon="ep:plus" class="mr-5px" /> 批量分检 <Icon icon="ep:plus" class="mr-5px" /> 批量分检
</el-button> </el-button>
<el-button @click="resetQuery" type="primary"
><Icon icon="ep:refresh" class="mr-5px" /> 同步</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
</ContentWrap> </ContentWrap>
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" @selection-change="handleSelectionChange" > <el-table
v-loading="loading"
:data="list"
:stripe="true"
:show-overflow-tooltip="true"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column label="主键" align="center" prop="id" v-if="false"/> <el-table-column label="主键" align="center" prop="id" v-if="false" />
<el-table-column label="登记单号" align="center" prop="regId" width="100px" /> <el-table-column label="登记单号" align="center" prop="regId" width="100px" />
<el-table-column label="登记来源" align="center" prop="regSource" width="100px"/> <el-table-column label="登记来源" align="center" prop="regSource" width="100px" />
<el-table-column label="检查单号" align="center" prop="examId" /> <el-table-column label="检查单号" align="center" prop="examId" />
<el-table-column label="患者姓名" align="center" prop="pname" width="100px"/> <el-table-column label="患者姓名" align="center" prop="pname" width="100px" />
<el-table-column label="性别" align="center" prop="gender" width="100px"/> <el-table-column label="性别" align="center" prop="gender" width="100px" />
<el-table-column <el-table-column
label="出生日期" label="出生日期"
align="center" align="center"
@ -184,9 +187,9 @@
:formatter="dateFormatter" :formatter="dateFormatter"
width="180px" width="180px"
/> />
<el-table-column label="检查项目名称" align="center" prop="examItemName" width="140px"/> <el-table-column label="检查项目名称" align="center" prop="examItemName" width="140px" />
<el-table-column label="检查设备ID" align="center" prop="deviceId" v-if="false"/> <el-table-column label="检查设备ID" align="center" prop="deviceId" v-if="false" />
<el-table-column label="检查设备" align="center" prop="deviceName" width="130px"/> <el-table-column label="检查设备" align="center" prop="deviceName" width="130px" />
<el-table-column label="联系电话" align="center" prop="contactTel" /> <el-table-column label="联系电话" align="center" prop="contactTel" />
<el-table-column <el-table-column
label="登记时间" label="登记时间"
@ -202,9 +205,15 @@
:formatter="dateFormatter" :formatter="dateFormatter"
width="180px" width="180px"
/> />
<el-table-column label="开单医生" align="center" prop="billgDoctor" width="100px"/> <el-table-column label="开单医生" align="center" prop="billgDoctor" width="100px" />
<el-table-column label="检查状态" align="center" prop="examStatus" width="100px" /> <el-table-column label="检查状态" align="center" prop="examStatus" width="100px" />
<el-table-column label="开单医生科室" align="center" prop="billDoctorDepartment" :label-class-name="'no-wrap'" v-if="false" /> <el-table-column
label="开单医生科室"
align="center"
prop="billDoctorDepartment"
:label-class-name="'no-wrap'"
v-if="false"
/>
<el-table-column <el-table-column
label="此条记录的创建时间" label="此条记录的创建时间"
align="center" align="center"
@ -213,15 +222,17 @@
width="180px" width="180px"
v-if="false" v-if="false"
/> />
<el-table-column label="检查项目代码" align="center" prop="examItemCode" v-if="false"/> <el-table-column label="检查项目代码" align="center" prop="examItemCode" v-if="false" />
<el-table-column label="机构ID" align="center" prop="orgId" v-if="false" /> <el-table-column label="机构ID" align="center" prop="orgId" v-if="false" />
<el-table-column label="分检医生" align="center" prop="sortDoctor" width="100px"/> <el-table-column label="分检医生" align="center" prop="sortDoctor" width="100px" />
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template #default="scope"> <template #default="scope">
<el-button <el-button
link link
type="primary" type="primary"
@click="openForm('分检', scope.row.pname,scope.row.orgId,scope.row.id,scope.row.examStatus)" @click="
openForm('分检', scope.row.pname, scope.row.orgId, scope.row.id, scope.row.examStatus)
"
v-hasPermi="['applyregistration:applyform:update']" v-hasPermi="['applyregistration:applyform:update']"
> >
分检 分检
@ -229,19 +240,13 @@
<el-button <el-button
link link
type="danger" type="danger"
@click="handleDelete(scope.row.id,scope.row.examStatus)" @click="handleDelete(scope.row.id, scope.row.examStatus)"
v-hasPermi="['applyregistration:applyform:delete']" v-hasPermi="['applyregistration:applyform:delete']"
> >
作废 作废
</el-button> </el-button>
<el-button <el-button link type="danger" @click="openPrintForm(scope.row.id)"> 导引单 </el-button>
link
type="danger"
@click="openPrintForm(scope.row.id)"
>
导引单
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -263,22 +268,23 @@
<script setup lang="ts"> <script setup lang="ts">
import { dateFormatter } from '@/utils/formatTime' import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import { ApplyformApi, ApplyformVO,UPFJApplyformVO } from '@/api/applyregistration/applyform' import { ApplyformApi, ApplyformVO, UPFJApplyformVO } from '@/api/applyregistration/applyform'
import ApplyformForm from './ApplyformForm.vue' import ApplyformForm from './ApplyformForm.vue'
import { fa } from 'element-plus/es/locale'; import { fa } from 'element-plus/es/locale'
import GuidePrint from './GuidePrint.vue'; import GuidePrint from './GuidePrint.vue'
import { getUserProfile, ProfileVO } from '@/api/system/user/profile' import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
import { DepartmentApi, DepartmentVO } from '@/api/system/department'
/** 申请登记记录 列表 */ /** 申请登记记录 列表 */
defineOptions({ name: 'Applyform' }) defineOptions({ name: 'Applyform' })
const message = useMessage() // const message = useMessage() //
const { t } = useI18n() // const { t } = useI18n() //
const loading = ref(true) // const loading = ref(true) //
const list = ref<ApplyformVO[]>([]) // const list = ref<ApplyformVO[]>([]) //
const total = ref(0) // const total = ref(0) //
//
const fordepartementData = ref<any[]>([])
const queryParams = reactive({ const queryParams = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
@ -302,12 +308,12 @@ const queryParams = reactive({
examItemCode: undefined, examItemCode: undefined,
orgId: undefined, orgId: undefined,
sortDoctor: undefined, sortDoctor: undefined,
deviceDepartment:undefined, deviceDepartment: undefined,
departmentCode:undefined, departmentCode: undefined
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const exportLoading = ref(false) // const exportLoading = ref(false) //
const Profilevo = ref<ProfileVO>({} as ProfileVO); // const Profilevo = ref<ProfileVO>({} as ProfileVO) //
/** 查询列表 */ /** 查询列表 */
const getList = async () => { const getList = async () => {
loading.value = true loading.value = true
@ -315,10 +321,11 @@ const getList = async () => {
const data = await ApplyformApi.getApplyformPage(queryParams) const data = await ApplyformApi.getApplyformPage(queryParams)
list.value = data.list list.value = data.list
total.value = data.total total.value = data.total
//
fordepartementData.value=await DepartmentApi.getDepartmentList()
} finally { } finally {
loading.value = false loading.value = false
} }
} }
/** 搜索按钮操作 */ /** 搜索按钮操作 */
@ -335,90 +342,81 @@ const resetQuery = () => {
/** 添加/修改操作 */ /** 添加/修改操作 */
const formRef = ref() const formRef = ref()
const openForm = (type: string,pname:string ,orgid: string,ID:number,status:string) => { const openForm = (type: string, pname: string, orgid: string, ID: number, status: string) => {
if(status=="未分检") if (status == '未分检') {
{ formRef.value.open(type, orgid, pname, ID, Profilevo.value.username, [])
formRef.value.open(type, orgid,pname,ID,Profilevo.value.username,[]) } else {
message.warning('只有未分检才可以进行分检操作')
} }
else
{
message.warning("只有未分检才可以进行分检操作")
}
} }
/** 打印导引单 */ /** 打印导引单 */
const Print = ref(); const Print = ref()
const openPrintForm = (ID:number) => { const openPrintForm = (ID: number) => {
Print.value.open(ID) Print.value.open(ID)
} }
// //
const selectedRows = ref<any[]>([]); // const selectedRows = ref<any[]>([]) //
const previouslySelectedRows = ref<any[]>([]); // const previouslySelectedRows = ref<any[]>([]) //
const handleSelectionChange = (selection) => { const handleSelectionChange = (selection) => {
// //
selectedRows.value = selection; selectedRows.value = selection
// //
const unselectedRows = previouslySelectedRows.value.filter(prevRow => !selection.some(newRow => newRow.id === prevRow.id)); const unselectedRows = previouslySelectedRows.value.filter(
(prevRow) => !selection.some((newRow) => newRow.id === prevRow.id)
)
// //
unselectedRows.forEach(row => { unselectedRows.forEach((row) => {
console.log(`Row ${row.id} was unselected.`); console.log(`Row ${row.id} was unselected.`)
// //
}); })
// //
previouslySelectedRows.value = selection; previouslySelectedRows.value = selection
console.log(previouslySelectedRows.value) console.log(previouslySelectedRows.value)
} }
/** 批量分检按钮操作 */ /** 批量分检按钮操作 */
const batchhandle = async (username:string) => { const batchhandle = async (username: string) => {
try { try {
let orgid:string="" let orgid: string = ''
previouslySelectedRows.value.forEach(row => { previouslySelectedRows.value.forEach((row) => {
if (row.examStatus != '未分检') {
if(row.examStatus!="未分检") message.warning('存在已经分检数据,重新选择')
{
message.warning("存在已经分检数据,重新选择")
throw new Error('End Loop') throw new Error('End Loop')
} }
orgid=row.orgId orgid = row.orgId
})
}); if (previouslySelectedRows.value.length <= 0) {
message.warning('请选择需要分检的患者')
console.log(`orgid ${orgid} was unselected.`);
console.log(`username ${username} was unselected.`);
formRef.value.open("批量", orgid,'',0,username,previouslySelectedRows.value)
} catch {}
}
/** 作废按钮操作 */
const handleDelete = async (id: number,status:string) => {
try {
if(status=="已检查")
{
message.warning("已进行检查,不允许进行作废操作")
return return
} }
if(status=="已放弃") console.log(`orgid ${orgid} was unselected.`)
{ console.log(`username ${username} was unselected.`)
message.warning("已作废,无需再次作废") formRef.value.open('批量', orgid, '', 0, username, previouslySelectedRows.value)
} catch {}
}
/** 作废按钮操作 */
const handleDelete = async (id: number, status: string) => {
try {
if (status == '已检查') {
message.warning('已进行检查,不允许进行作废操作')
return
}
if (status == '已放弃') {
message.warning('已作废,无需再次作废')
return return
} }
// //
await message.delConfirm("是否作废选择内容") await message.delConfirm('是否作废选择内容')
// //
await ApplyformApi.cancelApplyform(id) await ApplyformApi.cancelApplyform(id)
message.success("作废成功") message.success('作废成功')
// //
await getList() await getList()
} catch {} } catch {}
@ -440,9 +438,7 @@ const handleExport = async () => {
} }
// //
const getlogininfo = async () => { const getlogininfo = async () => {
Profilevo.value = await getUserProfile()
Profilevo.value= await getUserProfile()
} }
/** 初始化 **/ /** 初始化 **/

View File

@ -46,8 +46,15 @@
<el-form-item label="第三方软件的制造商" prop="softwareManufacturer" label-width="160px"> <el-form-item label="第三方软件的制造商" prop="softwareManufacturer" label-width="160px">
<el-input v-model="formData.softwareManufacturer" placeholder="请输入第三方软件的制造商" /> <el-input v-model="formData.softwareManufacturer" placeholder="请输入第三方软件的制造商" />
</el-form-item> </el-form-item>
<el-form-item label="机构编码" prop="orgId" label-width="160px"> <el-form-item label="机构名称" prop="orgId" label-width="160px">
<el-input v-model="formData.orgId" placeholder="请输入机构编码" /> <el-select v-model="formData.orgId" placeholder="请选择机构" clearable>
<el-option
v-for="item in fororglistData"
:key="item.orgID"
:label="item.orgName"
:value="item.orgID"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="备注信息" prop="remark" label-width="160px"> <el-form-item label="备注信息" prop="remark" label-width="160px">
<el-input v-model="formData.remark" placeholder="请输入备注信息" /> <el-input v-model="formData.remark" placeholder="请输入备注信息" />
@ -61,6 +68,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ApiconfigApi, ApiconfigVO } from '@/api/system/apiconfig' import { ApiconfigApi, ApiconfigVO } from '@/api/system/apiconfig'
import { OrgApi } from '@/api/system/org'
/** 接口配置 表单 */ /** 接口配置 表单 */
defineOptions({ name: 'ApiconfigForm' }) defineOptions({ name: 'ApiconfigForm' })
@ -68,6 +76,8 @@ defineOptions({ name: 'ApiconfigForm' })
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
//
const fororglistData = ref<any[]>([])
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const dialogTitle = ref('') // const dialogTitle = ref('') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
@ -102,6 +112,8 @@ const open = async (type: string, id?: number) => {
dialogVisible.value = true dialogVisible.value = true
dialogTitle.value = t('action.' + type) dialogTitle.value = t('action.' + type)
formType.value = type formType.value = type
//
fororglistData.value = await OrgApi.getOrglist()
resetForm() resetForm()
// //
if (id) { if (id) {
@ -128,15 +140,12 @@ const submitForm = async () => {
if (formType.value === 'create') { if (formType.value === 'create') {
re.value = await ApiconfigApi.createApiconfig(data) re.value = await ApiconfigApi.createApiconfig(data)
if (re.value==='Api代码重复') { if (re.value === 'Api代码重复') {
message.error(re.value) message.error(re.value)
return return
} } else {
else
{
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))
} }
} else { } else {
await ApiconfigApi.updateApiconfig(data) await ApiconfigApi.updateApiconfig(data)
message.success(t('common.updateSuccess')) message.success(t('common.updateSuccess'))

View File

@ -0,0 +1,143 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="科室名称" prop="departmentName">
<el-input v-model="formData.departmentName" placeholder="请输入科室名称" />
</el-form-item>
<el-form-item label="科室备注" prop="departmentRemark">
<el-input v-model="formData.departmentRemark" placeholder="请输入科室备注" />
</el-form-item>
<el-form-item label="科室具体位置" prop="departmentAddress">
<el-input v-model="formData.departmentAddress" placeholder="请输入科室具体位置" />
</el-form-item>
<el-form-item label="科室代号" prop="departmentCode">
<el-input v-model="formData.departmentCode" placeholder="请输入科室代号" />
</el-form-item>
<el-form-item label="机构名称" prop="orgId">
<el-select v-model="formData.orgId" placeholder="请选择机构" clearable>
<el-option
v-for="item in fororglistData"
:key="item.orgID"
:label="item.orgName"
:value="item.orgID"
/>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DepartmentApi, DepartmentVO } from '@/api/system/department'
import { OrgApi } from '@/api/system/org'
/** 科室管理 表单 */
defineOptions({ name: 'DepartmentForm' })
const { t } = useI18n() //
const message = useMessage() //
//
const fororglistData = ref<any[]>([])
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
departmentName: undefined,
createPerson: undefined,
createDate: undefined,
departmentRemark: undefined,
deletePerson: undefined,
deleteDate: undefined,
departmentAddress: undefined,
orgId: undefined,
departmentCode: undefined,
isDelete: undefined
})
const formRules = reactive({
departmentName: [{ required: true, message: '请输入科室名称', trigger: 'blur' }],
orgId: [{ required: true, message: '请选择机构', trigger: 'blur' }],
departmentCode: [{ required: true, message: '请输入科室代号', trigger: 'blur' }]
})
const formRef = ref() // Ref
//
const name = ref()
/** 打开弹窗 */
const open = async (type: string, username: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
name.value = username
//
fororglistData.value = await OrgApi.getOrglist()
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await DepartmentApi.getDepartment(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
formLoading.value = true
try {
formData.value.createPerson = name.value
const data = formData.value as unknown as DepartmentVO
if (formType.value === 'create') {
await DepartmentApi.createDepartment(data)
message.success(t('common.createSuccess'))
} else {
await DepartmentApi.updateDepartment(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
departmentName: undefined,
createPerson: undefined,
createDate: undefined,
departmentRemark: undefined,
deletePerson: undefined,
deleteDate: undefined,
departmentAddress: undefined,
orgId: undefined,
departmentCode: undefined,
isDelete: undefined
}
formRef.value?.resetFields()
}
</script>

View File

@ -0,0 +1,197 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="科室名称" prop="departmentName">
<el-input
v-model="queryParams.departmentName"
placeholder="请输入科室名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create',Profilevo.username)"
v-hasPermi="['system:department:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['system:department:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="主键" align="center" prop="id" v-if="false"/>
<el-table-column label="科室名称" align="center" prop="departmentName" />
<el-table-column label="创建人" align="center" prop="createPerson" />
<el-table-column
label="创建时间"
align="center"
prop="createDate"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="科室备注" align="center" prop="departmentRemark" />
<el-table-column label="删除操作人" align="center" prop="deletePerson" v-if="false"/>
<el-table-column
label="删除时间"
align="center"
prop="deleteDate"
:formatter="dateFormatter"
width="180px"
v-if="false"
/>
<el-table-column label="科室具体位置" align="center" prop="departmentAddress" />
<el-table-column label="机构编码" align="center" prop="orgId" />
<el-table-column label="科室代号" align="center" prop="departmentCode" />
<el-table-column label="删除标记1为删除" align="center" prop="isDelete" v-if="false"/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update',Profilevo.username, scope.row.id)"
v-hasPermi="['system:department:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['system:department:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<DepartmentForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { DepartmentApi, DepartmentVO } from '@/api/system/department'
import DepartmentForm from './DepartmentForm.vue'
import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
/** 科室管理 列表 */
defineOptions({ name: 'Department' })
const message = useMessage() //
const { t } = useI18n() //
//
const Profilevo = ref<ProfileVO>({} as ProfileVO)
const loading = ref(true) //
const list = ref<DepartmentVO[]>([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
departmentName: undefined,
orgId: undefined,
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await DepartmentApi.getDepartmentPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, username:string, id?: number) => {
formRef.value.open(type,username, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await DepartmentApi.deleteDepartment(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await DepartmentApi.exportDepartment(queryParams)
download.excel(data, '科室管理.xls')
} catch {
} finally {
exportLoading.value = false
}
}
//
const getlogininfo = async () => {
Profilevo.value = await getUserProfile()
}
/** 初始化 **/
onMounted(() => {
getlogininfo()
getList()
})
</script>

View File

@ -69,8 +69,14 @@
<el-option label="主任医师" value="主任医师" /> <el-option label="主任医师" value="主任医师" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="机构编号" prop="orgId"> <el-form-item label="机构名称" prop="orgId">
<el-input v-model="formData.orgId" placeholder="请输入机构ID" /> <el-select
v-model="formData.orgId"
placeholder="请选择机构"
clearable
>
<el-option v-for="item in fororglistData" :key="item.orgID" :label="item.orgName" :value="item.orgID" />
</el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
@ -83,6 +89,8 @@
import { Api, VO, baseFile } from '@/api/system/doctor' import { Api, VO, baseFile } from '@/api/system/doctor'
import { error } from 'console' import { error } from 'console'
import type { UploadProps, UploadUserFile } from 'element-plus' import type { UploadProps, UploadUserFile } from 'element-plus'
import { OrgApi } from '@/api/system/org'
//base64 //base64
const imageBase64 = ref() const imageBase64 = ref()
// //
@ -90,7 +98,8 @@ const imagefilename = ref()
/** 医生管理 表单 */ /** 医生管理 表单 */
defineOptions({ name: 'Form' }) defineOptions({ name: 'Form' })
//
const fororglistData = ref<any[]>([])
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
@ -127,6 +136,9 @@ const open = async (type: string, id?: number) => {
dialogTitle.value = t('action.' + type) dialogTitle.value = t('action.' + type)
formType.value = type formType.value = type
resetForm() resetForm()
//
fororglistData.value=await OrgApi.getOrglist()
// //
if (id) { if (id) {
formLoading.value = true formLoading.value = true

View File

@ -42,8 +42,15 @@
<el-form-item label="检查部位代码" prop="examPartCode" label-width="111px"> <el-form-item label="检查部位代码" prop="examPartCode" label-width="111px">
<el-input v-model="formData.examPartCode" placeholder="请选择检查部位代码" /> <el-input v-model="formData.examPartCode" placeholder="请选择检查部位代码" />
</el-form-item> </el-form-item>
<el-form-item label="机构编号" prop="orgId" label-width="111px"> <el-form-item label="机构名称" prop="orgId" label-width="111px">
<el-input v-model="formData.orgId" placeholder="请输入机构编号" /> <el-select v-model="formData.orgId" placeholder="请选择机构" clearable>
<el-option
v-for="item in fororglistData"
:key="item.orgID"
:label="item.orgName"
:value="item.orgID"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="第三方系统的检查项目的CODE" prop="thirdPartyExamItemCode" v-if="false"> <el-form-item label="第三方系统的检查项目的CODE" prop="thirdPartyExamItemCode" v-if="false">
<el-input <el-input
@ -76,13 +83,15 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { examitemsApi, examitemsVO } from '@/api/system/examitems' import { examitemsApi, examitemsVO } from '@/api/system/examitems'
import { OrgApi } from '@/api/system/org'
/** 检查部位 表单 */ /** 检查部位 表单 */
defineOptions({ name: 'ExamitemsForm' }) defineOptions({ name: 'ExamitemsForm' })
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
//
const fororglistData = ref<any[]>([])
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const dialogTitle = ref('') // const dialogTitle = ref('') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
@ -115,6 +124,8 @@ const open = async (type: string, id?: number) => {
dialogVisible.value = true dialogVisible.value = true
dialogTitle.value = t('action.' + type) dialogTitle.value = t('action.' + type)
formType.value = type formType.value = type
//
fororglistData.value = await OrgApi.getOrglist()
resetForm() resetForm()
// //
if (id) { if (id) {
@ -140,13 +151,12 @@ const submitForm = async () => {
const re = ref() const re = ref()
if (formType.value === 'create') { if (formType.value === 'create') {
re.value = await examitemsApi.createexamitems(data) re.value = await examitemsApi.createexamitems(data)
if (re.value ==='项目ID已经存在') { if (re.value === '项目ID已经存在') {
message.error(re.value) message.error(re.value)
return return
} else { } else {
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))
} }
} else { } else {
await examitemsApi.updateexamitems(data) await examitemsApi.updateexamitems(data)
message.success(t('common.updateSuccess')) message.success(t('common.updateSuccess'))

View File

@ -116,7 +116,7 @@
type="primary" type="primary"
plain plain
@click="openForm('create')" @click="openForm('create')"
v-hasPermi="['org:org:create']" v-hasPermi="['org::create']"
> >
<Icon icon="ep:plus" class="mr-5px" /> 新增 <Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button> </el-button>
@ -126,7 +126,7 @@
plain plain
@click="handleExport" @click="handleExport"
:loading="exportLoading" :loading="exportLoading"
v-hasPermi="['org:org:export']" v-hasPermi="['org::export']"
> >
<Icon icon="ep:download" class="mr-5px" /> 导出 <Icon icon="ep:download" class="mr-5px" /> 导出
</el-button> </el-button>
@ -162,7 +162,7 @@
link link
type="primary" type="primary"
@click="openForm('update', scope.row.orgID)" @click="openForm('update', scope.row.orgID)"
v-hasPermi="['org:org:update']" v-hasPermi="['org::update']"
> >
编辑 编辑
</el-button> </el-button>
@ -170,7 +170,7 @@
link link
type="primary" type="primary"
@click="openOrgSuperiorForm(scope.row.orgID)" @click="openOrgSuperiorForm(scope.row.orgID)"
v-hasPermi="['org:org:update']" v-hasPermi="['org::update']"
> >
上级机构设置 上级机构设置
</el-button> </el-button>
@ -178,7 +178,7 @@
link link
type="primary" type="primary"
@click="openorgwxForm(scope.row.orgID)" @click="openorgwxForm(scope.row.orgID)"
v-hasPermi="['org:org:update']" v-hasPermi="['org::update']"
> >
微信通知设置 微信通知设置
</el-button> </el-button>
@ -186,7 +186,7 @@
link link
type="danger" type="danger"
@click="handleDelete(scope.row.orgID)" @click="handleDelete(scope.row.orgID)"
v-hasPermi="['org:org:delete']" v-hasPermi="['org::delete']"
> >
删除 删除
</el-button> </el-button>

View File

@ -81,6 +81,21 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="24">
<el-form-item label="机构名称" prop="orgId" >
<el-select v-model="formData.orgId" placeholder="请选择机构" clearable>
<el-option
v-for="item in fororglistData"
:key="item.orgID"
:label="item.orgName"
:value="item.orgID"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注"> <el-form-item label="备注">
@ -103,12 +118,13 @@ import * as PostApi from '@/api/system/post'
import * as DeptApi from '@/api/system/dept' import * as DeptApi from '@/api/system/dept'
import * as UserApi from '@/api/system/user' import * as UserApi from '@/api/system/user'
import { FormRules } from 'element-plus' import { FormRules } from 'element-plus'
import { OrgApi } from '@/api/system/org'
defineOptions({ name: 'SystemUserForm' }) defineOptions({ name: 'SystemUserForm' })
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
//
const fororglistData = ref<any[]>([])
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const dialogTitle = ref('') // const dialogTitle = ref('') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
@ -125,12 +141,14 @@ const formData = ref({
postIds: [], postIds: [],
remark: '', remark: '',
status: CommonStatusEnum.ENABLE, status: CommonStatusEnum.ENABLE,
roleIds: [] roleIds: [],
orgId:''
}) })
const formRules = reactive<FormRules>({ const formRules = reactive<FormRules>({
username: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }], username: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }],
nickname: [{ required: true, message: '用户昵称不能为空', trigger: 'blur' }], nickname: [{ required: true, message: '用户昵称不能为空', trigger: 'blur' }],
password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }], password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
orgId: [{ required: true, message: '机构不能为空', trigger: 'blur' }],
email: [ email: [
{ {
type: 'email', type: 'email',
@ -155,6 +173,8 @@ const open = async (type: string, id?: number) => {
dialogVisible.value = true dialogVisible.value = true
dialogTitle.value = t('action.' + type) dialogTitle.value = t('action.' + type)
formType.value = type formType.value = type
//
fororglistData.value = await OrgApi.getOrglist()
resetForm() resetForm()
// //
if (id) { if (id) {
@ -212,7 +232,8 @@ const resetForm = () => {
postIds: [], postIds: [],
remark: '', remark: '',
status: CommonStatusEnum.ENABLE, status: CommonStatusEnum.ENABLE,
roleIds: [] roleIds: [],
orgId:''
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -8,7 +8,7 @@
v-loading="formLoading" v-loading="formLoading"
> >
<el-form-item label="微信号userid" prop="wxUserid" label-width="130px" style=""> <el-form-item label="微信号userid" prop="wxUserid" label-width="130px" style="">
<el-input v-model="formData.wxUserid" placeholder="请输入微信号userid" :disabled="true"/> <el-input v-model="formData.wxUserid" placeholder="请输入微信号userid" :disabled="true" />
</el-form-item> </el-form-item>
<el-form-item label="电话号码" prop="bindTel" label-width="130px"> <el-form-item label="电话号码" prop="bindTel" label-width="130px">
<el-input v-model="formData.bindTel" placeholder="请输入电话号码" /> <el-input v-model="formData.bindTel" placeholder="请输入电话号码" />
@ -27,8 +27,15 @@
<el-form-item label="备注" prop="remark" label-width="130px"> <el-form-item label="备注" prop="remark" label-width="130px">
<el-input v-model="formData.remark" placeholder="请输入备注" /> <el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item> </el-form-item>
<el-form-item label="机构编码" prop="orgId" label-width="130px"> <el-form-item label="机构名称" prop="orgId" label-width="130px">
<el-input v-model="formData.orgId" placeholder="请输入机构编码" /> <el-select v-model="formData.orgId" placeholder="请选择机构" clearable>
<el-option
v-for="item in fororglistData"
:key="item.orgID"
:label="item.orgName"
:value="item.orgID"
/>
</el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
@ -39,6 +46,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { WxApi, WxVO } from '@/api/system/wx' import { WxApi, WxVO } from '@/api/system/wx'
import { OrgApi } from '@/api/system/org'
/** 微信通知管理 表单 */ /** 微信通知管理 表单 */
defineOptions({ name: 'WxForm' }) defineOptions({ name: 'WxForm' })
@ -46,6 +54,8 @@ defineOptions({ name: 'WxForm' })
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
//
const fororglistData = ref<any[]>([])
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const dialogTitle = ref('') // const dialogTitle = ref('') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
@ -57,10 +67,9 @@ const formData = ref({
personName: undefined, personName: undefined,
createDate: undefined, createDate: undefined,
remark: undefined, remark: undefined,
orgId: undefined, orgId: undefined
}) })
const formRules = reactive({ const formRules = reactive({
wxUserid: [{ required: true, message: '请输入微信号userid', trigger: 'blur' }], wxUserid: [{ required: true, message: '请输入微信号userid', trigger: 'blur' }],
bindTel: [{ required: true, message: '请输入电话号码', trigger: 'blur' }], bindTel: [{ required: true, message: '请输入电话号码', trigger: 'blur' }],
personName: [{ required: true, message: '请输入所属人的姓名', trigger: 'blur' }], personName: [{ required: true, message: '请输入所属人的姓名', trigger: 'blur' }],
@ -73,6 +82,8 @@ const open = async (type: string, id?: number) => {
dialogVisible.value = true dialogVisible.value = true
dialogTitle.value = t('action.' + type) dialogTitle.value = t('action.' + type)
formType.value = type formType.value = type
//
fororglistData.value = await OrgApi.getOrglist()
resetForm() resetForm()
// //
if (id) { if (id) {
@ -119,7 +130,7 @@ const resetForm = () => {
personName: undefined, personName: undefined,
createDate: undefined, createDate: undefined,
remark: undefined, remark: undefined,
orgId: undefined, orgId: undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -1,5 +1,11 @@
<template> <template>
<Dialog :title="dialogTitle" v-model="dialogVisible" class="custom-dialog"> <el-dialog
v-model="dialogVisible"
:title="dialogTitle"
class="my-custom-close-icon"
:fullscreen="true"
>
<!-- <Dialog :title="dialogTitle" v-model="dialogVisible" class="custom-dialog"> -->
<!-- <el-form <!-- <el-form
ref="Print" ref="Print"
:model=applyFormVO :model=applyFormVO
@ -7,13 +13,12 @@
label-width="100px" label-width="100px"
v-loading="formLoading" v-loading="formLoading"
> --> > -->
<div class="container"> <div class="my-container">
<div class="left"> <div class="my-left">
<el-select <el-select
v-model="fordevicemValue" v-model="fordevicemValue"
placeholder="请选择模版类别" placeholder="请选择模版类别"
clearable clearable
class="!w-230px"
@change="handleselectchange" @change="handleselectchange"
@clear="selectclear" @clear="selectclear"
> >
@ -22,11 +27,11 @@
<el-option label="体检" value="体检模版" /> <el-option label="体检" value="体检模版" />
</el-select> </el-select>
<el-tabs type="border-card" style="height: 931px"> <el-tabs type="border-card" style="height: calc(100% - 32px)">
<el-tab-pane label="通用模版"> <el-tab-pane label="通用模版">
<!-- --> <!-- -->
<el-tree <el-tree
style="min-width: 195px" style="min-width: 195px;"
v-loading="formLoading" v-loading="formLoading"
class="treeStyle" class="treeStyle"
:check-on-click-node="true" :check-on-click-node="true"
@ -57,24 +62,24 @@
:show-checkbox="false" :show-checkbox="false"
:check-strictly="true" :check-strictly="true"
@node-click="handleTreeNodeClick" @node-click="handleTreeNodeClick"
ref="priselectTree" ref="priselectTree"
:expand-on-click-node="false" :expand-on-click-node="false"
/> />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
<div class="middle"> <div class="my-middle">
<!--用户信息区域--> <!--用户信息区域-->
<el-tabs <el-tabs
v-model="activeName" v-model="activeName"
class="demo-tabs" class="demo-tabs"
type="border-card" type="border-card"
style="height: 963px" style="height: 100%"
@tab-change="handleTabChange" @tab-change="handleTabChange"
> >
<el-tab-pane label="用户信息" name="first"> <el-tab-pane label="用户信息" name="first">
<div class="my-app-container">
<el-form <el-form
:model="applyFormVO" :model="applyFormVO"
label-width="auto" label-width="auto"
@ -83,82 +88,92 @@
> >
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="检查号"> <el-form-item label="检查号" style="font-weight: bold">
<el-input v-model="applyFormVO.examId" style="width: 180px" :disabled="true" /> <el-input
v-model="applyFormVO.examId"
style="width: 190px"
:disabled="true"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="姓名"> <el-form-item label="姓名" style="font-weight: bold">
<el-input v-model="applyFormVO.pname" style="width: 180px" :disabled="true" /> <el-input v-model="applyFormVO.pname" style="width: 190px" :disabled="true" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="性别"> <el-form-item label="性别" style="font-weight: bold">
<el-input v-model="applyFormVO.gender" style="width: 180px" :disabled="true" /> <el-input
v-model="applyFormVO.gender"
style="width: 190px"
:disabled="true"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="出生日期"> <el-form-item label="出生日期" style="font-weight: bold">
<el-date-picker <el-date-picker
v-model="applyFormVO.birthday" v-model="applyFormVO.birthday"
type="date" type="date"
placeholder="出生日期" placeholder="出生日期"
size="default" size="default"
style="width: 180px" style="width: 190px"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="检查时间"> <el-form-item label="检查时间" style="font-weight: bold">
<el-date-picker <el-date-picker
v-model="applyFormVO.examDate" v-model="applyFormVO.examDate"
type="datetime" type="datetime"
placeholder="检查时间" placeholder="检查时间"
size="default" size="default"
style="width: 180px" style="width: 190px"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="检查项目名称"> <el-form-item label="检查项目名称" style="font-weight: bold">
<el-input <el-input
v-model="applyFormVO.examItemName" v-model="applyFormVO.examItemName"
style="width: 180px" style="width: 190px"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="申请时间"> <el-form-item label="申请时间" style="font-weight: bold">
<el-date-picker <el-date-picker
v-model="applyFormVO.applicationDate" v-model="applyFormVO.applicationDate"
type="datetime" type="datetime"
placeholder="检查时间" placeholder="检查时间"
size="default" size="default"
style="width: 180px" style="width: 190px"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="申请单号"> <el-form-item label="申请单号" style="font-weight: bold">
<el-input v-model="applyFormVO.regId" style="width: 180px" :disabled="true" /> <el-input v-model="applyFormVO.regId" style="width: 190px" :disabled="true" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="送检科室"> <el-form-item label="送检科室" style="font-weight: bold">
<el-input <el-input
v-model="applyFormVO.billDoctorDepartment" v-model="applyFormVO.billDoctorDepartment"
style="width: 180px" style="width: 190px"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</div>
<el-divider /> <el-divider />
<!--图片显示区域--> <!--图片显示区域-->
<div class="demo-image"> <div class="demo-image">
@ -190,25 +205,25 @@
</el-card> </el-card>
</div> </div>
<el-divider /> <el-divider />
<label style="text-align: center">检查所见</label> <label style="text-align: center; font-size: 17px; font-weight: bold">检查所见</label>
<el-input <el-input
v-model="sj" v-model="sj"
style="max-width: 100%; width: 100%" style="width: 100%"
:rows="4" :rows="8"
type="textarea" type="textarea"
placeholder="检查所见" placeholder="检查所见"
/> />
<el-divider /> <el-divider />
<label>诊断结论</label> <label style="font-size: 17px; font-weight: bold">诊断结论</label>
<el-input <el-input
v-model="zdjl" v-model="zdjl"
style="width: 100%" style="width: 100%"
:rows="4" :rows="8"
type="textarea" type="textarea"
placeholder="诊断结论" placeholder="诊断结论"
/> />
<el-divider /> <el-divider />
<label>报告备注</label> <label style="font-size: 17px; font-weight: bold">报告备注</label>
<el-input v-model="notes" style="width: 100%" placeholder="" /> <el-input v-model="notes" style="width: 100%" placeholder="" />
<el-radio-group <el-radio-group
v-model="radio1" v-model="radio1"
@ -239,8 +254,6 @@
/> />
</el-form-item> </el-form-item>
</div> </div>
<!--:disabled="applyFormVO.reportstatus === '已审核' ? true : false"-->
<el-button <el-button
type="primary" type="primary"
plain plain
@ -252,8 +265,8 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="报告" name="report"> <el-tab-pane label="报告" name="report">
<!--报告区域--> <!--报告区域-->
<div class="flex-center" id="printMe"> <div class="flex-center" id="printMe" style="height: 100%">
<div class="ultrasound-report" id="PDF" style="height: 750px"> <div class="ultrasound-report" id="PDF">
<h2>超声检查报告单</h2> <h2>超声检查报告单</h2>
<hr /> <hr />
<div class="patient-info"> <div class="patient-info">
@ -312,33 +325,33 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
<div class="right" style="border: 1px solid #dcdfe6; padding: 2px; height: 960px"> <div class="my-right" style="border: 1px solid #dcdfe6; height: 100%">
<!--图片区域--> <!--图片区域-->
<div> <div style="width: 100%">
<el-button <el-button
type="primary" type="primary"
plain plain
style="width: 220px" style="width: 100%"
@click="upimagedeleteor()" @click="upimagedeleteor()"
:disabled="applyFormVO.reportstatus === '已审核' ? true : false" :disabled="applyFormVO.reportstatus === '已审核' ? true : false"
>图像删除</el-button >图像删除</el-button
> >
</div> </div>
<div> <div style="width: 100%">
<el-button <el-button
type="primary" type="primary"
plain plain
style="width: 220px" style="width: 100%"
@click="getimages" @click="getimages"
:disabled="applyFormVO.reportstatus === '已审核' ? true : false" :disabled="applyFormVO.reportstatus === '已审核' ? true : false"
>图像刷新</el-button >图像刷新</el-button
> >
</div> </div>
<div class="image-container"> <div class="image-container image-wrapper image-item-container">
<div class="image-wrapper">
<div class="image-item-container" v-for="image in images" :key="image.id">
<el-image <el-image
class="image-item" class="image-item"
v-for="image in images"
:key="image.id"
:src="image.imgUrl" :src="image.imgUrl"
@dblclick="selectImage(image.imgUrl, image.id)" @dblclick="selectImage(image.imgUrl, image.id)"
@click="chooseImage($event, image.id)" @click="chooseImage($event, image.id)"
@ -346,23 +359,18 @@
</div> </div>
</div> </div>
</div> </div>
</div> </el-dialog>
</div> <!-- </Dialog> -->
<!-- </el-form> -->
<template #footer>
<el-button @click="dialogVisible = false">关闭</el-button>
</template>
</Dialog>
<!-- 弹窗--> <!-- 弹窗-->
<el-dialog v-model="dialogTableVisible" title="选择结论添加方式" width="300" align-center> <el-dialog v-model="dialogTableVisible" title="选择结论添加方式" width="320" align-center>
<div> <div>
<el-button @click="handleButtonClick('覆盖')" type="primary">覆盖</el-button> <el-button @click="handleButtonClick('覆盖')" type="primary" style="font-size: 20px;">覆盖</el-button>
<el-button @click="handleButtonClick('追加')" type="success">追加</el-button> <el-button @click="handleButtonClick('追加')" type="success" style="font-size: 20px;">追加</el-button>
<el-button @click="dialogTableVisible = false" type="info">关闭</el-button> <el-button @click="dialogTableVisible = false" type="info" style="font-size: 20px;">关闭</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ApplyformApi, ApplyformVO, UPFJApplyformVO } from '@/api/applyregistration/applyform' import { ApplyformApi, ApplyformVO, UPFJApplyformVO } from '@/api/applyregistration/applyform'
import { ultrasoniccomApi, updateexamineimageVO } from '@/api/ultrasoniccom' import { ultrasoniccomApi, updateexamineimageVO } from '@/api/ultrasoniccom'
@ -386,10 +394,8 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const examineFormVO = ref<PatientexamlistVO>({} as PatientexamlistVO) const examineFormVO = ref<PatientexamlistVO>({} as PatientexamlistVO)
//使 //使
const clickuptime =async (pid:string)=> const clickuptime = async (pid: string) => {
{
await ultrasoniccomApi.upreporttemplatetime(pid) await ultrasoniccomApi.upreporttemplatetime(pid)
} }
@ -409,7 +415,7 @@ const handleButtonClick = (buttonName) => {
sj.value = lssj + strsj sj.value = lssj + strsj
} }
dialogTableVisible.value = false dialogTableVisible.value = false
console.log("获取到父节点"+pid); console.log('获取到父节点' + pid)
clickuptime(pid) clickuptime(pid)
} }
@ -654,13 +660,13 @@ const treeDefaultProps = {
// //
let strzdjl: string = '' let strzdjl: string = ''
let strsj: string = '' let strsj: string = ''
let pid:string=''//id let pid: string = '' //id
// //
const handleTreeNodeClick = async (data) => { const handleTreeNodeClick = async (data) => {
strzdjl = data.diagResults strzdjl = data.diagResults
strsj = data.examDescription strsj = data.examDescription
pid=data.pid pid = data.pid
console.log("父节点"+data.pid) console.log('父节点' + data.pid)
dialogTableVisible.value = true dialogTableVisible.value = true
} }
// //
@ -751,14 +757,11 @@ const getlogininfo = async () => {
Profilevo.value = await getUserProfile() Profilevo.value = await getUserProfile()
} }
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
applyFormVO.value={} as PatientexamlistVO applyFormVO.value = {} as PatientexamlistVO
pid='' pid = ''
strzdjl= '' strzdjl = ''
strsj = '' strsj = ''
activeName.value = 'first' activeName.value = 'first'
deleteimageid.value = '' deleteimageid.value = ''
@ -802,24 +805,28 @@ const chooseImage = (event, id: number) => {
</script> </script>
<style> <style>
.container { .my-container {
display: flex; display: flex;
height: 950px; height: 1200px;
} }
.left { .my-container * {
flex: 0 0 200px; /* 固定宽度 */ font-size: 15px;
}
.my-left {
width: 20%;
background: lightblue; background: lightblue;
} }
.middle { .my-middle {
flex: 1; /* 占据剩余空间 */ width: 60%;
margin-left: 2px; margin-left: 2px;
background: rgb(238, 240, 238); background: rgb(238, 240, 238);
} }
.right { .my-right {
flex: 0 0 200px; /* 固定宽度 */ width: 20%;
background: rgb(255, 255, 255); background: rgb(255, 255, 255);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -834,6 +841,13 @@ const chooseImage = (event, id: number) => {
padding: 10px; padding: 10px;
} }
.my-app-container {
display: flex;
justify-content: center;
align-items: center;
}
.demo-image { .demo-image {
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -859,16 +873,17 @@ const chooseImage = (event, id: number) => {
.image-wrapper { .image-wrapper {
display: flex; display: flex;
flex-wrap: wrap;
justify-content: center; /* 水平居中 */ justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中 */ align-items: center; /* 垂直居中 */
gap: 10px; /* 设置图像之间的间距 */ gap: 10px; /* 设置图像之间的间距 */
width: 100%;
flex-direction: column;
} }
.image-item { .image-item {
/* 可选:设置图像的宽度和高度 */ /* 可选:设置图像的宽度和高度 */
width: 200px; width: 80%;
height: 200px; height: 80%;
cursor: pointer; cursor: pointer;
transition: transform 0.3s ease; /* 添加过渡效果 */ transition: transform 0.3s ease; /* 添加过渡效果 */
} }
@ -896,17 +911,19 @@ const chooseImage = (event, id: number) => {
.form-item { .form-item {
flex: 1; /* 均分宽度,使两个输入框平分容器的宽度 */ flex: 1; /* 均分宽度,使两个输入框平分容器的宽度 */
margin-right: 20px; margin-right: 20px;
font-weight:bold
} }
/* 报告样式 */ /* 报告样式 */
.ultrasound-report { .ultrasound-report {
font-family: Arial, sans-serif; font-family: Arial, sans-serif;
max-width: 800px; width: 90%;
margin: 20px auto; margin: 20px auto;
padding: 20px; padding: 20px;
border: 1px solid #ccc; border: 1px solid #ccc;
border-radius: 8px; border-radius: 8px;
position: relative; position: relative;
height: 900px;
} }
.ultrasound-report h1, .ultrasound-report h1,
@ -954,4 +971,9 @@ const chooseImage = (event, id: number) => {
flex-basis: 25%; flex-basis: 25%;
/* 设置其他样式属性,如 padding、margin 等 */ /* 设置其他样式属性,如 padding、margin 等 */
} }
.my-custom-close-icon .el-dialog__close {
font-size: 40px; /* 自定义图标大小 */
color: red; /* 自定义图标颜色 */
}
</style> </style>