|
|
@@ -70,14 +70,30 @@
|
|
|
v-for="(p, i) in dataForm.items"
|
|
|
:key="i"
|
|
|
>
|
|
|
- <div class="border">
|
|
|
- <el-checkbox
|
|
|
- :label="p.nurseItemName"
|
|
|
- v-model="p.checked"
|
|
|
- @change="(arg) => handleChangeCheckBox(arg, p)"
|
|
|
- v-if="!isDetail"
|
|
|
- />
|
|
|
- <div v-else class="itemName">{{ p.nurseItemName }}</div>
|
|
|
+ <div class="border item-row">
|
|
|
+ <div class="item-left">
|
|
|
+ <el-checkbox
|
|
|
+ :label="p.nurseItemName"
|
|
|
+ v-model="p.checked"
|
|
|
+ @change="(arg) => handleChangeCheckBox(arg, p)"
|
|
|
+ v-if="!isDetail"
|
|
|
+ />
|
|
|
+ <div v-else class="itemName">{{ p.nurseItemName }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="item-time" v-if="!isDetail">
|
|
|
+ <span class="time-label required">护理开始时间</span>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="p.startTime"
|
|
|
+ type="datetime"
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ placeholder="请选择开始时间"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else class="item-time detail-time">
|
|
|
+ <span class="time-label">护理开始时间</span>
|
|
|
+ <span>{{ p.startTime || '-' }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -195,7 +211,8 @@ const getItemList = (val) => {
|
|
|
operatingMode: item.operatingMode,
|
|
|
checked: true,
|
|
|
price: item.price,
|
|
|
- isExtra: item.type == 1 ? 1 : 0
|
|
|
+ isExtra: item.type == 1 ? 1 : 0,
|
|
|
+ startTime: '',
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
@@ -221,6 +238,14 @@ const submitForm = async () => {
|
|
|
if (!formRef.value) return
|
|
|
const valid = await formRef.value.validate()
|
|
|
if (!valid) return
|
|
|
+
|
|
|
+ const missingTime = dataForm.value.items.find((item) => item.checked && !item.startTime)
|
|
|
+ if (missingTime) {
|
|
|
+ message.warning(`请先选择【${missingTime.nurseItemName}】的护理开始时间`)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
try {
|
|
|
formLoading.value = true
|
|
|
const params = {
|
|
|
@@ -252,11 +277,43 @@ const submitForm = async () => {
|
|
|
.itemName {
|
|
|
line-height: 30px;
|
|
|
}
|
|
|
- .border {
|
|
|
+ // .border {
|
|
|
+ // padding: 1px 11px;
|
|
|
+ // box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
|
|
|
+ // border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
|
+ // }
|
|
|
+ .item-row {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ gap: 12px;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ }
|
|
|
+ .item-left {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ min-height: 32px;
|
|
|
padding: 1px 11px;
|
|
|
+ flex: 1;
|
|
|
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
|
|
|
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
|
}
|
|
|
+ .item-meta {
|
|
|
+ display: flex;
|
|
|
+ gap: 8px;
|
|
|
+ }
|
|
|
+ .item-time {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+ }
|
|
|
+ .time-label {
|
|
|
+ white-space: nowrap;
|
|
|
+ color: var(--el-text-color-secondary);
|
|
|
+ }
|
|
|
+ .detail-time {
|
|
|
+ color: var(--el-text-color-regular);
|
|
|
+ }
|
|
|
.border-warning {
|
|
|
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
|
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-color-warning)) inset;
|