123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- <template>
- <div class="layout_container" style="height: 550px;">
- <div style="height: 500px;">
- <div class="line-wrapper">
- <div class="line-left">患者姓名:</div>
- <div class="line-right">{{data.patName}}</div>
- </div>
- <div class="line-wrapper">
- <div class="line-left">住院号:</div>
- <div class="line-right">{{data.patNo}}</div>
- </div>
- <div class="line-wrapper">
- <div class="line-left">编码员姓名:</div>
- <div class="line-right">{{data.coderName}}</div>
- </div>
- <div class="line-wrapper" style="align-items: flex-start">
- <div class="line-left">
- 主要错误:
- </div>
- <div class="line-right">
- <el-checkbox-group v-model="majorError">
- <div>
- <el-checkbox value="主要诊断填写错误">主要诊断填写错误</el-checkbox>
- </div>
- <div>
- <el-checkbox value="主要诊断编码错误">主要诊断编码错误</el-checkbox>
- </div>
- <div>
- <el-checkbox value="主要手术填写错误">主要手术填写错误</el-checkbox>
- </div>
- <div>
- <el-checkbox value="主要手术编码错误">主要手术编码错误</el-checkbox>
- </div>
- </el-checkbox-group>
- </div>
- </div>
- <div class="line-wrapper">
- <div class="line-left">
- <span class="required">*</span>审核状态:
- </div>
- <div class="line-right">
- <el-radio-group v-model="auditState">
- <el-radio value="APPROVED">通过</el-radio>
- <el-radio value="REJECTED">不通过</el-radio>
- </el-radio-group>
- </div>
- </div>
- <div class="line-wrapper" style="align-items: flex-start">
- <div class="line-left">
- <span class="required">*</span>审核意见:
- </div>
- <div class="line-right">
- <el-input
- v-model="auditRemark"
- type="textarea"
- :rows="5"
- :placeholder="placeholder"
- />
- </div>
- </div>
- <div class="line-wrapper" style="align-items: flex-start">
- <div class="line-left">
- </div>
- <div class="line-right">
- <el-button
- @click="handleClickConfirm"
- size="default"
- type="primary"
- style="width: 100%"
- >
- 提交审核
- </el-button>
- <div style="width: 100%; text-align: right; margin-top: 20px">
- <a href="#" style="text-decoration: underline" @click="viewAuditHistory">
- 审核历史
- </a>
- </div>
- </div>
- </div>
- </div>
- <el-drawer v-model="showAuditHistory" title="组长审核历史记录">
- <el-timeline>
- <el-timeline-item
- v-for="item in histories"
- :timestamp="item.createTime"
- placement="top"
- >
- <el-card>
- <h4>
- 编码员:{{ item.coderName }}
- </h4>
- <p v-if="item.majorError" class="major-error">主要错误:{{item.majorError}}</p>
- <p class="audit-remark">审核结果:{{ item.auditRemark }}</p>
- <p style="font-size: 12px; color: dimgray">
- <span>审核人:{{ item.auditName }}</span>
- <span style="margin-left: 32px">审核时间:{{ item.createTime }}</span>
- </p>
- <img :src="item.auditState === 'APPROVED' ? approveImg : rejectImg" alt="" class="img-state">
- </el-card>
- </el-timeline-item>
- </el-timeline>
- <div
- v-if="histories.length === 0"
- style="font-size: 36px;
- height: 86%;
- color: #777777;
- display: flex;
- align-items: center;
- justify-content: center"
- >
- 没有有效的质控记录
- </div>
- </el-drawer>
- </div>
- </template>
- <script lang="ts" setup>
- import {xcMessage} from "@/utils/xiaochan-element-plus";
- import {submitLeaderAudit,fetchLeaderAudit} from "@/api/case-front-sheet";
- import approveImg from "@/assets/approved.png";
- import rejectImg from "@/assets/reject.png";
- const props = defineProps({
- data: {
- type: Object,
- required: true,
- },
- closeModal: {
- type: Function,
- }
- })
- const auditRemark = ref('')
- const auditState = ref('APPROVED')
- const majorError = ref([])
- const placeholder = computed(() => {
- return auditState.value === 'APPROVED' ? '审核通过' : '请在此输入审核意见'
- })
- function handleClickConfirm() {
- if (auditState.value === 'REJECTED' && !auditRemark.value) {
- xcMessage.error('审核意见不能为空!');
- return
- }
- if (auditState.value === 'APPROVED' && majorError.value.length > 0) {
- xcMessage.error('勾选了主要错误,审核状态请选择【不通过】')
- return
- }
- props.data.auditState = auditState.value
- props.data.auditRemark = auditRemark.value
- props.data.majorErrorList = majorError.value
- submitLeaderAudit(props.data).then(res => {
- xcMessage.success('操作成功。')
- props.closeModal()
- })
- }
- const showAuditHistory = ref(false);
- const histories = ref([])
- function viewAuditHistory() {
- fetchLeaderAudit(props.data).then(res => {
- histories.value = res
- showAuditHistory.value = true;
- })
- }
- </script>
- <style scoped>
- .line-wrapper {
- display: flex;
- margin: 12px 0;
- align-items: center;
- }
- .line-left {
- width: 120px;
- text-align: right;
- padding-right: 8px;
- }
- .line-right {
- width: 300px;
- text-align: left;
- padding-left: 30px;
- }
- .required {
- margin-right: 4px;
- color: red;
- }
- .img-state {
- width: 64px;
- position: absolute;
- top: 0;
- right: 0;
- }
- </style>
|