From 193ddd53abc21bbfbcf1d69782f57dfaab8d2463 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期四, 04 九月 2025 16:33:39 +0800
Subject: [PATCH] 考勤管理-假期、年假、加班、上班界面展示,

---
 src/api/collaborativeApproval/attendanceManagement.js          |  136 +++++++++++++
 src/views/collaborativeApproval/attendanceManagement/index.vue |  429 +++++++++++++++++++++++++++++++-----------
 2 files changed, 455 insertions(+), 110 deletions(-)

diff --git a/src/api/collaborativeApproval/attendanceManagement.js b/src/api/collaborativeApproval/attendanceManagement.js
new file mode 100644
index 0000000..3c99775
--- /dev/null
+++ b/src/api/collaborativeApproval/attendanceManagement.js
@@ -0,0 +1,136 @@
+import request from "@/utils/request";
+
+// 鏌ヨ鍋囨湡璁剧疆鍒楄〃
+export function listHolidaySettings(query) {
+  return request({
+    url: "/holidaySettings/getList",
+    method: "get",
+    params: query,
+  });
+}
+//鏌ヨ骞村亣瑙勫垯鍒楄〃
+export function listAnnualLeaveSettingList(query) {
+  return request({
+    url: "/holidaySettings/getAnnualLeaveSettingList",
+    method: "get",
+    params: query,
+  });
+}
+//鏌ヨ鍔犵彮瑙勫垯鍒楄〃
+export function listOvertimeSettingList(query) {
+  return request({
+    url: "/holidaySettings/getOvertimeSettingList",
+    method: "get",
+    params: query,
+  });
+}
+//鏌ヨ宸ヤ綔鏃堕棿瑙勫垯鍒楄〃
+export function listWorkingHoursSettingList(query) {
+  return request({
+    url: "/holidaySettings/getWorkingHoursSettingList",
+    method: "get",
+    params: query,
+  });
+}
+
+// 鏂板鍋囨湡璁剧疆
+export function addHolidaySettings(data) {
+  return request({
+    url: "/holidaySettings/add",
+    method: "post",
+    data: data,
+  });
+}
+//鏂板骞村亣瑙勫垯
+export function addAnnualLeaveSetting(data) {
+  return request({
+    url: "/holidaySettings/addAnnualLeaveSetting",
+    method: "post",
+    data: data,
+  });
+}
+//鏂板鍔犵彮瑙勫垯
+export function addOvertimeSetting(data) {
+  return request({
+    url: "/holidaySettings/addOvertimeSetting",
+    method: "post",
+    data: data,
+  });
+}
+//鏂板宸ヤ綔鏃堕棿瑙勫垯
+export function addWorkingHoursSetting(data) {
+  return request({
+    url: "/holidaySettings/addWorkingHoursSetting",
+    method: "post",
+    data: data,
+  });
+}
+
+
+// 淇敼鍋囨湡璁剧疆
+export function updateHolidaySettings(data) {
+  return request({
+    url: "/holidaySettings/update",
+    method: "post",
+    data: data,
+  });
+}
+// 淇敼骞村亣瑙勫垯
+export function updateAnnualLeaveSetting(data) {
+  return request({
+    url: "/holidaySettings/updateAnnualLeaveSetting",
+    method: "post",
+    data: data,
+  });
+}
+// 淇敼鍔犵彮瑙勫垯
+export function updateOvertimeSetting(data) {
+  return request({
+    url: "/holidaySettings/updateOvertimeSetting",
+    method: "post",
+    data: data,
+  });
+}
+// 淇敼宸ヤ綔鏃堕棿瑙勫垯
+export function updateWorkingHoursSetting(data) {
+  return request({
+    url: "/holidaySettings/updateWorkingHoursSetting",
+    method: "post",
+    data: data,
+  });
+}
+
+// 鎵归噺鍒犻櫎鍋囨湡璁剧疆
+export function delHolidaySettings(query) {
+  return request({
+    url: "/holidaySettings/delete",
+    method: "delete",
+    data: query,
+  });
+}
+// 鎵归噺鍒犻櫎骞村亣瑙勫垯
+export function delAnnualLeaveSetting(query) {
+  return request({
+    url: "/holidaySettings/deleteAnnualLeaveSetting",
+    method: "delete",
+    data: query,
+  });
+}
+// 鎵归噺鍒犻櫎鍔犵彮瑙勫垯
+export function delOvertimeSetting(query) {
+  return request({
+    url: "/holidaySettings/deleteOvertimeSetting",
+    method: "delete",
+    data: query,
+  });
+}
+// 鎵归噺鍒犻櫎宸ヤ綔鏃堕棿瑙勫垯
+export function delWorkingHoursSetting(query) {
+  return request({
+    url: "/holidaySettings/deleteWorkingHoursSetting",
+    method: "delete",
+    data: query,
+  });
+}
+
+
diff --git a/src/views/collaborativeApproval/attendanceManagement/index.vue b/src/views/collaborativeApproval/attendanceManagement/index.vue
index 37b3d59..245d3b5 100644
--- a/src/views/collaborativeApproval/attendanceManagement/index.vue
+++ b/src/views/collaborativeApproval/attendanceManagement/index.vue
@@ -39,7 +39,11 @@
           <el-button type="primary" @click="openDialog('annual', 'add')">鏂板骞村亣瑙勫垯</el-button>
           
           <el-table :data="annualData" border style="width: 100%; margin-top: 20px;">
-            <el-table-column prop="employeeType" label="鍛樺伐绫诲瀷"/>
+            <el-table-column prop="employeeType" label="鍛樺伐绫诲瀷">
+              <template #default="scope">
+                <el-tag :type="getTagType(scope.row.employeeType)">{{ getTypeLabel(scope.row.employeeType) }}</el-tag>
+              </template>
+            </el-table-column>
             <el-table-column prop="workYears" label="宸ヤ綔骞撮檺" />
             <el-table-column prop="annualDays" label="骞村亣澶╂暟" align="center" />
             <el-table-column prop="maxCarryOver" label="鏈�澶х粨杞ぉ鏁�" align="center" />
@@ -103,8 +107,8 @@
             <el-table-column prop="endTime" label="涓嬬彮鏃堕棿" />
             <el-table-column prop="flexibleStart" label="寮规�т笂鐝�">
               <template #default="scope">
-                <el-tag :type="scope.row.flexibleStart ? 'success' : 'info'">
-                  {{ scope.row.flexibleStart ? '鏄�' : '鍚�' }}
+                <el-tag :type="scope.row.flexibleStart === 'true' ? 'success' : 'info'">
+                  {{ scope.row.flexibleStart === 'true' ? '鏄�' : '鍚�' }}
                 </el-tag>
               </template>
             </el-table-column>
@@ -147,9 +151,15 @@
 
         <el-form-item label="鍛樺伐绫诲瀷" prop="employeeType" v-if="currentType === 'annual'">
           <el-select v-model="form.employeeType" placeholder="璇烽�夋嫨鍛樺伐绫诲瀷" style="width: 100%">
-            <el-option label="姝e紡鍛樺伐" value="regular" />
+            <!-- <el-option label="姝e紡鍛樺伐" value="regular" />
             <el-option label="璇曠敤鏈熷憳宸�" value="probation" />
-            <el-option label="瀹炰範鐢�" value="intern" />
+            <el-option label="瀹炰範鐢�" value="intern" /> -->
+            <el-option 
+              v-for="option in getTypeOptions()" 
+              :key="option.value" 
+              :label="option.label" 
+              :value="option.value" 
+            />
           </el-select>
         </el-form-item>
 
@@ -237,7 +247,7 @@
           <el-input-number v-model="form.flexibleMinutes" :min="0" :max="120" style="width: 100%" />
         </el-form-item>
 
-                 <el-form-item label="鐘舵��" prop="status">
+        <el-form-item label="鐘舵��" prop="status">
            <el-radio-group v-model="form.status">
              <el-radio value="active">鍚敤</el-radio>
              <el-radio value="inactive">鍋滅敤</el-radio>
@@ -258,6 +268,7 @@
 <script setup>
 import { ref, reactive, onMounted, onUnmounted } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
+import { listHolidaySettings, addHolidaySettings, updateHolidaySettings, delHolidaySettings, listAnnualLeaveSettingList, addAnnualLeaveSetting, updateAnnualLeaveSetting, delAnnualLeaveSetting, listOvertimeSettingList, addOvertimeSetting, updateOvertimeSetting, delOvertimeSetting, listWorkingHoursSettingList, addWorkingHoursSetting, updateWorkingHoursSetting, delWorkingHoursSetting } from '@/api/collaborativeApproval/attendanceManagement.js'
 
 // 褰撳墠婵�娲荤殑鏍囩椤�
 const activeTab = ref('holiday')
@@ -269,12 +280,23 @@
 const currentAction = ref('')
 const currentEditId = ref('')
 const formRef = ref()
+const page = {
+    current: 1,
+    size: 20,
+    total: 0,
+  }
+const holidayData = ref([])
+const annualData = ref([])
+const overtimeData = ref([])
+const worktimeData = ref([])
 
 // 琛ㄥ崟鏁版嵁
 const form = reactive({
   name: '',
   type: '',
   dateRange: [],
+  startDate: '',
+  endDate: '',
   days: 0,
   employeeType: '',
   workYears: '',
@@ -350,37 +372,12 @@
   }],
   rate: [{ required: true, message: '璇疯緭鍏ュ�嶇巼', trigger: 'blur' }]
 }
-
-// 妯℃嫙鏁版嵁
-const holidayData = ref([
-  { id: '1', name: '鏄ヨ妭', type: 'legal', startDate: '2024-02-10', endDate: '2024-02-17', days: 8, status: 'active' },
-  { id: '2', name: '娓呮槑鑺�', type: 'legal', startDate: '2024-04-05', endDate: '2024-04-05', days: 1, status: 'active' },
-  { id: '3', name: '鍔冲姩鑺�', type: 'legal', startDate: '2024-05-01', endDate: '2024-05-05', days: 5, status: 'active' }
-])
-
-const annualData = ref([
-  { id: '1', employeeType: 'regular', workYears: '1-3骞�', annualDays: 5, maxCarryOver: 2, status: 'active' },
-  { id: '2', employeeType: 'regular', workYears: '3-5骞�', annualDays: 10, maxCarryOver: 5, status: 'active' },
-  { id: '3', employeeType: 'regular', workYears: '5骞翠互涓�', annualDays: 15, maxCarryOver: 10, status: 'active' }
-])
-
-const overtimeData = ref([
-  { id: '1', name: '宸ヤ綔鏃ュ姞鐝�', type: 'weekday', startTime: '18:00', endTime: '22:00', rate: 1.5, status: 'active' },
-  { id: '2', name: '鍛ㄦ湯鍔犵彮', type: 'weekend', startTime: '09:00', endTime: '18:00', rate: 2.0, status: 'active' },
-  { id: '3', name: '娣卞鍔犵彮', type: 'night', startTime: '22:00', endTime: '06:00', rate: 2.5, status: 'active' }
-])
-
-const worktimeData = ref([
-  { id: '1', name: '鏍囧噯宸ヤ綔鏃堕棿', startTime: '09:00', endTime: '18:00', flexibleStart: true, flexibleMinutes: 30, status: 'active' },
-  { id: '2', name: '鏃╃彮鏃堕棿', startTime: '08:00', endTime: '17:00', flexibleStart: false, flexibleMinutes: 0, status: 'active' },
-  { id: '3', name: '鏅氱彮鏃堕棿', startTime: '14:00', endTime: '23:00', flexibleStart: false, flexibleMinutes: 0, status: 'active' }
-])
-
 // 宸ュ叿鍑芥暟
 const getTagType = (type) => {
   const tagMap = {
     legal: 'success', adjustment: 'warning', special: 'info', company: 'primary',
-    weekday: 'primary', weekend: 'warning', holiday: 'danger', night: 'info'
+    weekday: 'primary', weekend: 'warning', holiday: 'danger', night: 'info',
+    regular: 'success', probation: 'info', intern: 'danger'
   }
   return tagMap[type] || 'info'
 }
@@ -388,7 +385,8 @@
 const getTypeLabel = (type) => {
   const labelMap = {
     legal: '娉曞畾鑺傚亣鏃�', adjustment: '璋冧紤鏃�', special: '鐗规畩鍋囨湡', company: '鍏徃鍋囨湡',
-    weekday: '宸ヤ綔鏃ュ姞鐝�', weekend: '鍛ㄦ湯鍔犵彮', holiday: '鑺傚亣鏃ュ姞鐝�', night: '娣卞鍔犵彮'
+    weekday: '宸ヤ綔鏃ュ姞鐝�', weekend: '鍛ㄦ湯鍔犵彮', holiday: '鑺傚亣鏃ュ姞鐝�', night: '娣卞鍔犵彮',
+    regular: '姝e紡鍛樺伐', probation: '璇曠敤鏈熷憳宸�', intern: '瀹炰範鐢�'
   }
   return labelMap[type] || type
 }
@@ -408,6 +406,12 @@
       { label: '鑺傚亣鏃ュ姞鐝�', value: 'holiday' },
       { label: '娣卞鍔犵彮', value: 'night' }
     ]
+  } else if (currentType.value === 'annual') {
+    return [
+      { label: '姝e紡鍛樺伐', value: 'regular' },
+      { label: '璇曠敤鏈熷憳宸�', value: 'probation' },
+      { label: '瀹炰範鐢�', value: 'intern' }
+    ]
   }
   return []
 }
@@ -418,6 +422,8 @@
     if (form.dateRange && form.dateRange.length === 2 && form.dateRange[0] && form.dateRange[1]) {
       const start = new Date(form.dateRange[0])
       const end = new Date(form.dateRange[1])
+      form.startDate = start.toISOString().split('T')[0]
+      form.endDate = end.toISOString().split('T')[0]
       
       if (isNaN(start.getTime()) || isNaN(end.getTime())) {
         console.warn('鏃犳晥鐨勬棩鏈熸牸寮�')
@@ -434,14 +440,14 @@
 }
 
 // 楠岃瘉鏃堕棿鏍煎紡
-const validateTime = (time) => {
-  if (!time) return ''
-  if (typeof time === 'string') return time
-  if (time instanceof Date) {
-    return time.toTimeString().slice(0, 5)
-  }
-  return ''
-}
+// const validateTime = (time) => {
+//   if (!time) return ''
+//   if (typeof time === 'string') return time
+//   if (time instanceof Date) {
+//     return time.toTimeString().slice(0, 5)
+//   }
+//   return ''
+// }
 
 // 楠岃瘉鏃堕棿瀛楁
 const validateTimeField = (fieldName) => {
@@ -497,6 +503,8 @@
     name: '',
     type: '',
     dateRange: [],
+    startDate: '',
+    endDate: '',
     days: 0,
     employeeType: '',
     workYears: '',
@@ -519,6 +527,8 @@
       name: row.name,
       type: row.type,
       dateRange: [new Date(row.startDate), new Date(row.endDate)],
+      startDate: row.startDate,
+      endDate: row.endDate,
       days: row.days,
       status: row.status
     })
@@ -576,22 +586,84 @@
 }
 
 const addItem = () => {
-  const newItem = { ...form, id: Date.now().toString() }
-  
+
   if (currentType.value === 'holiday') {
-    newItem.startDate = form.dateRange[0].toISOString().split('T')[0]
-    newItem.endDate = form.dateRange[1].toISOString().split('T')[0]
-    holidayData.value.push(newItem)
+    const params = {
+      name: form.name,
+      type: form.type,
+      startDate: form.startDate,
+      endDate: form.endDate,
+      days: form.days,
+      status: form.status
+    }
+    addHolidaySettings(params).then(res => {
+      if(res.code == 200){
+        ElMessage.success("娣诲姞鎴愬姛");
+        // dialogVisible.value = false;
+        getHolidaySettingsList()
+      }
+    }).catch(err => {
+      ElMessage.error(err.msg);
+    })
   } else if (currentType.value === 'annual') {
-    annualData.value.push(newItem)
+    // annualData.value.push(newItem)
+    const params = {
+      employeeType: form.employeeType,
+      workYears: form.workYears,
+      annualDays: form.annualDays,
+      maxCarryOver: form.maxCarryOver,
+      status: form.status
+    }
+    addAnnualLeaveSetting(params).then(res => {
+      if(res.code == 200){
+        ElMessage.success("娣诲姞鎴愬姛");
+        // dialogVisible.value = false;
+        getAnnualLeaveSettingList()
+      }
+    }).catch(err => {
+      ElMessage.error(err.msg);
+    })
   } else if (currentType.value === 'overtime') {
-    newItem.startTime = form.startTime || ''
-    newItem.endTime = form.endTime || ''
-    overtimeData.value.push(newItem)
+    const params = {
+      name: form.name,
+      type: form.type,
+      startTime: form.startTime || '',
+      endTime: form.endTime || '',
+      rate: form.rate,
+      status: form.status
+    }
+    addOvertimeSetting(params).then(res => {
+      if(res.code == 200){
+        ElMessage.success("娣诲姞鎴愬姛");
+        // dialogVisible.value = false;
+        getOvertimeSettingList()
+      }
+    }).catch(err => {
+      ElMessage.error(err.msg);
+    })
+    // newItem.startTime = form.startTime || ''
+    // newItem.endTime = form.endTime || ''
+    // overtimeData.value.push(newItem)
   } else if (currentType.value === 'worktime') {
-    newItem.startTime = form.workStartTime || ''
-    newItem.endTime = form.workEndTime || ''
-    worktimeData.value.push(newItem)
+    const params = {
+      name: form.name,
+      startTime: form.workStartTime || '',
+      endTime: form.workEndTime || '',
+      flexibleStart: form.flexibleStart,
+      flexibleMinutes: form.flexibleMinutes,
+      status: form.status
+    }
+    addWorkingHoursSetting(params).then(res => {
+      if(res.code == 200){
+        ElMessage.success("娣诲姞鎴愬姛");
+        getWorkingHoursSettingList()
+      }
+    }).catch(err => {
+      ElMessage.error(err.msg);
+    })
+    // newItem.startTime = form.workStartTime || ''
+    // newItem.endTime = form.workEndTime || ''
+    // worktimeData.value.push(newItem)
   }
 }
 
@@ -600,60 +672,104 @@
   let index
   
   if (currentType.value === 'holiday') {
-    dataArray = holidayData.value
-    index = dataArray.findIndex(item => item.id === currentEditId.value)
-    if (index > -1) {
-      dataArray[index] = { 
-        ...dataArray[index],
-        name: form.name,
-        type: form.type,
-        startDate: form.dateRange[0].toISOString().split('T')[0],
-        endDate: form.dateRange[1].toISOString().split('T')[0],
-        days: form.days,
-        status: form.status
-      }
+    const params = {
+      id: currentEditId.value,
+      name: form.name,
+      type: form.type,
+      startDate: form.dateRange[0].toISOString().split('T')[0],
+      endDate: form.dateRange[1].toISOString().split('T')[0],
+      days: form.days,
+      status: form.status
     }
+    updateHolidaySettings(params).then(res => {
+      if(res.code == 200){
+        ElMessage.success("鏇存柊鎴愬姛");
+        // dialogVisible.value = false;
+        getHolidaySettingsList()
+      }
+    }).catch(err => {
+      ElMessage.error(err.msg);
+    })
   } else if (currentType.value === 'annual') {
-    dataArray = annualData.value
-    index = dataArray.findIndex(item => item.id === currentEditId.value)
-    if (index > -1) {
-      dataArray[index] = { 
-        ...dataArray[index],
-        employeeType: form.employeeType,
-        workYears: form.workYears,
-        annualDays: form.annualDays,
-        maxCarryOver: form.maxCarryOver,
-        status: form.status
-      }
+    const params = {
+      id: currentEditId.value,
+      employeeType: form.employeeType,
+      workYears: form.workYears,
+      annualDays: form.annualDays,
+      maxCarryOver: form.maxCarryOver,
+      status: form.status
     }
+    updateAnnualLeaveSetting(params).then(res => {
+      if(res.code == 200){
+        ElMessage.success("鏇存柊鎴愬姛");
+        getAnnualLeaveSettingList()
+      }
+    }).catch(err => {
+      ElMessage.error(err.msg);
+    })
   } else if (currentType.value === 'overtime') {
-    dataArray = overtimeData.value
-    index = dataArray.findIndex(item => item.id === currentEditId.value)
-    if (index > -1) {
-      dataArray[index] = { 
-        ...dataArray[index],
-        name: form.name,
-        type: form.type,
-        startTime: form.startTime || '',
-        endTime: form.endTime || '',
-        rate: form.rate,
-        status: form.status
-      }
+    const params = {
+      id: currentEditId.value,
+      name: form.name,
+      type: form.type,
+      startTime: form.startTime || '',
+      endTime: form.endTime || '',
+      rate: form.rate,
+      status: form.status
     }
+    updateOvertimeSetting(params).then(res => {
+      if(res.code == 200){
+        ElMessage.success("鏇存柊鎴愬姛");
+        getOvertimeSettingList()
+      }
+    }).catch(err => {
+      ElMessage.error(err.msg);
+    })
+
+    // dataArray = overtimeData.value
+    // index = dataArray.findIndex(item => item.id === currentEditId.value)
+    // if (index > -1) {
+    //   dataArray[index] = { 
+    //     ...dataArray[index],
+    //     name: form.name,
+    //     type: form.type,
+    //     startTime: form.startTime || '',
+    //     endTime: form.endTime || '',
+    //     rate: form.rate,
+    //     status: form.status
+    //   }
+    // }
   } else if (currentType.value === 'worktime') {
-    dataArray = worktimeData.value
-    index = dataArray.findIndex(item => item.id === currentEditId.value)
-    if (index > -1) {
-      dataArray[index] = { 
-        ...dataArray[index],
-        name: form.name,
-        startTime: form.workStartTime || '',
-        endTime: form.workEndTime || '',
-        flexibleStart: form.flexibleStart,
-        flexibleMinutes: form.flexibleMinutes,
-        status: form.status
-      }
+    const params = {
+      id: currentEditId.value,
+      name: form.name,
+      startTime: form.workStartTime || '',
+      endTime: form.workEndTime || '',
+      flexibleStart: form.flexibleStart,
+      flexibleMinutes: form.flexibleMinutes,
+      status: form.status
     }
+    updateWorkingHoursSetting(params).then(res => {
+      if(res.code == 200){
+        ElMessage.success("鏇存柊鎴愬姛");
+        getWorkingHoursSettingList()
+      }
+    }).catch(err => {
+      ElMessage.error(err.msg);
+    })
+    // dataArray = worktimeData.value
+    // index = dataArray.findIndex(item => item.id === currentEditId.value)
+    // if (index > -1) {
+    //   dataArray[index] = { 
+    //     ...dataArray[index],
+    //     name: form.name,
+    //     startTime: form.workStartTime || '',
+    //     endTime: form.workEndTime || '',
+    //     flexibleStart: form.flexibleStart,
+    //     flexibleMinutes: form.flexibleMinutes,
+    //     status: form.status
+    //   }
+    // }
   }
 }
 
@@ -664,21 +780,114 @@
     cancelButtonText: '鍙栨秷',
     type: 'warning'
   }).then(() => {
+    let ids = [];
     let dataArray
-    if (type === 'holiday') dataArray = holidayData.value
-    else if (type === 'annual') dataArray = annualData.value
-    else if (type === 'overtime') dataArray = overtimeData.value
-    else if (type === 'worktime') dataArray = worktimeData.value
-    
-    const index = dataArray.findIndex(item => item.id === row.id)
-    if (index > -1) {
-      dataArray.splice(index, 1)
-      ElMessage.success('鍒犻櫎鎴愬姛')
+    if (type === 'holiday') {
+      ids.push(row.id)
+      delHolidaySettings(ids).then(res => {
+        if(res.code == 200){
+          ElMessage.success("鍒犻櫎鎴愬姛");
+          ids = []
+          getHolidaySettingsList()
+        }
+      }).catch(err => {
+        ElMessage.error(err.msg);
+      })
     }
+    else if (type === 'annual') {
+      ids.push(row.id)
+      delAnnualLeaveSetting(ids).then(res => {
+        if(res.code == 200){
+          ElMessage.success("鍒犻櫎鎴愬姛");
+          ids = []
+          getAnnualLeaveSettingList()
+        }
+      }).catch(err => {
+        ElMessage.error(err.msg);
+      })
+    }
+    else if (type === 'overtime') {
+      ids.push(row.id)
+      delOvertimeSetting(ids).then(res => {
+        if(res.code == 200){
+          ElMessage.success("鍒犻櫎鎴愬姛");
+          ids = []
+          getOvertimeSettingList()
+        }
+      }).catch(err => {
+        ElMessage.error(err.msg);
+      })
+    }
+    else if (type === 'worktime') {
+      ids.push(row.id)
+      delWorkingHoursSetting(ids).then(res => {
+        if(res.code == 200){
+          ElMessage.success("鍒犻櫎鎴愬姛");
+          ids = []
+          getWorkingHoursSettingList()
+        }
+      }).catch(err => {
+        ElMessage.error(err.msg);
+      })
+    }
+      
+    // const index = dataArray.findIndex(item => item.id === row.id)
+    // if (index > -1) {
+    //   dataArray.splice(index, 1)
+    //   ElMessage.success('鍒犻櫎鎴愬姛')
+    // }
   })
 }
+// 鑾峰彇鍋囨湡璁剧疆鍒楄〃
+const getHolidaySettingsList = () => {
+  // tableLoading.value = true;
+  listHolidaySettings({...page.value})
+  .then(res => {
+    // tableLoading.value = false;
+    holidayData.value = res.data.records
+    page.total = res.data.total;
+  }).catch(err => {
+    // tableLoading.value = false;
+  })
+};
+// 鑾峰彇骞村亣瑙勫垯鍒楄〃
+const getAnnualLeaveSettingList = () => {
 
+  listAnnualLeaveSettingList({...page.value})
+  .then(res => {
+    // console.log(res.data)
+    annualData.value = res.data.records
+    page.total = res.data.total;
+  }).catch(err => {
+  })
+};
+// 鑾峰彇鍔犵彮瑙勫垯鍒楄〃
+const getOvertimeSettingList = () => {
+
+  listOvertimeSettingList({...page.value})
+  .then(res => {
+    // console.log(res.data)
+    overtimeData.value = res.data.records
+    page.total = res.data.total;
+  }).catch(err => {
+  })
+};
+// 鑾峰彇宸ヤ綔鏃堕棿瑙勫垯鍒楄〃
+const getWorkingHoursSettingList = () => {
+
+  listWorkingHoursSettingList({...page.value})
+  .then(res => {
+    // console.log(res.data)
+    worktimeData.value = res.data.records
+    page.total = res.data.total;
+  }).catch(err => {
+  })
+};
 onMounted(() => {
+  getHolidaySettingsList()
+  getAnnualLeaveSettingList()
+  getOvertimeSettingList()
+  getWorkingHoursSettingList()
   console.log('鑰冨嫟绠$悊椤甸潰鍔犺浇瀹屾垚')
 })
 

--
Gitblit v1.9.3