|
@@ -848,6 +848,24 @@ const displayExpenseName = (item: any): string => {
|
|
|
return label ? `${label}¥` : ''
|
|
return label ? `${label}¥` : ''
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ * 月度费用名称(四大费用等系统项)的可编辑取值。
|
|
|
|
|
+ * 默认沿用系统费用名称(displayExpenseName 去掉末尾「¥」,「¥」由模板统一输出),
|
|
|
|
|
+ * 用户改过后写入 item.customName,随 contractInfo 一并持久化。
|
|
|
|
|
+ */
|
|
|
|
|
+const getExpenseName = (item: any): string => {
|
|
|
|
|
+ const custom = (item?.customName ?? '').toString().trim()
|
|
|
|
|
+ if (custom) return custom
|
|
|
|
|
+ return displayExpenseName(item).replace(/¥$/, '')
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/** 写入自定义费用名称;清空或改回默认值时回落为'',让显示继续走系统默认名 */
|
|
|
|
|
+const setExpenseName = (item: any, val: any) => {
|
|
|
|
|
+ if (!item) return
|
|
|
|
|
+ const next = (val ?? '').toString()
|
|
|
|
|
+ item.customName = next.trim() === getExpenseName({ ...item, customName: '' }) ? '' : next
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const bedList = ref<{ chargeName: string; id: string; price: number }[]>([])
|
|
const bedList = ref<{ chargeName: string; id: string; price: number }[]>([])
|
|
|
|
|
|
|
|
const loadBedTypes = async () => {
|
|
const loadBedTypes = async () => {
|
|
@@ -1482,7 +1500,14 @@ watch(
|
|
|
/>¥:
|
|
/>¥:
|
|
|
</template>
|
|
</template>
|
|
|
<template v-else>
|
|
<template v-else>
|
|
|
- {{ displayExpenseName(item) }}:
|
|
|
|
|
|
|
+ <FieldItem
|
|
|
|
|
+ :model-value="getExpenseName(item)"
|
|
|
|
|
+ :is-text-mode="isTextMode"
|
|
|
|
|
+ width="220px"
|
|
|
|
|
+ placeholder="请输入费用名称"
|
|
|
|
|
+ no-underline
|
|
|
|
|
+ @update:model-value="(val: any) => setExpenseName(item, val)"
|
|
|
|
|
+ />¥:
|
|
|
</template>
|
|
</template>
|
|
|
<FieldItem
|
|
<FieldItem
|
|
|
v-model="item.actualAmount"
|
|
v-model="item.actualAmount"
|
|
@@ -1553,7 +1578,15 @@ watch(
|
|
|
</p>
|
|
</p>
|
|
|
<p class="content-text"> (2)一次性收取的费用(如有请填写)。 </p>
|
|
<p class="content-text"> (2)一次性收取的费用(如有请填写)。 </p>
|
|
|
<div v-for="(item, index) in oneTimeExpensesList" :key="item.id" class="content-text">
|
|
<div v-for="(item, index) in oneTimeExpensesList" :key="item.id" class="content-text">
|
|
|
- {{ numberToCircle(index + 1) }}{{ displayExpenseName(item) }}
|
|
|
|
|
|
|
+ {{ numberToCircle(index + 1)
|
|
|
|
|
+ }}<FieldItem
|
|
|
|
|
+ :model-value="getExpenseName(item)"
|
|
|
|
|
+ :is-text-mode="isTextMode"
|
|
|
|
|
+ width="200px"
|
|
|
|
|
+ placeholder="请输入费用名称"
|
|
|
|
|
+ no-underline
|
|
|
|
|
+ @update:model-value="(val: any) => setExpenseName(item, val)"
|
|
|
|
|
+ />¥
|
|
|
<FieldItem
|
|
<FieldItem
|
|
|
v-model="item.actualAmount"
|
|
v-model="item.actualAmount"
|
|
|
:is-text-mode="isTextMode"
|
|
:is-text-mode="isTextMode"
|