版本更新

This commit is contained in:
Zhang.WH
2025-09-03 15:54:41 +08:00
parent 0b93d16b64
commit 8f82322d10
3290 changed files with 154339 additions and 23829 deletions

View File

@@ -0,0 +1,863 @@
<template>
<div outpatientNo="app-container">
<el-form
style="margin-top:20px;margin-left:20px;"
:model="queryParams"
ref="queryRef"
:inline="true"
label-width="90px"
>
<el-form-item label="发药时间:">
<el-date-picker
v-model="occurrenceTime"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 300px"
value-format="YYYY-MM-DD"
/>
</el-form-item>
<!-- <el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="queryParams.startTime"
type="datetime"
placeholder="请选择开始时间"
format="YYYY/MM/DD HH:mm:ss"
value-format="YYYY/MM/DD HH:mm:ss"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
v-model="queryParams.endTime"
type="datetime"
placeholder="请选择结束时间"
format="YYYY/MM/DD HH:mm:ss"
value-format="YYYY/MM/DD HH:mm:ss"
/>
</el-form-item> -->
<!-- <el-form-item label="商品编码:" prop="medicationDefId">
<el-input
v-model="queryParams.busNo"
placeholder="商品编码:"
clearable
style="width: 200px;"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="商品名称:" prop="medicationName">
<el-input
v-model="queryParams.name"
placeholder="商品名称:"
clearable
style="width: 200px"
@keyup.enter="handleQuery"
/>
</el-form-item> -->
<el-form-item label="药房:" prop="locationId">
<el-select
v-model="queryParams.locationId"
placeholder=""
clearable
style="width: 150px"
>
<el-option
v-for="supplyStatus in locationIdList"
:key="supplyStatus.value"
:label="supplyStatus.name"
:value="supplyStatus.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="药品类型:" prop="categoryType">
<el-select
v-model="queryParams.categoryType"
placeholder=""
clearable
style="width: 150px"
>
<el-option
v-for="categoryCode in item_type"
:key="categoryCode.value"
:label="categoryCode.label"
:value="categoryCode.value"
/>
</el-select>
</el-form-item> -->
<!-- <el-form-item label="病人姓名:" prop="patientName">
<el-input
v-model="queryParams.patientName"
placeholder="请输入病人姓名"
clearable
style="width: 150px"
@keyup.enter="handleQuery"
/>
</el-form-item> -->
<el-form-item label="发药人:" prop="practitionerId">
<el-select
v-model="queryParams.practitionerId"
placeholder=""
clearable
style="width: 150px"
>
<el-option
v-for="supplyStatus in practitionerNameOptions"
:key="supplyStatus.id"
:label="supplyStatus.name"
:value="supplyStatus.id"
/>
</el-select>
</el-form-item>
<el-form-item label="药品查询/病人姓名:" prop="searchKey" label-width="150">
<el-input
v-model="queryParams.searchKey"
placeholder="输入药品名称/拼音/编码/病人姓名后回车查询"
clearable
style="width: 310px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="统计类型:">
<el-select
v-model="inventoryScope"
placeholder=""
style="width: 220px"
@change="inventoryChange(inventoryScope)"
>
<el-option
v-for="supplyStatus in inventoryOptions"
:key="supplyStatus.value"
:label="supplyStatus.label"
:value="supplyStatus.value"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="结算状态:" prop="settlementStatus">
<el-select
v-model="queryParams.settlementStatus"
placeholder=""
clearable
style="width: 150px"
>
<el-option
v-for="supplyStatus in purposeLocationIdList"
:key="supplyStatus.value"
:label="supplyStatus.label"
:value="supplyStatus.value"
/>
</el-select>
</el-form-item> -->
<el-form-item label="出院状态:" prop="dischargeStatus">
<el-select
v-model="queryParams.dischargeStatus"
placeholder=""
clearable
style="width: 150px"
>
<el-option
v-for="supplyStatus in dischargeStatusList"
:key="supplyStatus.value"
:label="supplyStatus.label"
:value="supplyStatus.value"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="供应商:" prop="supplierId">
<el-input
v-model="queryParams.supplierId"
placeholder="回车查询"
clearable
style="width: 200px"
@keyup.enter="handleQuery"
/>
</el-form-item> -->
</el-form>
<el-row :gutter="10" outpatientNo="mb8" 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-row>
<el-table
style="padding:0 20px;width:100%"
v-loading="loading"
:data="purchaseinventoryList"
@selection-change="handleSelectionChange"
:span-method="arraySpanMethod"
>
<!-- :summary-method="getSummaries"
show-summary 每页单独合计-->
<el-table-column type="selection" width="60px" align="center" />
<el-table-column
v-if="inventoryScope==1||inventoryScope==3||inventoryScope==5"
label="发药人"
align="center"
key="practitionerName"
prop="practitionerName"
width="90px"
:show-overflow-tooltip="true"
/>
<el-table-column
v-if="inventoryScope==1||inventoryScope==3||inventoryScope==5"
label="发药单号"
align="center"
key="dispenseNo"
prop="dispenseNo"
width="130px"
:show-overflow-tooltip="true"
/>
<el-table-column
v-if="inventoryScope==2||inventoryScope==4||inventoryScope==6"
:label="inventoryScope==2?'门诊号':'住院号'"
align="center"
key="outpatientNo"
prop="outpatientNo"
width="120px"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column label="门诊号" v-if="inventoryScope==2" width="180" key="outpatientNo" :show-overflow-tooltip="true"
prop="outpatientNo">
<template #default="{ row, column, $index }">
<span v-if="$index === 0 || (purchaseinventoryList[$index - 1].outpatientNo !== row.outpatientNo)">{{ row.outpatientNo }}</span>
</template>
</el-table-column> -->
<el-table-column
v-if="inventoryScope==2||inventoryScope==4||inventoryScope==6"
label="处方号"
align="center"
key="prescriptionNo"
prop="prescriptionNo"
width="120px"
:show-overflow-tooltip="true"
/>
<el-table-column
v-if="inventoryScope==2||inventoryScope==4||inventoryScope==6"
label="病人"
align="center"
key="patientName"
prop="patientName"
width="90px"
:show-overflow-tooltip="true"
/>
<el-table-column
v-if="inventoryScope==2||inventoryScope==4||inventoryScope==6"
label="发药人"
align="center"
key="practitionerName"
prop="practitionerName"
width="90px"
:show-overflow-tooltip="true"
/>
<el-table-column
v-if="inventoryScope==2||inventoryScope==4||inventoryScope==6"
label="发药单号"
align="center"
key="dispenseNo"
prop="dispenseNo"
width="130px"
:show-overflow-tooltip="true"
/>
<el-table-column
label="药品项目"
align="center"
key="medicationName"
prop="medicationName"
width="160px"
:show-overflow-tooltip="true"
/>
<el-table-column
v-if="inventoryScope==1||inventoryScope==3"
label="药品编码"
align="center"
key="busNo"
prop="busNo"
width="130px"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
v-if="inventoryScope==1||inventoryScope==3"
label="医保项目"
align="center"
key="medicalName"
prop="medicalName"
width="140"
:show-overflow-tooltip="true"
/> -->
<el-table-column
v-if="inventoryScope==1||inventoryScope==3"
label="医保编码"
align="center"
key="ybNo"
prop="ybNo"
width="218px"
:show-overflow-tooltip="true"
/>
<el-table-column
label="规格"
align="center"
key="totalVolume"
prop="totalVolume"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="零售价"
align="center"
key="salePrice"
prop="salePrice"
width="80"
:show-overflow-tooltip="true"
/>
<el-table-column
v-if="inventoryScope==1||inventoryScope==3||inventoryScope==5"
label="采购价"
align="center"
key="price"
prop="price"
width="80"
:show-overflow-tooltip="true"
/>
<el-table-column
v-if="inventoryScope==1||inventoryScope==3||inventoryScope==5"
label="采购金额"
align="center"
key="totalPrice"
prop="totalPrice"
width="120"
:show-overflow-tooltip="true"
/> -->
<el-table-column
label="发药数量"
align="center"
key="dispenseQuantity"
prop="dispenseQuantity"
width="100px"
:show-overflow-tooltip="true"
/>
<el-table-column
label="发药金额"
align="center"
key="dispensePrice"
prop="dispensePrice"
width="100px"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退药数量"
align="center"
key="refundQuantity"
prop="refundQuantity"
width="100px"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退药金额"
align="center"
key="refundPrice"
prop="refundPrice"
width="100px"
:show-overflow-tooltip="true"
/>
<el-table-column
label="生产批号"
align="center"
key="lotNumber"
prop="lotNumber"
:show-overflow-tooltip="true"
width="120px"
/>
<el-table-column
label="厂家/产地"
align="center"
key="manufacturerText"
prop="manufacturerText"
:show-overflow-tooltip="true"
/>
<el-table-column
label="供应商"
align="center"
key="supplierName"
prop="supplierName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="发药时间"
align="center"
key="dispenseTime"
prop="dispenseTime"
:show-overflow-tooltip="true"
>
<template #default="scope">
<span>{{ parseTime(scope.row.dispenseTime) }}</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList(1)"
/>
<el-row
:gutter="10"
outpatientNo="mb8"
style="
margin-top: 10px;
display: flex;
align-items: center;
justify-content: flex-start;
margin-left:0px;margin-right:0px;padding:0 20px;
"
>
<el-col :span="3">
<span>制单人{{ userStore.name }}</span>
</el-col>
<!-- <el-col :span="6">
<el-row
:gutter="8"
style="
display: flex;
align-items: center;
justify-content: flex-start;
"
>
<el-col :span="10">
<span>合计金额{{ totalAmount?totalAmount.toFixed(4):0 }}</span>
</el-col>
</el-row>
</el-col> -->
</el-row>
</div>
</template>
<script setup name="medicationDetails">
import {
getPharmacyCabinetList,
getAmbMedicationDetail,
getAmbPractitionerDetail,
getMedicationDetailsInit
} from "./statisticalManagent";
import useUserStore from "@/store/modules/user";
import { watch } from "vue";
import { endsWith } from "lodash";
const userStore = useUserStore();
const router = useRouter();
const { proxy } = getCurrentInstance();
const totalAmount = ref(0);
const {
item_type,
} = proxy.useDict(
"item_type",
);
const purchaseinventoryListAll = ref([])
const xiaojiTotal = ref([])
const rowSpan = ref(1)
const purposeLocationIdList = ref([])
const dischargeStatusList = ref([])
const inventoryOptions = ref([])
const purchaseinventoryList = ref([]);
const loading = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const occurrenceTime = ref([]);
const practitionerNameOptions = ref([]);
const inventoryScope = ref(1)
const locationIdList = ref([]);
const data = reactive({
form: {},
queryParams: {
pageNo: 1,
pageSize: 10,
searchKey: undefined,
practitionerId: undefined,
// busNo:undefined,
dischargeStatus: undefined,
// settlementStatus:undefined,
locationId:undefined,
// patientName: undefined,
dispenseTimeSTime:undefined,
dispenseTimeETime:undefined,
},
rules: {},
});
const { queryParams, form, rules } = toRefs(data);
watch(
() => purchaseinventoryList.value,
(newVlaue) => {
if(newVlaue&&newVlaue.length>0){
handleTotalAmount()
}
},
{ immediate: true }
);
watch(
() => inventoryScope.value,
(newVlaue) => {
inventoryScope.value = newVlaue
},
{ immediate: true }
);
/**计算合计金额 */
function handleTotalAmount() {
totalAmount.value = purchaseinventoryList.value.reduce(
(accumulator, currentRow) => {
return (accumulator + (Number(currentRow.totalPrice) || 0))
},
0
);
}
function getTotals(row,i){
let dispensePriceSums = Number(purchaseinventoryList.value[i].dispensePrice)
let totalReturnPriceSums = Number(purchaseinventoryList.value[i].refundPrice)
for (let j=1; i-j>=0; j++) {
if (purchaseinventoryList.value[i].outpatientNo == purchaseinventoryList.value[i-j].outpatientNo) {
dispensePriceSums += Number(purchaseinventoryList.value[i-j].dispensePrice)
totalReturnPriceSums += Number(purchaseinventoryList.value[i-j].refundPrice)
}
}
xiaojiTotal.value.push({inde:i+1,outpatientNo:row.outpatientNo,dispensePrice:dispensePriceSums,refundPrice:totalReturnPriceSums})
// var dispensePrice2 = 0
// var refundPrice2 = 0
purchaseinventoryList.value.splice(i+1, 0, {outpatientNo:row.outpatientNo,prescriptionNo:'小计',dispensePrice:dispensePriceSums.toFixed(4)||0,refundPrice:totalReturnPriceSums.toFixed(4)||0})
// purchaseinventoryList.value.map(k=>{
// if(k.prescriptionNo!='小计'){
// dispensePrice2 += Number(k.dispensePrice)
// refundPrice2 += Number(k.refundPrice)
// }
// })
// dispensePrice2 = dispensePrice2?dispensePrice2.toFixed(4):dispensePrice2
// refundPrice2 = refundPrice2?refundPrice2.toFixed(4):refundPrice2
// purchaseinventoryList.value.push({prescriptionNo:'合计',dispensePrice:dispensePrice2,refundPrice:refundPrice2})
}
const arraySpanMethod = ({
row,
column,
rowIndex,
columnIndex,
}) => {
// 合并一样的列住院号 outpatientNumber属性
if (columnIndex === 1&&(inventoryScope.value==2||inventoryScope.value==4||inventoryScope.value==6)) {
if (rowIndex === 0 || (rowIndex > 0 && row.outpatientNo !== purchaseinventoryList.value[rowIndex - 1]?.outpatientNo)) {
let rowspan = 1;
let dispensePriceSum = 0
let totalReturnPriceSum = 0
for (let i = rowIndex + 1; i < purchaseinventoryList.value.length; i++) {
if (purchaseinventoryList.value[i].outpatientNo === row.outpatientNo) {
rowspan++;
dispensePriceSum += Number(purchaseinventoryList.value[i].dispensePrice)
totalReturnPriceSum += Number(purchaseinventoryList.value[i].refundPrice)
if(i==purchaseinventoryList.value.length-1){
let findIndexTotal = xiaojiTotal.value.findIndex(k=>k.outpatientNo==row.outpatientNo)
if(findIndexTotal<0){
getTotals(row,i)
}
}
} else {
dispensePriceSum += Number(row.dispensePrice)
totalReturnPriceSum += Number(row.refundPrice)
let findIndexTotal = xiaojiTotal.value.findIndex(k=>k.outpatientNo==row.outpatientNo)
if(findIndexTotal<0){
xiaojiTotal.value.push({inde:i,outpatientNo:row.outpatientNo,dispensePrice:dispensePriceSum,refundPrice:totalReturnPriceSum})
purchaseinventoryList.value.splice(i, 0, {outpatientNo:row.outpatientNo,prescriptionNo:'小计',dispensePrice:dispensePriceSum.toFixed(4)||0,refundPrice:totalReturnPriceSum.toFixed(4)||0})
}
break;
}
}
return { rowspan, colspan: 1 };
} else {
return { rowspan: 0, colspan: 0 };
}
}
}
const getSummaries = (param) => {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = h('div', { style: { textDecoration: 'underline' } }, [
'合计',
])
return
}
const values = data.map((item) => (item.prescriptionNo!='小计'&&Number(item[column.property])))
if (column.property=='refundPrice'||column.property=='dispensePrice'||column.property=='totalPrice') {
// !values.every((value) => Number.isNaN(value))
sums[index] = `${values.reduce((prev, curr) => {
const value = Number(curr)
if (!Number.isNaN(value)) {
return (Number(prev) + Number(curr)).toFixed(4) || 0
} else {
return Number(prev)
}
}, 0)}`
} else {
sums[index] = ' '
}
})
return sums
}
function inventoryChange(val){
inventoryScope.value = val
xiaojiTotal.value = []
purchaseinventoryList.value = []
getList()
}
function getPharmacyCabinetLists() {
// 统计类型
inventoryOptions.value = [
{value:1,label:'门诊人员发药明细'},
{value:2,label:'门诊发药明细流水账'},
{value:3,label:'住院人员发药明细账'},
{value:4,label:'住院发药明细流水账'},
{value:5,label:'住院耗材记账领用明细'},
{value:6,label:'住院耗材记账领用流水账'}
]
// practitionerNameOptions.value = [{value:' ',label:'全部'},{value:"2",label:'超级管理员'},{value:"1925368521993523202",label:'郭鑫'}]
purposeLocationIdList.value = [{value:' ',label:'全部'},{value:1,label:'已结算'},{value:2,label:'未结算'}]
dischargeStatusList.value = [{value:' ',label:'全部'},{value:1,label:'已出院'},{value:2,label:'未出院'}]
getPharmacyCabinetList().then((response) => {
locationIdList.value = response.data
})
getMedicationDetailsInit().then((response) => {
practitionerNameOptions.value = response.data.practitionerList
})
}
/** 查询调拨管理项目列表 */
function getList(type) {
if(type){
xiaojiTotal.value = []
purchaseinventoryList.value = []
}
loading.value = true;
// let queryParamsValues ={...queryParams.value}
// delete queryParamsValues.inventoryScope
if(inventoryScope.value==1||inventoryScope.value==3||inventoryScope.value==5){
var dispensePrice = 0
var refundPrice = 0
getAmbPractitionerDetail(queryParams.value).then((res) => {
purchaseinventoryList.value = res.data.records
total.value = res.data.total;
if(purchaseinventoryList.value.length==0){
return
}
purchaseinventoryList.value.map(k=>{
k.dispensePrice = k.dispensePrice || '0.00'
k.refundPrice = k.refundPrice || '0.00'
k.dispenseQuantity = k.dispenseQuantity?(k.dispenseQuantity+k.unitCode_dictText):('0.00'+ k.unitCode_dictText)
k.refundQuantity = k.refundQuantity?(k.refundQuantity+k.refundUnitCode_dictText):('0.00'+ k.unitCode_dictText)
if(total.value&&total.value<=queryParams.value.pageSize){
dispensePrice += Number(k.dispensePrice)
refundPrice += Number(k.refundPrice)
}
})
// 1页数据
if(total.value&&total.value<=queryParams.value.pageSize){
dispensePrice = dispensePrice?dispensePrice.toFixed(4):dispensePrice
refundPrice = refundPrice?refundPrice.toFixed(4):refundPrice
let pageNoAll = total.value / queryParams.value.pageSize
if(Math.ceil(pageNoAll)==queryParams.value.pageNo){
purchaseinventoryList.value.push({practitionerName:'合计',dispensePrice:dispensePrice,refundPrice:refundPrice})
}
}
loading.value = false;
// 带分页数据
if(total.value&&total.value>queryParams.value.pageSize){
let queryParamsValue = {
pageNo:1,
pageSize:total.value
}
getAmbPractitionerDetail(queryParamsValue).then((res) => {
purchaseinventoryListAll.value = res.data.records||[]
if(purchaseinventoryListAll.value.length>0){
purchaseinventoryListAll.value.map(k=>{
k.dispensePrice = k.dispensePrice || '0.00'
k.refundPrice = k.refundPrice || '0.00'
k.dispenseQuantity = k.dispenseQuantity?(k.dispenseQuantity+k.unitCode_dictText):('0.00'+ k.unitCode_dictText)
k.refundQuantity = k.refundQuantity?(k.refundQuantity+k.refundUnitCode_dictText):('0.00'+ k.unitCode_dictText)
dispensePrice += Number(k.dispensePrice)
refundPrice += Number(k.refundPrice)
})
dispensePrice = dispensePrice?dispensePrice.toFixed(4):dispensePrice
refundPrice = refundPrice?refundPrice.toFixed(4):refundPrice
let pageNoAll = total.value / queryParams.value.pageSize
if(Math.ceil(pageNoAll)==queryParams.value.pageNo){
purchaseinventoryList.value.push({practitionerName:'合计',dispensePrice:dispensePrice,refundPrice:refundPrice})
}
}
})
}
});
}else if(inventoryScope.value==2||inventoryScope.value==4||inventoryScope.value==6){
var dispensePrice2 = 0
var refundPrice2 = 0
getAmbMedicationDetail(queryParams.value).then((res) => {
purchaseinventoryList.value = res.data.records
total.value = res.data.total;
if(purchaseinventoryList.value.length==0){
return
}
purchaseinventoryList.value.map(k=>{
k.dispensePrice = k.dispensePrice || '0.00'
k.refundPrice = k.refundPrice || '0.00'
k.dispenseQuantity = k.dispenseQuantity?(k.dispenseQuantity+k.unitCode_dictText):('0.00'+ k.unitCode_dictText)
k.refundQuantity = k.refundQuantity?(k.refundQuantity+k.refundUnitCode_dictText):('0.00'+ k.unitCode_dictText)
if(total.value&&total.value<=queryParams.value.pageSize){
dispensePrice2 += Number(k.dispensePrice)
refundPrice2 += Number(k.refundPrice)
}
})
// 1页数据
if(total.value&&total.value<=queryParams.value.pageSize){
dispensePrice2 = dispensePrice2?dispensePrice2.toFixed(4):dispensePrice2
refundPrice2 = refundPrice2?refundPrice2.toFixed(4):refundPrice2
let pageNoAll = total.value / queryParams.value.pageSize
if(Math.ceil(pageNoAll)==queryParams.value.pageNo){
purchaseinventoryList.value.push({prescriptionNo:'合计',dispensePrice:dispensePrice2,refundPrice:refundPrice2})
}
}
loading.value = false;
// 带分页数据
if(total.value&&total.value>queryParams.value.pageSize){
let queryParamsValue = {
pageNo:1,
pageSize:total.value
}
getAmbMedicationDetail(queryParamsValue).then((res) => {
purchaseinventoryListAll.value = res.data.records
if(purchaseinventoryListAll.value.length==0){
return
}
purchaseinventoryListAll.value.map((k,index)=>{
k.dispensePrice = k.dispensePrice || '0.00'
k.refundPrice = k.refundPrice || '0.00'
k.dispenseQuantity = k.dispenseQuantity?(k.dispenseQuantity+k.unitCode_dictText):('0.00'+ k.unitCode_dictText)
k.refundQuantity = k.refundQuantity?(k.refundQuantity+k.refundUnitCode_dictText):('0.00'+ k.unitCode_dictText)
dispensePrice2 += Number(k.dispensePrice)
refundPrice2 += Number(k.refundPrice)
//处理每页门诊号相同数据分开不在一页的问题start
for(let m = 1;m<queryParams.value.pageSize&&m<index;m++){
if (queryParams.value.pageNo>1&&index == (queryParams.value.pageSize*(queryParams.value.pageNo-1))&&
k.outpatientNo == purchaseinventoryListAll.value[index - m]?.outpatientNo
) {
purchaseinventoryList.value.unshift(purchaseinventoryListAll.value[index-m]) // 加
//修改计算的小计缺少加过来的部分
let dispenseNoIndex1 = purchaseinventoryList.value.findIndex(o=>o.prescriptionNo=='小计'&&o.outpatientNo==purchaseinventoryListAll.value[index-m].outpatientNo)
purchaseinventoryList.value[dispenseNoIndex1].dispensePrice = Number(purchaseinventoryList.value[dispenseNoIndex1].dispensePrice)+Number(purchaseinventoryListAll.value[index-m].dispensePrice)
purchaseinventoryList.value[dispenseNoIndex1].refundPrice = Number(purchaseinventoryList.value[dispenseNoIndex1].refundPrice)+Number(purchaseinventoryListAll.value[index-m].refundPrice)
}
if ((index+m) == (queryParams.value.pageSize*queryParams.value.pageNo)&& k.outpatientNo == purchaseinventoryListAll.value[index + m]?.outpatientNo) {
let dispenseNoIndex = purchaseinventoryList.value.findIndex(o=>o.dispenseNo==k.dispenseNo)
purchaseinventoryList.value.splice(dispenseNoIndex,1) // 减
if(purchaseinventoryList.value[dispenseNoIndex-1]&&purchaseinventoryList.value[dispenseNoIndex-1].prescriptionNo=='小计'){
purchaseinventoryList.value.splice(dispenseNoIndex+1,1) // 减掉带小计的
}
}
}
// end
})
dispensePrice2 = dispensePrice2?dispensePrice2.toFixed(4):dispensePrice2
refundPrice2 = refundPrice2?refundPrice2.toFixed(4):refundPrice2
let pageNoAll = total.value / queryParams.value.pageSize
if(Math.ceil(pageNoAll)==queryParams.value.pageNo){
purchaseinventoryList.value.push({prescriptionNo:'合计',dispensePrice:dispensePrice2,refundPrice:refundPrice2})
}
})
}
});
}else{
total.value =0
purchaseinventoryList.value = [
{outpatientNo:'M2505070009100304',prescriptionNo:'CF2505070009101361',dispenseTime:'2025-05-07 16:28',practitionerName:'张三',practitionerName:'王东收费',medicationName:'依折麦布片',busNo:'yp3065',medicalName:'依折麦布片',ybNo:'XC10AXY097A0010',totalVolume:'10mg*10',salePrice:'63.56',price:'63.56',totalPrice:'63.56',dispenseQuantity:'1盒',dispensePrice:'63.56',refundQuantity:'0.00盒',refundPrice:'0.00',lotNumber:'Y013201',manufacturerText:'杭州默沙东制药有限公司',supplierName:'旧系统批量'},
{outpatientNo:'M2505070009100304',prescriptionNo:'CF2505070009101362',dispenseTime:'2025-05-07 16:28',practitionerName:'张三',practitionerName:'王东收费',medicationName:'布洛芬缓释胶囊',busNo:'yp3065',medicalName:'布洛芬缓释胶囊',ybNo:'XC10AXY097A0010',totalVolume:'0.3g*24',salePrice:'4.8',price:'4.8',totalPrice:'4.8',dispenseQuantity:'1盒',dispensePrice:'4.8',refundQuantity:'0.00盒',refundPrice:'0.00',lotNumber:'72240709',manufacturerText:'上海信谊天平药业有限公司',supplierName:'旧系统批量'},
{outpatientNo:'M2505070009100305',prescriptionNo:'CF2505070009101363',dispenseTime:'2025-05-07 16:28',practitionerName:'张三',practitionerName:'王东收费',medicationName:'布洛芬缓释胶囊',busNo:'yp3065',medicalName:'布洛芬缓释胶囊',ybNo:'XC10AXY097A0010',totalVolume:'0.3g*24',salePrice:'4.8',price:'4.8',totalPrice:'4.8',dispenseQuantity:'1盒',dispensePrice:'4.8',refundQuantity:'0.00盒',refundPrice:'0.00',lotNumber:'72240709',manufacturerText:'上海信谊天平药业有限公司',supplierName:'旧系统批量'},
{outpatientNo:'M2505070009100305',prescriptionNo:'CF2505070009101364',dispenseTime:'2025-05-07 16:28',practitionerName:'张三',practitionerName:'王东收费',medicationName:'依折麦布片',busNo:'yp3065',medicalName:'依折麦布片',ybNo:'XC10AXY097A0010',totalVolume:'10mg*10',salePrice:'63.56',price:'63.56',totalPrice:'63.56',dispenseQuantity:'1盒',dispensePrice:'63.56',refundQuantity:'0.00盒',refundPrice:'0.00',lotNumber:'Y013201',manufacturerText:'杭州默沙东制药有限公司',supplierName:'旧系统批量'},
{outpatientNo:'M2505070009100305',prescriptionNo:'CF2505070009101365',dispenseTime:'2025-05-07 16:28',practitionerName:'张三',practitionerName:'王东收费',medicationName:'布洛芬缓释胶囊',busNo:'yp3065',medicalName:'布洛芬缓释胶囊',ybNo:'XC10AXY097A0010',totalVolume:'0.3g*24',salePrice:'4.8',price:'4.8',totalPrice:'4.8',dispenseQuantity:'1盒',dispensePrice:'4.8',refundQuantity:'0.00盒',refundPrice:'0.00',lotNumber:'72240709',manufacturerText:'上海信谊天平药业有限公司',supplierName:'旧系统批量'},
{outpatientNo:'M2505070009100305',prescriptionNo:'CF2505070009101366',dispenseTime:'2025-05-07 16:28',practitionerName:'张三',practitionerName:'王东收费',medicationName:'布洛芬缓释胶囊',busNo:'yp3065',medicalName:'布洛芬缓释胶囊',ybNo:'XC10AXY097A0010',totalVolume:'0.3g*24',salePrice:'4.8',price:'4.8',totalPrice:'4.8',dispenseQuantity:'1盒',dispensePrice:'4.8',refundQuantity:'0.00盒',refundPrice:'0.00',lotNumber:'72240709',manufacturerText:'上海信谊天平药业有限公司',supplierName:'旧系统批量'},
{outpatientNo:'M2505070009100306',prescriptionNo:'CF2505070009101367',dispenseTime:'2025-05-07 16:28',practitionerName:'张三',practitionerName:'王东收费',medicationName:'依折麦布片',busNo:'yp3065',medicalName:'依折麦布片',ybNo:'XC10AXY097A0010',totalVolume:'10mg*10',salePrice:'63.56',price:'63.56',totalPrice:'63.56',dispenseQuantity:'1盒',dispensePrice:'63.56',refundQuantity:'0.00盒',refundPrice:'0.00',lotNumber:'Y013201',manufacturerText:'杭州默沙东制药有限公司',supplierName:'旧系统批量'},
{outpatientNo:'M2505070009100306',prescriptionNo:'CF2505070009101368',dispenseTime:'2025-05-07 16:28',practitionerName:'张三',practitionerName:'王东收费',medicationName:'布洛芬缓释胶囊',busNo:'yp3065',medicalName:'布洛芬缓释胶囊',ybNo:'XC10AXY097A0010',totalVolume:'0.3g*24',salePrice:'4.8',price:'4.8',totalPrice:'4.8',dispenseQuantity:'1盒',dispensePrice:'4.8',refundQuantity:'0.00盒',refundPrice:'0.00',lotNumber:'72240709',manufacturerText:'上海信谊天平药业有限公司',supplierName:'旧系统批量'},
{outpatientNo:'M2505070009100306',prescriptionNo:'CF2505070009101369',dispenseTime:'2025-05-07 16:28',practitionerName:'张三',practitionerName:'王东收费',medicationName:'布洛芬缓释胶囊',busNo:'yp3065',medicalName:'布洛芬缓释胶囊',ybNo:'XC10AXY097A0010',totalVolume:'0.3g*24',salePrice:'4.8',price:'4.8',totalPrice:'4.8',dispenseQuantity:'1盒',dispensePrice:'4.8',refundQuantity:'0.00盒',refundPrice:'0.00',lotNumber:'72240709',manufacturerText:'上海信谊天平药业有限公司',supplierName:'旧系统批量'},
{outpatientNo:'M2505070009100307',prescriptionNo:'CF2505070009101368',dispenseTime:'2025-05-07 16:28',practitionerName:'张三',practitionerName:'王东收费',medicationName:'布洛芬缓释胶囊',busNo:'yp3065',medicalName:'布洛芬缓释胶囊',ybNo:'XC10AXY097A0010',totalVolume:'0.3g*24',salePrice:'4.8',price:'4.8',totalPrice:'4.8',dispenseQuantity:'1盒',dispensePrice:'4.8',refundQuantity:'0.00盒',refundPrice:'0.00',lotNumber:'72240709',manufacturerText:'上海信谊天平药业有限公司',supplierName:'旧系统批量'},
{outpatientNo:'M2505070009100307',prescriptionNo:'CF2505070009101369',dispenseTime:'2025-05-07 16:28',practitionerName:'张三',practitionerName:'王东收费',medicationName:'布洛芬缓释胶囊',busNo:'yp3065',medicalName:'布洛芬缓释胶囊',ybNo:'XC10AXY097A0010',totalVolume:'0.3g*24',salePrice:'2.8',price:'2.8',totalPrice:'2.8',dispenseQuantity:'1盒',dispensePrice:'2.8',refundQuantity:'0.00盒',refundPrice:'0.00',lotNumber:'72240709',manufacturerText:'上海信谊天平药业有限公司',supplierName:'旧系统批量'},
]
loading.value = false;
}
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.dispenseTimeSTime =
occurrenceTime.value && occurrenceTime.value.length == 2
? occurrenceTime.value[0] + " 00:00:00"
: "";
queryParams.value.dispenseTimeETime =
occurrenceTime.value && occurrenceTime.value.length == 2
? occurrenceTime.value[1] + " 23:59:59"
: "";
queryParams.value.pageNo = 1;
getList(1);
}
/** 清空条件按钮操作 */
function handleClear() {
// 清空查询条件
occurrenceTime.value = ""
queryParams.value.dispenseTimeSTime = ""
queryParams.value.dispenseTimeETime = ""
proxy.resetForm("queryRef");
getList(1);
}
/** 选择条数 */
function handleSelectionChange(selection) {
ids.value = selection.map((item) => item.id);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
getList();
getPharmacyCabinetLists()
</script>
<style scoped>
.custom-tree-node {
display: flex;
align-items: center;
}
.pagination-container{
margin-right: 20px;
}
</style>