Parcourir la source

2022.7.13 未填人员显示请假

ggooalice il y a 2 ans
Parent
commit
a7af522e88

+ 64 - 10
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -35,7 +35,7 @@
                 </div>
                 <div style="display:flex;">
                 <div v-if="permissions.reportsCompany || user.manageDeptId != 0 || permissions.reportsDept" :style="'overflow-x:hidden;overflow-y:auto;height:' + tableHeight + 'px;'">
-                    <div style="width:240px;">
+                    <div style="width:260px;">
                         <el-select v-model="selectState" size="small" @change="stateChange" style="width:215px">
                         <el-option value="-1" label="全部状态" >全部状态</el-option>
                         <el-option value="-2" label="未填报">未填报</el-option>
@@ -50,9 +50,12 @@
                                 <span>{{ node.label }}</span>
                                 <span v-if="data.membCount != null && data.isUser == null">({{data.membCount}})</span>
                                 <div style="width:0%;float:right;">
-                                <span v-if="data.isUser == 1 && data.state == null" style="color:red;font-size:13px">
+                                <span v-if="data.isUser == 1 && data.state == null && !data.leaveDays && !data.leaveTimes" style="color:red;font-size:13px">
                                 未填报
                                 </span>
+                                <span v-if="data.isUser == 1 && data.state == null && (data.leaveDays || data.leaveTimes)" :style="(data.leaveDays < 1 || data.leaveTimes < user.timeType.allday) ? 'color:red;font-size:13px' : 'color:#32cd32;font-size:13px'">
+                                {{data.leaveDays ? (data.leaveDays >= 1 ? '当日请假' : '未填报(请假' + data.leaveDays + '天)') : (data.leaveTimes >= user.timeType.allday ? '当日请假' : '未填报(请假' + data.leaveTimes + 'h)')}}
+                                </span>
                                 <span v-if="data.isUser == 1 && data.state == 0" style="color:orange;font-size:13px">
                                 待审核({{data.workingTime.toFixed(1) + 'h'}})
                                 </span>
@@ -817,15 +820,40 @@
             </div>
         </el-dialog>
         <!--人员列表 -->
-        <el-dialog  :title="(isFill?'已填':'未填')+'人员列表'" v-if="membListVisible" :visible.sync="membListVisible"  width="500px">
-            <el-table :show-header="true" :data="fillMembList" highlight-current-row :height="400" style="width: 100%;" @selection-change="notifySel">
+        <el-dialog  :title="(isFill?'已填':'未填')+'人员列表'" v-if="membListVisible" :visible.sync="membListVisible"  width="500px" class="membListClass">
+            <el-tabs v-model="isLeave" v-if="!isFill" type="card">
+                <el-tab-pane :label="'当日未填(' + fillMembList.length +'人)'" :name="0">
+                    <el-table :show-header="true" :data="fillMembList" highlight-current-row :height="400" style="width: 100%;" @selection-change="notifySel">
+                    <el-table-column type="selection"></el-table-column>
+                    <el-table-column prop="label" label="姓名" >
+                        <template slot-scope="scope">
+                            <span>{{(scope.row.leaveDays || scope.row.leaveTimes) ? scope.row.label + (scope.row.leaveDays ? '(请假' + scope.row.leaveDays + '天)' : '(请假' + scope.row.leaveTimes + 'h)') : scope.row.label}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="deptName" label="部门" >
+                    </el-table-column>
+                    </el-table>
+                </el-tab-pane>
+                <el-tab-pane :label="'全天请假(' + fillMembList_leave.length + '人)'" :name="1">
+                    <el-table :show-header="true" :data="fillMembList_leave" highlight-current-row :height="400" style="width: 100%;">
+                    <el-table-column prop="label" label="姓名" >
+                        <template slot-scope="scope">
+                            <span>{{(scope.row.leaveDays || scope.row.leaveTimes) ? scope.row.label + (scope.row.leaveDays ? '(请假' + scope.row.leaveDays + '天)' : '(请假' + scope.row.leaveTimes + 'h)') : scope.row.label}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="deptName" label="部门" >
+                    </el-table-column>
+                    </el-table>
+                </el-tab-pane>
+            </el-tabs>
+            <el-table :show-header="true" :data="fillMembList" highlight-current-row :height="400" style="width: 100%;" @selection-change="notifySel" v-if="isFill">
             <el-table-column type="selection"></el-table-column>
             <el-table-column prop="label" label="姓名" ></el-table-column>
             <el-table-column prop="deptName" label="部门" >
             </el-table-column>
 
             </el-table>
-            <div slot="footer" class="dialog-footer">
+            <div slot="footer" class="dialog-footer" v-if="!(isLeave == 1 && !isFill)">
                 <el-button type="primary" @click="Notify(0)"  v-if="!isFill && this.user.corpwxUserid" :disabled="fillMembList == 0">企业微信催填</el-button>
                 <el-button type="primary" @click="Notify(1)"  v-if="!isFill && !this.user.corpwxUserid && this.user.dingdingUserid" :disabled="fillMembList == 0">钉钉催填</el-button>
                 <el-button type="primary" @click="Notify(2)"  v-if="!isFill && !this.user.corpwxUserid && !this.user.dingdingUserid" :disabled="fillMembList == 0">微信催填</el-button>
@@ -1320,8 +1348,9 @@
                 monthWorkDataS: [],
                 monthNotWorkDateS: [],
                 pickDateArray:[],
-      WorktimeDatepickValue: [],
-      activeName:"first",
+                WorktimeDatepickValue: [],
+                activeName:"first",
+                isLeave: 0,
                 submitingReport: false,
                 importResultMsg:null,
                 showImportResult:false,
@@ -1343,6 +1372,7 @@
                 unFillList:[],
                 fillList:[],
                 fillMembList:[],
+                fillMembList_leave: [],
                 membListVisible: false,
                 isBatch:0,//是否是批量填报
                 editTitle: ['填写日报','批量填报','代填日报'],
@@ -2530,6 +2560,17 @@
                 if (fill == 0) {
                     this.fillMembList = this.unFillList;
                     this.isFill = false;
+                    let leaveList = []
+                    let unleaveList = []
+                    for(let i in this.fillMembList){
+                        if(this.fillMembList[i].leaveDays >= 1 || this.fillMembList[i].leaveTimes >= this.user.timeType.allday){
+                            leaveList.push(this.fillMembList[i])
+                        }else{
+                            unleaveList.push(this.fillMembList[i])
+                        }
+                    }
+                    this.fillMembList = unleaveList
+                    this.fillMembList_leave = leaveList
                 } else {
                     this.fillMembList = this.fillList;
                     this.isFill = true;
@@ -3234,7 +3275,7 @@
                             if (isFill == 0) {
                                 //获取未填的
                                 if (element.state == null) {
-                                    var obj = {id: element.id, label:element.name, deptId:element.departmentId, deptName: deptName};
+                                    var obj = {id: element.id, label:element.name, deptId:element.departmentId, deptName: deptName,leaveDays: element.leaveDays, leaveTimes: element.leaveTimes};
                                     membList.push(obj);
                                 }
                             } else {
@@ -3270,7 +3311,16 @@
                             list[i].children = [];
                         }
                         list[i].userList.forEach(element => {
-                            var obj = {id: element.id, label:element.name, state:element.state, parentId:element.departmentId, isUser:1,workingTime: element.workingTime};
+                            var obj = {
+                                id: element.id, 
+                                label:element.name, 
+                                state:element.state, 
+                                parentId:element.departmentId, 
+                                isUser:1,
+                                workingTime: element.workingTime,
+                                leaveDays: element.leaveDays,
+                                leaveTimes: element.leaveTimes
+                            };
                             list[i].children.push(obj);
                             this.membCount++;
                             cnt++;
@@ -5346,7 +5396,11 @@
             padding: 0 20px;
         }
     }
-    
+    .membListClass{
+        .el-dialog__body{
+            padding-top: 10px;
+        }
+    }
 </style>
 
 <style scoped>