|
@@ -0,0 +1,212 @@
|
|
|
+<!-- 工单中心 -->
|
|
|
+<template>
|
|
|
+ <div class="stock">
|
|
|
+ <template v-if="!detailVisible">
|
|
|
+ <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
|
|
+ <el-form-item label="时间">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ @change="dateChangeHandle"
|
|
|
+ type="daterange"
|
|
|
+ align="right"
|
|
|
+ :clearable="false"
|
|
|
+ unlink-panels
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="截止日期">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button @click="getDataList()">查询</el-button>
|
|
|
+ <el-button type="primary" @click="exportHandle('', {})">导出汇总表</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <el-table :data="dataList" border v-loading="dataListLoading" style="width:100%">
|
|
|
+ <el-table-column label="序号" type="index" width="50" align="center">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="receiverName"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="姓名"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="taskNum"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="报工总数"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="taskTime"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="180"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="报工总工时"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="damageNum"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="报损数"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="damageTime"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="180"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="报损总工时"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="performance"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ width="80"
|
|
|
+ label="绩效分"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ fixed="right"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ width="180"
|
|
|
+ label="操作"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
+ @click="showDetail(scope.row)"
|
|
|
+ >查看</el-button>
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
+ @click="exportDetailHandle(scope.row)"
|
|
|
+ >导出</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ @size-change="sizeChangeHandle"
|
|
|
+ @current-change="currentChangeHandle"
|
|
|
+ :current-page="pageIndex"
|
|
|
+ :page-sizes="[10, 20, 50, 100]"
|
|
|
+ :page-size="pageSize"
|
|
|
+ :total="totalPage"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ >
|
|
|
+ </el-pagination>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <work-stat-detail ref="detail" v-if="detailVisible" @onChose="onChose"></work-stat-detail>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import Vue from 'vue'
|
|
|
+import {
|
|
|
+ getWorkStatList
|
|
|
+} from '@/api/task'
|
|
|
+import WorkStatDetail from './work-stat-detail'
|
|
|
+export default {
|
|
|
+ name: 'works-work-stat',
|
|
|
+ components: {WorkStatDetail},
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ detailVisible: false,
|
|
|
+ pageIndex: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ totalPage: 0,
|
|
|
+ dataForm: {},
|
|
|
+ dataList: [],
|
|
|
+ date: []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created () {
|
|
|
+ const currentDate = new Date()
|
|
|
+ const year = currentDate.getFullYear()
|
|
|
+ const month = currentDate.getMonth() + 1 // 月份是从 0 开始计数的,因此要加1
|
|
|
+ const day = currentDate.getDate()
|
|
|
+ this.date = [`${year}-${month}-01`, `${year}-${month}-${day}`]
|
|
|
+ this.getDataList()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ onChose () {
|
|
|
+ this.detailVisible = false
|
|
|
+ },
|
|
|
+ // 每页数
|
|
|
+ sizeChangeHandle (val) {
|
|
|
+ this.pageSize = val
|
|
|
+ this.pageIndex = 1
|
|
|
+ this.getDataList()
|
|
|
+ },
|
|
|
+ // 当前页
|
|
|
+ currentChangeHandle (val) {
|
|
|
+ this.pageIndex = val
|
|
|
+ this.getDataList()
|
|
|
+ },
|
|
|
+ dateChangeHandle (val) {
|
|
|
+ // this.dataForm.dateStart = val[0]
|
|
|
+ // this.dataForm.dateEnd = val[1]
|
|
|
+ },
|
|
|
+ getDataList () {
|
|
|
+ this.dataListLoading = true
|
|
|
+ this.dataForm.dateStart = this.date[0]
|
|
|
+ this.dataForm.dateEnd = this.date[1]
|
|
|
+ let params = {
|
|
|
+ current: this.pageIndex,
|
|
|
+ size: this.pageSize,
|
|
|
+ ...this.dataForm
|
|
|
+ }
|
|
|
+ getWorkStatList(params).then(({ data }) => {
|
|
|
+ if (data && data.code === '200') {
|
|
|
+ this.dataList = data.data.records
|
|
|
+ this.totalPage = Number(data.data.total)
|
|
|
+ } else {
|
|
|
+ this.dataList = []
|
|
|
+ this.totalPage = 0
|
|
|
+ }
|
|
|
+ this.dataListLoading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 查看详情
|
|
|
+ showDetail (val) {
|
|
|
+ val.dateStart = this.dataForm.dateStart
|
|
|
+ val.dateEnd = this.dataForm.dateEnd
|
|
|
+ this.detailVisible = true
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.detail.init(val)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 导出详情
|
|
|
+ exportDetailHandle (val) {
|
|
|
+ val.dateStart = this.dataForm.dateStart
|
|
|
+ val.dateEnd = this.dataForm.dateEnd
|
|
|
+ location.href = this.$http.adornUrl(`/biz-service/WorkController/count/info/exportExcel?_token=${Vue.cookie.get('token')}&userId=${val.receiver}&dateStart=${val.dateStart}&dateEnd=${val.dateEnd}`)
|
|
|
+ },
|
|
|
+ // 导出
|
|
|
+ exportHandle () {
|
|
|
+ let dateStart = this.dataForm.dateStart
|
|
|
+ let dateEnd = this.dataForm.dateEnd
|
|
|
+ location.href = this.$http.adornUrl(`/biz-service/WorkController/count/exportExcel?_token=${Vue.cookie.get('token')}&dateStart=${dateStart}&dateEnd=${dateEnd}`)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+
|
|
|
+</style>
|