116 lines
2.8 KiB
Vue
116 lines
2.8 KiB
Vue
<template>
|
|
<div>
|
|
<el-table ref="medicineRef" height="400" :data="medicineList" @cell-click="clickRow">
|
|
<el-table-column
|
|
label="项目名称"
|
|
align="center"
|
|
prop="name"
|
|
width="200"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
<el-table-column
|
|
label="项目类型"
|
|
align="center"
|
|
prop="itemType_enumText"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
<el-table-column
|
|
label="包装单位"
|
|
align="center"
|
|
prop="unitCode_dictText"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
<el-table-column
|
|
label="最小单位"
|
|
align="center"
|
|
prop="minUnitCode_dictText"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
<el-table-column label="规格" align="center" prop="volume" :show-overflow-tooltip="true" />
|
|
<el-table-column label="产品批号" align="center" prop="lotNumber" />
|
|
<el-table-column
|
|
label="包装单位"
|
|
align="center"
|
|
prop="unitCode_dictText"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
<!-- <el-table-column label="用法" align="center" prop="methodCode_dictText" />
|
|
<el-table-column label="单次剂量" align="center" prop="dose" />
|
|
<el-table-column
|
|
label="剂量单位"
|
|
align="center"
|
|
prop="doseUnitCode_dictText"
|
|
/> -->
|
|
<el-table-column label="生产厂家" align="center" prop="manufacturer" />
|
|
<el-table-column label="编码" align="center" prop="ybNo" />
|
|
</el-table>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { getMedicineList } from './api';
|
|
import { watch } from 'vue';
|
|
import { throttle } from 'lodash-es';
|
|
|
|
const props = defineProps({
|
|
searchKey: {
|
|
type: String,
|
|
default: '',
|
|
},
|
|
itemType: {
|
|
type: String,
|
|
default: '',
|
|
},
|
|
|
|
});
|
|
const emit = defineEmits(['selectRow']);
|
|
const queryParams = ref({
|
|
// pageNum: 1,
|
|
// pageSize: 50,
|
|
itemType: props.itemType,
|
|
purchaseFlag: 0,
|
|
// sourceLocationId: props.sourceLocationId,
|
|
// purposeLocationId:props.purposeLocationId
|
|
});
|
|
const medicineList = ref([]);
|
|
|
|
// 节流函数
|
|
const throttledGetList = throttle(
|
|
() => {
|
|
getList();
|
|
},
|
|
300,
|
|
{ leading: true, trailing: true }
|
|
);
|
|
|
|
watch(
|
|
() => props,
|
|
(newValue) => {
|
|
queryParams.value.searchKey = newValue.searchKey;
|
|
queryParams.value.itemType = newValue.itemType;
|
|
queryParams.value.purchaseFlag = 0;
|
|
// queryParams.value.sourceLocationId = newValue.sourceLocationId;
|
|
// queryParams.value.purposeLocationId = newValue.purposeLocationId;
|
|
throttledGetList();
|
|
},
|
|
{ immdiate: true, deep: true }
|
|
);
|
|
|
|
getList();
|
|
function getList() {
|
|
getMedicineList(queryParams.value).then((res) => {
|
|
medicineList.value = res.data;
|
|
});
|
|
}
|
|
|
|
function clickRow(row) {
|
|
emit('selectRow', row);
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
:deep(.hover_row) {
|
|
width: 100vw !important;
|
|
}
|
|
</style>
|