ME 3 dagar sedan
förälder
incheckning
f0cab89362
2 ändrade filer med 53 tillägg och 10 borttagningar
  1. 2 2
      src/views/emergency/schedule-add-or-update.vue
  2. 51 8
      src/views/emergency/schedule.vue

+ 2 - 2
src/views/emergency/schedule-add-or-update.vue

@@ -51,6 +51,7 @@ const props = defineProps<{ defaultDate?: string }>();
 
 const multipleDates = ref<string[]>([]);
 const init =async  (id?: number, date?: string, dates?: string[]) => {
+  visible.value = true;
   dataForm.id = "";
   dataForm.scheduleDate = date || '';
   multipleDates.value = dates || [];
@@ -63,7 +64,6 @@ const init =async  (id?: number, date?: string, dates?: string[]) => {
   if (id) {
     getInfo(id);
   }
-  visible.value = true;
 };
 
 const employeeOptions = ref<{ id: string; name: string }[]>([]);
@@ -108,7 +108,7 @@ const dataFormSubmitHandle = () => {
       scheduleDTOs,
       remark: dataForm.remark
     };
-
+    dataForm.status = dataForm.status ? Number(dataForm.status) : null;
     baseService.post("/emergency/schedule/batch", payload).then((res) => {
       ElMessage.success({
         message: '成功',

+ 51 - 8
src/views/emergency/schedule.vue

@@ -14,7 +14,7 @@
         <el-button v-if="state.hasPermission('emergency:schedule:save')" type="primary" @click="addHandle()">新增</el-button>
       </el-form-item>
       <el-form-item>
-        <el-button v-if="state.hasPermission('emergency:schedule:delete')" type="danger" @click="state.deleteHandle()">删除</el-button>
+        <el-button v-if="state.hasPermission('emergency:schedule:delete')" type="danger" @click="customDeleteHandle()">删除</el-button>
       </el-form-item>
        <el-form-item>
         <el-button v-if="state.hasPermission('emergency:schedule:review')" type="danger" @click="reviewHandle()">审阅</el-button>
@@ -41,7 +41,7 @@
               size="small"
               class="status-tag"
             >
-              {{ getScheduleStatus(data.day) === 0 ? '确认' : '已确认' }}
+              {{ getScheduleStatus(data.day) === 0 ? '确认' : '已确认' }}
             </el-tag>
           </div>
 
@@ -117,7 +117,6 @@ const addHandle = () => {
     return;
   }
 
-  // 查找已存在排班的日期
   const existingDates = selectedDates.value.filter(date =>
     state.dataList?.some(item => item.scheduleDate === date)
   );
@@ -147,7 +146,6 @@ const addHandle = () => {
 const refreshAfterAdd = async () => {
   selectedDates.value = [];  
   state.getDataList(); 
-  console.log(state.dataList);
 };
 
 const addOrUpdateRef = ref();
@@ -177,19 +175,62 @@ const handleDateToggle = (day: string, checked: boolean) => {
   }
 };
 
+//删除
+const customDeleteHandle = () => {
+  if (selectedDates.value.length === 0) {
+    return ElMessage.warning("请先选择要删除的日期");
+  }
+
+  const idsToDelete = selectedDates.value
+    .map(date => {
+      const match = state.dataList.find(item => item.scheduleDate === date);
+      return match?.id;
+    })
+    .filter(Boolean) as string[];
+
+  if (idsToDelete.length === 0) {
+    return ElMessage.warning("选中日期中暂无排班数据");
+  }
+
+  ElMessageBox.confirm(`确认要删除选中的 ${idsToDelete.length} 条排班记录吗?`, "提示", {
+    confirmButtonText: "删除",
+    cancelButtonText: "取消",
+    type: "warning"
+  }).then(() => {
+    baseService.delete(state.deleteURL, idsToDelete);
+    ElMessage.success({
+      message: "删除成功",
+      duration: 500,
+      onClose: () => {
+            state.getDataList();
+            selectedDates.value = [];
+          }
+    });
+  }).catch(() => {
+    // 取消删除
+  });
+};
+
+
 // 审阅
 const reviewHandle = (id?: string) => {
-  if (!id && state.dataListSelections && state.dataListSelections.length <= 0) {
+  if (selectedDates.value.length === 0) {
     return ElMessage({
       message: "请选择操作项",
       type: "warning",
       duration: 500
     });
   }
-  const reviewData = id 
-    ? [id] 
-    : (state.dataListSelections || []).map((item: IObject) => {return item.id});
+  const reviewData = selectedDates.value
+    .map(date => {
+      const item = state.dataList.find((i: any) => i.scheduleDate === date);
+      return item?.id;
+    })
+    .filter(Boolean);
 
+  if (reviewData.length === 0) {
+    return ElMessage.warning("选中日期中暂无排班数据");
+  }
   ElMessageBox.confirm("确定进行[审阅]操作?", "提示", {
     confirmButtonText: "确定",
     cancelButtonText: "取消",
@@ -202,6 +243,8 @@ const reviewHandle = (id?: string) => {
           duration: 500,
           onClose: () => {
             state.getDataList();
+            state.dataListSelections = [];
+
           }
         });
       });