From f7258ebfaa7775f89c727a5356b851030a61ea37 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期五, 06 三月 2026 15:13:43 +0800
Subject: [PATCH] 排班接口对接

---
 src/api/personnelManagement/class.js                                             |   19 
 src/views/personnelManagement/classsSheduling/index.vue                          | 1044 +++---------------------------------------------------
 src/views/personnelManagement/attendanceCheckin/checkinRules/index.vue           |   15 
 src/views/personnelManagement/attendanceCheckin/checkinRules/components/form.vue |   19 +
 4 files changed, 107 insertions(+), 990 deletions(-)

diff --git a/src/api/personnelManagement/class.js b/src/api/personnelManagement/class.js
index cdba456..f5ae299 100644
--- a/src/api/personnelManagement/class.js
+++ b/src/api/personnelManagement/class.js
@@ -5,7 +5,7 @@
 // 缁╂晥绠$悊-鐝-鍒嗛〉鏌ヨ
 export function page(query) {
   return request({
-    url: "/performanceShift/page",
+    url: "/personalShift/page",
     method: "get",
     params: query,
   });
@@ -14,7 +14,7 @@
 // 缁╂晥绠$悊-鐝-骞翠唤鍒嗛〉鏌ヨ
 export function pageYear(query) {
   return request({
-    url: "/performanceShift/pageYear",
+    url: "/personalShift/pageYear",
     method: "get",
     params: query,
   });
@@ -23,7 +23,7 @@
 // 缁╂晥绠$悊-鐝-鎺掔彮
 export function add(data) {
   return request({
-    url: "/performanceShift/add",
+    url: "/personalShift/add",
     method: "post",
     data: data,
   });
@@ -68,7 +68,7 @@
 // 缁╂晥绠$悊-鐝-瀵煎嚭
 export function exportFile(query) {
   return request({
-    url: "/performanceShift/export",
+    url: "/personalShift/export",
     method: "get",
     params: query,
   });
@@ -86,7 +86,7 @@
 // 缁╂晥绠$悊-鐝-鐝鐘舵�佷慨鏀�
 export function update(data) {
   return request({
-    url: "/performanceShift/update",
+    url: "/personalShift/update",
     method: "post",
     data: data,
   });
@@ -105,4 +105,13 @@
     url: '/system/user/userListNoPage',
     method: 'get'
   })
+}
+
+// 鏌ヨ鍦ㄨ亴鍛樺伐鍙拌处
+export function staffOnJobListPage(query) {
+    return request({
+        url: '/staff/staffOnJob/listPage',
+        method: 'get',
+        params: query,
+    })
 }
\ No newline at end of file
diff --git a/src/views/personnelManagement/attendanceCheckin/checkinRules/components/form.vue b/src/views/personnelManagement/attendanceCheckin/checkinRules/components/form.vue
index 49eafa9..a410be0 100644
--- a/src/views/personnelManagement/attendanceCheckin/checkinRules/components/form.vue
+++ b/src/views/personnelManagement/attendanceCheckin/checkinRules/components/form.vue
@@ -28,6 +28,18 @@
                   :disabled="operationType === 'view'" />
       </el-form-item> -->
       <!-- 鎵撳崱鑼冨洿 -->
+      <el-form-item label="鐝"
+                    prop="shift">
+        <el-select v-model="form.shift"
+                   placeholder="璇烽�夋嫨鐝"
+                   :disabled="operationType === 'view'"
+                   style="width: 100%">
+          <el-option v-for="item in shifts_list"
+                     :key="item.value"
+                     :label="item.label"
+                     :value="item.value" />
+        </el-select>
+      </el-form-item>
       <el-form-item label="鎵撳崱鑼冨洿(m)"
                     prop="radius">
         <el-input-number v-model="form.radius"
@@ -115,6 +127,7 @@
   import { Position } from "@element-plus/icons-vue";
   import { deptTreeSelect } from "@/api/system/user.js";
   import { addAttendanceRule } from "@/api/personnelManagement/attendanceRules.js";
+  import { useDict } from "@/utils/dict";
 
   const props = defineProps({
     modelValue: {
@@ -145,6 +158,9 @@
     return "鏌ョ湅鐝";
   });
 
+  // 鑾峰彇鐝瀛楀吀鍊�
+  const { shifts_list } = useDict("shifts_list");
+
   // 琛ㄥ崟鏁版嵁
   const formRef = ref();
   const form = reactive({
@@ -156,6 +172,7 @@
     radius: 100,
     startAt: "09:00",
     endAt: "18:00",
+    shift: "",
   });
 
   // 琛ㄥ崟楠岃瘉瑙勫垯
@@ -166,6 +183,7 @@
     ],
     longitude: [{ required: true, message: "璇烽�夋嫨鎵撳崱浣嶇疆", trigger: "blur" }],
     latitude: [{ required: true, message: "璇烽�夋嫨鎵撳崱浣嶇疆", trigger: "blur" }],
+    shift: [{ required: true, message: "璇烽�夋嫨鐝", trigger: "change" }],
     radius: [{ required: true, message: "璇疯緭鍏ユ墦鍗¤寖鍥�", trigger: "blur" }],
     startAt: [{ required: true, message: "璇烽�夋嫨涓婄彮鏃堕棿", trigger: "change" }],
     endAt: [
@@ -405,6 +423,7 @@
           radius: 100,
           startAt: "09:00",
           endAt: "18:00",
+          shift: "",
         });
 
         // 濡傛灉鏄紪杈戞垨鏌ョ湅锛屽~鍏呮暟鎹�
diff --git a/src/views/personnelManagement/attendanceCheckin/checkinRules/index.vue b/src/views/personnelManagement/attendanceCheckin/checkinRules/index.vue
index d84a3d0..b55ae56 100644
--- a/src/views/personnelManagement/attendanceCheckin/checkinRules/index.vue
+++ b/src/views/personnelManagement/attendanceCheckin/checkinRules/index.vue
@@ -67,6 +67,11 @@
             {{ getDeptNameById(scope.row.sysDeptId) }}
           </template>
         </el-table-column>
+        <el-table-column label="鐝">
+          <template #default="scope">
+            {{ getShiftNameByValue(scope.row.shift) }}
+          </template>
+        </el-table-column>
         <el-table-column prop="locationName"
                          label="鍦扮偣鍚嶇О" />
         <el-table-column prop="longitude"
@@ -137,6 +142,7 @@
     getAttendanceRules,
     deleteAttendanceRule,
   } from "@/api/personnelManagement/attendanceRules.js";
+  import { useDict } from "@/utils/dict";
 
   const { proxy } = getCurrentInstance();
 
@@ -159,6 +165,8 @@
 
   // 閮ㄩ棬閫夐」
   const deptOptions = ref([]);
+  // 鑾峰彇鐝瀛楀吀鍊�
+  const { shifts_list } = useDict("shifts_list");
 
   // 寮圭獥鎺у埗
   const dialogVisible = ref(false);
@@ -175,6 +183,13 @@
     ).padStart(2, "0")}`;
   };
 
+  // 鏍规嵁鐝鍊艰幏鍙栫彮娆″悕绉�
+  const getShiftNameByValue = value => {
+    if (!value) return "";
+    const shift = shifts_list.value.find(item => item.value === value);
+    return shift ? shift.label : value;
+  };
+
   // 鑾峰彇閮ㄩ棬鍒楄〃
   const fetchDeptOptions = () => {
     deptTreeSelect().then(response => {
diff --git a/src/views/personnelManagement/classsSheduling/index.vue b/src/views/personnelManagement/classsSheduling/index.vue
index 1bd0e06..e932f50 100644
--- a/src/views/personnelManagement/classsSheduling/index.vue
+++ b/src/views/personnelManagement/classsSheduling/index.vue
@@ -36,7 +36,7 @@
                       @keyup.enter="refreshTable()" />
           </div>
           <div class="search-item">
-            <el-tree-select v-model="query.deptId"
+            <el-tree-select v-model="query.sysDeptId"
                             :data="deptOptions"
                             :props="{ value: 'id', label: 'label', children: 'children' }"
                             value-key="id"
@@ -151,21 +151,21 @@
                                class="shift-dropdown">
                     <div class="shift-box"
                          :class="{
-                      'shift-box-early': m.shift === '0',
-                      'shift-box-mid': m.shift === '1',
-                      'shift-box-night': m.shift === '2',
-                      'shift-box-rest': m.shift === '3',
-                      'shift-box-leave': m.shift === '4',
-                      'shift-box-other': m.shift === '5',
-                      'shift-box-business': m.shift === '6',
+                      'shift-box-early': m.shift === '鏃╃彮',
+                      'shift-box-mid': m.shift === '涓彮',
+                      'shift-box-night': m.shift === '澶滅彮',
+                      'shift-box-rest': m.shift === '浼戞伅',
+                      'shift-box-leave': m.shift === '璇峰亣',
+                      'shift-box-other': m.shift === '澶�11',
+                      'shift-box-business': m.shift === '澶�12',
                     }">
-                      <span class="shift-text">{{ getShiftByDic(m.shift) || '鈥�' }}</span>
+                      <span class="shift-text">{{ getShiftNameByValue(m.shift) || '鈥�' }}</span>
                     </div>
                     <template #dropdown>
                       <el-dropdown-menu>
                         <el-dropdown-item v-for="(n, j) in classType"
                                           :key="'h' + j"
-                                          :command="n.id">{{ n.locationName
+                                          :command="n.id">{{ n.shift || '鈥�'
                           }}</el-dropdown-item>
                       </el-dropdown-menu>
                     </template>
@@ -286,9 +286,9 @@
                      clearable
                      collapse-tags>
             <el-option v-for="item in personList"
-                       :key="item.userId"
-                       :label="item.nickName"
-                       :value="item.userId">
+                       :key="item.id"
+                       :label="item.staffName"
+                       :value="item.id">
             </el-option>
           </el-select>
         </div>
@@ -304,7 +304,7 @@
                      style="width: 100%">
             <el-option v-for="item in classType"
                        :key="item.id"
-                       :label="item.locationName"
+                       :label="getShiftNameByValue(item.shift)"
                        :value="item.id">
             </el-option>
           </el-select>
@@ -331,21 +331,23 @@
     add,
     exportFile,
     update,
-    selectUserCondition,
+    staffOnJobListPage,
   } from "@/api/personnelManagement/class";
   import { deptTreeSelect } from "@/api/system/user.js";
   import { getAttendanceRules } from "@/api/personnelManagement/attendanceRules.js";
+  import { useDict } from "@/utils/dict";
   const { proxy } = getCurrentInstance();
   const router = useRouter();
 
   // 鏌ヨ鏉′欢
   const query = reactive({
     userName: "",
-    deptId: "",
+    sysDeptId: "",
     year: new Date(),
     month: new Date().getMonth() + 1,
   });
-
+  // 鑾峰彇鐝瀛楀吀鍊�
+  const { shifts_list } = useDict("shifts_list");
   // 鏈堜唤閫夐」
   const monthOptions = [
     { value: 1, label: "1鏈�" },
@@ -366,38 +368,7 @@
   const deptOptions = ref([]);
 
   // 鍛ㄥ垪琛�
-  const weeks = ref([
-    { weekNum: 1, week: "鍛ㄤ竴", day: "01" },
-    { weekNum: 1, week: "鍛ㄤ簩", day: "02" },
-    { weekNum: 1, week: "鍛ㄤ笁", day: "03" },
-    { weekNum: 1, week: "鍛ㄥ洓", day: "04" },
-    { weekNum: 1, week: "鍛ㄤ簲", day: "05" },
-    { weekNum: 1, week: "鍛ㄥ叚", day: "06" },
-    { weekNum: 2, week: "鍛ㄦ棩", day: "07" },
-    { weekNum: 2, week: "鍛ㄤ竴", day: "08" },
-    { weekNum: 2, week: "鍛ㄤ簩", day: "09" },
-    { weekNum: 2, week: "鍛ㄤ笁", day: "10" },
-    { weekNum: 2, week: "鍛ㄥ洓", day: "11" },
-    { weekNum: 2, week: "鍛ㄤ簲", day: "12" },
-    { weekNum: 2, week: "鍛ㄥ叚", day: "13" },
-    { weekNum: 3, week: "鍛ㄦ棩", day: "14" },
-    { weekNum: 3, week: "鍛ㄤ竴", day: "15" },
-    { weekNum: 3, week: "鍛ㄤ簩", day: "16" },
-    { weekNum: 3, week: "鍛ㄤ笁", day: "17" },
-    { weekNum: 3, week: "鍛ㄥ洓", day: "18" },
-    { weekNum: 3, week: "鍛ㄤ簲", day: "19" },
-    { weekNum: 3, week: "鍛ㄥ叚", day: "20" },
-    { weekNum: 4, week: "鍛ㄦ棩", day: "21" },
-    { weekNum: 4, week: "鍛ㄤ竴", day: "22" },
-    { weekNum: 4, week: "鍛ㄤ簩", day: "23" },
-    { weekNum: 4, week: "鍛ㄤ笁", day: "24" },
-    { weekNum: 4, week: "鍛ㄥ洓", day: "25" },
-    { weekNum: 4, week: "鍛ㄤ簲", day: "26" },
-    { weekNum: 4, week: "鍛ㄥ叚", day: "27" },
-    { weekNum: 5, week: "鍛ㄦ棩", day: "28" },
-    { weekNum: 5, week: "鍛ㄤ竴", day: "29" },
-    { weekNum: 5, week: "鍛ㄤ簩", day: "30" },
-  ]);
+  const weeks = ref([]);
 
   // 鐝绫诲瀷
   const classType = ref([]);
@@ -422,314 +393,7 @@
   });
 
   // 鍒楄〃鏁版嵁
-  const listForm = ref([
-    {
-      id: 1,
-      name: "寮犱笁",
-      monthlyAttendance: {
-        totalAttendance: 22,
-        鏃╃彮: 10,
-        涓彮: 8,
-        澶滅彮: 4,
-        浼戞伅: 6,
-        璇峰亣: 0,
-        鍑哄樊: 0,
-      },
-      day0: 10,
-      day1: 8,
-      day2: 4,
-      day3: 6,
-      day4: 0,
-      day6: 0,
-      list: [
-        { id: 1, shift: "0" },
-        { id: 2, shift: "0" },
-        { id: 3, shift: "1" },
-        { id: 4, shift: "1" },
-        { id: 5, shift: "2" },
-        { id: 6, shift: "2" },
-        { id: 7, shift: "3" },
-        { id: 8, shift: "0" },
-        { id: 9, shift: "0" },
-        { id: 10, shift: "1" },
-        { id: 11, shift: "1" },
-        { id: 12, shift: "2" },
-        { id: 13, shift: "2" },
-        { id: 14, shift: "3" },
-        { id: 15, shift: "0" },
-        { id: 16, shift: "0" },
-        { id: 17, shift: "1" },
-        { id: 18, shift: "1" },
-        { id: 19, shift: "2" },
-        { id: 20, shift: "2" },
-        { id: 21, shift: "3" },
-        { id: 22, shift: "0" },
-        { id: 23, shift: "0" },
-        { id: 24, shift: "1" },
-        { id: 25, shift: "1" },
-        { id: 26, shift: "2" },
-        { id: 27, shift: "2" },
-        { id: 28, shift: "3" },
-        { id: 29, shift: "0" },
-        { id: 30, shift: "0" },
-      ],
-    },
-    {
-      id: 2,
-      name: "鏉庡洓",
-      monthlyAttendance: {
-        totalAttendance: 20,
-        鏃╃彮: 8,
-        涓彮: 6,
-        澶滅彮: 6,
-        浼戞伅: 8,
-        璇峰亣: 2,
-        鍑哄樊: 0,
-      },
-      day0: 8,
-      day1: 6,
-      day2: 6,
-      day3: 8,
-      day4: 2,
-      day6: 0,
-      list: [
-        { id: 31, shift: "1" },
-        { id: 32, shift: "1" },
-        { id: 33, shift: "2" },
-        { id: 34, shift: "2" },
-        { id: 35, shift: "3" },
-        { id: 36, shift: "0" },
-        { id: 37, shift: "0" },
-        { id: 38, shift: "1" },
-        { id: 39, shift: "1" },
-        { id: 40, shift: "2" },
-        { id: 41, shift: "2" },
-        { id: 42, shift: "3" },
-        { id: 43, shift: "0" },
-        { id: 44, shift: "0" },
-        { id: 45, shift: "1" },
-        { id: 46, shift: "1" },
-        { id: 47, shift: "2" },
-        { id: 48, shift: "2" },
-        { id: 49, shift: "3" },
-        { id: 50, shift: "0" },
-        { id: 51, shift: "0" },
-        { id: 52, shift: "4" },
-        { id: 53, shift: "4" },
-        { id: 54, shift: "1" },
-        { id: 55, shift: "1" },
-        { id: 56, shift: "2" },
-        { id: 57, shift: "2" },
-        { id: 58, shift: "3" },
-        { id: 59, shift: "0" },
-        { id: 60, shift: "0" },
-      ],
-    },
-    {
-      id: 3,
-      name: "鐜嬩簲",
-      monthlyAttendance: {
-        totalAttendance: 23,
-        鏃╃彮: 9,
-        涓彮: 9,
-        澶滅彮: 5,
-        浼戞伅: 5,
-        璇峰亣: 0,
-        鍑哄樊: 2,
-      },
-      day0: 9,
-      day1: 9,
-      day2: 5,
-      day3: 5,
-      day4: 0,
-      day6: 2,
-      list: [
-        { id: 61, shift: "2" },
-        { id: 62, shift: "2" },
-        { id: 63, shift: "3" },
-        { id: 64, shift: "0" },
-        { id: 65, shift: "0" },
-        { id: 66, shift: "1" },
-        { id: 67, shift: "1" },
-        { id: 68, shift: "2" },
-        { id: 69, shift: "2" },
-        { id: 70, shift: "3" },
-        { id: 71, shift: "0" },
-        { id: 72, shift: "0" },
-        { id: 73, shift: "1" },
-        { id: 74, shift: "1" },
-        { id: 75, shift: "2" },
-        { id: 76, shift: "2" },
-        { id: 77, shift: "3" },
-        { id: 78, shift: "0" },
-        { id: 79, shift: "0" },
-        { id: 80, shift: "1" },
-        { id: 81, shift: "1" },
-        { id: 82, shift: "6" },
-        { id: 83, shift: "6" },
-        { id: 84, shift: "2" },
-        { id: 85, shift: "2" },
-        { id: 86, shift: "3" },
-        { id: 87, shift: "0" },
-        { id: 88, shift: "0" },
-        { id: 89, shift: "1" },
-        { id: 90, shift: "1" },
-      ],
-    },
-    {
-      id: 4,
-      name: "寮犱笁",
-      monthlyAttendance: {
-        totalAttendance: 22,
-        鏃╃彮: 10,
-        涓彮: 8,
-        澶滅彮: 4,
-        浼戞伅: 6,
-        璇峰亣: 0,
-        鍑哄樊: 0,
-      },
-      day0: 10,
-      day1: 8,
-      day2: 4,
-      day3: 6,
-      day4: 0,
-      day6: 0,
-      list: [
-        { id: 1, shift: "0" },
-        { id: 2, shift: "0" },
-        { id: 3, shift: "1" },
-        { id: 4, shift: "1" },
-        { id: 5, shift: "2" },
-        { id: 6, shift: "2" },
-        { id: 7, shift: "3" },
-        { id: 8, shift: "0" },
-        { id: 9, shift: "0" },
-        { id: 10, shift: "1" },
-        { id: 11, shift: "1" },
-        { id: 12, shift: "2" },
-        { id: 13, shift: "2" },
-        { id: 14, shift: "3" },
-        { id: 15, shift: "0" },
-        { id: 16, shift: "0" },
-        { id: 17, shift: "1" },
-        { id: 18, shift: "1" },
-        { id: 19, shift: "2" },
-        { id: 20, shift: "2" },
-        { id: 21, shift: "3" },
-        { id: 22, shift: "0" },
-        { id: 23, shift: "0" },
-        { id: 24, shift: "1" },
-        { id: 25, shift: "1" },
-        { id: 26, shift: "2" },
-        { id: 27, shift: "2" },
-        { id: 28, shift: "3" },
-        { id: 29, shift: "0" },
-        { id: 30, shift: "0" },
-      ],
-    },
-    {
-      id: 5,
-      name: "寮犱笁",
-      monthlyAttendance: {
-        totalAttendance: 22,
-        鏃╃彮: 10,
-        涓彮: 8,
-        澶滅彮: 4,
-        浼戞伅: 6,
-        璇峰亣: 0,
-        鍑哄樊: 0,
-      },
-      day0: 10,
-      day1: 8,
-      day2: 4,
-      day3: 6,
-      day4: 0,
-      day6: 0,
-      list: [
-        { id: 1, shift: "0" },
-        { id: 2, shift: "0" },
-        { id: 3, shift: "1" },
-        { id: 4, shift: "1" },
-        { id: 5, shift: "2" },
-        { id: 6, shift: "2" },
-        { id: 7, shift: "3" },
-        { id: 8, shift: "0" },
-        { id: 9, shift: "0" },
-        { id: 10, shift: "1" },
-        { id: 11, shift: "1" },
-        { id: 12, shift: "2" },
-        { id: 13, shift: "2" },
-        { id: 14, shift: "3" },
-        { id: 15, shift: "0" },
-        { id: 16, shift: "0" },
-        { id: 17, shift: "1" },
-        { id: 18, shift: "1" },
-        { id: 19, shift: "2" },
-        { id: 20, shift: "2" },
-        { id: 21, shift: "3" },
-        { id: 22, shift: "0" },
-        { id: 23, shift: "0" },
-        { id: 24, shift: "1" },
-        { id: 25, shift: "1" },
-        { id: 26, shift: "2" },
-        { id: 27, shift: "2" },
-        { id: 28, shift: "3" },
-        { id: 29, shift: "0" },
-        { id: 30, shift: "0" },
-      ],
-    },
-    {
-      id: 6,
-      name: "寮犱笁",
-      monthlyAttendance: {
-        totalAttendance: 22,
-        鏃╃彮: 10,
-        涓彮: 8,
-        澶滅彮: 4,
-        浼戞伅: 6,
-        璇峰亣: 0,
-        鍑哄樊: 0,
-      },
-      day0: 10,
-      day1: 8,
-      day2: 4,
-      day3: 6,
-      day4: 0,
-      day6: 0,
-      list: [
-        { id: 1, shift: "0" },
-        { id: 2, shift: "0" },
-        { id: 3, shift: "1" },
-        { id: 4, shift: "1" },
-        { id: 5, shift: "2" },
-        { id: 6, shift: "2" },
-        { id: 7, shift: "3" },
-        { id: 8, shift: "0" },
-        { id: 9, shift: "0" },
-        { id: 10, shift: "1" },
-        { id: 11, shift: "1" },
-        { id: 12, shift: "2" },
-        { id: 13, shift: "2" },
-        { id: 14, shift: "3" },
-        { id: 15, shift: "0" },
-        { id: 16, shift: "0" },
-        { id: 17, shift: "1" },
-        { id: 18, shift: "1" },
-        { id: 19, shift: "2" },
-        { id: 20, shift: "2" },
-        { id: 21, shift: "3" },
-        { id: 22, shift: "0" },
-        { id: 23, shift: "0" },
-        { id: 24, shift: "1" },
-        { id: 25, shift: "1" },
-        { id: 26, shift: "2" },
-        { id: 27, shift: "2" },
-        { id: 28, shift: "3" },
-        { id: 29, shift: "0" },
-        { id: 30, shift: "0" },
-      ],
-    },
-  ]);
+  const listForm = ref([]);
 
   // 褰撳墠椤�
   const currentPage = ref(1);
@@ -747,613 +411,7 @@
   const monthList = ref([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]);
 
   // 骞村害鍒楄〃
-  const yearList = ref([
-    {
-      id: 1,
-      name: "寮犱笁",
-      work_time: 260,
-      day0: 98,
-      day1: 78,
-      day2: 46,
-      day3: 74,
-      day4: 14,
-      day6: 10,
-      monthList: [
-        {
-          totalMonthAttendance: 22,
-          day0: 10,
-          day1: 8,
-          day2: 4,
-          day3: 6,
-          day4: 0,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 19,
-          day0: 7,
-          day1: 6,
-          day2: 6,
-          day3: 9,
-          day4: 3,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 23,
-          day0: 9,
-          day1: 9,
-          day2: 5,
-          day3: 5,
-          day4: 0,
-          day6: 2,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 8,
-          day1: 7,
-          day2: 6,
-          day3: 7,
-          day4: 0,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 18,
-          day0: 6,
-          day1: 6,
-          day2: 6,
-          day3: 8,
-          day4: 4,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 23,
-          day0: 10,
-          day1: 9,
-          day2: 4,
-          day3: 5,
-          day4: 0,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 0,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 8,
-          day1: 7,
-          day2: 6,
-          day3: 7,
-          day4: 0,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 19,
-          day0: 7,
-          day1: 7,
-          day2: 5,
-          day3: 8,
-          day4: 2,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 23,
-          day0: 10,
-          day1: 9,
-          day2: 4,
-          day3: 5,
-          day4: 0,
-          day6: 0,
-        },
-      ],
-    },
-    {
-      id: 2,
-      name: "鏉庡洓",
-      work_time: 252,
-      day0: 90,
-      day1: 72,
-      day2: 50,
-      day3: 76,
-      day4: 18,
-      day6: 8,
-      monthList: [
-        {
-          totalMonthAttendance: 21,
-          day0: 9,
-          day1: 7,
-          day2: 5,
-          day3: 7,
-          day4: 2,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 18,
-          day0: 6,
-          day1: 6,
-          day2: 6,
-          day3: 10,
-          day4: 4,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 8,
-          day1: 8,
-          day2: 6,
-          day3: 6,
-          day4: 0,
-          day6: 2,
-        },
-        {
-          totalMonthAttendance: 20,
-          day0: 7,
-          day1: 6,
-          day2: 7,
-          day3: 8,
-          day4: 0,
-          day6: 2,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 8,
-          day1: 7,
-          day2: 6,
-          day3: 7,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 17,
-          day0: 5,
-          day1: 5,
-          day2: 7,
-          day3: 9,
-          day4: 5,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 0,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 8,
-          day1: 7,
-          day2: 6,
-          day3: 7,
-          day4: 1,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 20,
-          day0: 7,
-          day1: 6,
-          day2: 7,
-          day3: 8,
-          day4: 0,
-          day6: 2,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 8,
-          day1: 7,
-          day2: 6,
-          day3: 7,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 18,
-          day0: 6,
-          day1: 6,
-          day2: 6,
-          day3: 9,
-          day4: 3,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 0,
-          day6: 0,
-        },
-      ],
-    },
-    {
-      id: 3,
-      name: "鐜嬩簲",
-      work_time: 268,
-      day0: 102,
-      day1: 82,
-      day2: 48,
-      day3: 70,
-      day4: 10,
-      day6: 14,
-      monthList: [
-        {
-          totalMonthAttendance: 23,
-          day0: 10,
-          day1: 9,
-          day2: 4,
-          day3: 5,
-          day4: 0,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 8,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 0,
-          day6: 2,
-        },
-        {
-          totalMonthAttendance: 24,
-          day0: 10,
-          day1: 9,
-          day2: 5,
-          day3: 4,
-          day4: 0,
-          day6: 3,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 0,
-          day6: 2,
-        },
-        {
-          totalMonthAttendance: 23,
-          day0: 10,
-          day1: 8,
-          day2: 5,
-          day3: 5,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 8,
-          day1: 7,
-          day2: 6,
-          day3: 7,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 23,
-          day0: 10,
-          day1: 9,
-          day2: 4,
-          day3: 5,
-          day4: 0,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 0,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 23,
-          day0: 10,
-          day1: 9,
-          day2: 4,
-          day3: 5,
-          day4: 0,
-          day6: 2,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 8,
-          day1: 7,
-          day2: 6,
-          day3: 7,
-          day4: 0,
-          day6: 2,
-        },
-        {
-          totalMonthAttendance: 24,
-          day0: 10,
-          day1: 9,
-          day2: 5,
-          day3: 4,
-          day4: 0,
-          day6: 3,
-        },
-      ],
-    },
-    {
-      id: 4,
-      name: "璧靛叚",
-      work_time: 248,
-      day0: 88,
-      day1: 70,
-      day2: 50,
-      day3: 78,
-      day4: 20,
-      day6: 6,
-      monthList: [
-        {
-          totalMonthAttendance: 20,
-          day0: 8,
-          day1: 6,
-          day2: 6,
-          day3: 8,
-          day4: 3,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 17,
-          day0: 5,
-          day1: 5,
-          day2: 7,
-          day3: 10,
-          day4: 5,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 7,
-          day1: 7,
-          day2: 7,
-          day3: 7,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 19,
-          day0: 6,
-          day1: 6,
-          day2: 7,
-          day3: 9,
-          day4: 2,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 20,
-          day0: 7,
-          day1: 7,
-          day2: 6,
-          day3: 8,
-          day4: 2,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 16,
-          day0: 4,
-          day1: 4,
-          day2: 8,
-          day3: 10,
-          day4: 6,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 8,
-          day1: 7,
-          day2: 6,
-          day3: 7,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 20,
-          day0: 7,
-          day1: 7,
-          day2: 6,
-          day3: 8,
-          day4: 2,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 19,
-          day0: 6,
-          day1: 6,
-          day2: 7,
-          day3: 9,
-          day4: 2,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 20,
-          day0: 7,
-          day1: 7,
-          day2: 6,
-          day3: 8,
-          day4: 2,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 18,
-          day0: 6,
-          day1: 6,
-          day2: 6,
-          day3: 9,
-          day4: 4,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 8,
-          day1: 7,
-          day2: 6,
-          day3: 7,
-          day4: 1,
-          day6: 1,
-        },
-      ],
-    },
-    {
-      id: 5,
-      name: "閽变竷",
-      work_time: 266,
-      day0: 100,
-      day1: 84,
-      day2: 46,
-      day3: 72,
-      day4: 12,
-      day6: 12,
-      monthList: [
-        {
-          totalMonthAttendance: 23,
-          day0: 10,
-          day1: 9,
-          day2: 4,
-          day3: 5,
-          day4: 0,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 21,
-          day0: 8,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 23,
-          day0: 9,
-          day1: 9,
-          day2: 5,
-          day3: 5,
-          day4: 0,
-          day6: 2,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 0,
-          day6: 2,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 20,
-          day0: 7,
-          day1: 7,
-          day2: 6,
-          day3: 8,
-          day4: 2,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 23,
-          day0: 10,
-          day1: 9,
-          day2: 4,
-          day3: 5,
-          day4: 0,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 0,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 23,
-          day0: 9,
-          day1: 9,
-          day2: 5,
-          day3: 5,
-          day4: 0,
-          day6: 2,
-        },
-        {
-          totalMonthAttendance: 22,
-          day0: 9,
-          day1: 8,
-          day2: 5,
-          day3: 6,
-          day4: 1,
-          day6: 1,
-        },
-        {
-          totalMonthAttendance: 20,
-          day0: 7,
-          day1: 7,
-          day2: 6,
-          day3: 8,
-          day4: 2,
-          day6: 0,
-        },
-        {
-          totalMonthAttendance: 23,
-          day0: 10,
-          day1: 9,
-          day2: 4,
-          day3: 5,
-          day4: 0,
-          day6: 0,
-        },
-      ],
-    },
-  ]);
+  const yearList = ref([]);
 
   // 瀵煎嚭鍔犺浇鐘舵��
   const downLoading = ref(false);
@@ -1365,6 +423,13 @@
         JSON.parse(JSON.stringify(response.data))
       );
     });
+  };
+
+  // 鏍规嵁鐝鍊艰幏鍙栫彮娆″悕绉�
+  const getShiftNameByValue = value => {
+    if (!value) return "";
+    const shift = shifts_list.value.find(item => item.value === value);
+    return shift ? shift.label : value;
   };
 
   // 杩囨护绂佺敤鐨勯儴闂�
@@ -1386,7 +451,7 @@
     yearList.value = [];
     currentPage.value = 1;
     query.userName = "";
-    query.deptId = "";
+    query.sysDeptId = "";
     query.year = new Date();
     query.month = new Date().getMonth() + 1;
     if (query.month) {
@@ -1455,7 +520,7 @@
       current: currentPage.value,
       time: year + "-" + month + "-01 00:00:00",
       userName: query.userName,
-      deptId: query.deptId,
+      sysDeptId: query.sysDeptId,
     })
       .then(res => {
         pageLoading.value = false;
@@ -1494,7 +559,7 @@
       current: currentPage.value,
       time: year + "-01-01 00:00:00",
       userName: query.userName,
-      deptId: query.deptId,
+      sysDeptId: query.sysDeptId,
     }).then(res => {
       pageLoading.value = false;
       total.value = res.data.total;
@@ -1560,8 +625,8 @@
     add({
       startWeek,
       endWeek,
-      userId: schedulingQuery.userId.join(","),
-      shift: schedulingQuery.shift,
+      staffOnJobId: schedulingQuery.userId.join(","),
+      personalAttendanceLocationConfigId: schedulingQuery.shift,
     })
       .then(res => {
         loading.value = false;
@@ -1604,7 +669,7 @@
     exportFile({
       time,
       userName: query.userName,
-      deptId: query.deptId,
+      sysDeptId: query.sysDeptId,
       isMonth: query.month ? true : false,
     })
       .then(res => {
@@ -1627,15 +692,20 @@
   };
   // 澶勭悊鍛戒护
   const handleCommand = (e, m) => {
-    if (e != m.shift) {
-      update({
-        id: m.id,
-        shift: e,
-      }).then(res => {
-        proxy.$modal.msgSuccess("鎿嶄綔鎴愬姛");
-        m.shift = e;
-      });
-    }
+    // if (e != m.shift) {
+    update({
+      id: m.id,
+      personalAttendanceLocationConfigId: e,
+    }).then(res => {
+      proxy.$modal.msgSuccess("鎿嶄綔鎴愬姛");
+      // m.shift = e;
+      if (query.month) {
+        init();
+      } else {
+        initYear();
+      }
+    });
+    // }
   };
   // 鏌ヨ瑙勫垯鍒楄〃
   const fetchData = () => {
@@ -1649,15 +719,19 @@
     //   let arr = res.data;
     //   personList.value = arr;
     // });
-    selectUserCondition().then(res => {
-      let arr = res.data;
+    staffOnJobListPage({
+      current: -1,
+      size: -1,
+      staffState: 1,
+    }).then(res => {
+      let arr = res.data.records;
       personList.value = arr;
     });
   };
 
   // 鏍规嵁瀛楀吀鑾峰彇鏃ユ湡
   const getDayByDic = e => {
-    let obj = classType.value.find(m => m.locationName == e);
+    let obj = classType.value.find(m => m.shift == e);
     if (obj) {
       return obj.id;
     }
@@ -1665,9 +739,9 @@
 
   // 鏍规嵁瀛楀吀鑾峰彇鐝
   const getShiftByDic = e => {
-    let obj = classType.value.find(m => m.id == e);
+    let obj = classType.value.find(m => m.shift == e);
     if (obj) {
-      return obj.locationName;
+      return obj.shift;
     }
     return "鏃�";
   };
@@ -1900,7 +974,7 @@
   .user-stats {
     /* display: flex; */
     /* flex-wrap: wrap;
-                                                                                                                                                                              gap: 10px; */
+                                                                                                                                                                                                                                                                                    gap: 10px; */
     margin-bottom: 4px;
   }
 

--
Gitblit v1.9.3