Merge branch 'main' of ssh://git.jizhiweb.cn:2222/clinic-v2/web

This commit is contained in:
ChenQiuYu 2025-05-15 16:35:47 +08:00
commit e6a6de4f44
9 changed files with 176 additions and 97 deletions

View File

@ -60,6 +60,9 @@ let change_search = () => {
init() init()
} }
const formatDate = (isoStr:any) => { const formatDate = (isoStr:any) => {
if (!isoStr){
return ''
}
const date = new Date(isoStr); const date = new Date(isoStr);
return `${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2,'0')}-${date.getDate().toString().padStart(2,'0')}`; return `${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2,'0')}-${date.getDate().toString().padStart(2,'0')}`;
} }
@ -79,12 +82,23 @@ const formatDate = (isoStr:any) => {
</div> </div>
<div class="content"> <div class="content">
<el-table :data="tableData" style="width: 100%;height: 100%"> <el-table :data="tableData" style="width: 100%;height: 100%">
<el-table-column prop="code" label="库存初始化编码" show-overflow-tooltip/> <el-table-column prop="name" label="商品名称" />
<el-table-column prop="wholeNumber" label="初始化商品整量数量"/> <el-table-column prop="code" label="库存初始化编码" />
<el-table-column prop="wholeNumber" label="初始化商品整量数量">
<template #default="scope">
{{scope.row.wholeNumber}}{{scope.row.packagingUnit}}
</template>
</el-table-column>
<el-table-column prop="fragmentNumber" label="初始化商品分量数量">
<template #default="scope">
{{scope.row.fragmentNumber}}{{scope.row.minPackagingUnit}}
</template>
</el-table-column>
<el-table-column prop="createDate" label="初始化日期"/> <el-table-column prop="createDate" label="初始化日期"/>
<el-table-column prop="uploadStatus" label="状态"> <el-table-column prop="uploadStatus" label="状态">
<template #default="{row}"> <template #default="{row}">
{{ row.uploadStatus == 0 ? '未上传' : row.uploadStatus == 1 ? '已上传' : '异常' }} {{ row.uploadStatus == 0 ? '未上传' : row.uploadStatus == 1 ? '已上传' :row.uploadStatus == 2 ? '异常':"无需上报" }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="uploadMessage" label="上传状态信息" show-overflow-tooltip/> <el-table-column prop="uploadMessage" label="上传状态信息" show-overflow-tooltip/>
@ -93,7 +107,7 @@ const formatDate = (isoStr:any) => {
{{ formatDate(row.uploadDatetime) }} {{ formatDate(row.uploadDatetime) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="fragmentNumber" label="初始化商品分量数量"/>
</el-table> </el-table>
</div> </div>
<div class="bottom"> <div class="bottom">

View File

@ -2,18 +2,18 @@
<div class="container"> <div class="container">
<div class="tip"> <div class="tip">
<el-select <el-select
v-model="searchInfo.type" v-model="searchInfo.socialType"
placeholder="变更类型" placeholder="变更类型"
clearable style="width: 240px;" @clear="init()"> clearable style="width: 240px;" @clear="init()">
<el-option <el-option
v-for="(item,key) in typeMapping" v-for="(item,key) in socialTypeMapping"
:key="key" :key="key"
:label="item" :label="item"
:value="key" :value="key"
/> />
</el-select> </el-select>
<el-select <el-select
v-model="searchStatus.type" v-model="searchStatus.uploadStatus"
placeholder="上传状态" placeholder="上传状态"
clearable style="width: 240px;margin: 0 10px" @clear="init()"> clearable style="width: 240px;margin: 0 10px" @clear="init()">
<el-option <el-option
@ -34,11 +34,18 @@
</div> </div>
<div class="content"> <div class="content">
<el-table :data="tableData" style="width: 100%;height: 100%"> <el-table :data="tableData" style="width: 100%;height: 100%">
<el-table-column prop="name" label="商品名称"/>
<el-table-column prop="type" label="库存变更类型" show-overflow-tooltip> <el-table-column prop="type" label="库存变更类型" show-overflow-tooltip>
<template #default="{row}"> <template #default="{row}">
{{ typeMapping[row.type] }} {{ typeMapping[row.type] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="socialType" label="医保库存变更类型" show-overflow-tooltip>
<template #default="{row}">
{{ socialTypeMapping[row.socialType] }}
</template>
</el-table-column>
<el-table-column prop="beforeFragmentNumber" label="前库存" show-overflow-tooltip> <el-table-column prop="beforeFragmentNumber" label="前库存" show-overflow-tooltip>
<template #default="{row}"> <template #default="{row}">
{{ row.beforeWholeNumber }}{{ row.packagingUnit }} {{ row.beforeWholeNumber }}{{ row.packagingUnit }}
@ -114,11 +121,11 @@ const tableData = ref([])
let type = ref<number>() let type = ref<number>()
let typeName = ref('') let typeName = ref('')
const searchInfo = ref({ const searchInfo = ref({
type: '', socialType: '',
keyword: '', keyword: '',
}) })
const searchStatus = ref({ const searchStatus = ref<any>({
type: '', socialType: '',
keyword: '', keyword: '',
}) })
const value1 = ref([]) const value1 = ref([])
@ -133,7 +140,7 @@ interface TypeMapping {
[key: number]: string; [key: number]: string;
} }
const typeMapping: TypeMapping = { const socialTypeMapping: TypeMapping = {
101: '调拨入库', 101: '调拨入库',
102: '调拨出库', 102: '调拨出库',
103: '盘盈', 103: '盘盈',
@ -143,6 +150,17 @@ const typeMapping: TypeMapping = {
107: '其他出库', 107: '其他出库',
108: '初始化入库' 108: '初始化入库'
} }
const typeMapping: TypeMapping = {
1: "初始化",
2: "采购入库",
3: "盘盈入库",
4: "发药出库",
5: "领用出库",
6: "报损出库",
7: "盘亏出库",
8: "退货出库",
9: "零售退款入库"
}
interface UploadStatus { interface UploadStatus {
[key: number]: string; [key: number]: string;
@ -152,6 +170,7 @@ const uploadStatus: UploadStatus = {
0: '未上传', 0: '未上传',
1: '已上传', 1: '已上传',
2: '异常', 2: '异常',
3: "无需上报",
} }
onMounted(() => { onMounted(() => {
@ -162,10 +181,10 @@ let init = () => {
const query = { const query = {
page: 1, page: 1,
pageSize: 20, pageSize: 20,
type: Number(searchInfo.value.type) || "", socialType: Number(searchInfo.value.socialType) || null,
uploadStatus: searchStatus.value.type || "", uploadStatus: searchStatus.value.uploadStatus || null,
createTimeBefore: value1.value[0] ? formatDate(value1.value[0]) : "", createTimeBefore: value1.value ? formatDate(value1.value[0]) : null,
createTimeAfter: value1.value[1] ? formatDate(value1.value[1]) : "", createTimeAfter: value1.value ? formatDate(value1.value[1]) : null,
} }
post("social/upload/get3502List", {query: query}).then((res: any) => { post("social/upload/get3502List", {query: query}).then((res: any) => {
tableData.value = res.list tableData.value = res.list
@ -189,7 +208,9 @@ let change_search = () => {
} }
// YYYY-MM-DD // YYYY-MM-DD
const formatDate = (isoStr: any) => { const formatDate = (isoStr: any) => {
console.log(isoStr, "isoStr") if (!isoStr) {
return ''
}
const date = new Date(isoStr); const date = new Date(isoStr);
return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`; return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
} }
@ -198,10 +219,12 @@ const formatDate = (isoStr: any) => {
<style scoped lang="scss"> <style scoped lang="scss">
@use "@/assets/scss/base.scss"; @use "@/assets/scss/base.scss";
.container { .container {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
.top { .top {
height: 60px; height: 60px;
@ -209,6 +232,7 @@ const formatDate = (isoStr: any) => {
width: 300px; width: 300px;
} }
} }
.content { .content {
flex: 1; flex: 1;
min-height: 0; min-height: 0;

View File

@ -2,18 +2,18 @@
<div class="container"> <div class="container">
<div class="tip"> <div class="tip">
<el-select <el-select
v-model="searchInfo.type" v-model="searchInfo.socialType"
placeholder="变更类型" placeholder="变更类型"
clearable style="width: 240px;" @clear="init()"> clearable style="width: 240px;" @clear="init()">
<el-option <el-option
v-for="(item,key) in typeMapping" v-for="(item,key) in socialTypeMapping"
:key="key" :key="key"
:label="item" :label="item"
:value="key" :value="key"
/> />
</el-select> </el-select>
<el-select <el-select
v-model="searchStatus.type" v-model="searchStatus.uploadStatus"
placeholder="上传状态" placeholder="上传状态"
clearable style="width: 240px;margin: 0 10px" @clear="init()"> clearable style="width: 240px;margin: 0 10px" @clear="init()">
<el-option <el-option
@ -23,32 +23,28 @@
:value="key" :value="key"
/> />
</el-select> </el-select>
<el-select
v-model="in_out_obj.type"
placeholder="进货,退货"
clearable style="width: 240px;margin: 0 10px" @clear="init()">
<el-option
v-for="(item,key) in in_out"
:key="key"
:label="item"
:value="key"
/>
</el-select>
<el-button type="primary" style="margin-left: 10px" @click="change_search">搜索</el-button> <el-button type="primary" style="margin-left: 10px" @click="change_search">搜索</el-button>
</div> </div>
<div class="content"> <div class="content">
<el-table :data="tableData" style="width: 100%;height: 100%"> <el-table :data="tableData" style="width: 100%;height: 100%">
<el-table-column prop="name" label="商品名称"/>
<el-table-column prop="number" label="进货,退货数量" show-overflow-tooltip> <el-table-column prop="number" label="进货,退货数量" show-overflow-tooltip>
<template #default="{row}"> <template #default="{row}">
<el-icon v-if="row.number<0" style="font-size: 9px"><Minus /></el-icon> <el-icon v-if="row.number<0" style="font-size: 9px"><Minus /></el-icon>
<el-icon v-if="row.number>0" style="font-size: 9px"><Plus /></el-icon> <el-icon v-if="row.number>0" style="font-size: 9px"><Plus /></el-icon>
<span> <span>
<template v-if="row.number!=0"> <template v-if="row.number!=0">
{{Math.abs(row.number)}} {{Math.abs(row.number)}}{{row.packagingUnit}}
</template> </template>
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="socialType" label="医保库存变更类型" show-overflow-tooltip>
<template #default="{row}">
{{ socialTypeMapping[row.socialType] }}
</template>
</el-table-column>
<el-table-column prop="uploadStatus" label="状态"> <el-table-column prop="uploadStatus" label="状态">
<template #default="{row}"> <template #default="{row}">
{{ uploadStatus[row.uploadStatus as keyof typeof uploadStatus] }} {{ uploadStatus[row.uploadStatus as keyof typeof uploadStatus] }}
@ -60,11 +56,6 @@
{{ formatDate(row.uploadDatetime) }} {{ formatDate(row.uploadDatetime) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="type" label="库存变更类型">
<template #default="{row}">
{{ typeMapping[row.type as keyof typeof typeMapping] }}
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
<div class="bottom"> <div class="bottom">
@ -89,20 +80,15 @@ import {Minus, Plus} from "@element-plus/icons-vue";
const tableData = ref([]) const tableData = ref([])
// //
const searchInfo=ref({ const searchInfo=ref<any>({
type:'',
keyword: '',
}) })
const searchStatus=ref({ const searchStatus=ref<any>({
type:'',
keyword: '',
})
const in_out_obj=ref({
type:'',
keyword: '',
}) })
interface TypeMapping {
[key: number]: string;
}
// type typeName // type typeName
const typeMapping = { const socialTypeMapping: TypeMapping = {
101: '调拨入库', 101: '调拨入库',
102: '调拨出库', 102: '调拨出库',
103: '盘盈', 103: '盘盈',
@ -116,10 +102,7 @@ const uploadStatus = {
0: '未上传', 0: '未上传',
1: '已上传', 1: '已上传',
2: '异常', 2: '异常',
} 3: '无需上报',
const in_out = {
106: '进货',
107: '退货',
} }
// //
@ -133,8 +116,8 @@ let init = ()=>{
const query = { const query = {
page: 1, page: 1,
pageSize: 20, pageSize: 20,
type:searchInfo.value.type||in_out_obj.value.type||'', socialType:searchInfo.value.socialType||null,
uploadStatus:searchStatus.value.type||'', uploadStatus:searchStatus.value.uploadStatus ||null,
} }
post("social/upload/get3503List",{query: query}).then((res:any)=>{ post("social/upload/get3503List",{query: query}).then((res:any)=>{
tableData.value = res.list tableData.value = res.list
@ -156,7 +139,9 @@ let change_search=()=>{
} }
// YYYY-MM-DD // YYYY-MM-DD
const formatDate = (isoStr:any) => { const formatDate = (isoStr:any) => {
console.log(isoStr,"isoStr") if (!isoStr){
return "";
}
const date = new Date(isoStr); const date = new Date(isoStr);
return `${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2,'0')}-${date.getDate().toString().padStart(2,'0')}`; return `${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2,'0')}-${date.getDate().toString().padStart(2,'0')}`;
} }

View File

@ -31,6 +31,7 @@ let changePage = (value: number) => {
const query = { const query = {
pageNum: value, pageNum: value,
pageSize: pageSize.value, pageSize: pageSize.value,
code: code.value
} }
post("social/upload/get3505List",{query: query}).then((res:any)=>{ post("social/upload/get3505List",{query: query}).then((res:any)=>{
tableData.value = res.list tableData.value = res.list
@ -40,6 +41,14 @@ let changePage = (value: number) => {
let change_search = ()=>{ let change_search = ()=>{
init() init()
} }
// YYYY-MM-DD
const formatDate = (isoStr:any) => {
if (!isoStr){
return "";
}
const date = new Date(isoStr);
return `${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2,'0')}-${date.getDate().toString().padStart(2,'0')}`;
}
</script> </script>
<template> <template>
@ -50,23 +59,17 @@ let change_search = ()=>{
style="width: 240px" style="width: 240px"
placeholder="请输入库存初始化编码" placeholder="请输入库存初始化编码"
:suffix-icon="Search" :suffix-icon="Search"
size="large" clearable clearable
@change="change_search"/> @change="change_search"/>
<el-button type="primary" style="margin-left: 10px" @click="change_search">搜索</el-button>
</div> </div>
<div class="content"> <div class="content">
<el-table :data="tableData" style="width: 100%;height: 100%"> <el-table :data="tableData" style="width: 100%;height: 100%">
<el-table-column prop="retailOrderCode" label="订单号" show-overflow-tooltip/>
<el-table-column prop="goodsName" label="商品名称"/> <el-table-column prop="goodsName" label="商品名称"/>
<el-table-column prop="chargeOrderCode" label="订单号" show-overflow-tooltip/>
<el-table-column prop="number" label="变化量"> <el-table-column prop="number" label="变化量">
<template #default="{row}"> <template #default="{row}">
{{row.type ==1 ? "+"+row.number : "-"+row.number }}{{row.unit}} {{row.type ==1 ? row.number : "+"+row.number }}{{row.unit}}
</template>
</el-table-column>
<el-table-column prop="feedetlSn" label="详情流水号"/>
<el-table-column prop="createTime" label="初始化日期"/>
<el-table-column prop="uploadStatus" label="状态">
<template #default="{row}">
{{row.uploadStatus ==0 ? '未上传' :row.uploadStatus ==1 ? '已上传': '异常' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="uploadMessage" label="变更类型" show-overflow-tooltip> <el-table-column prop="uploadMessage" label="变更类型" show-overflow-tooltip>
@ -74,6 +77,18 @@ let change_search = ()=>{
{{row.type ==1 ? '销售' :row.type ==2 ? '退货': '异常' }} {{row.type ==1 ? '销售' :row.type ==2 ? '退货': '异常' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="feedetlSn" label="详情流水号" width="250"/>
<el-table-column prop="createTime" label="初始化日期">
<template #default="{row}">
{{formatDate(row.createTime)}}
</template>
</el-table-column>
<el-table-column prop="uploadStatus" label="状态">
<template #default="{row}">
{{row.uploadStatus ==0 ? '未上传' :row.uploadStatus ==1 ? '已上传':row.uploadStatus ==2 ? '无需上报':"异常"}}
</template>
</el-table-column>
<el-table-column prop="uploadDatetime" label="最近上传时间"/> <el-table-column prop="uploadDatetime" label="最近上传时间"/>
</el-table> </el-table>

View File

@ -76,16 +76,16 @@
} }
).then(() => { ).then(() => {
// //
alert("提交冲正,代码注释了,防止在正式库冲正") // alert("")
// post("social/reconciliation/reversal", {data: formData.value}).then((res: any) => { post("social/reconciliation/reversal", {data: formData.value}).then((res: any) => {
// ElMessage({ ElMessage({
// message: "", message: "冲正成功",
// type: 'success', type: 'success',
// plain: true plain: true
// }) })
// formRef.value?.resetFields(); formRef.value?.resetFields();
// close() close()
// }); });
}); });
}) })

View File

@ -111,6 +111,12 @@
{{ getTypeName(scope.row.type) }}<span v-if="scope.row.cateName">/{{ scope.row.cateName }}</span> {{ getTypeName(scope.row.type) }}<span v-if="scope.row.cateName">/{{ scope.row.cateName }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" width="100">
<template #default="scope">
<el-tag type="success" v-if="scope.row.saleStatus">售卖中</el-tag>
<el-tag type="danger" v-else>已停售</el-tag>
</template>
</el-table-column>
<el-table-column label="库存数量" width="150"> <el-table-column label="库存数量" width="150">
<template #default="scope"> <template #default="scope">
{{ scope.row.inventoryWholeNumber }}{{ scope.row.packagingUnit }} {{ scope.row.inventoryWholeNumber }}{{ scope.row.packagingUnit }}
@ -266,7 +272,7 @@ const searchGoods = () => {
maxInterestRate: parseFloat(searchModel.value.maxInterestRate) || null, // maxInterestRate: parseFloat(searchModel.value.maxInterestRate) || null, //
interestRateIntervalList: [] as { min: number; max: number }[], // interestRateIntervalList: [] as { min: number; max: number }[], //
inventoryNumber: inventoryNumber.value ? 0 : '', inventoryNumber: inventoryNumber.value ? 0 : '',
status: status.value ? true : '', saleStatus: status.value ? status.value: null,
} }
searchModel.value.curProfitCate.forEach((item) => { searchModel.value.curProfitCate.forEach((item) => {
for (const cate of profitCategory) { for (const cate of profitCategory) {

View File

@ -5,10 +5,14 @@
<div class="left"> <div class="left">
<el-form :inline="true" :model="searchModel"> <el-form :inline="true" :model="searchModel">
<el-form-item> <el-form-item>
<el-input v-model="searchModel.code" placeholder="请输入单号" style="width: 180px;height: 42px" <el-input v-model="searchModel.keyword" placeholder="名称/联系人/联系方式" style="width: 250px;height: 42px"
:prefix-icon="Search"></el-input> :prefix-icon="Search"></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select v-model="searchModel.turn" placeholder="启用状态" style="width: 120px;height: 42px" clearable>
<el-option label="启用中" :value="1"></el-option>
<el-option label="已禁用" :value="0"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -31,7 +35,7 @@
<el-table :data="tableData" style="width: 100%;height: 100%" @row-click="editSupplier" :header-cell-style="{ backgroundColor: '#F1F5FB' }"> <el-table :data="tableData" style="width: 100%;height: 100%" @row-click="editSupplier" :header-cell-style="{ backgroundColor: '#F1F5FB' }">
<el-table-column label="供应商名称" prop="name" width="250"> <el-table-column label="供应商名称" prop="name" width="250">
</el-table-column> </el-table-column>
<el-table-column label="启用状态" prop="turn" width="80"> <el-table-column label="启用状态" prop="turn" width="150">
<template #default="scope"> <template #default="scope">
<el-tag type="success" v-if="scope.row.turn ==1">启用中</el-tag> <el-tag type="success" v-if="scope.row.turn ==1">启用中</el-tag>
<el-tag type="info" v-else>已禁用</el-tag> <el-tag type="info" v-else>已禁用</el-tag>
@ -69,6 +73,7 @@ const getSupplier = () => {
const query = { const query = {
page: page.value, page: page.value,
pageSize: 20, pageSize: 20,
...searchModel.value,
} }
post("inventory/supplier/list", {query: query}, null).then( post("inventory/supplier/list", {query: query}, null).then(
(res: any) => { (res: any) => {
@ -101,24 +106,15 @@ let changePage = (value: number) => {
getSupplier() getSupplier()
} }
const searchModel = ref({ const searchModel = ref({
code: null, keyword: null,
name: null,
turn: null, turn: null,
licenseCode: null,
contactName: null,
contactTel: null,
reamark: null,
}) })
const resetSearch = () => { const resetSearch = () => {
searchModel.value = { searchModel.value = {
code: null, keyword: null,
name: null,
turn: null, turn: null,
licenseCode: null,
contactName: null,
contactTel: null,
reamark: null,
} }
getSupplier()
} }
</script> </script>

View File

@ -21,8 +21,12 @@
<el-table-column label="结算笔数" prop="settlementCount"></el-table-column> <el-table-column label="结算笔数" prop="settlementCount"></el-table-column>
<el-table-column label="对账结果" prop="reconciliationResult"> <el-table-column label="对账结果" prop="reconciliationResult">
<template #default="scope"> <template #default="scope">
<el-tag v-if="scope.row.reconciliationResult == null" type="success">未对账</el-tag> <el-tag v-if="scope.row.reconciliationResult == null" type="info">未对账</el-tag>
<el-tag v-else type="info">{{ scope.row.reconciliationResult }}</el-tag> <el-tag v-if="scope.row.reconciliationResult == 1" type="success">{{ reconciliationResult[1] }}</el-tag>
<el-tag v-if="scope.row.reconciliationResult != null&&scope.row.reconciliationResult != 1" type="danger">{{
reconciliationResult[scope.row.reconciliationResult as keyof typeof reconciliationResult] || '未知状态'
}}
</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
@ -41,6 +45,8 @@ import {onMounted, ref} from "vue";
import {formatDateArray, getThisMonth, getToday} from "@/utils/dateUtils.ts"; import {formatDateArray, getThisMonth, getToday} from "@/utils/dateUtils.ts";
import {post} from "@/utils/request.ts"; import {post} from "@/utils/request.ts";
import DetailList from "@/components/social/reconciliation/DetailList.vue"; import DetailList from "@/components/social/reconciliation/DetailList.vue";
import {ElMessage} from "element-plus";
import {reconciliationResult} from "../../assets/config/constants.ts";
const selectDate = ref<any>(); const selectDate = ref<any>();
const changeDate = (dates: Date[]) => { const changeDate = (dates: Date[]) => {
@ -48,6 +54,18 @@ const changeDate = (dates: Date[]) => {
console.log(selectDate.value); console.log(selectDate.value);
getList() getList()
}; };
interface TypeMapping {
[key: number]: string;
}
const accountRecordResult: TypeMapping = {
0: "平",
1: "不平",
101: "中心多",
102: "医药机构多",
103: "数据不一致",
};
const list = ref<any>(); const list = ref<any>();
const getList = () => { const getList = () => {
post("social/reconciliation/getList", {beginTime: selectDate.value[0], endTime: selectDate.value[1]}).then( post("social/reconciliation/getList", {beginTime: selectDate.value[0], endTime: selectDate.value[1]}).then(
@ -61,7 +79,10 @@ const accountRecordDo = (row: any) => {
let data = {...row}; let data = {...row};
data.beginTime = selectDate.value[0]; data.beginTime = selectDate.value[0];
data.endTime = selectDate.value[1]; data.endTime = selectDate.value[1];
post("social/reconciliation/totalDo", {data: data}) post("social/reconciliation/totalDo", {data: data}).then((res: any) => {
ElMessage.success(res.stmtinfo.stmt_rslt_dscr);
row.reconciliationResult = res.stmtinfo.stmt_rslt
})
} }
const detailsDo = (row: any) => { const detailsDo = (row: any) => {

View File

@ -15,14 +15,23 @@
<el-table :data="tableData" border style="width: 100%"> <el-table :data="tableData" border style="width: 100%">
<el-table-column prop="chargeTime" label="结算时间" width="180"></el-table-column> <el-table-column prop="chargeTime" label="结算时间" width="180"></el-table-column>
<el-table-column prop="customer" label="患者" width="180"></el-table-column> <el-table-column prop="customer" label="患者" width="180"></el-table-column>
<el-table-column prop="projectCode" label="订单号" width="180"></el-table-column> <el-table-column prop="projectCode" label="订单号" width="240"></el-table-column>
<el-table-column prop="source" label="结算类型" width="180"> <el-table-column prop="source" label="结算类型" width="180">
<template #default="scope"> <template #default="scope">
<el-tag v-if="scope.row.source == 0" type="success">零售</el-tag> <el-tag v-if="scope.row.source == 0" type="success">零售</el-tag>
<el-tag v-else>{{ scope.row.source }}</el-tag> <el-tag v-else>{{ scope.row.source }}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="netReceipts" label="结算金额" width="180"></el-table-column> <el-table-column prop="payType" label="支付类型" width="180">
<template #default="scope">
{{ payTypeMapping[scope.row.payType as keyof typeof payTypeMapping] || '未知' }}
</template>
</el-table-column>
<el-table-column prop="netReceipts" label="结算金额" width="180">
<template #default="scope">
{{ scope.row.netReceipts }}
</template>
</el-table-column>
<el-table-column prop="dockerName" label="医生" width="180"></el-table-column> <el-table-column prop="dockerName" label="医生" width="180"></el-table-column>
<el-table-column prop="salePersonName" label="收费员" width="180"></el-table-column> <el-table-column prop="salePersonName" label="收费员" width="180"></el-table-column>
<el-table-column prop="type" label="交易类型" width="180"> <el-table-column prop="type" label="交易类型" width="180">
@ -39,8 +48,17 @@
<script setup lang="ts"> <script setup lang="ts">
import {onMounted, ref} from "vue"; import {onMounted, ref} from "vue";
import {post} from "@/utils/request.ts"; import {post} from "@/utils/request.ts";
import {getToday, formatDateArray} from "@/utils/dateUtils.ts"; import {getToday, formatDateArray, getThisMonth} from "@/utils/dateUtils.ts";
import {apiConfig} from "@/assets/config/apiConfig.ts"; import {apiConfig} from "@/assets/config/apiConfig.ts";
import {reconciliationResult} from "@/assets/config/constants.ts";
const payTypeMapping = {
1: "医保",
2: "微信",
3: "支付宝",
4: "现金",
5: "其他",
}
const tableData = ref([]) const tableData = ref([])
const date = ref() const date = ref()
@ -56,7 +74,7 @@ const getTableData = () => {
}) })
} }
onMounted(() => { onMounted(() => {
const today = getToday() const today = getThisMonth()
date.value = [today.start, today.end] date.value = [today.start, today.end]
getTableData() getTableData()
}) })