返修审核
This commit is contained in:
parent
2f3baa07fe
commit
a958b24c90
@ -35,4 +35,7 @@ export const ProcessManageApi = {
|
||||
delete: async (id: any) => {
|
||||
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