From 77737f4e73f7267170b9b06fc73d1610c29c0661 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期二, 12 十一月 2024 13:18:35 +0800
Subject: [PATCH] 新增

---
 src/views/system/personShiftManage/scheduleManage/schedule/index.vue |   89 ++++++++++++++++++++++++--------------------
 1 files changed, 48 insertions(+), 41 deletions(-)

diff --git a/src/views/system/personShiftManage/scheduleManage/schedule/index.vue b/src/views/system/personShiftManage/scheduleManage/schedule/index.vue
index 782352c..5a1dec0 100644
--- a/src/views/system/personShiftManage/scheduleManage/schedule/index.vue
+++ b/src/views/system/personShiftManage/scheduleManage/schedule/index.vue
@@ -16,14 +16,14 @@
                         <el-col :span="12" class="mainCardBtn">
                             <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新增</el-button>
                             <!--						<el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>-->
-                            <el-button type="danger" :icon="Delete" size="default" plain @click="deleteBatchBtn">删除</el-button>
+<!--                            <el-button type="danger" :icon="Delete" size="default" plain @click="deleteBatchBtn">删除</el-button>-->
                         </el-col>
                         <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" />
                     </el-row>
                     <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange">
-                        <el-table-column type="selection" width="100" />
                         <el-table-column property="groupName" label="班组名称" />
-                        <el-table-column property="groupMembers" label="班组人员" width="180" :show-overflow-tooltip="true" />
+                        <el-table-column property="department" label="所属部门" />
+                        <el-table-column property="groupMembers" label="班组人员" :show-overflow-tooltip="true" />
                         <el-table-column property="groupInfo" label="描述" />
                         <el-table-column fixed="right" label="操作" align="center" width="250">
                             <template #default="scope">
@@ -39,7 +39,7 @@
                 </div>
             </div>
         </div>
-        <el-dialog v-model="dialogDetails" title="时间策略">
+        <el-dialog v-model="dialogDetails" title="班组管理">
             <el-form :model="details" label-width="120px">
                 <el-form-item label="班组名称">
                     <el-input v-model="details.groupName" readonly />
@@ -55,16 +55,16 @@
                 </el-form-item>
             </el-form>
         </el-dialog>
-        <el-dialog v-model="dialogAddRecord" title="时间策略编辑" @close="closeAdd" @open="openAdd">
+        <el-dialog v-model="dialogAddRecord" title="班组管理编辑" @close="closeAdd" @open="openAdd">
             <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
                 <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,10 +158,8 @@
             searchWord: '',
             tableData: [],
             departmentList: [],
-            department: '',
             workerList: [],
             casProps: {
-                expandTrigger: 'hover',
                 emitPath: false,
                 value: 'depId',
                 label: 'depName'
@@ -171,11 +170,11 @@
             deleteDialog: false,
             deleteSetDialog: false,
             addRecord: {
-                groupName: '',
-                department: null,
-                groupMembers: [],
                 depId: null,
-                groupInfo: ''
+                groupId: null,
+                groupInfo: '',
+                groupName: '',
+                groupMemberIds: [],
             },
             details: {
                 groupName: '',
@@ -267,7 +266,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 +313,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 +351,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 {
@@ -391,11 +393,11 @@
         };
 
         // 批量删除
-        const deleteBatchBtn = async () => {
-            ElMessage({
-                type: 'warning',
-                message: '抱歉,本页面暂不支持批量删除'
-            });
+        // const deleteBatchBtn = async () => {
+        //     ElMessage({
+        //         type: 'warning',
+        //         message: '抱歉,本页面暂不支持批量删除'
+        //     });
             // if (state.deleteArr.length > 0) {
             // 	state.deleteSetDialog = true
             // } else {
@@ -404,7 +406,7 @@
             // 		message: '请先选择要删除的记录'
             // 	});
             // }
-        };
+        // };
 
         // const conFirmDeleteBatch = async () => {
         // 	let res = await teamManageApi().deletBatchRecord({ids: state.deleteArr});
@@ -445,7 +447,13 @@
         };
 
         const closeAdd = () => {
-            state.addRecord = {};
+            state.addRecord = {
+              depId: null,
+              groupId: null,
+              groupInfo: '',
+              groupName: '',
+              groupMemberIds: [],
+            };
             state.chosenIndex = null;
         };
         const openAdd = () => {
@@ -482,7 +490,6 @@
             getListByPage,
             reLoadData,
             deleteRecord,
-            deleteBatchBtn,
             handleSizeChange,
             handleCurrentChange,
             confirmAddRecord,

--
Gitblit v1.9.2