Files
his/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/basicInformationDetails.vue

160 lines
5.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" label-width="100px">
<el-form-item label="药品类别:" prop="itemTypeCode">
<el-select multiple v-model="queryParams.itemTypeCode" clearable style="width: 200px">
<el-option v-for="category in itemList" :key="category.value" :label="category.label"
:value="category.value" />
</el-select>
</el-form-item>
<el-form-item label="选择年份:">
<el-date-picker v-model="queryParams.occurrenceTime" type="year" value-format="YYYY" placeholder="选择日期"
style="width: 200px" />
</el-form-item>
</el-form>
<el-row :gutter="10" style="margin-left: 20px; margin-right: 0px; margin-bottom: 5px">
<el-col :span="1.5">
<!-- v-hasPermi="['system:user:import']" -->
<el-button type="primary" plain icon="Search" @click="handleQuery">查询</el-button>
</el-col>
<el-col :span="1.5">
<!-- v-hasPermi="['system:user:export']" -->
<el-button type="warning" plain icon="CircleClose" @click="handleClear">重置</el-button>
</el-col>
<el-col :span="1.5">
<!-- v-hasPermi="['system:user:export']" -->
<el-button type="warning" plain icon="Download" @click="handleExport">导出</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="basicInformationDetailsList" @selection-change="handleSelectionChange"
height="calc(100vh - 300px)">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" key="no" prop="no" width="200" :show-overflow-tooltip="true" />
<el-table-column label="数据上报日期" align="center" key="dataReportingDate" prop="dataReportingDate" width="200"
:show-overflow-tooltip="true">
<template #default="scope">
<span>{{ parseTime(scope.row.occurrenceTime) }}</span>
</template>
</el-table-column>
<!-- itemTable -->
<el-table-column label="省级行政区划代码" align="center" key="provinceCodes" prop="provinceCodes" width="200"
:show-overflow-tooltip="true" />
<el-table-column label="组织机构代码" align="center" key="organizationCode" prop="organizationCode" width="200"
:show-overflow-tooltip="true" />
<el-table-column label="医疗机构代码" align="center" key="medicalCode" prop="medicalCode" width="200"
:show-overflow-tooltip="true" />
<el-table-column label="组织机构名称" align="center" key="organizationName" prop="organizationName" width="200"
:show-overflow-tooltip="true" />
<el-table-column label="年度药品总收入(元)" align="center" key="yearMedicineTotalRevenue" prop="yearMedicineTotalRevenue"
:show-overflow-tooltip="true" />
<el-table-column label="实有床位数" align="center" key="actualBedsNo" prop="actualBedsNo"
:show-overflow-tooltip="true" />
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
@pagination="getList" />
</div>
</template>
<script setup name="basicInformationDetails">
import {ElMessage} from 'element-plus';
import {getReportBasicInformationDetails,} from './statisticalManagent';
import {onMounted} from 'vue';
const basicInformationDetailsList = ref([]);
const loading = ref(false);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const approvalTime = ref([]);
const supplierListOptions = ref([]);
const locationIdList = ref([]);
const occurrenceTime = ref([]);
const data = reactive({
form: {},
queryParams: {
pageNo: 1,
pageSize: 10,
searchKey: undefined,
occurrenceTimeSTime: undefined,
occurrenceTimeETime: undefined,
occurrenceTime,
itemTypeCode:[]
},
rules: {},
});
const { queryParams, form, rules } = toRefs(data);
const { proxy } = getCurrentInstance();
const { fin_type_code } = proxy.useDict(
'fin_type_code'
);
const itemList = ref([])
watch(
() => fin_type_code.value, // 监听 fin_type_code 的值变化
(newDict) => {
// 确保 newDict 是数组(避免初始值为 undefined
if (Array.isArray(newDict) && newDict.length > 0) {
itemList.value = newDict.filter(item =>
item.label === "西药" || item.label === "中成药" || item.label === "中草药"|| item.label === "外购药品"
);
}
},
{ immediate: true } // 组件挂载时立即执行一次(处理字典已缓存的情况)
);
onMounted(() => {
console.log("fin_type_code:",fin_type_code);
})
function getList() {
loading.value = true;
getReportBasicInformationDetails(queryParams.value).then((res) => {
loading.value = false;
basicInformationDetailsList.value = res.data
});
}
// getList();
/** 搜索按钮操作 */
function handleQuery() {
if(!queryParams.value.itemTypeCode?.length){
ElMessage.warning("请选择药品类型")
}else if(queryParams.value.occurrenceTime == null){
ElMessage.warning("请选择时间")
}else {
queryParams.value.occurrenceTime = occurrenceTime.value;
// queryParams.value.searchKey = row.
queryParams.value.pageNo = 1;
getList();
}
}
function handleClear() {
// 清空查询条件
queryParams.value.occurrenceTime = '';
proxy.resetForm('queryRef');
getList();
}
// 导出
function handleExport() {
proxy.downloadGet(
'/report-manage/report/excel-out/1',
{
...queryParams.value,
},
`年度药品总收入_${proxy.formatDateStr(new Date(), 'YYYY-MM-DD')}.xlsx`
);
}
</script>
<style scoped>
.custom-tree-node {
display: flex;
align-items: center;
}
.title {
font-weight: bold;
font-size: large;
margin-bottom: 10px;
}
</style>