|
@@ -195,7 +195,10 @@ const contractForm = reactive({
|
|
|
// 费用明细列表
|
|
// 费用明细列表
|
|
|
monthlyExpenses: [] as any[],
|
|
monthlyExpenses: [] as any[],
|
|
|
oneTimeExpenses: [] as any[],
|
|
oneTimeExpenses: [] as any[],
|
|
|
- stageExpenses: [] as any[]
|
|
|
|
|
|
|
+ stageExpenses: [] as any[],
|
|
|
|
|
+ // 违约条款中的违约金比例(%)——用户可输入,两处条款各自独立,保存到 contractInfo JSON
|
|
|
|
|
+ penaltyPercent1: 1,
|
|
|
|
|
+ penaltyPercent2: 1
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
// 父组件下拉切换合同类型时,同步到本地表单(保存时会写入 contractInfo)
|
|
// 父组件下拉切换合同类型时,同步到本地表单(保存时会写入 contractInfo)
|
|
@@ -535,6 +538,13 @@ const fetchContractData = async (row: any) => {
|
|
|
|
|
|
|
|
if (parsedData) {
|
|
if (parsedData) {
|
|
|
Object.assign(contractForm, parsedData)
|
|
Object.assign(contractForm, parsedData)
|
|
|
|
|
+ // 旧数据可能没有违约金比例字段或为 null,兜底为默认值 1
|
|
|
|
|
+ if (contractForm.penaltyPercent1 == null || Number.isNaN(Number(contractForm.penaltyPercent1))) {
|
|
|
|
|
+ contractForm.penaltyPercent1 = 1
|
|
|
|
|
+ }
|
|
|
|
|
+ if (contractForm.penaltyPercent2 == null || Number.isNaN(Number(contractForm.penaltyPercent2))) {
|
|
|
|
|
+ contractForm.penaltyPercent2 = 1
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
} catch (e) {
|
|
} catch (e) {
|
|
|
console.error('解析合同信息失败', e)
|
|
console.error('解析合同信息失败', e)
|
|
@@ -2001,7 +2011,19 @@ watch(
|
|
|
2.2 除本合同另有约定外,下列情况下,甲方可以单方解除本合同,并无需承担违约责任:
|
|
2.2 除本合同另有约定外,下列情况下,甲方可以单方解除本合同,并无需承担违约责任:
|
|
|
</p>
|
|
</p>
|
|
|
<p class="content-text" style="padding-left: 2em">
|
|
<p class="content-text" style="padding-left: 2em">
|
|
|
- (1)乙方或丙方无无故拖欠各项费用超过15日,经甲方书面催告后7日内仍不交纳的,甲方有权解除合同,并书面通知乙方搬出养老机构。乙方在甲方发出书面解除合同通知后7日内仍不搬出的,甲方有权提起诉讼,请求法院确认合同解除。乙方和丙方除应支付拖欠的服务费用,诉讼期间的服务费用以外,还应每天支付应付未付费用金额的1%违约金,并负担甲方由此产生的一切费用(包括但不限于诉讼费、甲方聘请律师的实际支出、搬出费用)等。
|
|
|
|
|
|
|
+ (1)乙方或丙方无无故拖欠各项费用超过15日,经甲方书面催告后7日内仍不交纳的,甲方有权解除合同,并书面通知乙方搬出养老机构。乙方在甲方发出书面解除合同通知后7日内仍不搬出的,甲方有权提起诉讼,请求法院确认合同解除。乙方和丙方除应支付拖欠的服务费用,诉讼期间的服务费用以外,还应每天支付应付未付费用金额的
|
|
|
|
|
+ <el-input-number
|
|
|
|
|
+ v-if="!isTextMode"
|
|
|
|
|
+ v-model="contractForm.penaltyPercent1"
|
|
|
|
|
+ :min="0"
|
|
|
|
|
+ :max="100"
|
|
|
|
|
+ :precision="2"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ class="percent-input"
|
|
|
|
|
+ controls-position="right"
|
|
|
|
|
+ />
|
|
|
|
|
+ <template v-else>{{ contractForm.penaltyPercent1 }}</template>%
|
|
|
|
|
+ 违约金,并负担甲方由此产生的一切费用(包括但不限于诉讼费、甲方聘请律师的实际支出、搬出费用)等。
|
|
|
</p>
|
|
</p>
|
|
|
<p class="content-text" style="padding-left: 2em">
|
|
<p class="content-text" style="padding-left: 2em">
|
|
|
(2)乙方严重违反甲方的规章制度,造成甲方难以履行对乙方的养老服务,或造成其他入住老人伤害或存在可能造成他人伤害危险的。需对有关事实进行甄别别的,可提请属地民政部门或委托第三方协助认定。
|
|
(2)乙方严重违反甲方的规章制度,造成甲方难以履行对乙方的养老服务,或造成其他入住老人伤害或存在可能造成他人伤害危险的。需对有关事实进行甄别别的,可提请属地民政部门或委托第三方协助认定。
|
|
@@ -2073,7 +2095,19 @@ watch(
|
|
|
</div>
|
|
</div>
|
|
|
<div class="page-content">
|
|
<div class="page-content">
|
|
|
<p class="content-text">
|
|
<p class="content-text">
|
|
|
- 4.如果乙方或丙方无故拖欠各项费用超过15日,经甲方发出催告通知后7日内仍不交纳的,甲方有权解除合同,书面通知乙方和丙方,要求乙方出院。如果乙方在甲方发出解除合同通知后7日内仍不出院,甲方有权强制要求乙方出院或者送回乙方或丙方住所。此种情况下解除合同,乙方及丙方除应支付拖欠的费用外,还应每天支付应付未付费用金额的1%违约金,并负担甲方由此产生的一切费用(包括但不限于诉讼费、甲方聘请律师的实际支出、搬出费用)等;
|
|
|
|
|
|
|
+ 4.如果乙方或丙方无故拖欠各项费用超过15日,经甲方发出催告通知后7日内仍不交纳的,甲方有权解除合同,书面通知乙方和丙方,要求乙方出院。如果乙方在甲方发出解除合同通知后7日内仍不出院,甲方有权强制要求乙方出院或者送回乙方或丙方住所。此种情况下解除合同,乙方及丙方除应支付拖欠的费用外,还应每天支付应付未付费用金额的
|
|
|
|
|
+ <el-input-number
|
|
|
|
|
+ v-if="!isTextMode"
|
|
|
|
|
+ v-model="contractForm.penaltyPercent2"
|
|
|
|
|
+ :min="0"
|
|
|
|
|
+ :max="100"
|
|
|
|
|
+ :precision="2"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ class="percent-input"
|
|
|
|
|
+ controls-position="right"
|
|
|
|
|
+ />
|
|
|
|
|
+ <template v-else>{{ contractForm.penaltyPercent2 }}</template>%
|
|
|
|
|
+ 违约金,并负担甲方由此产生的一切费用(包括但不限于诉讼费、甲方聘请律师的实际支出、搬出费用)等;
|
|
|
</p>
|
|
</p>
|
|
|
<p class="content-text">
|
|
<p class="content-text">
|
|
|
5.乙方或丙方未将乙方健康状况、用药情况及过往病史如实告知甲方,造成甲方在提供服务过程中护理失当的,由乙方或丙方承担相应的后果。
|
|
5.乙方或丙方未将乙方健康状况、用药情况及过往病史如实告知甲方,造成甲方在提供服务过程中护理失当的,由乙方或丙方承担相应的后果。
|
|
@@ -2602,6 +2636,24 @@ watch(
|
|
|
color: #333;
|
|
color: #333;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/* 违约金百分比内联输入框:融入文档段落样式 */
|
|
|
|
|
+.percent-input {
|
|
|
|
|
+ width: 90px;
|
|
|
|
|
+ margin: 0 4px;
|
|
|
|
|
+ vertical-align: middle;
|
|
|
|
|
+
|
|
|
|
|
+ :deep(.el-input__inner) {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ font-family: 'SimSun', 'Microsoft YaHei', serif;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ :deep(.el-input-number__decrease),
|
|
|
|
|
+ :deep(.el-input-number__increase) {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
@media print {
|
|
@media print {
|
|
|
.contract-body {
|
|
.contract-body {
|
|
|
background: #fff;
|
|
background: #fff;
|