返修审核
This commit is contained in:
parent
2f3baa07fe
commit
a958b24c90
@ -35,4 +35,7 @@ export const ProcessManageApi = {
|
|||||||
delete: async (id: any) => {
|
delete: async (id: any) => {
|
||||||
return await request.delete({ url: `/system/process/delete?id=` + id })
|
return await request.delete({ url: `/system/process/delete?id=` + id })
|
||||||
},
|
},
|
||||||
|
examineProcess: async (id: any, examineType: any, refuseremark: any) => {
|
||||||
|
return await request.get({ url: `/system/process/examineProcess?id=` + id + `&examineType=` + examineType + `&refuseremark=` + refuseremark })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
496
src/views/ECG/processManage/index.vue
Normal file
496
src/views/ECG/processManage/index.vue
Normal file
@ -0,0 +1,496 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<ContentWrap>
|
||||||
|
<el-form
|
||||||
|
ref="queryFormRef"
|
||||||
|
:model="queryParams"
|
||||||
|
size="default"
|
||||||
|
label-width="78px"
|
||||||
|
label-position="right"
|
||||||
|
label-suffix=""
|
||||||
|
class="-mb-15px"
|
||||||
|
>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="审核状态" prop="processstats" class="item-style">
|
||||||
|
<el-radio-group v-model="queryParams.processstats" 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: 6px"> 审核 </el-radio>
|
||||||
|
<el-radio value="2" style="margin-left: 12px; margin-right: 4px"> 拒绝 </el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="审核日期" prop="processDate_ge" class="item-style date-picker">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="queryParams.processDate_ge"
|
||||||
|
type="date"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
placeholder="开始日期"
|
||||||
|
class="item-width"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="3">
|
||||||
|
<el-form-item
|
||||||
|
label=""
|
||||||
|
label-width="0px"
|
||||||
|
prop="processDate_le"
|
||||||
|
class="item-style date-picker"
|
||||||
|
>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="queryParams.processDate_le"
|
||||||
|
type="date"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
placeholder="结束日期"
|
||||||
|
class="item-width"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="申请日期" prop="applyDateTime_ge" class="item-style date-picker">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="queryParams.applyDateTime_ge"
|
||||||
|
type="date"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
placeholder="开始日期"
|
||||||
|
class="item-width"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="3">
|
||||||
|
<el-form-item
|
||||||
|
label=""
|
||||||
|
label-width="0px"
|
||||||
|
prop="applyDateTime_le"
|
||||||
|
class="item-style date-picker"
|
||||||
|
>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="queryParams.applyDateTime_le"
|
||||||
|
type="date"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
placeholder="结束日期"
|
||||||
|
class="item-width"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<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">
|
||||||
|
<el-form-item label="患者姓名" prop="pname" class="item-style">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.pname"
|
||||||
|
placeholder="请输入患者姓名"
|
||||||
|
clearable
|
||||||
|
class="item-width"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" style="text-align: right">
|
||||||
|
<el-button
|
||||||
|
@click="handleQuery"
|
||||||
|
class="mr-14px"
|
||||||
|
style="background-color: rgba(56, 119, 246, 1); color: rgba(255, 255, 255, 1)"
|
||||||
|
>
|
||||||
|
<Icon icon="ep:search" class="mr-5px" /> 搜索
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="resetQuery">
|
||||||
|
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</ContentWrap>
|
||||||
|
|
||||||
|
<ContentWrap>
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
size="default"
|
||||||
|
border
|
||||||
|
:stripe="false"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
:data="list_infos"
|
||||||
|
:header-cell-style="{
|
||||||
|
background: 'rgb(235, 241, 250)',
|
||||||
|
height: '40px',
|
||||||
|
color: '#333333'
|
||||||
|
}"
|
||||||
|
:row-style="{ height: '40px' }"
|
||||||
|
height="max(calc(100vh - 400px),100px)"
|
||||||
|
>
|
||||||
|
<el-table-column label="序号" align="center" width="54px">
|
||||||
|
<template #default="scope"> {{ scope.$index + 1 }} </template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="登记号" align="center" prop="regId" width="240px" />
|
||||||
|
<el-table-column label="检查号" align="center" prop="examId" width="240px" />
|
||||||
|
<el-table-column label="患者姓名" align="center" prop="pname" width="130px" />
|
||||||
|
<el-table-column label="机构" align="center" prop="orgId_name" min-width="260px" />
|
||||||
|
<el-table-column
|
||||||
|
label="审核时间"
|
||||||
|
align="center"
|
||||||
|
prop="processDate"
|
||||||
|
:formatter="dateFormatter2"
|
||||||
|
width="150px"
|
||||||
|
/>
|
||||||
|
<el-table-column label="审核医生" align="center" prop="processDoctor" width="130px" />
|
||||||
|
<el-table-column label="审核机构" align="center" prop="processorgName" width="260px" />
|
||||||
|
<el-table-column
|
||||||
|
label="申请时间"
|
||||||
|
align="center"
|
||||||
|
prop="applyDateTime"
|
||||||
|
:formatter="dateFormatter2"
|
||||||
|
width="150px"
|
||||||
|
/>
|
||||||
|
<el-table-column label="申请医生" align="center" prop="applyDoctor" min-width="130px" />
|
||||||
|
<el-table-column label="申请原因" align="center" prop="processContent" min-width="280px" />
|
||||||
|
<el-table-column label="拒绝原因" align="center" prop="refuseremark" min-width="280px" />
|
||||||
|
<el-table-column label="备注" align="center" prop="remark" min-width="280px" />
|
||||||
|
<el-table-column
|
||||||
|
label="审核状态"
|
||||||
|
align="center"
|
||||||
|
prop="processstats"
|
||||||
|
fixed="right"
|
||||||
|
width="86px"
|
||||||
|
>
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tag v-if="scope.row.processstats == '0'" effect="plain">申请</el-tag>
|
||||||
|
<el-tag v-else-if="scope.row.processstats == '1'" effect="plain" type="success"
|
||||||
|
>审核</el-tag
|
||||||
|
>
|
||||||
|
<el-tag v-else-if="scope.row.processstats == '2'" effect="plain" type="danger"
|
||||||
|
>拒绝</el-tag
|
||||||
|
>
|
||||||
|
<el-tag v-else effect="plain" type="info">暂无</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
:show-overflow-tooltip="false"
|
||||||
|
align="center"
|
||||||
|
fixed="right"
|
||||||
|
width="120px"
|
||||||
|
>
|
||||||
|
<template #default="scope">
|
||||||
|
<div v-if="scope.row.processstats == '0'">
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
@click="handleRowClick(scope.row, '1')"
|
||||||
|
style="color: rgb(56, 119, 246)"
|
||||||
|
>
|
||||||
|
审核
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
@click="handleRowClick(scope.row, '2')"
|
||||||
|
style="color: rgb(56, 119, 246)"
|
||||||
|
>
|
||||||
|
拒绝
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
<div v-else style="color: #b1b3b8">无</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<div>
|
||||||
|
<Pagination
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNo"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ContentWrap>
|
||||||
|
|
||||||
|
<el-dialog
|
||||||
|
title="确定"
|
||||||
|
v-model="dialogExamine"
|
||||||
|
top="38vh"
|
||||||
|
width="400px"
|
||||||
|
:modal="false"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
draggable
|
||||||
|
append-to-body
|
||||||
|
destroy-on-close
|
||||||
|
>
|
||||||
|
<div v-loading="dialogExamine_loading">
|
||||||
|
<div style="font-size: 14.88px">请确定是否审核该数据</div>
|
||||||
|
<!-- footer -->
|
||||||
|
<div class="mt-14px">
|
||||||
|
<div style="text-align: right">
|
||||||
|
<el-button @click="dialogExamine = false">否</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
@click="
|
||||||
|
async () => {
|
||||||
|
try {
|
||||||
|
dialogExamine_loading = true
|
||||||
|
let res = await ProcessManageApi.examineProcess(infoParams.id, '1', '')
|
||||||
|
if (res && res == '200') {
|
||||||
|
await getList()
|
||||||
|
dialogExamine = false
|
||||||
|
message.success('审核成功')
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
} finally {
|
||||||
|
dialogExamine_loading = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
|
是
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog
|
||||||
|
title="确定"
|
||||||
|
v-model="dialogExamine_no"
|
||||||
|
top="38vh"
|
||||||
|
width="560px"
|
||||||
|
:modal="false"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
draggable
|
||||||
|
append-to-body
|
||||||
|
destroy-on-close
|
||||||
|
@open="
|
||||||
|
async () => {
|
||||||
|
dialogExamine_no_msg = false
|
||||||
|
infoParams.refuseremark = null
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<div v-loading="dialogExamine_no_loading">
|
||||||
|
<div>
|
||||||
|
<p class="-mt-4px mb-4px">
|
||||||
|
<span class="ml-3px" style="font-size: 14.08px">拒绝原因</span>
|
||||||
|
<span
|
||||||
|
class="mr-4px"
|
||||||
|
style="color: red; float: right; font-size: 12.48px"
|
||||||
|
v-show="dialogExamine_no_msg"
|
||||||
|
>
|
||||||
|
拒绝原因不能为空
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
<el-input
|
||||||
|
v-model="infoParams.refuseremark"
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 6, maxRows: 12 }"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<!-- footer -->
|
||||||
|
<div class="mt-14px">
|
||||||
|
<div style="text-align: right">
|
||||||
|
<el-button @click="dialogExamine_no = false"> 否 </el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
@click="
|
||||||
|
async () => {
|
||||||
|
dialogExamine_no_msg = false
|
||||||
|
let refuseremarkStr = infoParams.refuseremark
|
||||||
|
? infoParams.refuseremark.trim()
|
||||||
|
: ''
|
||||||
|
if (!refuseremarkStr) {
|
||||||
|
dialogExamine_no_msg = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
dialogExamine_no_loading = true
|
||||||
|
let res = await ProcessManageApi.examineProcess(
|
||||||
|
infoParams.id,
|
||||||
|
'2',
|
||||||
|
infoParams.refuseremark
|
||||||
|
)
|
||||||
|
if (res && res == '200') {
|
||||||
|
await getList()
|
||||||
|
dialogExamine_no = false
|
||||||
|
message.success('操作成功')
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
} finally {
|
||||||
|
dialogExamine_no_loading = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
|
是
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { dateFormatter2 } from '@/utils/formatTime'
|
||||||
|
import { getUserProfile } from '@/api/system/user/profile'
|
||||||
|
import { ProcessManageApi } from '@/api/ECG/processManage'
|
||||||
|
|
||||||
|
defineOptions({ name: 'ProcessManage' })
|
||||||
|
/*
|
||||||
|
* 李传洋
|
||||||
|
* 返修审核
|
||||||
|
**/
|
||||||
|
/** 导入内容 **/
|
||||||
|
|
||||||
|
/** 组件引用 **/
|
||||||
|
const queryFormRef = ref()
|
||||||
|
const infoFormRef = ref()
|
||||||
|
const dialogExamine = ref<boolean>(false)
|
||||||
|
const dialogExamine_loading = ref<boolean>(false)
|
||||||
|
const dialogExamine_no = ref<boolean>(false)
|
||||||
|
const dialogExamine_no_loading = ref<boolean>(false)
|
||||||
|
const dialogExamine_no_msg = ref<boolean>(false)
|
||||||
|
|
||||||
|
/** 数据结构 **/
|
||||||
|
const message = useMessage()
|
||||||
|
const userProfile = ref<any>({})
|
||||||
|
const age = ref<any>('')
|
||||||
|
//表单核心
|
||||||
|
const queryParams = ref({
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
orgId: '',
|
||||||
|
pname: '',
|
||||||
|
regId: '',
|
||||||
|
processstats: '',
|
||||||
|
processDate_ge: '',
|
||||||
|
processDate_le: '',
|
||||||
|
applyDateTime_ge: '',
|
||||||
|
applyDateTime_le: ''
|
||||||
|
})
|
||||||
|
const infoParams = ref<any>({})
|
||||||
|
//表格核心
|
||||||
|
const list_infos = ref<any[]>([])
|
||||||
|
const loading = ref(true)
|
||||||
|
const total = ref(0)
|
||||||
|
|
||||||
|
/****** 自定义内容 ******/
|
||||||
|
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 resetDiagnosisInfo = async () => {
|
||||||
|
infoParams.value = {}
|
||||||
|
age.value = ''
|
||||||
|
infoFormRef.value?.clearValidate()
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = async () => {
|
||||||
|
resetDiagnosisInfo()
|
||||||
|
loading.value = true
|
||||||
|
try {
|
||||||
|
const data = await ProcessManageApi.getPage(queryParams.value)
|
||||||
|
list_infos.value = data.list
|
||||||
|
total.value = data.total
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/****** 可参考内容 ******/
|
||||||
|
/** 组件事件 **/
|
||||||
|
const handleQuery = async () => {
|
||||||
|
queryParams.value.pageNo = 1
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
const resetQuery = async () => {
|
||||||
|
queryParams.value = {
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
orgId: '',
|
||||||
|
regId: '',
|
||||||
|
pname: '',
|
||||||
|
processstats: '',
|
||||||
|
processDate_ge: '',
|
||||||
|
processDate_le: '',
|
||||||
|
applyDateTime_ge: '',
|
||||||
|
applyDateTime_le: ''
|
||||||
|
}
|
||||||
|
queryFormRef.value?.clearValidate()
|
||||||
|
handleQuery()
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleRowClick = async (row, examineType) => {
|
||||||
|
if (
|
||||||
|
!(
|
||||||
|
userProfile.value &&
|
||||||
|
userProfile.value.isimageexamine &&
|
||||||
|
userProfile.value.isimageexamine.trim() == '1'
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
message.warning('该用户没有审核权限')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resetDiagnosisInfo()
|
||||||
|
if (row) {
|
||||||
|
infoParams.value = row
|
||||||
|
}
|
||||||
|
if (examineType == '1') dialogExamine.value = true
|
||||||
|
else if (examineType == '2') dialogExamine_no.value = true
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 钩子方法 **/
|
||||||
|
onMounted(async () => {
|
||||||
|
userProfile.value = await getUserProfile()
|
||||||
|
getList()
|
||||||
|
})
|
||||||
|
|
||||||
|
/** 防空作用域 **/
|
||||||
|
//console.log(null)
|
||||||
|
|
||||||
|
/** 导出内容 **/
|
||||||
|
/**
|
||||||
|
* 备注:
|
||||||
|
*
|
||||||
|
* **/
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.el-form-item__label {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-style {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-width {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker :deep(.item-width) {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.radio-group {
|
||||||
|
border: 1px solid #ececec;
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue
Block a user