dev
This commit is contained in:
parent
fef85d7395
commit
27599a5047
|
|
@ -1,5 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<Mask :is-show="show" :height="600" :width="400" @close="close" title="手动对账">
|
<Mask :is-show="show" :height="600" :width="400" @close="close" title="手动对账">
|
||||||
<div class="form">
|
<div class="form">
|
||||||
|
|
@ -52,13 +50,13 @@
|
||||||
<el-form-item label="结算笔数" prop="settlementCount">
|
<el-form-item label="结算笔数" prop="settlementCount">
|
||||||
<el-input v-model.number="formData.settlementCount" type="number"></el-input>
|
<el-input v-model.number="formData.settlementCount" type="number"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item >
|
<el-form-item>
|
||||||
<el-button type="primary" @click="submitForm">对账</el-button>
|
<el-button type="primary" @click="submitForm">对账</el-button>
|
||||||
<el-button @click="close">取消</el-button>
|
<el-button @click="close">取消</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</Mask>
|
</Mask>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
||||||
|
|
@ -67,43 +65,27 @@ import {reactive, ref} from "vue";
|
||||||
import {post} from "@/utils/request.ts";
|
import {post} from "@/utils/request.ts";
|
||||||
import {ElMessage} from "element-plus";
|
import {ElMessage} from "element-plus";
|
||||||
import {formatDateArray, getEndOfDay} from "@/utils/dateUtils.ts";
|
import {formatDateArray, getEndOfDay} from "@/utils/dateUtils.ts";
|
||||||
const clrTypeOptions = [
|
import clrType from "@/assets/config/directory/clrType.json"
|
||||||
{key: "99959", value: "医疗费用清算"},
|
import insutypes from "@/assets/config/directory/insutypes.json"
|
||||||
{key: "41", value: "药店购药"},
|
|
||||||
{key: "99952", value: "异地医疗费用清算"},
|
interface ClrType {
|
||||||
{key: "9914", value: "签约服务费"},
|
[key: string]: string;
|
||||||
{key: "99939", value: "门诊统筹清算"}
|
}
|
||||||
]
|
|
||||||
const insutypesOptions = [
|
const clrTypeOptions = Object.entries(clrType as ClrType).map(([key, value]) => ({
|
||||||
{ key: "310", value: "职工基本医疗保险" },
|
key: key,
|
||||||
{ key: "31003", value: "医疗保险个人账户(用人单位)" },
|
value: value
|
||||||
{ key: "312", value: "农民工住院医疗" },
|
}))
|
||||||
{ key: "320", value: "公务员医疗补助" },
|
interface Insutypes {
|
||||||
{ key: "321", value: "公务员医疗补助(市直统发)" },
|
[key: string]: string;
|
||||||
{ key: "323", value: "公务员医疗补助(市直非统发)" },
|
}
|
||||||
{ key: "330", value: "大额医疗费用补助" },
|
|
||||||
{ key: "331", value: "二次补助" },
|
const insutypesOptions = Object.entries(insutypes as Insutypes).map(([key, value]) => ({
|
||||||
{ key: "340", value: "离休人员医疗保障" },
|
key: key,
|
||||||
{ key: "350", value: "一至六级残废军人医疗补助" },
|
value: value
|
||||||
{ key: "360", value: "老红军医疗保障" },
|
}))
|
||||||
{ key: "370", value: "企业补充医疗保险" },
|
const init = (data: any) => {
|
||||||
{ key: "380", value: "新型农村合作医疗" },
|
formData.value = data;
|
||||||
{ key: "390", value: "城乡居民基本医疗保险" },
|
|
||||||
{ key: "391", value: "城镇居民基本医疗保险" },
|
|
||||||
{ key: "392", value: "城乡居民大病医疗保险" },
|
|
||||||
{ key: "399", value: "其他特殊人员医疗保障" },
|
|
||||||
{ key: "39901", value: "劳模医疗保障" },
|
|
||||||
{ key: "39902", value: "补充百分之10医疗" },
|
|
||||||
{ key: "39903", value: "城乡居民补充医疗保险" },
|
|
||||||
{ key: "39904", value: "建国前老工人医疗保险" },
|
|
||||||
{ key: "39905", value: "二乙医疗保险" },
|
|
||||||
{ key: "39906", value: "意外伤害医疗保险" },
|
|
||||||
{ key: "410", value: "长期照护保险" },
|
|
||||||
{ key: "510", value: "生育保险" },
|
|
||||||
{ key: "520", value: "公务员生育" }
|
|
||||||
]
|
|
||||||
const init = (data:any) => {
|
|
||||||
formData.value= data;
|
|
||||||
selectDate.value = formatDateArray([data.beginTime, data.endTime]);
|
selectDate.value = formatDateArray([data.beginTime, data.endTime]);
|
||||||
show.value = true;
|
show.value = true;
|
||||||
};
|
};
|
||||||
|
|
@ -121,7 +103,7 @@ const changeDate = (val: any) => {
|
||||||
const selectDate = ref<any>([])
|
const selectDate = ref<any>([])
|
||||||
const submitForm = () => {
|
const submitForm = () => {
|
||||||
// 假设你给 el-form 设置了 ref="formRef"
|
// 假设你给 el-form 设置了 ref="formRef"
|
||||||
formRef.value.validate((valid:any) => {
|
formRef.value.validate((valid: any) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
accountRecordDo()
|
accountRecordDo()
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -135,7 +117,7 @@ const accountRecordDo = () => {
|
||||||
let data = {...formData.value};
|
let data = {...formData.value};
|
||||||
post("social/reconciliation/totalDo", {data: data}).then((res: any) => {
|
post("social/reconciliation/totalDo", {data: data}).then((res: any) => {
|
||||||
let msg = res.stmtinfo.stmt_rslt_dscr;
|
let msg = res.stmtinfo.stmt_rslt_dscr;
|
||||||
if (res.stmtinfo.stmt_rslt == 0){
|
if (res.stmtinfo.stmt_rslt == 0) {
|
||||||
msg = "对平"
|
msg = "对平"
|
||||||
}
|
}
|
||||||
ElMessage.success({
|
ElMessage.success({
|
||||||
|
|
@ -144,36 +126,36 @@ const accountRecordDo = () => {
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const formRef =ref();
|
const formRef = ref();
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
// 对账日期(date)需要手动校验,因为 el-date-picker 不直接支持 prop 校验
|
// 对账日期(date)需要手动校验,因为 el-date-picker 不直接支持 prop 校验
|
||||||
date: [
|
date: [
|
||||||
{ validator: validateDate, trigger: 'change' }
|
{validator: validateDate, trigger: 'change'}
|
||||||
],
|
],
|
||||||
reconciliationType: [
|
reconciliationType: [
|
||||||
{ required: true, message: '清算类别不能为空', trigger: 'change' }
|
{required: true, message: '清算类别不能为空', trigger: 'change'}
|
||||||
],
|
],
|
||||||
insuranceType: [
|
insuranceType: [
|
||||||
{ required: true, message: '险种类型不能为空', trigger: 'change' }
|
{required: true, message: '险种类型不能为空', trigger: 'change'}
|
||||||
],
|
],
|
||||||
handlingInstitution: [
|
handlingInstitution: [
|
||||||
{ required: true, message: '经办机构不能为空', trigger: 'blur' }
|
{required: true, message: '经办机构不能为空', trigger: 'blur'}
|
||||||
],
|
],
|
||||||
totalMedicalCost: [
|
totalMedicalCost: [
|
||||||
{ required: true, message: '医疗费用总额不能为空', trigger: 'blur' },
|
{required: true, message: '医疗费用总额不能为空', trigger: 'blur'},
|
||||||
{ type: 'number', message: '必须为数字', trigger: 'blur' }
|
{type: 'number', message: '必须为数字', trigger: 'blur'}
|
||||||
],
|
],
|
||||||
totalFundPayment: [
|
totalFundPayment: [
|
||||||
{ required: true, message: '基金支付总额不能为空', trigger: 'blur' },
|
{required: true, message: '基金支付总额不能为空', trigger: 'blur'},
|
||||||
{ type: 'number', message: '必须为数字', trigger: 'blur' }
|
{type: 'number', message: '必须为数字', trigger: 'blur'}
|
||||||
],
|
],
|
||||||
totalPersonalAccountPayment: [
|
totalPersonalAccountPayment: [
|
||||||
{ required: true, message: '个账支付总额不能为空', trigger: 'blur' },
|
{required: true, message: '个账支付总额不能为空', trigger: 'blur'},
|
||||||
{ type: 'number', message: '必须为数字', trigger: 'blur' }
|
{type: 'number', message: '必须为数字', trigger: 'blur'}
|
||||||
],
|
],
|
||||||
settlementCount: [
|
settlementCount: [
|
||||||
{ required: true, message: '结算笔数不能为空', trigger: 'blur' },
|
{required: true, message: '结算笔数不能为空', trigger: 'blur'},
|
||||||
{ type: 'number', message: '必须为数字', trigger: 'blur' }
|
{type: 'number', message: '必须为数字', trigger: 'blur'}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -187,7 +169,7 @@ function validateDate(rule: any, value: any, callback: any) {
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.form{
|
.form {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,76 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container-wrapper">
|
<div class="container-wrapper">
|
||||||
<!-- <div class="search">-->
|
<div class="search">
|
||||||
<!-- <el-form :inline="true" >-->
|
<div class="left">
|
||||||
<!-- </el-form>-->
|
<el-form :inline="true" :model="searchModel">
|
||||||
<!-- </div>-->
|
<!-- <el-form-item>-->
|
||||||
|
<!-- <el-date-picker-->
|
||||||
|
<!-- v-model="selectedDate"-->
|
||||||
|
<!-- type="daterange"-->
|
||||||
|
<!-- range-separator="-"-->
|
||||||
|
<!-- @change="handleDateChange"-->
|
||||||
|
<!-- start-placeholder="开始时间"-->
|
||||||
|
<!-- end-placeholder="结束时间"-->
|
||||||
|
<!-- />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item>
|
||||||
|
<el-select
|
||||||
|
v-model="searchModel.reconciliationType"
|
||||||
|
placeholder="清算类别"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in clrTypeOptions"
|
||||||
|
:key="item"
|
||||||
|
:label="item.value"
|
||||||
|
:value="item.key"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-select
|
||||||
|
v-model="searchModel.insuranceType"
|
||||||
|
placeholder="险种类型"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in insutypesOptions"
|
||||||
|
:key="item"
|
||||||
|
:label="item.value"
|
||||||
|
:value="item.key"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-input
|
||||||
|
v-model="searchModel.handlingInstitution"
|
||||||
|
placeholder="经办机构"
|
||||||
|
style="width: 200px"
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="default-btn" @click="resetSearch">
|
||||||
|
<span class="iconfont icon-RectangleCopy1"></span>
|
||||||
|
重置
|
||||||
|
</div>
|
||||||
|
<div class="default-btn" @click="getList" style="margin-left: 24px">
|
||||||
|
<span class="iconfont icon-RectangleCopy"></span>
|
||||||
|
搜索
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<el-table :data="list" style="width: 100%;flex: 1;min-height: 0">
|
<el-table :data="list" style="width: 100%;flex: 1;min-height: 0">
|
||||||
<el-table-column label="清算类别" prop="reconciliationType">
|
<el-table-column label="清算类别" prop="reconciliationType">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{getKey(clrType, scope.row.reconciliationType)}}
|
{{ getKey(clrType, scope.row.reconciliationType) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="险种类型" prop="insuranceType">
|
<el-table-column label="险种类型" prop="insuranceType">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{getKey(insutypes, scope.row.insuranceType)}}
|
{{ getKey(insutypes, scope.row.insuranceType) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="经办机构" prop="handlingInstitution"></el-table-column>
|
<el-table-column label="经办机构" prop="handlingInstitution"></el-table-column>
|
||||||
|
|
@ -32,7 +90,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="详细信息" prop="resultDesc" width="200" show-overflow-tooltip></el-table-column>
|
<el-table-column label="详细信息" prop="resultDesc" width="200" show-overflow-tooltip></el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<el-pagination background layout="prev, pager, next" v-model:current-page="pageNum" v-model:page-size="pageSize" @change="changePageNumHandler" :total="total"/>
|
<el-pagination background layout="prev, pager, next" v-model:current-page="pageNum" v-model:page-size="pageSize"
|
||||||
|
@change="changePageNumHandler" :total="total"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
@ -47,6 +106,23 @@ const pageSize = ref(20);
|
||||||
const pageNum = ref(1);
|
const pageNum = ref(1);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
|
|
||||||
|
interface ClrType {
|
||||||
|
[key: string]: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const clrTypeOptions = Object.entries(clrType as ClrType).map(([key, value]) => ({
|
||||||
|
key: key,
|
||||||
|
value: value
|
||||||
|
}))
|
||||||
|
|
||||||
|
interface Insutypes {
|
||||||
|
[key: string]: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const insutypesOptions = Object.entries(insutypes as Insutypes).map(([key, value]) => ({
|
||||||
|
key: key,
|
||||||
|
value: value
|
||||||
|
}))
|
||||||
interface queryParams {
|
interface queryParams {
|
||||||
pageNum: number;
|
pageNum: number;
|
||||||
pageSize: number;
|
pageSize: number;
|
||||||
|
|
@ -61,20 +137,22 @@ const changePageNumHandler = (pageNum: number) => {
|
||||||
getList()
|
getList()
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
interface TypeMapping {
|
interface TypeMapping {
|
||||||
[key: number]: string;
|
[key: number]: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const list = ref<any>();
|
const list = ref<any>();
|
||||||
const getList = () => {
|
const getList = () => {
|
||||||
const query: queryParams = {
|
const query: queryParams = {
|
||||||
pageNum: pageNum.value,
|
pageNum: pageNum.value,
|
||||||
pageSize: pageSize.value,
|
pageSize: pageSize.value,
|
||||||
|
...searchModel.value
|
||||||
}
|
}
|
||||||
post("social/reconciliation/pageHistory",{query:query}).then(
|
post("social/reconciliation/pageHistory", {query: query}).then(
|
||||||
(res:any) => {
|
(res: any) => {
|
||||||
list.value = res.list;
|
list.value = res.list;
|
||||||
total.value = res.total_count;
|
total.value = res.total_count;
|
||||||
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -83,9 +161,16 @@ onMounted(() => {
|
||||||
getList()
|
getList()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 搜索
|
||||||
|
const searchModel = ref<any>({});
|
||||||
|
const resetSearch= () => {
|
||||||
|
searchModel.value = {}
|
||||||
|
getList()
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.container-wrapper {
|
.container-wrapper {
|
||||||
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 24px;
|
padding: 24px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
|
|
@ -93,8 +178,17 @@ onMounted(() => {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
height: 42px;
|
width: 100%;
|
||||||
margin-bottom: 24px;
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
:deep(.el-select__wrapper){
|
||||||
|
width: 150px;
|
||||||
|
height: 42px;
|
||||||
|
}
|
||||||
|
:deep(.el-input__wrapper){
|
||||||
|
width: 150px;
|
||||||
|
height: 42px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
Loading…
Reference in New Issue