Przeglądaj źródła

护理项目字段修改

xiongxing 1 miesiąc temu
rodzic
commit
e659db2a85

+ 67 - 10
src/views/elderly/nursing/life-care-plan/Form.vue

@@ -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;

+ 2 - 0
src/views/elderly/nursing/life-care-plan/life-item-dialog.vue

@@ -14,6 +14,8 @@
         <el-table-column prop="itemName" label="项目名称" />
         <el-table-column prop="cName" label="护理分类" align="center" />
         <el-table-column prop="categoryName" label="项目分类" align="center" />
+        <el-table-column prop="frequencyUnit" label="频次" align="center" />
+        <el-table-column prop="frequencyType" label="频次类型" align="center" />
         <!-- <el-table-column prop="fee" label="是否额外收费" align="center">
           <template #default="scope">
             <TgSwitch v-model="scope.row.fee"/>

+ 15 - 0
src/views/elderly/nursing/nurse-item/Form.vue

@@ -29,6 +29,21 @@
           >
         </el-radio-group>
       </el-form-item>
+      <el-form-item label="频次" prop="frequencyUnit">
+        <el-input v-model="dataForm.frequencyUnit" placeholder="请输入频次(例:2h/次)" />
+      </el-form-item>
+      <el-form-item label="频次类型" prop="frequencyType">
+        <el-select v-model="dataForm.frequencyType" placeholder="请选择频次类型(高/中低)">
+          <el-option
+            label="高"
+            value="1"
+          />
+          <el-option
+            label="中低"
+            value="2"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="计量方式" prop="frequency">
         <el-select v-model="dataForm.frequency" placeholder="请选择计量方式">
           <el-option

+ 1 - 0
src/views/elderly/nursing/types.ts

@@ -110,5 +110,6 @@ export interface itemsType {
   price?: number
   checked?: boolean
   nurseItemId: string
+  startTime?: string
   nursingPlanId?: string
 }