|
@@ -35,7 +35,7 @@
|
|
</div>
|
|
</div>
|
|
<div style="display:flex;">
|
|
<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 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-select v-model="selectState" size="small" @change="stateChange" style="width:215px">
|
|
<el-option value="-1" label="全部状态" >全部状态</el-option>
|
|
<el-option value="-1" label="全部状态" >全部状态</el-option>
|
|
<el-option value="-2" label="未填报">未填报</el-option>
|
|
<el-option value="-2" label="未填报">未填报</el-option>
|
|
@@ -50,9 +50,12 @@
|
|
<span>{{ node.label }}</span>
|
|
<span>{{ node.label }}</span>
|
|
<span v-if="data.membCount != null && data.isUser == null">({{data.membCount}})</span>
|
|
<span v-if="data.membCount != null && data.isUser == null">({{data.membCount}})</span>
|
|
<div style="width:0%;float:right;">
|
|
<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>
|
|
|
|
+ <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">
|
|
<span v-if="data.isUser == 1 && data.state == 0" style="color:orange;font-size:13px">
|
|
待审核({{data.workingTime.toFixed(1) + 'h'}})
|
|
待审核({{data.workingTime.toFixed(1) + 'h'}})
|
|
</span>
|
|
</span>
|
|
@@ -817,15 +820,40 @@
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</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 type="selection"></el-table-column>
|
|
<el-table-column prop="label" label="姓名" ></el-table-column>
|
|
<el-table-column prop="label" label="姓名" ></el-table-column>
|
|
<el-table-column prop="deptName" label="部门" >
|
|
<el-table-column prop="deptName" label="部门" >
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
</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(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(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>
|
|
<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: [],
|
|
monthWorkDataS: [],
|
|
monthNotWorkDateS: [],
|
|
monthNotWorkDateS: [],
|
|
pickDateArray:[],
|
|
pickDateArray:[],
|
|
- WorktimeDatepickValue: [],
|
|
|
|
- activeName:"first",
|
|
|
|
|
|
+ WorktimeDatepickValue: [],
|
|
|
|
+ activeName:"first",
|
|
|
|
+ isLeave: 0,
|
|
submitingReport: false,
|
|
submitingReport: false,
|
|
importResultMsg:null,
|
|
importResultMsg:null,
|
|
showImportResult:false,
|
|
showImportResult:false,
|
|
@@ -1343,6 +1372,7 @@
|
|
unFillList:[],
|
|
unFillList:[],
|
|
fillList:[],
|
|
fillList:[],
|
|
fillMembList:[],
|
|
fillMembList:[],
|
|
|
|
+ fillMembList_leave: [],
|
|
membListVisible: false,
|
|
membListVisible: false,
|
|
isBatch:0,//是否是批量填报
|
|
isBatch:0,//是否是批量填报
|
|
editTitle: ['填写日报','批量填报','代填日报'],
|
|
editTitle: ['填写日报','批量填报','代填日报'],
|
|
@@ -2530,6 +2560,17 @@
|
|
if (fill == 0) {
|
|
if (fill == 0) {
|
|
this.fillMembList = this.unFillList;
|
|
this.fillMembList = this.unFillList;
|
|
this.isFill = false;
|
|
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 {
|
|
} else {
|
|
this.fillMembList = this.fillList;
|
|
this.fillMembList = this.fillList;
|
|
this.isFill = true;
|
|
this.isFill = true;
|
|
@@ -3234,7 +3275,7 @@
|
|
if (isFill == 0) {
|
|
if (isFill == 0) {
|
|
//获取未填的
|
|
//获取未填的
|
|
if (element.state == null) {
|
|
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);
|
|
membList.push(obj);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -3270,7 +3311,16 @@
|
|
list[i].children = [];
|
|
list[i].children = [];
|
|
}
|
|
}
|
|
list[i].userList.forEach(element => {
|
|
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);
|
|
list[i].children.push(obj);
|
|
this.membCount++;
|
|
this.membCount++;
|
|
cnt++;
|
|
cnt++;
|
|
@@ -5346,7 +5396,11 @@
|
|
padding: 0 20px;
|
|
padding: 0 20px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ .membListClass{
|
|
|
|
+ .el-dialog__body{
|
|
|
|
+ padding-top: 10px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
</style>
|
|
</style>
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|