|
@@ -22,7 +22,7 @@
|
|
|
<el-menu-item index="1-4"><p @click="ssl(3)">项目收支平衡表</p></el-menu-item>
|
|
|
<el-menu-item index="1-5" v-if="user.company.packageCustomer == 1"><p @click="ssl(4)">客户项目利润表</p></el-menu-item>
|
|
|
<el-menu-item index="1-6"><p @click="ssl(5)">项目阶段工时表</p></el-menu-item>
|
|
|
- <!-- <el-menu-item index="1-7"><p @click="ssl(6)">加班情况统计</p></el-menu-item> -->
|
|
|
+ <el-menu-item index="1-7"><p @click="ssl(6)">加班情况统计表</p></el-menu-item>
|
|
|
</el-submenu>
|
|
|
</el-menu>
|
|
|
</el-col>
|
|
@@ -272,11 +272,30 @@
|
|
|
</el-table>
|
|
|
|
|
|
<!-- 项目加班情况统计报表 -->
|
|
|
- <div v-if="ins == 6">
|
|
|
- <el-table></el-table>
|
|
|
+ <div v-if="ins == 6" style="padding: 0 20px">
|
|
|
+ <div class="flsx">
|
|
|
+ <div>
|
|
|
+ <el-select v-model="proJuctId" placeholder="请选择项目" @change="selcts()">
|
|
|
+ <el-option v-for="(item, index) in proList" :key="index" :label="item.projectName" :value="item.id" @change="selscts(item)"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div class="bianju">
|
|
|
+ <span class="demonstration">开始日期</span>
|
|
|
+ <el-date-picker v-model="statDatas" type="date" :picker-options="pickerOptionsStart" value-format="yyyy-MM-dd" placeholder="选择开始日期" @change="picks()"> </el-date-picker>
|
|
|
+ </div>
|
|
|
+ <div class="bianju">
|
|
|
+ <span class="demonstration">结束日期</span>
|
|
|
+ <el-date-picker v-model="endDatas" type="date" :picker-options="pickerOptionsEnd" value-format="yyyy-MM-dd" placeholder="选择结束日期" @change="picks()"> </el-date-picker>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-table v-if="ins == 6" :key="ins" border :data="overTimeList" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
|
|
|
+ <el-table-column prop="username" label="姓名" width="180"></el-table-column>
|
|
|
+ <el-table-column prop="workingTime" label="加班时长" width="180"></el-table-column>
|
|
|
+ <el-table-column prop="cost" label="成本" width="180"></el-table-column>
|
|
|
+ </el-table>
|
|
|
</div>
|
|
|
<!--工具条-->
|
|
|
- <el-col :span="24" class="toolbar">
|
|
|
+ <el-col :span="24" class="toolbar" v-if="ins != 6">
|
|
|
<el-pagination
|
|
|
@size-change="handleSizeChange"
|
|
|
@current-change="handleCurrentChange"
|
|
@@ -378,7 +397,29 @@ export default {
|
|
|
dialog: false, // 单据查看展示
|
|
|
shuz: ["项目报表","项目任务报表","项目成本报表","项目收支平衡表(利润表)","客户项目利润报表","项目阶段工时表"],
|
|
|
ins: 0,
|
|
|
- user: JSON.parse(sessionStorage.user)
|
|
|
+ user: JSON.parse(sessionStorage.user),
|
|
|
+ overTimeList: [], // 项目加班情况统计列表
|
|
|
+ statDatas: this.getCurrentTimes(),
|
|
|
+ endDatas: this.getCurrentTime(),
|
|
|
+ proList: [],
|
|
|
+ proJuctId: '',
|
|
|
+ createDate: '2020-01-01',
|
|
|
+ pickerOptionsStart: {
|
|
|
+ disabledDate: (time) => {
|
|
|
+ if (this.endDatas) {
|
|
|
+ return time.getTime() > new Date(this.endDatas).getTime() || time.getTime() <= new Date(this.createDate).getTime() - 86400000;
|
|
|
+ }
|
|
|
+ return time.getTime() <= new Date(this.createDate).getTime() - 86400000;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ pickerOptionsEnd: {
|
|
|
+ disabledDate: (time) => {
|
|
|
+ if (this.statDatas) {
|
|
|
+ return time.getTime() < new Date(this.statDatas).getTime();
|
|
|
+ }
|
|
|
+ return time.getTime() <= new Date(this.createDate).getTime() - 86400000;
|
|
|
+ },
|
|
|
+ },
|
|
|
};
|
|
|
},
|
|
|
computed: {},
|
|
@@ -473,6 +514,7 @@ export default {
|
|
|
exportExcel() {
|
|
|
var url = "/project";
|
|
|
var fName = "";
|
|
|
+ var sl = {}
|
|
|
if (this.ins == 0) {
|
|
|
fName = "项目报表.xls";
|
|
|
url += "/exportProject";
|
|
@@ -491,8 +533,14 @@ export default {
|
|
|
} else if (this.ins == 5) {
|
|
|
fName = "项目阶段工时报表.xls";
|
|
|
url += "/exportProjectStagesCost";
|
|
|
+ } else if (this.ins == 6) {
|
|
|
+ fName = "加班情况统计报表.xls";
|
|
|
+ url += "/exportOvertimeList";
|
|
|
+ sl.startDate = this.statDatas
|
|
|
+ sl.endDate = this.endDatas
|
|
|
+ sl.projectId = this.proJuctId
|
|
|
}
|
|
|
- this.http.post(url, {},
|
|
|
+ this.http.post(url, sl,
|
|
|
res => {
|
|
|
if (res.code == "ok") {
|
|
|
var filePath = res.data;
|
|
@@ -576,15 +624,14 @@ export default {
|
|
|
overTime() {
|
|
|
this.listLoading = true;
|
|
|
this.http.post('/project/getOvertimeList', {
|
|
|
- projectId: '',
|
|
|
- startDate: '2021-12-01',
|
|
|
- endDate: '2021-12-13',
|
|
|
- pageIndex: this.page,
|
|
|
- pageSize: this.size,
|
|
|
+ projectId: this.proJuctId,
|
|
|
+ startDate: this.statDatas,
|
|
|
+ endDate: this.endDatas,
|
|
|
},
|
|
|
res => {
|
|
|
if (res.code == "ok") {
|
|
|
- console.log(res, '打印出来的数据')
|
|
|
+ this.listLoading = false
|
|
|
+ this.overTimeList = res.data
|
|
|
} else {
|
|
|
this.$message({
|
|
|
message: res.msg,
|
|
@@ -689,6 +736,7 @@ export default {
|
|
|
if (res.code == "ok") {
|
|
|
this.list = res.data.records;
|
|
|
this.total = res.data.total;
|
|
|
+ this.proList = res.data.records
|
|
|
this.listLoading = false;
|
|
|
} else {
|
|
|
this.$message({
|
|
@@ -724,6 +772,29 @@ export default {
|
|
|
this.$refs.headHe.style.paddingLeft = '210px'
|
|
|
}
|
|
|
},
|
|
|
+ picks() {
|
|
|
+ this.overTime()
|
|
|
+ },
|
|
|
+ // 日期
|
|
|
+ getCurrentTime() {
|
|
|
+ var _this = this;
|
|
|
+ let yy = new Date().getFullYear();
|
|
|
+ let mm = new Date().getMonth()+1;
|
|
|
+ let dd = new Date().getDate();
|
|
|
+ _this.gettime = yy +'-'+ mm +'-'+ dd;
|
|
|
+ return _this.gettime
|
|
|
+ },
|
|
|
+ getCurrentTimes() {
|
|
|
+ var _this = this;
|
|
|
+ let yy = new Date().getFullYear();
|
|
|
+ let mm = new Date().getMonth()+1;
|
|
|
+ let dd = new Date().getDate();
|
|
|
+ _this.gettime = yy+'-'+mm+'-'+'01';
|
|
|
+ return _this.gettime
|
|
|
+ },
|
|
|
+ selcts() {
|
|
|
+ this.overTime()
|
|
|
+ }
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
@@ -889,5 +960,16 @@ export default {
|
|
|
margin-left: 50%;
|
|
|
|
|
|
}
|
|
|
+.flsx {
|
|
|
+ display: flex;
|
|
|
+ margin: 20px 0;
|
|
|
+}
|
|
|
+.bianju {
|
|
|
+ margin-left: 40px;
|
|
|
+}
|
|
|
+.bianju span {
|
|
|
+ display: inline-block;
|
|
|
+ margin-right: 20px;
|
|
|
+}
|
|
|
|
|
|
</style>
|