|
@@ -28,6 +28,7 @@
|
|
<el-menu-item index="1-8" v-if="permissions.reportOvertime"><p @click="ssl(6)">加班情况统计表</p></el-menu-item>
|
|
<el-menu-item index="1-8" v-if="permissions.reportOvertime"><p @click="ssl(6)">加班情况统计表</p></el-menu-item>
|
|
|
|
|
|
<el-menu-item index="1-10" v-if="permissions.reportTimely"><p @click="ssl(9)">员工填报及时率</p></el-menu-item>
|
|
<el-menu-item index="1-10" v-if="permissions.reportTimely"><p @click="ssl(9)">员工填报及时率</p></el-menu-item>
|
|
|
|
+ <el-menu-item index="1-11" v-if="permissions.reportTimely"><p @click="ssl(10)">日报待审核统计</p></el-menu-item>
|
|
</el-submenu>
|
|
</el-submenu>
|
|
</el-menu>
|
|
</el-menu>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -59,13 +60,18 @@
|
|
</el-select>
|
|
</el-select>
|
|
</template>
|
|
</template>
|
|
<!-- 时间段筛选 -->
|
|
<!-- 时间段筛选 -->
|
|
- <template v-if="ins == 6 || ins == 8 || ins == 9">
|
|
|
|
|
|
+ <template v-if="ins == 6 || ins == 8 || ins == 9 || ins == 10">
|
|
<span class="demonstration" style="color:#999;padding:0 10px">时间段</span>
|
|
<span class="demonstration" style="color:#999;padding:0 10px">时间段</span>
|
|
- <el-date-picker v-model="rangeDatas" type="daterange" value-format="yyyy-MM-dd" placeholder="选择开始日期" @change="picks()" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width:350px" :clearable="false" size="small"> </el-date-picker>
|
|
|
|
|
|
+ <el-date-picker v-model="rangeDatas" type="daterange" value-format="yyyy-MM-dd" placeholder="选择开始日期" @change="picks()" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width:300px" :clearable="false" size="small"> </el-date-picker>
|
|
</template>
|
|
</template>
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ <!-- 按部门/项目筛选 -->
|
|
|
|
+ <el-select v-if="ins == 10" v-model="departmentOrProject" placeholder="请选择" size="small" @change="selcts(10)" style="margin-left:10px;width:120px">
|
|
|
|
+ <el-option label="按部门筛选" :value="0"></el-option>
|
|
|
|
+ <el-option label="按项目筛选" :value="1"></el-option>
|
|
|
|
+ </el-select>
|
|
<!-- 项目筛选 -->
|
|
<!-- 项目筛选 -->
|
|
- <el-select v-if="ins != 4 && ins != 8 && ins != 9" v-model="proJuctId" placeholder="请选择项目" clearable filterable size="small" @change="selcts()" style="margin-left:10px">
|
|
|
|
|
|
+ <el-select v-if="(ins != 4 && ins != 8 && ins != 9 && ins != 10) || (ins == 10 && departmentOrProject == 1)" v-model="proJuctId" placeholder="请选择项目" clearable filterable size="small" @change="selcts()" style="margin-left:10px">
|
|
<el-option v-for="(item) in proListOvertime" :key="item.id" :label="item.projectName + (item.projectCode ? item.projectCode : '')" :value="item.id">
|
|
<el-option v-for="(item) in proListOvertime" :key="item.id" :label="item.projectName + (item.projectCode ? item.projectCode : '')" :value="item.id">
|
|
<span style="float: left;color: #8492a6;">{{ item.projectCode }}</span>
|
|
<span style="float: left;color: #8492a6;">{{ item.projectCode }}</span>
|
|
<span style="float: right;font-size: 13px;margin-left: 20px">{{ item.projectName }}</span>
|
|
<span style="float: right;font-size: 13px;margin-left: 20px">{{ item.projectName }}</span>
|
|
@@ -73,13 +79,13 @@
|
|
</el-select>
|
|
</el-select>
|
|
|
|
|
|
<!-- 部门筛选 -->
|
|
<!-- 部门筛选 -->
|
|
- <el-cascader v-if="ins == 9" v-model="departmentIdArray" :options="departmentList" placeholder="请选择部门"
|
|
|
|
|
|
+ <el-cascader v-if="ins == 9 || (ins == 10 && departmentOrProject == 0)" v-model="departmentIdArray" :options="departmentList" placeholder="请选择部门"
|
|
:props="{ checkStrictly: false,expandTrigger: 'hover' }" :show-all-levels="false" clearable
|
|
:props="{ checkStrictly: false,expandTrigger: 'hover' }" :show-all-levels="false" clearable
|
|
@change="selcts(9)" size="small" style="margin-left:10px"
|
|
@change="selcts(9)" size="small" style="margin-left:10px"
|
|
></el-cascader>
|
|
></el-cascader>
|
|
|
|
|
|
<!-- 人员筛选 -->
|
|
<!-- 人员筛选 -->
|
|
- <el-select v-if="ins == 6 || ins == 8 || ins == 9" v-model="userId" placeholder="请选择人员" @change="selcts()" clearable filterable size="small" style="margin-left:10px">
|
|
|
|
|
|
+ <el-select v-if="ins == 6 || ins == 8 || ins == 9 || ins == 10" v-model="userId" placeholder="请选择人员" @change="selcts()" clearable filterable size="small" style="margin-left:10px;width:150px">
|
|
<el-option v-for="(item, index) in selUserList" :key="index" :label="item.name" :value="item.id"></el-option>
|
|
<el-option v-for="(item, index) in selUserList" :key="index" :label="item.name" :value="item.id"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
@@ -423,12 +429,19 @@
|
|
|
|
|
|
</el-table>
|
|
</el-table>
|
|
|
|
|
|
- <el-table v-if="ins == 9" key="9" border :data="timelyCostList" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
|
|
|
|
|
|
+ <!-- 员工填报及时率 -->
|
|
|
|
+ <el-table v-if="ins == 9" key="9" border :data="reportTimelyList" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
|
|
<el-table-column prop="userName" label="人员" min-width="200" align="center"></el-table-column>
|
|
<el-table-column prop="userName" label="人员" min-width="200" align="center"></el-table-column>
|
|
<el-table-column prop="departmentName" label="所属部门" min-width="200" align="center"></el-table-column>
|
|
<el-table-column prop="departmentName" label="所属部门" min-width="200" align="center"></el-table-column>
|
|
<el-table-column prop="timelinessRate" label="填报及时率" min-width="200" align="center"></el-table-column>
|
|
<el-table-column prop="timelinessRate" label="填报及时率" min-width="200" align="center"></el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
|
|
|
|
|
|
+ <!-- 日报待审核统计 -->
|
|
|
|
+ <el-table v-if="ins == 10" key="10" border :data="auditRateList" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
|
|
|
|
+ <el-table-column prop="userName" label="审核人" min-width="200" align="center"></el-table-column>
|
|
|
|
+ <el-table-column :prop="departmentOrProject == 0 ? 'departmentName' : 'projectName'" :label="departmentOrProject == 0 ? '所属部门' : '负责项目'" min-width="200" align="center"></el-table-column>
|
|
|
|
+ <el-table-column prop="num" label="待审核条数" min-width="200" align="center"></el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
|
|
|
|
|
|
<!--工具条-->
|
|
<!--工具条-->
|
|
@@ -611,7 +624,7 @@ export default {
|
|
shuz: ["项目报表","项目任务报表","项目成本报表",
|
|
shuz: ["项目报表","项目任务报表","项目成本报表",
|
|
"项目收支平衡表(利润表)","客户项目利润报表","项目阶段工时表",
|
|
"项目收支平衡表(利润表)","客户项目利润报表","项目阶段工时表",
|
|
"加班情况统计表","工时成本预警表","人员工时分配表",
|
|
"加班情况统计表","工时成本预警表","人员工时分配表",
|
|
- "员工填报及时率报表"],
|
|
|
|
|
|
+ "员工填报及时率统计","日报待审核统计"],
|
|
ins: 0,
|
|
ins: 0,
|
|
user: JSON.parse(sessionStorage.user),
|
|
user: JSON.parse(sessionStorage.user),
|
|
overTimeList: [], // 项目加班情况统计列表
|
|
overTimeList: [], // 项目加班情况统计列表
|
|
@@ -633,10 +646,12 @@ export default {
|
|
cusProListOvertime: [],
|
|
cusProListOvertime: [],
|
|
|
|
|
|
userWorkHoursList: [],
|
|
userWorkHoursList: [],
|
|
- timelyCostList: [],
|
|
|
|
|
|
+ reportTimelyList: [],
|
|
|
|
+ auditRateList: [],
|
|
departmentList: [],
|
|
departmentList: [],
|
|
departmentIdArray: [],
|
|
departmentIdArray: [],
|
|
- selUserList: []
|
|
|
|
|
|
+ selUserList: [],
|
|
|
|
+ departmentOrProject: 0
|
|
|
|
|
|
};
|
|
};
|
|
},
|
|
},
|
|
@@ -873,7 +888,9 @@ export default {
|
|
} else if (this.ins == 8) {
|
|
} else if (this.ins == 8) {
|
|
this.getWorkHoursList()
|
|
this.getWorkHoursList()
|
|
} else if (this.ins == 9) {
|
|
} else if (this.ins == 9) {
|
|
- this.getTimelyCostList()
|
|
|
|
|
|
+ this.getReportTimelyList()
|
|
|
|
+ } else if (this.ins == 10) {
|
|
|
|
+ this.getAuditRateList()
|
|
}
|
|
}
|
|
},
|
|
},
|
|
exportExcel() {
|
|
exportExcel() {
|
|
@@ -917,6 +934,21 @@ export default {
|
|
url += "/exportReportTimelinessRate"
|
|
url += "/exportReportTimelinessRate"
|
|
sl.startDate = this.rangeDatas[0]
|
|
sl.startDate = this.rangeDatas[0]
|
|
sl.endDate = this.rangeDatas[1]
|
|
sl.endDate = this.rangeDatas[1]
|
|
|
|
+ } else if (this.ins == 10) {
|
|
|
|
+ fName = "日报待审核统计.xls"
|
|
|
|
+ url += "/exportWaitingReviewList"
|
|
|
|
+ sl.startDate = this.rangeDatas[0]
|
|
|
|
+ sl.endDate = this.rangeDatas[1]
|
|
|
|
+ sl.stateKey = this.departmentOrProject
|
|
|
|
+ if(this.userId){
|
|
|
|
+ sl.userId = this.userId
|
|
|
|
+ }
|
|
|
|
+ if(this.departmentIdArray.length != 0 && this.departmentOrProject == 0){
|
|
|
|
+ sl.departmentId = this.departmentIdArray[this.departmentIdArray.length - 1]
|
|
|
|
+ }
|
|
|
|
+ if(this.proJuctId && this.departmentOrProject == 1){
|
|
|
|
+ sl.projectId = this.proJuctId
|
|
|
|
+ }
|
|
}
|
|
}
|
|
this.http.post(url, sl,
|
|
this.http.post(url, sl,
|
|
res => {
|
|
res => {
|
|
@@ -959,9 +991,11 @@ export default {
|
|
this.overTimeList = []
|
|
this.overTimeList = []
|
|
this.baseCostList = []
|
|
this.baseCostList = []
|
|
this.userWorkHoursList = []
|
|
this.userWorkHoursList = []
|
|
- this.timelyCostList = []
|
|
|
|
- this.departmentIdArray = [],
|
|
|
|
|
|
+ this.reportTimelyList = []
|
|
|
|
+ this.auditRateList = []
|
|
|
|
+ this.departmentIdArray = []
|
|
this.userId = null
|
|
this.userId = null
|
|
|
|
+ this.selUserList = this.userList
|
|
this.getList();
|
|
this.getList();
|
|
},
|
|
},
|
|
getCustomerProjectInAndOut() {
|
|
getCustomerProjectInAndOut() {
|
|
@@ -1207,7 +1241,7 @@ export default {
|
|
})
|
|
})
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- getTimelyCostList(){
|
|
|
|
|
|
+ getReportTimelyList(){
|
|
let parameter = {
|
|
let parameter = {
|
|
startDate: this.rangeDatas[0],
|
|
startDate: this.rangeDatas[0],
|
|
endDate: this.rangeDatas[1],
|
|
endDate: this.rangeDatas[1],
|
|
@@ -1225,7 +1259,45 @@ export default {
|
|
res => {
|
|
res => {
|
|
this.listLoading = false
|
|
this.listLoading = false
|
|
if(res.code == 'ok'){
|
|
if(res.code == 'ok'){
|
|
- this.timelyCostList = res.data.list
|
|
|
|
|
|
+ this.reportTimelyList = res.data.list
|
|
|
|
+ this.total = res.data.total
|
|
|
|
+ }else {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: res.msg,
|
|
|
|
+ type: 'error'
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },err => {
|
|
|
|
+ this.listLoading = false
|
|
|
|
+ this.$message({
|
|
|
|
+ message: err,
|
|
|
|
+ type: 'error'
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ getAuditRateList(){
|
|
|
|
+ let parameter = {
|
|
|
|
+ startDate: this.rangeDatas[0],
|
|
|
|
+ endDate: this.rangeDatas[1],
|
|
|
|
+ pageIndex: this.page,
|
|
|
|
+ pageSize: this.size,
|
|
|
|
+ stateKey: this.departmentOrProject
|
|
|
|
+ }
|
|
|
|
+ if(this.userId){
|
|
|
|
+ parameter.userId = this.userId
|
|
|
|
+ }
|
|
|
|
+ if(this.departmentIdArray.length != 0 && this.departmentOrProject == 0){
|
|
|
|
+ parameter.departmentId = this.departmentIdArray[this.departmentIdArray.length - 1]
|
|
|
|
+ }
|
|
|
|
+ if(this.proJuctId && this.departmentOrProject == 1){
|
|
|
|
+ parameter.projectId = this.proJuctId
|
|
|
|
+ }
|
|
|
|
+ this.listLoading = true
|
|
|
|
+ this.http.post('/project/getWaitingReviewList',parameter,
|
|
|
|
+ res => {
|
|
|
|
+ this.listLoading = false
|
|
|
|
+ if(res.code == 'ok'){
|
|
|
|
+ this.auditRateList = res.data.result
|
|
this.total = res.data.total
|
|
this.total = res.data.total
|
|
}else {
|
|
}else {
|
|
this.$message({
|
|
this.$message({
|
|
@@ -1396,7 +1468,10 @@ export default {
|
|
this.getWorkHoursList()
|
|
this.getWorkHoursList()
|
|
}
|
|
}
|
|
if(this.ins == 9){
|
|
if(this.ins == 9){
|
|
- this.getTimelyCostList()
|
|
|
|
|
|
+ this.getReportTimelyList()
|
|
|
|
+ }
|
|
|
|
+ if(this.ins == 10){
|
|
|
|
+ this.getAuditRateList()
|
|
}
|
|
}
|
|
},
|
|
},
|
|
// 日期
|
|
// 日期
|
|
@@ -1420,6 +1495,12 @@ export default {
|
|
this.selUserList = this.userList
|
|
this.selUserList = this.userList
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if(e == 10){
|
|
|
|
+ this.proJuctId = ''
|
|
|
|
+ this.departmentIdArray = []
|
|
|
|
+ this.selUserList = this.userList
|
|
|
|
+ this.userId = ''
|
|
|
|
+ }
|
|
// console.log(this.customerId);
|
|
// console.log(this.customerId);
|
|
this.getList()
|
|
this.getList()
|
|
},
|
|
},
|