From 15315b1772036eb5168792aac0121f6e9005b11e Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期一, 08 一月 2024 10:16:26 +0800
Subject: [PATCH] Default Changelist

---
 src/views/system/personShiftManage/scheduleManage/schedule/index.vue |   65 ++++++++++++++++++--------------
 1 files changed, 37 insertions(+), 28 deletions(-)

diff --git a/src/views/system/personShiftManage/scheduleManage/schedule/index.vue b/src/views/system/personShiftManage/scheduleManage/schedule/index.vue
index affe01d..1c49a53 100644
--- a/src/views/system/personShiftManage/scheduleManage/schedule/index.vue
+++ b/src/views/system/personShiftManage/scheduleManage/schedule/index.vue
@@ -60,11 +60,11 @@
                 <el-form-item label="班组名称" prop="groupName">
                     <el-input v-model="addRecord.groupName"> </el-input>
                 </el-form-item>
-                <el-form-item label="选择部门" prop="department">
-                    <el-cascader v-model="addRecord.department" :options="departmentList" :props="casProps" :show-all-levels="false" @change="handleChange" />
+                <el-form-item label="选择部门" prop="depId">
+                    <el-cascader v-model="addRecord.depId" :options="departmentList" :props="casProps" :show-all-levels="false" @change="handleChange" />
                 </el-form-item>
-                <el-form-item label="选择人员" prop="groupMembers" v-if="addRecord.department !== ''">
-                    <el-select v-model="addRecord.groupMembers" multiple>
+                <el-form-item label="选择人员" prop="groupMemberIds" v-if="addRecord.depId">
+                    <el-select v-model="addRecord.groupMemberIds" multiple>
                         <el-option v-for="(item, index) in workerList" :label="item.username" :key="index" :value="item.uid">{{ item.username }}</el-option>
                     </el-select>
                 </el-form-item>
@@ -129,9 +129,9 @@
     totalSize: number;
     addRecord: {
         groupName: string;
-        department: number | null;
         depId: number | null;
-        groupMembers: Array<any>;
+        groupId: number | null;
+        groupMemberIds: Array<any>;
         groupInfo: string;
     };
     details: {
@@ -139,6 +139,7 @@
         department: number | null;
         groupMembers: Array<any>;
         groupInfo: string;
+      depId: number | null;
     };
 }
 
@@ -157,7 +158,6 @@
             searchWord: '',
             tableData: [],
             departmentList: [],
-            department: '',
             workerList: [],
             casProps: {
                 expandTrigger: 'hover',
@@ -171,11 +171,11 @@
             deleteDialog: false,
             deleteSetDialog: false,
             addRecord: {
-                groupName: '',
-                department: null,
-                groupMembers: [],
                 depId: null,
-                groupInfo: ''
+                groupId: null,
+                groupInfo: '',
+                groupName: '',
+                groupMemberIds: [],
             },
             details: {
                 groupName: '',
@@ -267,7 +267,6 @@
 
         const handleChange = async (value) => {
             state.addRecord.depId = value;
-            console.log(state.addRecord.department, 'de');
             let res = await teamManageApi().getAllMember(value);
             if (res.data.code === '200') {
                 state.workerList = res.data.data;
@@ -315,13 +314,23 @@
 
         // 修改工作时段方法
         const editRecordBtn = async (index, row) => {
-            state.addRecord = JSON.parse(JSON.stringify(row));
-            state.addRecord.department = '';
-            state.addRecord.groupMembers = [];
-            state.dialogAddRecord = true;
-            state.chosenIndex = index;
-        };
-
+            const obj = JSON.parse(JSON.stringify(row));
+            for(let i in state.addRecord){
+              if(isKey(i,obj)){
+                state.addRecord[i] = obj[i]
+              }
+            }
+            handleChange(obj.depId).then((res)=>{
+              state.addRecord.groupMemberIds = obj.groupMembers.map((item)=> {
+                return state.workerList.find(i => i.username == item)?.uid
+              })
+              state.dialogAddRecord = true;
+              state.chosenIndex = index;
+            })
+        }
+        const isKey = (key,obj)=>{
+          return key in obj
+        }
         const editRecord = async (data: any) => {
             let res = await teamManageApi().updateRecord(data);
             if (res.data.code === '200') {
@@ -343,17 +352,11 @@
             if (!formEl) return;
             await formEl.validate(async (valid, fields) => {
                 if (valid) {
-                    const data = {
-                        groupName: state.addRecord.groupName,
-                        groupInfo: state.addRecord.groupInfo,
-                        depId: state.addRecord.depId,
-                        groupMemberIds: state.addRecord.groupMembers
-                    };
                     if (state.chosenIndex == null) {
+                        const {groupId,...data} = state.addRecord
                         await addRecord(data);
                     } else {
-                        data.groupId = JSON.stringify(state.addRecord.groupId);
-                        await editRecord(data);
+                        await editRecord(state.addRecord);
                     }
                     state.dialogAddRecord = false;
                 } else {
@@ -445,7 +448,13 @@
         };
 
         const closeAdd = () => {
-            state.addRecord = {};
+            state.addRecord = {
+              depId: null,
+              groupId: null,
+              groupInfo: '',
+              groupName: '',
+              groupMemberIds: [],
+            };
             state.chosenIndex = null;
         };
         const openAdd = () => {

--
Gitblit v1.9.2