马宇豪
2024-01-08 15315b1772036eb5168792aac0121f6e9005b11e
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 = () => {