Fix Bug 505505 【业务逻辑缺陷】药品医嘱已由药房发药,护士仍能在“医嘱校对”模块执行“退回”操作
[门诊手术安排]“手术申请查询”弹窗底部,分页组件与界底部元素重叠,影响操作。
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
<span class="descriptions-item-label">全选:</span>
|
||||
<el-switch v-model="chooseAll" @change="handelSwitchChange" />
|
||||
<el-button class="ml20" type="primary" @click="handleCheck"> 核对通过 </el-button>
|
||||
<el-button class="ml20 mr20" type="danger" @click="handleCancel"> 退回 </el-button>
|
||||
<el-button class="ml20 mr20" type="danger" :disabled="hasDispensedSelected" @click="handleCancel"> 退回 </el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
@@ -152,6 +152,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import {ref, computed} from 'vue';
|
||||
import {adviceVerify, cancel, getPrescriptionList} from './api';
|
||||
import {patientInfoList} from '../../components/store/patient.js';
|
||||
import {formatDateStr} from '@/utils/index';
|
||||
@@ -163,6 +164,11 @@ const type = ref(null);
|
||||
const { proxy } = getCurrentInstance();
|
||||
const loading = ref(false);
|
||||
const chooseAll = ref(false);
|
||||
const selectionTrigger = ref(0);
|
||||
const hasDispensedSelected = computed(() => {
|
||||
selectionTrigger.value;
|
||||
return getSelectRows().some(item => item.dispenseStatus === 4);
|
||||
});
|
||||
const props = defineProps({
|
||||
requestStatus: {
|
||||
type: Number,
|
||||
@@ -262,7 +268,9 @@ function getGroupMarkers() {
|
||||
}
|
||||
|
||||
// 选择框改变时的处理
|
||||
function handleSelectionChange(selection, row) {}
|
||||
function handleSelectionChange(selection, row) {
|
||||
selectionTrigger.value++;
|
||||
}
|
||||
|
||||
/**
|
||||
* 核对通过
|
||||
@@ -291,7 +299,7 @@ function handleCancel() {
|
||||
// 校验已发药的医嘱不允许退回
|
||||
let dispensedItems = list.filter(item => item.dispenseStatus === 4);
|
||||
if (dispensedItems.length > 0) {
|
||||
proxy.$message.error('该医嘱已发药,无法退回');
|
||||
proxy.$message.error('该药品已由药房发放,请先执行退药处理,不可直接退回');
|
||||
return;
|
||||
}
|
||||
cancel(list).then((res) => {
|
||||
@@ -310,12 +318,16 @@ function getSelectRows() {
|
||||
// 获取选中的医嘱信息
|
||||
let list = [];
|
||||
prescriptionList.value.forEach((item, index) => {
|
||||
list = [...list, ...proxy.$refs['tableRef' + index][0].getSelectionRows()];
|
||||
const ref = proxy.$refs['tableRef' + index];
|
||||
if (ref && ref[0]) {
|
||||
list = [...list, ...ref[0].getSelectionRows()];
|
||||
}
|
||||
});
|
||||
return list.map((item) => {
|
||||
return {
|
||||
requestId: item.requestId,
|
||||
requestTable: item.adviceTable,
|
||||
dispenseStatus: item.dispenseStatus,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user