版本更新

This commit is contained in:
Zhang.WH
2025-10-16 17:38:08 +08:00
parent f515bb8fbb
commit e4c5f36f2e
488 changed files with 41436 additions and 2901 deletions

View File

@@ -3,77 +3,196 @@
<el-tabs v-model="activeTabName" type="card" class="inOut-tabs" @tab-click="hendleTabChange">
<el-tab-pane label="对账" name="first">
<el-row :guutter="15">
<el-form :model="totalPrice" ref="priceRef" :inline="true">
<el-row :guutter="15">
<el-form-item label="结算经办机构:" prop="setlOptins" label-width="160px">
<el-input v-model="totalPrice.setlOptins" placeholder="请输入结算经办机构" clearable style="width: 150px"
@keyup.enter="handleQuery" />
<el-input
v-model="totalPrice.setlOptins"
placeholder="请输入结算经办机构"
clearable
style="width: 150px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="结算日期:" label-width="130px">
<el-date-picker v-model="occurrenceTime" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
start-placeholder="开始日期" end-placeholder="结束日期" style="width: 300px"></el-date-picker>
<el-date-picker
v-model="occurrenceTime"
value-format="YYYY-MM-DD"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 300px"
></el-date-picker>
</el-form-item>
<el-form-item label="清算类型:" prop="clrType" label-width="160px">
<el-select v-model="queryParams.clrType" placeholder="请选择清算类型" clearable style="width: 150px">
<el-option v-for="categoryCode in clrTypeOptions" :key="categoryCode.value" :label="categoryCode.label"
:value="categoryCode.value" />
<el-select
v-model="queryParams.clrType"
placeholder="请选择清算类型"
clearable
style="width: 150px"
>
<el-option
v-for="categoryCode in clrTypeOptions"
:key="categoryCode.value"
:label="categoryCode.label"
:value="categoryCode.value"
/>
</el-select>
</el-form-item>
<el-form-item label="险种类型:" prop="insutype" label-width="160px">
<el-select v-model="queryParams.insutype" placeholder="请选择险种类型" clearable style="width: 150px">
<el-option v-for="categoryCode in insutypeOptions" :key="categoryCode.value" :label="categoryCode.label"
:value="categoryCode.value" />
<el-select
v-model="queryParams.insutype"
placeholder="请选择险种类型"
clearable
style="width: 150px"
>
<el-option
v-for="categoryCode in insutypeOptions"
:key="categoryCode.value"
:label="categoryCode.label"
:value="categoryCode.value"
/>
</el-select>
</el-form-item>
</el-row>
<el-row :guutter="15">
<el-form-item label="医疗费总额:" prop="medfeeSumamt" label-width="160px">
<el-input v-model="totalPrice.medfeeSumamt" placeholder="请输入医疗费总额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.medfeeSumamt"
placeholder="请输入医疗费总额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="基金支付总额:" prop="fundAppySum" label-width="160px">
<el-input v-model="totalPrice.fundAppySum" placeholder="请输入基金支付总额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.fundAppySum"
placeholder="请输入基金支付总额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="个人账户支付金额:" prop="acctPay" label-width="160px">
<el-input v-model="totalPrice.acctPay" placeholder="请输入个人账户支付金额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.acctPay"
placeholder="请输入个人账户支付金额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="现金支付金额:" prop="cashPayamt" label-width="160px">
<el-input v-model="totalPrice.cashPayamt" placeholder="请输入现金支付金额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.cashPayamt"
placeholder="请输入现金支付金额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="结算笔数:" prop="setlCnt" label-width="160px">
<el-input v-model="totalPrice.setlCnt" placeholder="请输入结算笔数" clearable style="width: 150px" />
<el-input
v-model="totalPrice.setlCnt"
placeholder="请输入结算笔数"
clearable
style="width: 150px"
/>
</el-form-item>
<!-- <el-button type="primary" plain icon="Edit" @click="handOperatedApply">手动清算</el-button> -->
<el-button type="primary" plain icon="Edit" @click="handOperatedReconcileAccounts">手动对账</el-button>
<el-button type="primary" plain icon="Edit" @click="handOperatedReconcileAccounts"
>手动对账</el-button
>
</el-row>
</el-form>
</el-row>
<!-- </div> -->
<el-table v-loading="loading" :data="purchaseinventoryList" @selection-change="handleSelectionChange"
@row-click="handleRowClick">
<el-table
v-loading="loading"
:data="purchaseinventoryList"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="申请清算ID" align="center" key="outResult" prop="outResult" width="270"
:show-overflow-tooltip="true" />
<el-table-column label="开始时间" align="center" key="begndate" prop="begndate" width="150"
:show-overflow-tooltip="true" />
<el-table-column label="结束时间" align="center" key="enddate" prop="enddate" width="150"
:show-overflow-tooltip="true" />
<el-table-column label="清算类别" align="center" key="clrType" prop="clrType" width="100"
:show-overflow-tooltip="true" />
<el-table-column label="总费用" align="center" key="medfeeSumamt" prop="medfeeSumamt" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="医保认可总费用" align="center" key="medSumfee" prop="medSumfee" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="基金申报金额" align="center" key="fundAppySum" prop="fundAppySum" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="现金支付总额" align="center" key="cashPayamt" prop="cashPayamt" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="个人账户金额" align="center" key="acctPay" prop="acctPay" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" key="status" prop="status" width="170" :show-overflow-tooltip="true">
<el-table-column
label="申请清算ID"
align="center"
key="outResult"
prop="outResult"
width="270"
:show-overflow-tooltip="true"
/>
<el-table-column
label="开始时间"
align="center"
key="begndate"
prop="begndate"
width="150"
:show-overflow-tooltip="true"
/>
<el-table-column
label="结束时间"
align="center"
key="enddate"
prop="enddate"
width="150"
:show-overflow-tooltip="true"
/>
<el-table-column
label="清算类别"
align="center"
key="clrType"
prop="clrType"
width="100"
:show-overflow-tooltip="true"
/>
<el-table-column
label="总费用"
align="center"
key="medfeeSumamt"
prop="medfeeSumamt"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="医保认可总费用"
align="center"
key="medSumfee"
prop="medSumfee"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="基金申报金额"
align="center"
key="fundAppySum"
prop="fundAppySum"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="现金支付总额"
align="center"
key="cashPayamt"
prop="cashPayamt"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="个人账户金额"
align="center"
key="acctPay"
prop="acctPay"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="状态"
align="center"
key="status"
prop="status"
width="170"
:show-overflow-tooltip="true"
>
<template #default="scope">
<span>{{ parseTime(scope.row.setlTime) }}</span>
</template>
@@ -89,33 +208,77 @@
<span>{{ scope.row.refdSetlFlag==1?'退费':'' }}</span>
</template>
</el-table-column> -->
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
<el-table-column
label="操作"
align="center"
width="300"
class-name="small-padding fixed-width"
fixed="right"
>
<template #default="scope">
<el-button type="danger" link icon="revoked-filled" :disabled="scope.row.id == ''"
@click="revokedSelectedRows(scope.row)">
<el-button
type="danger"
link
icon="revoked-filled"
:disabled="scope.row.id == ''"
@click="revokedSelectedRows(scope.row)"
>
撤销
</el-button>
</template>
</el-table-column>
</el-table>
<span class="descriptions-item-label">对账结果</span>
<div
style="
background: #f5f7fa;
border: solid 1px;
border-color: #e4e7ed;
width: 50%;
height: 100px;
margin-top: 20px;
"
>
<span>{{ reconciliation }}</span>
</div>
</el-tab-pane>
<el-tab-pane label="清算" name="second">
<el-row :guutter="15">
<el-form :model="totalPrice" ref="priceRef" :inline="true">
<el-row :guutter="15">
<el-form-item label="结算经办机构:" prop="setlOptins" label-width="160px">
<el-input v-model="totalPrice.setlOptins" placeholder="请输入结算经办机构" clearable style="width: 150px"
@keyup.enter="handleQuery" />
<el-input
v-model="totalPrice.setlOptins"
placeholder="请输入结算经办机构"
clearable
style="width: 150px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="结算日期:" label-width="130px">
<el-date-picker v-model="occurrenceTime" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
start-placeholder="开始日期" end-placeholder="结束日期" style="width: 300px"></el-date-picker>
<el-date-picker
v-model="occurrenceTime"
value-format="YYYY-MM-DD"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 300px"
></el-date-picker>
</el-form-item>
<el-form-item label="清算类型:" prop="clrType" label-width="160px">
<el-select v-model="queryParams.clrType" placeholder="请选择清算类型" clearable style="width: 150px">
<el-option v-for="categoryCode in clrTypeOptions" :key="categoryCode.value" :label="categoryCode.label"
:value="categoryCode.value" />
<el-select
v-model="queryParams.clrType"
placeholder="请选择清算类型"
clearable
style="width: 150px"
>
<el-option
v-for="categoryCode in clrTypeOptions"
:key="categoryCode.value"
:label="categoryCode.label"
:value="categoryCode.value"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="险种类型:" prop="insutype" label-width="160px">
@@ -127,51 +290,136 @@
</el-row>
<el-row :guutter="15">
<el-form-item label="医疗费总额:" prop="medfeeSumamt" label-width="160px">
<el-input v-model="totalPrice.medfeeSumamt" placeholder="请输入医疗费总额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.medfeeSumamt"
placeholder="请输入医疗费总额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="基金支付总额:" prop="fundAppySum" label-width="160px">
<el-input v-model="totalPrice.fundAppySum" placeholder="请输入基金支付总额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.fundAppySum"
placeholder="请输入基金支付总额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="个人账户支付金额:" prop="acctPay" label-width="160px">
<el-input v-model="totalPrice.acctPay" placeholder="请输入个人账户支付金额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.acctPay"
placeholder="请输入个人账户支付金额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="现金支付金额:" prop="cashPayamt" label-width="160px">
<el-input v-model="totalPrice.cashPayamt" placeholder="请输入现金支付金额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.cashPayamt"
placeholder="请输入现金支付金额"
clearable
style="width: 150px"
/>
</el-form-item>
<!-- <el-form-item label="结算笔数:" prop="setlCnt" label-width="160px">
<el-input v-model="totalPrice.setlCnt" placeholder="请输入结算笔数" clearable style="width: 150px" />
</el-form-item> -->
<el-button type="primary" plain icon="Edit" @click="handOperatedApply">手动清算</el-button>
<el-button type="primary" plain icon="Edit" @click="handOperatedApply"
>手动清算</el-button
>
<!-- <el-button type="primary" plain icon="Edit" @click="handOperatedReconcileAccounts">手动对账</el-button> -->
</el-row>
</el-form>
</el-row>
<!-- </div> -->
<el-table v-loading="loading" :data="purchaseinventoryList" @selection-change="handleSelectionChange"
@row-click="handleRowClick">
<el-table
v-loading="loading"
:data="purchaseinventoryList"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="申请清算ID" align="center" key="outResult" prop="outResult" width="270"
:show-overflow-tooltip="true" />
<el-table-column label="开始时间" align="center" key="begndate" prop="begndate" width="150"
:show-overflow-tooltip="true" />
<el-table-column label="结束时间" align="center" key="enddate" prop="enddate" width="150"
:show-overflow-tooltip="true" />
<el-table-column label="清算类别" align="center" key="clrType" prop="clrType" width="100"
:show-overflow-tooltip="true" />
<el-table-column label="总费用" align="center" key="medfeeSumamt" prop="medfeeSumamt" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="医保认可总费用" align="center" key="medSumfee" prop="medSumfee" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="基金申报金额" align="center" key="fundAppySum" prop="fundAppySum" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="现金支付总额" align="center" key="cashPayamt" prop="cashPayamt" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="个人账户金额" align="center" key="acctPay" prop="acctPay" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" key="status" prop="status" width="170" :show-overflow-tooltip="true">
<el-table-column
label="申请清算ID"
align="center"
key="outResult"
prop="outResult"
width="270"
:show-overflow-tooltip="true"
/>
<el-table-column
label="开始时间"
align="center"
key="begndate"
prop="begndate"
width="150"
:show-overflow-tooltip="true"
/>
<el-table-column
label="结束时间"
align="center"
key="enddate"
prop="enddate"
width="150"
:show-overflow-tooltip="true"
/>
<el-table-column
label="清算类别"
align="center"
key="clrType"
prop="clrType"
width="100"
:show-overflow-tooltip="true"
/>
<el-table-column
label="总费用"
align="center"
key="medfeeSumamt"
prop="medfeeSumamt"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="医保认可总费用"
align="center"
key="medSumfee"
prop="medSumfee"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="基金申报金额"
align="center"
key="fundAppySum"
prop="fundAppySum"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="现金支付总额"
align="center"
key="cashPayamt"
prop="cashPayamt"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="个人账户金额"
align="center"
key="acctPay"
prop="acctPay"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="状态"
align="center"
key="status"
prop="status"
width="170"
:show-overflow-tooltip="true"
>
<template #default="scope">
<span>{{ parseTime(scope.row.setlTime) }}</span>
</template>
@@ -187,32 +435,56 @@ prop="refdSetlFlag"
<span>{{ scope.row.refdSetlFlag==1?'退费':'' }}</span>
</template>
</el-table-column> -->
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
<el-table-column
label="操作"
align="center"
width="300"
class-name="small-padding fixed-width"
fixed="right"
>
<template #default="scope">
<el-button type="danger" link icon="revoked-filled" :disabled="scope.row.id == ''"
@click="revokedSelectedRows(scope.row)">
<el-button
type="danger"
link
icon="revoked-filled"
:disabled="scope.row.id == ''"
@click="revokedSelectedRows(scope.row)"
>
撤销
</el-button>
</template>
</el-table-column>
</el-table>
<span class="descriptions-item-label">清算结果</span>
<div
style="
background: #f5f7fa;
border: solid 1px;
border-color: #e4e7ed;
width: 50%;
height: 100px;
margin-top: 20px;
"
>
<span>{{ reconciliation }}</span>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script setup name="reconciliationDetails">
<script setup name="LiquidationRecords">
import {
applyFinancialClearingList,
applyUnClearing,
autoApplyFinancialClearing,
reconcileDetailList,
handOperatedApplyFinancialClearing,
handOperatedApplyReconcileAccounts
} from "./statisticalManagent";
import { getToken } from "@/utils/auth";
handOperatedApplyReconcileAccounts,
} from './statisticalManagent';
import { getToken } from '@/utils/auth';
import { formatDateStr } from '@/utils/index';
import { ref } from "vue";
import { ref } from 'vue';
const { proxy } = getCurrentInstance();
const purchaseinventoryList = ref([]);
const loading = ref(false);
@@ -222,20 +494,21 @@ const multiple = ref(true);
const total = ref(0);
const occurrenceTime = ref([
formatDateStr(getFirstDayOfMonth(new Date()), 'YYYY-MM-DD'), // 当前月份的第一天
formatDateStr(new Date(), 'YYYY-MM-DD') // 当天
])
const activeTabName = ref("first");
formatDateStr(new Date(), 'YYYY-MM-DD'), // 当天
]);
const activeTabName = ref('first');
const clrTypeOptions = ref([]);
const insutypeOptions = ref([]);
const filePath = ref("")
const purchaseinventoryReturnList = ref([])
const loadingReturn = ref(false)
const selectedRow = ref([])
const filePath = ref('');
const purchaseinventoryReturnList = ref([]);
const loadingReturn = ref(false);
const selectedRow = ref([]);
const fileSize = ref(10)
const fileSize = ref(10);
const uploadList = ref([]);
const reconciliation = ref('');
const baseUrl = import.meta.env.VITE_APP_BASE_API;
const fileType = ref(["zip", "txt"]);
const fileType = ref(['zip', 'txt']);
const data = reactive({
form: {},
queryParams: {
@@ -244,7 +517,7 @@ const data = reactive({
setlOptins: '229900',
filePath: undefined,
orgId: undefined,
clrType: undefined,
clrType: 11,
fileQuryNo: undefined,
stmtBegnDate: undefined,
stmtEndDate: undefined,
@@ -259,31 +532,67 @@ const totalPrice = reactive({
cashPayamt: 0,
counts: 0,
setlCnt: 0,
medSumfee: 0.00
medSumfee: 0.0,
});
const { queryParams, form, rules } = toRefs(data);
// 接收路由参数
const route = useRoute();
// 监听路由变化
watch(
() => route.query,
(newQuery) => {
// 当路由 query 参数变化时执行
if (newQuery.currentRow) {
try {
const currentRow = JSON.parse(newQuery.currentRow);
console.log('接收到的currentRow参数:', currentRow);
// 处理接收到的参数
if (currentRow) {
totalPrice.medfeeSumamt = currentRow.medFeeSumAmt || 0;
totalPrice.fundAppySum = currentRow.fundPaySumAmt || 0;
totalPrice.acctPay = currentRow.acctPay || 0;
totalPrice.cashPayamt = currentRow.acctGjPay || 0;
totalPrice.counts = currentRow.fixMedInsSetlCnt || 0;
queryParams.insutype = currentRow.insutype;
// 如果有传递时间参数也一并处理
if (newQuery.occurrenceTime) {
occurrenceTime.value = newQuery.occurrenceTime;
}
console.log('已更新参数:', currentRow);
}
} catch (error) {
console.error('解析currentRow参数失败:', error);
}
}
},
{ immediate: true } // 立即执行一次,处理首次加载的情况
);
watch(
() => purchaseinventoryList.value,
(newVlaue) => {
if (newVlaue && newVlaue.length > 0) {
handleTotalAmount()
handleTotalAmount();
}
},
{ immediate: true }
)
);
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.stmtBegnDate =
occurrenceTime.value && occurrenceTime.value.length == 2
? occurrenceTime.value[0] + " 00:00:00"
: "";
? occurrenceTime.value[0] + ' 00:00:00'
: '';
queryParams.value.stmtEndDate =
occurrenceTime.value && occurrenceTime.value.length == 2
? occurrenceTime.value[1] + " 23:59:59"
: "";
? occurrenceTime.value[1] + ' 23:59:59'
: '';
// queryParams.value.pageNo = 1;
getList();
}
@@ -294,8 +603,8 @@ function getFirstDayOfMonth(date) {
// 对象转成指定字符串分隔
function listToString(list, separator) {
let strs = "";
separator = separator || ",";
let strs = '';
separator = separator || ',';
for (let i in list) {
if (list[i].url) {
strs += list[i].url + separator;
@@ -305,31 +614,16 @@ function listToString(list, separator) {
}
/**计算合计金额 */
function handleTotalAmount() {
totalPrice.counts = purchaseinventoryList.value.length
totalPrice.medfeeSumamt = purchaseinventoryList.value.reduce(
(accumulator, currentRow) => {
return Number(
(accumulator + Number(currentRow.medfeeSumamt || 0)).toFixed(2)
);
},
0
);
totalPrice.fundAppySum = purchaseinventoryList.value.reduce(
(accumulator, currentRow) => {
return Number(
(accumulator + Number(currentRow.fundPaySumamt || 0)).toFixed(2)
);
},
0
);
totalPrice.acctPay = purchaseinventoryList.value.reduce(
(accumulator, currentRow) => {
return Number(
(accumulator + Number(currentRow.acctPay || 0)).toFixed(2)
);
},
0
);
totalPrice.counts = purchaseinventoryList.value.length;
totalPrice.medfeeSumamt = purchaseinventoryList.value.reduce((accumulator, currentRow) => {
return Number((accumulator + Number(currentRow.medfeeSumamt || 0)).toFixed(2));
}, 0);
totalPrice.fundAppySum = purchaseinventoryList.value.reduce((accumulator, currentRow) => {
return Number((accumulator + Number(currentRow.fundPaySumamt || 0)).toFixed(2));
}, 0);
totalPrice.acctPay = purchaseinventoryList.value.reduce((accumulator, currentRow) => {
return Number((accumulator + Number(currentRow.acctPay || 0)).toFixed(2));
}, 0);
// 现金支付金额
// cashPayamt.value = purchaseinventoryList.value.reduce(
// (accumulator, currentRow) => {
@@ -355,7 +649,6 @@ function getPharmacyCabinetLists() {
{ value: 380, label: '新型农村合作医疗' },
{ value: 391, label: '城镇居民基本医疗保险' },
{ value: 392, label: '城乡居民大病医疗保险' },
];
}
@@ -369,18 +662,17 @@ function getList() {
applyFinancialClearingList(queryParams.value).then((res) => {
// console.log(res,"res----------------")
// loading.value = false;
// purchaseinventoryList.value = [{psnNo:"123",mdtrtId:"121",setlId:"1213",medfeeSumamt:"122",fundPaySumamt:"12",acctPay:"4.72",insutype:"410",clrType: 11,contractNo:"229900"},{psnNo:"123",mdtrtId:"121",setlId:"1213",medfeeSumamt:"122",fundPaySumamt:"12",acctPay:"7.43",insutype:"410",clrType: 11,contractNo:"229900"},{psnNo:"123",mdtrtId:"121",setlId:"1213",medfeeSumamt:"122",fundPaySumamt:"12",acctPay:"1",insutype:"410",clrType: 11,contractNo:"229900"},{psnNo:"123",mdtrtId:"121",setlId:"1213",medfeeSumamt:"122",fundPaySumamt:"12",acctPay:"-1",insutype:"410",clrType: 11,contractNo:"229900"}]
purchaseinventoryList.value = res.data.records ? res.data.records : res.data;
total.value = res.data.total;
});
}
function handleApplyForLiquidation() {
let params = {}
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : ""
params.setlOptins = queryParams.value.setlOptins ? queryParams.value.setlOptins : ""
params.stmtBegnDate = queryParams.value.stmtBegnDate ? queryParams.value.stmtBegnDate : ""
params.stmtEndDate = queryParams.value.stmtEndDate ? queryParams.value.stmtEndDate : ""
let params = {};
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : '';
params.setlOptins = queryParams.value.setlOptins ? queryParams.value.setlOptins : '';
params.stmtBegnDate = queryParams.value.stmtBegnDate ? queryParams.value.stmtBegnDate : '';
params.stmtEndDate = queryParams.value.stmtEndDate ? queryParams.value.stmtEndDate : '';
autoApplyFinancialClearing(params).then((res) => {
console.log(res.data, 'res----------------');
loading.value = false;
@@ -393,34 +685,39 @@ function isAllSelected() {
function revokedSelectedRows(row) {
let queryParamsss = {
clrAppyEvtId: row.outResult,
clroptins: queryParams.value.setlOptins ? queryParams.value.setlOptins : "",
}
applyUnClearing(queryParamsss).then(res => {
proxy.$message.success('撤销成功')
getList()
}).catch(err => {
proxy.$message.error('撤销失败')
})
clroptins: queryParams.value.setlOptins ? queryParams.value.setlOptins : '',
};
applyUnClearing(queryParamsss)
.then((res) => {
proxy.$message.success('撤销成功');
getList();
})
.catch((err) => {
proxy.$message.error('撤销失败');
});
}
/** 选择条数 */
function handleSelectionChange(selection) {
selectedRow.value = selection
console.log(selectedRow.value, "selectedRow.value")
selectedRow.value = selection;
console.log(selectedRow.value, 'selectedRow.value');
ids.value = selection.map((item) => item.setlId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
function handOperatedApply() {
const params = { ...totalPrice }
params.clrOptins = queryParams.value.setlOptins ? queryParams.value.setlOptins : ""
params.begndate = occurrenceTime.value[0] ? occurrenceTime.value[0] + ' 00:00:00' : ""
params.enddate = occurrenceTime.value[1] ? occurrenceTime.value[1] + ' 23:59:59' : ""
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : ""
handOperatedApplyFinancialClearing(params).then(res => {
}).catch(err => {
proxy.$message.error('申请失败')
})
const params = { ...totalPrice };
params.clrOptins = totalPrice.setlOptins ? totalPrice.setlOptins : '';
params.begndate = occurrenceTime.value[0] ? occurrenceTime.value[0] + ' 00:00:00' : '';
params.enddate = occurrenceTime.value[1] ? occurrenceTime.value[1] + ' 23:59:59' : '';
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : '';
handOperatedApplyFinancialClearing(params)
.then((res) => {
reconciliation.value = res.data;
})
.catch((err) => {
proxy.$message.error('申请失败');
});
}
function hendleTabChange() {
@@ -430,39 +727,43 @@ function hendleTabChange() {
totalPrice.cashPayamt = 0;
totalPrice.counts = 0;
totalPrice.setlCnt = 0;
totalPrice.medSumfee = 0.00;
totalPrice.medSumfee = 0.0;
occurrenceTime.value = [
formatDateStr(getFirstDayOfMonth(new Date()), 'YYYY-MM-DD'), // 当前月份的第一天
formatDateStr(new Date(), 'YYYY-MM-DD') // 当天
]
purchaseinventoryList.value = []
formatDateStr(new Date(), 'YYYY-MM-DD'), // 当天
];
purchaseinventoryList.value = [];
queryParams.value = {
setlOptins: '229900',
setlOptins: undefined,
filePath: undefined,
orgId: undefined,
clrType: undefined,
fileQuryNo: undefined,
stmtBegnDate: undefined,
stmtEndDate: undefined,
}
};
reconciliation.value = '';
}
function handOperatedReconcileAccounts() {
const params = { ...totalPrice }
params.clrOptins = queryParams.value.setlOptins ? queryParams.value.setlOptins : ""
params.begndate = occurrenceTime.value[0] ? occurrenceTime.value[0] + ' 00:00:00' : ""
params.enddate = occurrenceTime.value[1] ? occurrenceTime.value[1] + ' 23:59:59' : ""
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : ""
params.insutype = queryParams.value.insutype ? queryParams.value.insutype : ""
handOperatedApplyReconcileAccounts(params).then(res => {
}).catch(err => {
proxy.$message.error('对账失败')
})
const params = { ...totalPrice };
params.clrOptins = totalPrice.setlOptins ? totalPrice.setlOptins : '';
params.begndate = occurrenceTime.value[0] ? occurrenceTime.value[0] + ' 00:00:00' : '';
params.enddate = occurrenceTime.value[1] ? occurrenceTime.value[1] + ' 23:59:59' : '';
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : '';
params.insutype = queryParams.value.insutype ? queryParams.value.insutype : '';
handOperatedApplyReconcileAccounts(params)
.then((res) => {
reconciliation.value = res.data;
})
.catch((err) => {
proxy.$message.error('对账失败');
});
}
//点击列表当前行
function handleRowClick(row) {
// editRowTK.value = row
console.log(row, "row")
console.log(row, 'row');
// if(row.returnStatus==1){
// loadingReturn.value = true
// generatedReturnDetail(row.supplyBusNo).then((response) => {
@@ -470,16 +771,15 @@ function handleRowClick(row) {
// purchaseinventoryReturnList.value.map(k=>{
// // k.returnStatus_text = k.returnStatus==1?'已退库':''
// k.originalSupplyBusNo = k.originalSupplyBusNo?k.originalSupplyBusNo:row.supplyBusNo
// })
// })
// })
// loadingReturn.value = false
// }
}
getList();
getPharmacyCabinetLists()
getPharmacyCabinetLists();
</script>
<style scoped>
.custom-tree-node {

View File

@@ -1,21 +1,16 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryRef"
:inline="true"
label-width="100px"
>
<el-form-item label="药品名称:" prop="searchKey">
<el-input
v-model="queryParams.searchKey"
placeholder="编码/单据号/药品名称"
clearable
style="width: 200px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="单据号:" prop="busNo">
<el-form :model="queryParams" ref="queryRef" :inline="true" label-width="100px">
<el-form-item label="药品名称:" prop="searchKey">
<el-input
v-model="queryParams.searchKey"
placeholder="编码/单据号/药品名称"
clearable
style="width: 200px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="单据号:" prop="busNo">
<el-input
v-model="queryParams.busNo"
placeholder="单据号:"
@@ -67,7 +62,7 @@
/>
</el-select>
</el-form-item> -->
<el-form-item label="存放仓库:" prop="purposeLocationId" >
<el-form-item label="存放仓库:" prop="purposeLocationId">
<el-select
v-model="queryParams.purposeLocationId"
placeholder=""
@@ -75,14 +70,14 @@
style="width: 150px"
>
<el-option
v-for="supplyStatus in locationIdList"
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"
@@ -99,12 +94,7 @@
</el-select>
</el-form-item> -->
<el-form-item label="供应商:" prop="supplierId">
<el-select
v-model="queryParams.supplierId"
placeholder=""
clearable
style="width: 150px"
>
<el-select v-model="queryParams.supplierId" placeholder="" clearable style="width: 150px">
<el-option
v-for="supplierList in supplierListOptions"
:key="supplierList.value"
@@ -118,33 +108,14 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<!-- v-hasPermi="['system:user:import']" -->
<el-button
type="primary"
plain
icon="Search"
@click="handleQuery"
>查询</el-button
>
<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-button type="warning" plain icon="CircleClose" @click="handleClear">重置</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
>导出</el-button>
<el-button type="warning" plain icon="Download" @click="handleExport">导出</el-button>
</el-col>
</el-row>
@@ -152,9 +123,10 @@
v-loading="loading"
:data="purchaseinventoryList"
@selection-change="handleSelectionChange"
height="calc(100vh - 300px)"
>
<el-table-column type="selection" width="50" align="center" />
<!-- <el-table-column
<!-- <el-table-column
label="药品名称"
align="center"
key="name"
@@ -167,7 +139,7 @@
align="center"
key="supplyBusno"
prop="supplyBusno"
width="200"
width="200"
:show-overflow-tooltip="true"
/>
<!-- itemTable -->
@@ -176,7 +148,7 @@
align="center"
key="name"
prop="name"
width="140"
width="140"
:show-overflow-tooltip="true"
/>
<el-table-column
@@ -208,7 +180,7 @@
align="center"
key="locationName"
prop="locationName"
width="140"
width="140"
:show-overflow-tooltip="true"
/>
<el-table-column
@@ -267,7 +239,7 @@
prop="department"
:show-overflow-tooltip="true"
/> -->
<el-table-column
<el-table-column
label="供应商"
align="center"
key="supplier"
@@ -320,8 +292,8 @@
import {
getReportInboundPCage,
getPharmacyCabinetList,
getInboundInit
} from "./statisticalManagent";
getInboundInit,
} from './statisticalManagent';
const { proxy } = getCurrentInstance();
const route = useRoute();
@@ -347,17 +319,17 @@ const data = reactive({
queryParams: {
pageNo: 1,
pageSize: 10,
searchKey: undefined,
busNo: undefined,
name:undefined,
searchKey: undefined,
busNo: undefined,
name: undefined,
medicationDefId: undefined,
// approvalTime:undefined,
department:undefined,
department: undefined,
purposeLocationId: undefined,
categoryType: undefined,
supplierId: undefined,
occurrenceTimeSTime:undefined,
occurrenceTimeETime:undefined,
categoryType: undefined,
supplierId: undefined,
occurrenceTimeSTime: undefined,
occurrenceTimeETime: undefined,
},
rules: {},
});
@@ -366,24 +338,28 @@ const { queryParams, form, rules } = toRefs(data);
function getPharmacyCabinetLists() {
getPharmacyCabinetList().then((response) => {
locationIdList.value = response.data
locationIdList.value = response.data;
});
getInboundInit().then((response) => {
supplierListOptions.value = response.data.supplierListOptions
})
supplierListOptions.value = response.data.supplierListOptions;
});
}
/** 导出按钮操作 */
function handleExport() {
proxy.$download.downloadGet("report-manage/inbound/excel-out", {
...queryParams.value
}, `dict_${new Date().getTime()}.xlsx`);
proxy.$download.downloadGet(
'report-manage/inbound/excel-out',
{
...queryParams.value,
},
`dict_${new Date().getTime()}.xlsx`
);
}
/** 查询调拨管理项目列表 */
function getList() {
loading.value = true;
getReportInboundPCage(queryParams.value).then((res) => {
loading.value = false;
purchaseinventoryList.value = res.data.records
purchaseinventoryList.value = res.data.records;
total.value = res.data.total;
});
}
@@ -393,7 +369,11 @@ watch(
() => route.query,
(newQuery) => {
// 如果路由中包含指定参数,则使用这些参数进行查询
if (newQuery.purposeLocationId || newQuery.occurrenceTimeSTime || newQuery.occurrenceTimeETime) {
if (
newQuery.purposeLocationId ||
newQuery.occurrenceTimeSTime ||
newQuery.occurrenceTimeETime
) {
// 设置查询参数
if (newQuery.purposeLocationId) {
queryParams.value.purposeLocationId = newQuery.purposeLocationId;
@@ -404,7 +384,7 @@ watch(
if (newQuery.occurrenceTimeETime) {
queryParams.value.occurrenceTimeETime = newQuery.occurrenceTimeETime + ' 23:59:59';
}
// 执行查询
getList();
}
@@ -415,13 +395,9 @@ watch(
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.occurrenceTimeSTime =
approvalTime.value && approvalTime.value.length == 2
? approvalTime.value[0] + " 00:00:00"
: "";
approvalTime.value && approvalTime.value.length == 2 ? approvalTime.value[0] + ' 00:00:00' : '';
queryParams.value.occurrenceTimeETime =
approvalTime.value && approvalTime.value.length == 2
? approvalTime.value[1] + " 23:59:59"
: "";
approvalTime.value && approvalTime.value.length == 2 ? approvalTime.value[1] + ' 23:59:59' : '';
queryParams.value.pageNo = 1;
getList();
}
@@ -429,10 +405,10 @@ function handleQuery() {
/** 清空条件按钮操作 */
function handleClear() {
// 清空查询条件
queryParams.value.occurrenceTimeSTime = ""
queryParams.value.occurrenceTimeETime = ""
approvalTime.value = ""
proxy.resetForm("queryRef");
queryParams.value.occurrenceTimeSTime = '';
queryParams.value.occurrenceTimeETime = '';
approvalTime.value = '';
proxy.resetForm('queryRef');
getList();
}
@@ -444,7 +420,7 @@ function handleSelectionChange(selection) {
}
getList();
getPharmacyCabinetLists()
getPharmacyCabinetLists();
</script>
<style scoped>
.custom-tree-node {
@@ -457,4 +433,4 @@ getPharmacyCabinetLists()
font-size: large;
margin-bottom: 10px;
}
</style>
</style>

View File

@@ -11,6 +11,7 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 300px"
@change="handleQuery"
></el-date-picker>
</el-form-item>
<el-form-item label="清算类型:" prop="clrType">
@@ -33,7 +34,7 @@
v-model="queryParams.insuType"
placeholder="请选择险种类型"
clearable
style="width: 150px"
style="width: 200px"
>
<el-option
v-for="insuType in insutype"
@@ -58,24 +59,9 @@
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="医院" prop="orgId">
<el-input
v-model="queryParams.orgId"
placeholder="请输入医院id"
clearable
style="width: 200px"
@keyup.enter="handleQuery"
/>
</el-form-item> -->
</el-form>
<!-- <el-col :span="1.5"> -->
<!-- v-hasPermi="['system:user:import']" -->
<!-- <el-button type="primary" plain icon="Edit" @click="getList">查询</el-button> -->
<el-button type="primary" plain icon="Edit" @click="handleQuery">结算</el-button>
<!-- </el-col> -->
<!-- <el-col :span="1.5"> -->
<!-- v-hasPermi="['system:user:export']" -->
<el-button
<el-button type="primary" plain icon="Edit" @click="handleQuery">获取医保交易数据</el-button>
<!-- <el-button
type="primary"
plain
icon="Edit"
@@ -83,34 +69,20 @@
:disabled="ids.length == 0"
>
医保对总账
</el-button>
<el-button
type="primary"
plain
icon="Edit"
@click="handleGetClroptins"
>
</el-button> -->
<!-- <el-button type="primary" plain icon="Edit" @click="handleGetClroptins">
清算机构查询
</el-button>
</el-button> -->
<!-- </el-col> -->
</el-row>
<!-- <div style="margin-bottom: 5px">
定点医药机构结算笔数{{ counts }}其中 医疗费总额{{ totalPrice1 }}基金支付总额{{
totalPrice2
}}个人账户支付金额{{ totalPrice3 }}现金支付金额{{ totalPrice4 }}认可费用总额{{
totalPrice5
}}
</div> -->
<el-table
v-loading="loading"
:data="purchaseinventoryList"
border
@select="clickRow"
ref="refTables"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="50" align="center" />
<!-- <el-table-column type="selection" width="50" align="center" /> -->
<el-table-column label="清算类别" align="center" prop="contractNo_dictText" />
<el-table-column label="险种" align="center" prop="insutype_dictText" />
<el-table-column label="是否异地" align="center" key="locationName" prop="locationName" />
@@ -144,6 +116,11 @@
{{ scope.row.fixMedInsSetlCnt + ' 笔' }}
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button type="primary" link @click="handleReconciliation(scope.row)">对账</el-button>
</template>
</el-table-column>
</el-table>
<!-- <pagination
v-show="total > 0"
@@ -154,26 +131,38 @@
/> -->
<el-form :inline="true" label-width="90px" style="width: 100%; margin-top: 30px">
<el-form-item label="对账结果:" style="width: 100%">
<el-input
v-model="reconciliation"
:autosize="{ minRows: 4, maxRows: 10 }"
type="textarea"
disabled
placeholder=""
/>
<div
style="
background: #f5f7fa;
border: solid 1px;
border-color: #e4e7ed;
width: 50%;
height: 100px;
"
>
<span>{{ reconciliation }}</span>
<el-button
v-if="reconciliation && reconciliation != 'OK'"
type="primary"
link
@click="toReconcileRecord"
>
手动对账
</el-button>
</div>
</el-form-item>
</el-form>
</div>
</template>
<script setup name="reconciliation">
<script setup name="Reconciliation">
import {
ybRequestReconcile, // 医保对账
getReconcileList, // 对账列表 结算
getContractList, // 合同
getClroptins,
} from './statisticalManagent';
import { formatDate } from '@/utils/index';
import { formatDate, formatDateStr } from '@/utils/index';
const { proxy } = getCurrentInstance();
const { insutype } = proxy.useDict('insutype');
// 险种类型
@@ -183,10 +172,15 @@ const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const occurrenceTime = ref([formatDate(new Date()), formatDate(new Date())]);
const occurrenceTime = ref([
formatDateStr(new Date(), 'YYYY-MM-DD'),
formatDateStr(new Date(), 'YYYY-MM-DD'),
]);
const contractNoOptions = ref([]);
const clrTypeOptions = ref([]);
('');
const selectedRow = ref(null);
const currentRow = ref({});
const reconciliation = ref('');
const counts = ref(0);
const totalPrice1 = ref(0);
@@ -202,7 +196,7 @@ const data = reactive({
// pageSize: 10,
// searchKey: undefined,
insuType: undefined, // 险种
clrType: undefined, //住院或门诊
clrType: 11, //住院或门诊
contractNo: undefined,
orgId: undefined,
stmtBegnDate: undefined,
@@ -267,18 +261,20 @@ function handleQuery() {
? occurrenceTime.value[1] + ' 23:59:59'
: '';
// queryParams.value.pageNo = 1;
reconciliation.value = '';
getList();
}
/** 按钮操作 */
function handleReconciliation() {
function handleReconciliation(row) {
// 调用接口返回值
// loading.value = true;
currentRow.value = row;
reconciliation.value = '';
let queryParams = {
insuType: selectedRow.value.insutype.toString(),
clrType: selectedRow.value.clrType,
contractNo: selectedRow.value.contractNo.toString(),
insuType: row.insutype.toString(),
clrType: row.clrType,
contractNo: row.contractNo.toString(),
stmtBegnDate:
occurrenceTime.value && occurrenceTime.value.length == 2
? occurrenceTime.value[0] + ' 00:00:00'
@@ -302,6 +298,17 @@ function handleSelectionChange(selection) {
multiple.value = !selection.length;
}
function toReconcileRecord() {
// 跳转到清算记录页面,并携带当前选中行的数据
proxy.$router.push({
name: 'LiquidationRecords',
query: {
currentRow: JSON.stringify(currentRow.value),
occurrenceTime: occurrenceTime.value,
},
});
}
function handleGetClroptins() {
getClroptins({ pageNum: 1, pageSize: 100, fixmedinsCode: 'H22010200672' }).then((res) => {});
}