|
@@ -16,11 +16,11 @@
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
type="selection"
|
|
type="selection"
|
|
|
:selectable="handleSelectable"
|
|
:selectable="handleSelectable"
|
|
|
- width="55"
|
|
|
|
|
|
|
+ width="40"
|
|
|
v-if="props.selection"
|
|
v-if="props.selection"
|
|
|
fixed
|
|
fixed
|
|
|
/>
|
|
/>
|
|
|
- <el-table-column header-align="center" align="center" label="编号" width="70" fixed>
|
|
|
|
|
|
|
+ <el-table-column header-align="center" align="center" label="编号" width="62" fixed>
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
{{
|
|
{{
|
|
|
scope.$index +
|
|
scope.$index +
|
|
@@ -280,15 +280,14 @@
|
|
|
:width="item.width"
|
|
:width="item.width"
|
|
|
>
|
|
>
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
- <el-popover
|
|
|
|
|
- :title="scope.row.elderName"
|
|
|
|
|
- :width="530"
|
|
|
|
|
- placement="top-start"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <el-popover :title="scope.row.elderName" :width="530" placement="top-start">
|
|
|
<template #reference>
|
|
<template #reference>
|
|
|
- <el-tag :type="(!scope.row.otherFiles || scope.row.otherFiles == '') ? 'warning' : 'primary'">{{
|
|
|
|
|
- (!scope.row.otherFiles || scope.row.otherFiles == '') ? '未上传' : '已上传'
|
|
|
|
|
- }}</el-tag>
|
|
|
|
|
|
|
+ <el-tag
|
|
|
|
|
+ :type="!scope.row.otherFiles || scope.row.otherFiles == '' ? 'warning' : 'primary'"
|
|
|
|
|
+ >{{
|
|
|
|
|
+ !scope.row.otherFiles || scope.row.otherFiles == '' ? '未上传' : '已上传'
|
|
|
|
|
+ }}</el-tag
|
|
|
|
|
+ >
|
|
|
</template>
|
|
</template>
|
|
|
<el-table :data="parsingJSON(scope.row.otherFiles)">
|
|
<el-table :data="parsingJSON(scope.row.otherFiles)">
|
|
|
<el-table-column label="预览" width="80" align="center">
|
|
<el-table-column label="预览" width="80" align="center">
|
|
@@ -303,16 +302,22 @@
|
|
|
<Icon v-else icon="ep:document" style="font-size: 20px; color: #909399" />
|
|
<Icon v-else icon="ep:document" style="font-size: 20px; color: #909399" />
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
- <el-table-column width="150" property="fileName" label="附件名称" show-overflow-tooltip/>
|
|
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ width="150"
|
|
|
|
|
+ property="fileName"
|
|
|
|
|
+ label="附件名称"
|
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
|
+ />
|
|
|
<el-table-column width="180" property="createTime" label="创建时间" />
|
|
<el-table-column width="180" property="createTime" label="创建时间" />
|
|
|
- <el-table-column width="90" label="操作" align="center">
|
|
|
|
|
- <template #default="{row}">
|
|
|
|
|
- <el-button type="primary" link size="small" @click="handleDownload(row)">下载</el-button>
|
|
|
|
|
|
|
+ <el-table-column width="90" label="操作" align="center">
|
|
|
|
|
+ <template #default="{ row }">
|
|
|
|
|
+ <el-button type="primary" link size="small" @click="handleDownload(row)"
|
|
|
|
|
+ >下载</el-button
|
|
|
|
|
+ >
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
</el-popover>
|
|
</el-popover>
|
|
|
-
|
|
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</template>
|
|
</template>
|
|
@@ -443,13 +448,13 @@ import { TableColumn } from '@/types/table'
|
|
|
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
|
|
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
|
|
|
import { getDictLabel, getDictOptions } from '@/utils/dict'
|
|
import { getDictLabel, getDictOptions } from '@/utils/dict'
|
|
|
import { useAppStore } from '@/store/modules/app'
|
|
import { useAppStore } from '@/store/modules/app'
|
|
|
-import { fixedNum, formatCeil, formatNum, formatRound } from '@/utils/formatter'
|
|
|
|
|
|
|
+import { fixedNum, formatCeil, formatNum, formatRound, formatTrunc } from '@/utils/formatter'
|
|
|
import { tableHeaderColor } from '@/utils/table'
|
|
import { tableHeaderColor } from '@/utils/table'
|
|
|
import { breakpointsTailwind, useBreakpoints } from '@vueuse/core'
|
|
import { breakpointsTailwind, useBreakpoints } from '@vueuse/core'
|
|
|
import { formatTime } from '@/utils'
|
|
import { formatTime } from '@/utils'
|
|
|
import { useUserStore } from '@/store/modules/user'
|
|
import { useUserStore } from '@/store/modules/user'
|
|
|
import { useSettingStore } from '@/store/modules/setting'
|
|
import { useSettingStore } from '@/store/modules/setting'
|
|
|
-import {FileItem, isImageFile} from "@/components/UploadFile";
|
|
|
|
|
|
|
+import { FileItem, isImageFile } from '@/components/UploadFile'
|
|
|
const userStore = useUserStore()
|
|
const userStore = useUserStore()
|
|
|
const settingStore = useSettingStore()
|
|
const settingStore = useSettingStore()
|
|
|
const radioId = ref() // 单选表格
|
|
const radioId = ref() // 单选表格
|
|
@@ -548,13 +553,12 @@ const toFixedNum = (num: any) => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const parsingJSON = (row) => {
|
|
const parsingJSON = (row) => {
|
|
|
- if(!row || row==''){
|
|
|
|
|
|
|
+ if (!row || row == '') {
|
|
|
return []
|
|
return []
|
|
|
- }else {
|
|
|
|
|
|
|
+ } else {
|
|
|
let json = JSON.parse(row)
|
|
let json = JSON.parse(row)
|
|
|
return json
|
|
return json
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const handleSelectable = (row) => {
|
|
const handleSelectable = (row) => {
|
|
@@ -564,7 +568,6 @@ const handleSelectable = (row) => {
|
|
|
return true
|
|
return true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
const handleDownload = (row: FileItem) => {
|
|
const handleDownload = (row: FileItem) => {
|
|
|
console.log(row)
|
|
console.log(row)
|
|
|
fetch(row.fileUrl)
|
|
fetch(row.fileUrl)
|
|
@@ -645,59 +648,34 @@ const tableHeight = () => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const formatActualPrice = (item, type) => {
|
|
const formatActualPrice = (item, type) => {
|
|
|
|
|
+ // 统一口径:先对各分量求和成总额 rawSum,再对总额做一次性取整/保留小数。
|
|
|
|
|
+ // 不可逐项取整再加总——分量为负时直接向 0 截断/取整会放大误差(如 -787.5→-787 使 3712.5 变 3713)
|
|
|
|
|
+ const rawSum =
|
|
|
|
|
+ Number(item['bedAmount']) +
|
|
|
|
|
+ Number(item['nurseAmount']) +
|
|
|
|
|
+ Number(item['mealAmount']) +
|
|
|
|
|
+ Number(item['otherAmount']) +
|
|
|
|
|
+ Number(item['insuranceAmount'])
|
|
|
if (item.type == 1) {
|
|
if (item.type == 1) {
|
|
|
if (settingStore.getAdmissionBill == 2) {
|
|
if (settingStore.getAdmissionBill == 2) {
|
|
|
// 向上取整
|
|
// 向上取整
|
|
|
- return formatNum(
|
|
|
|
|
- Number(formatCeil(item['bedAmount'])) +
|
|
|
|
|
- Number(formatCeil(item['nurseAmount'])) +
|
|
|
|
|
- Number(formatCeil(item['mealAmount'])) +
|
|
|
|
|
- Number(formatRound(item['otherAmount'])) +
|
|
|
|
|
- Number(formatRound(item['insuranceAmount']))
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ return formatNum(formatCeil(rawSum))
|
|
|
} else if (settingStore.getAdmissionBill == 3) {
|
|
} else if (settingStore.getAdmissionBill == 3) {
|
|
|
// 四舍五入保留两位
|
|
// 四舍五入保留两位
|
|
|
- return formatNum(
|
|
|
|
|
- Number(fixedNum(item['bedAmount'])) +
|
|
|
|
|
- Number(fixedNum(item['nurseAmount'])) +
|
|
|
|
|
- Number(fixedNum(item['mealAmount'])) +
|
|
|
|
|
- Number(fixedNum(item['otherAmount'])) +
|
|
|
|
|
- Number(fixedNum(item['insuranceAmount']))
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ return formatNum(fixedNum(rawSum))
|
|
|
} else if (settingStore.getAdmissionBill == 4) {
|
|
} else if (settingStore.getAdmissionBill == 4) {
|
|
|
// 四舍五入取整
|
|
// 四舍五入取整
|
|
|
- return formatNum(
|
|
|
|
|
- Number(formatRound(item['bedAmount'])) +
|
|
|
|
|
- Number(formatRound(item['nurseAmount'])) +
|
|
|
|
|
- Number(formatRound(item['mealAmount'])) +
|
|
|
|
|
- Number(formatRound(item['otherAmount'])) +
|
|
|
|
|
- Number(formatRound(item['insuranceAmount']))
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ return formatNum(formatRound(rawSum))
|
|
|
} else {
|
|
} else {
|
|
|
- return formatNum(
|
|
|
|
|
- Number(item['bedAmount']) +
|
|
|
|
|
- Number(item['nurseAmount']) +
|
|
|
|
|
- Number(item['mealAmount']) +
|
|
|
|
|
- Number(item['otherAmount']) +
|
|
|
|
|
- Number(item['insuranceAmount'])
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ // 应收,不取整
|
|
|
|
|
+ return formatNum(rawSum)
|
|
|
}
|
|
}
|
|
|
} else if (settingStore.getRounding) {
|
|
} else if (settingStore.getRounding) {
|
|
|
- return formatNum(
|
|
|
|
|
- Number(formatRound(item['bedAmount'])) +
|
|
|
|
|
- Number(formatRound(item['nurseAmount'])) +
|
|
|
|
|
- Number(formatRound(item['mealAmount'])) +
|
|
|
|
|
- Number(formatRound(item['otherRoundAmount'])) +
|
|
|
|
|
- Number(formatRound(item['insuranceAmount']))
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ // 直丢小数
|
|
|
|
|
+ return formatNum(formatTrunc(rawSum))
|
|
|
} else if (settingStore.getFix2Num) {
|
|
} else if (settingStore.getFix2Num) {
|
|
|
- return formatNum(
|
|
|
|
|
- Number(fixedNum(item['bedAmount'])) +
|
|
|
|
|
- Number(fixedNum(item['nurseAmount'])) +
|
|
|
|
|
- Number(fixedNum(item['mealAmount'])) +
|
|
|
|
|
- Number(fixedNum(item['otherAmount'])) +
|
|
|
|
|
- Number(fixedNum(item['insuranceAmount']))
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ // 四舍五入保留两位
|
|
|
|
|
+ return formatNum(fixedNum(rawSum))
|
|
|
} else {
|
|
} else {
|
|
|
return formatNum(item[type.field])
|
|
return formatNum(item[type.field])
|
|
|
}
|
|
}
|
|
@@ -718,7 +696,7 @@ const formatAdmissionBillRoundUp = (item, type) => {
|
|
|
return formatNum(item[type.field])
|
|
return formatNum(item[type.field])
|
|
|
}
|
|
}
|
|
|
} else if (settingStore.getRounding) {
|
|
} else if (settingStore.getRounding) {
|
|
|
- return formatRound(item[type.field])
|
|
|
|
|
|
|
+ return formatTrunc(item[type.field])
|
|
|
} else if (settingStore.getFix2Num) {
|
|
} else if (settingStore.getFix2Num) {
|
|
|
return fixedNum(item[type.field])
|
|
return fixedNum(item[type.field])
|
|
|
} else {
|
|
} else {
|
|
@@ -727,8 +705,12 @@ const formatAdmissionBillRoundUp = (item, type) => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const calcPrice = (row, item) => {
|
|
const calcPrice = (row, item) => {
|
|
|
- if (settingStore.getRounding || (row.type == 1 && settingStore.getAdmissionBill == 4)) {
|
|
|
|
|
|
|
+ // 入院账单"四舍五入取整"(getAdmissionBill==4)仍走四舍五入
|
|
|
|
|
+ if (row.type == 1 && settingStore.getAdmissionBill == 4) {
|
|
|
return formatRound(row[item.otherField || item.field])
|
|
return formatRound(row[item.otherField || item.field])
|
|
|
|
|
+ } else if (settingStore.getRounding) {
|
|
|
|
|
+ // 账单金额单项取整设置:直丢小数
|
|
|
|
|
+ return formatTrunc(row[item.otherField || item.field])
|
|
|
} else if (settingStore.getFix2Num) {
|
|
} else if (settingStore.getFix2Num) {
|
|
|
return fixedNum(row[item.field])
|
|
return fixedNum(row[item.field])
|
|
|
} else {
|
|
} else {
|