Min 1 år sedan
förälder
incheckning
43c37fe5f6

+ 2 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ReportController.java

@@ -1519,8 +1519,8 @@ public class ReportController {
     }
 
     @RequestMapping("getPersonWorkHoursWagesDetail")
-    public HttpRespMsg getPersonWorkHoursWagesDetail(String date,String userId){
-        return reportService.getPersonWorkHoursWagesDetail(date,userId);
+    public HttpRespMsg getPersonWorkHoursWagesDetail(String date,String userId,String startDate,String endDate,Integer checkStatus,Integer detailStatus){
+        return reportService.getPersonWorkHoursWagesDetail(date,userId,startDate,endDate,checkStatus,detailStatus);
     }
 
     @RequestMapping("exportPersonWorkHoursWorkTime")

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ReportMapper.java

@@ -184,7 +184,7 @@ public interface ReportMapper extends BaseMapper<Report> {
 
     List<Map<String, Object>> getPersonWorkHoursWagesList(Integer companyId, String startDate, String endDate, String deptId, String userId);
 
-    List<Map<String, Object>> getPersonWorkHoursWagesDetail(String date, String userId, Integer companyId);
+    List<Map<String, Object>> getPersonWorkHoursWagesDetail(String date, String userId, Integer companyId,String startDate,String endDate,Integer checkStatus,Integer detailStatus);
 
     List<Map<String, Object>> getPlanRealTimeProgressList(Integer companyId,String deptId, String userId, String startDate, String endDate, Integer pageStart, Integer pageSize);
 

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ReportService.java

@@ -119,7 +119,7 @@ public interface ReportService extends IService<Report> {
 
     HttpRespMsg getPersonWorkHoursWagesList(String deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
 
-    HttpRespMsg getPersonWorkHoursWagesDetail(String date, String userId);
+    HttpRespMsg getPersonWorkHoursWagesDetail(String date, String userId,String startDate,String endDate,Integer checkStatus,Integer detailStatus);
 
     HttpRespMsg exportPersonWorkHoursWorkTime(String deptId, String userId, String startDate, String endDate);
 

+ 41 - 4
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -1,10 +1,10 @@
 package com.management.platform.service.impl;
 
-import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.databind.JsonNode;
 import com.management.platform.entity.*;
 import com.management.platform.entity.vo.*;
 import com.management.platform.mapper.*;
@@ -4260,14 +4260,51 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg getPersonWorkHoursWagesDetail(String date, String userId) {
-        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
-        List<Map<String,Object>> mapList=reportMapper.getPersonWorkHoursWagesDetail(date,userId,companyId);
+    public HttpRespMsg getPersonWorkHoursWagesDetail(String date, String userId,String startDate,String endDate,Integer checkStatus,Integer detailStatus) {
+        User user = userMapper.selectById(request.getHeader("token"));
+        if(checkStatus!=null&&StringUtils.isEmpty(userId)){
+            userId=user.getId();
+        }
+        List<Map<String,Object>> mapList=reportMapper.getPersonWorkHoursWagesDetail(date,userId,user.getCompanyId(),startDate,endDate,checkStatus,detailStatus);
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         HashMap map=new HashMap();
         map.put("record",mapList);
         map.put("totalWorkingTime",mapList.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("working_time")))).sum());
         map.put("totalCost",mapList.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("cost")))).sum());
+        if(checkStatus!=null && detailStatus==null){
+            map=new HashMap();
+            List<String> dateList = mapList.stream().map(m -> String.valueOf(m.get("createDate"))).distinct().collect(Collectors.toList());
+            Map<Object, List<Map<String, Object>>> listMap = mapList.stream().collect(Collectors.groupingBy(m -> m.get("createDate")));
+            List<Map<String,Object>> resultList=new ArrayList<>();
+            for (String s : dateList) {
+                Map<String,Object> item=new HashMap();
+                List<Map<String, Object>> list = listMap.get(s);
+                item.put("createDate",s);
+                Map<Object, Map<String, Object>> mapMap = list.stream().collect(Collectors.groupingBy(m -> m.get("creator_id"), Collectors.collectingAndThen(Collectors.toList(), i -> {
+                    Map<String, Object> retMap = new HashMap<>();
+                    double working_time = i.stream().mapToDouble(mmm -> Double.valueOf(String.valueOf(mmm.get("working_time")))).sum();
+                    double cost = i.stream().mapToDouble(mmm -> Double.valueOf(String.valueOf(mmm.get("cost")))).sum();
+                    retMap.put("working_time", working_time);
+                    retMap.put("creatorName",i.get(0).get("creatorName"));
+                    retMap.put("creatorId",i.get(0).get("creator_id"));
+                    retMap.put("cost", cost);
+                    return retMap;
+                })));
+                List<String> creatorId = list.stream().map(m -> String.valueOf(m.get("creator_id"))).distinct().collect(Collectors.toList());
+                List<Map<String,Object>> theData=new ArrayList<>();
+                for (String id : creatorId) {
+                    Map<String, Object> nameItem = mapMap.get(id);
+                    theData.add(nameItem);
+                }
+                item.put("subDataList",theData);
+                item.put("working_time",list.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("working_time")))).sum());
+                item.put("cost",list.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("cost")))).sum());
+                resultList.add(item);
+            }
+            map.put("record",resultList);
+            map.put("totalWorkingTime",resultList.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("working_time")))).sum());
+            map.put("totalCost",resultList.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("cost")))).sum());
+        }
         httpRespMsg.setData(map);
         return httpRespMsg;
     }

+ 14 - 3
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ReportMapper.xml

@@ -150,20 +150,31 @@
     </select>
 
     <select id="getPersonWorkHoursWagesDetail" resultType="java.util.Map">
-        select r.*,pp.name as procedureName,(case  when pp.check_type=0 then '自检' when pp.check_type=1 then '互检' else '专检' end) as checkType,
+        select r.*,DATE_FORMAT(r.create_date,'%Y%m%d') as createDate,pp.name as procedureName,(case  when pp.check_type=0 then '自检' when pp.check_type=1 then '互检' else '专检' end) as checkType,
         p.name as productName,DATE_FORMAT(plan.start_date,'%Y%m%d') as planStartDate,DATE_FORMAT(plan.end_date,'%Y%m%d') as planEndDate ,
-        plan.task_change_notice_num as taskName,plan.plan_type as planType,u.name as checkerName
+        plan.task_change_notice_num as taskName,plan.plan_type as planType,u.name as checkerName,u2.name as creatorName
         from report r
         left join prod_procedure pp on r.prod_procedure_id=pp.id
         left join product p on p.id=r.product_id
         left join plan on plan.id=r.plan_id
         left join user u on r.checker_id=u.id
+        left join user u2 on r.creator_id=u2.id
         where r.company_id=#{companyId}
         <if test="date!=null and date!=''">
             and r.create_date=#{date}
         </if>
         <if test="userId!=null and userId!=''">
-            and r.creator_id=#{userId}
+            <choose>
+                <when test="checkStatus!=null and checkStatus==1 and detailStatus==null">
+                    and plan.foreman_id=#{userId}
+                </when>
+                <otherwise>
+                    and r.creator_id=#{userId}
+                </otherwise>
+            </choose>
+        </if>
+        <if test="startDate!=null and endDate!=null">
+            and r.create_date between #{startDate} and #{endDate}
         </if>
     </select>
 

+ 9 - 0
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/router/index.js

@@ -86,6 +86,15 @@ const router = new Router({
             keepAlive: false
         }
     },
+    {
+        path: "/statisticsDetail",
+        // path: "/statistic",
+        component: () => import("@/views/statisticsView/statisticsDetail"),
+        meta: {
+            title: "数据统计",
+            keepAlive: false
+        }
+    },
     {
         path: "/groupView",
         component: () => import("@/views/groupView/groupView"),

+ 190 - 0
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/statisticsView/statisticsDetail.vue

@@ -0,0 +1,190 @@
+<template>
+  <div>
+    <div class="top">
+      <van-nav-bar title="数据统计" left-text="返回"  @click-left="back" fixed left-arrow/>
+    </div>
+    <div class="bottom" style="position: relative;">
+        <van-cell-group>
+            <van-cell>总计:  工时:{{totalWorkingTime}}分钟   工价:{{totalCost}}元</van-cell>
+        </van-cell-group>
+        </div>
+          <div v-for="(item,index) in groupList" :key="index" :label="item">
+              <div class="mar_top10">{{item.productName}}</div>
+              <div class="mar_top10">{{item.planStartDate}}-{{item.planEndDate}}</div>
+              <div class="mar_top10">
+                <div style="padding:10px;border:1px solid #000">
+                  <div style="display:flex;align-item:middle">
+                    <div style="width:50%">
+                        <span v-if="item.planType==0">{{item.procedureName}}</span>
+                        <span v-else>{{item.taskName}}</span>
+                    </div>
+                    <div style="text-align:right;width:50%">{{item.working_time}}分钟</div>
+                  </div>
+                  <div style="display:flex;align-item:middle">
+                    <div style="width:25% ;color:#20A0F7">{{!item.progress?0:item.progress}}%</div>
+                    <div style="width:25% ;color:#20A0F7">{{item.cost}}</div>
+                    <div style="width:25% ;color:#20A0F7">{{item.checkType}}</div>
+                    <div style="width:25% ;color:#20A0F7">{{item.checkerName}}</div>
+                  </div>
+                  <div style="display:flex;align-item:middle">
+                    <div style="width:25%">进度</div>
+                    <div style="width:25%">工钱</div>
+                    <div style="width:25%">质检方式</div>
+                    <div style="width:25%">质检人</div>
+                  </div>
+                </div>
+              </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import Vue from "vue";
+import { ImagePreview } from "vant";
+import { DatetimePicker } from 'vant';
+import { Collapse, CollapseItem ,Cell, CellGroup } from 'vant';
+Vue.use(ImagePreview);
+Vue.use(Collapse);
+Vue.use(CollapseItem);
+Vue.use(Cell);
+Vue.use(CellGroup);
+export default {
+  props: {},
+  components: {},
+  data() {
+    return {
+      startDate:this.format(new Date(),"yyyy-MM-dd"),
+      endDate:this.format(new Date(),"yyyy-MM-dd"),
+      chooseType:'',
+      totalWorkingTime:0,
+      totalCost:0,
+      activeNames: ['1'],
+      checkStatus: '0',
+      groupList:[],
+      userId:''
+    };
+  },
+  computed: {},
+  watch: {},
+  created() {
+    this.startDate=this.$route.query.startDate
+    this.endDate=this.$route.query.endDate
+    this.checkStatus=this.$route.query.checkStatus
+    this.userId=this.$route.query.userId
+  },
+  mounted() {
+    this.getData()
+  },
+  methods: {
+    getData(){
+      let postData = {
+        startDate:this.startDate,
+        endDate:this.endDate,
+        checkStatus:this.checkStatus,
+        detailStatus:0,
+        userId:this.userId,
+      };
+      this.$axios.post("/report/getPersonWorkHoursWagesDetail", postData)
+        .then(res => {
+          this.saving = false;
+            if(res.code == "ok") {
+              this.groupList=res.data.record
+              this.totalWorkingTime=res.data.totalWorkingTime
+              this.totalCost=res.data.totalCost
+            } else {
+                this.$toast.fail(res.msg);
+            }
+        }).catch(err=> {this.$toast.clear();});
+    },
+    back() {
+      this.$router.push({
+            path:"/statisticsView",
+        })
+    },
+     // 时间转换
+    format(date, pattern) {
+        pattern = pattern || "yyyy-MM-dd";
+        var _this = this;
+        return pattern.replace(/([yMdhsm])(\1*)/g, function ($0) {
+            switch ($0.charAt(0)) {
+                case 'y': return _this.padding(date.getFullYear(), $0.length);
+                case 'M': return _this.padding(date.getMonth() + 1, $0.length);
+                case 'd': return _this.padding(date.getDate(), $0.length);
+                case 'w': return date.getDay() + 1;
+                case 'h': return _this.padding(date.getHours(), $0.length);
+                case 'm': return _this.padding(date.getMinutes(), $0.length);
+                case 's': return _this.padding(date.getSeconds(), $0.length);
+            }
+        });
+    },
+    padding(s, len) {
+      var len = len - (s + '').length;
+      for (var i = 0; i < len; i++) { s = '0' + s; }
+      return s;
+    }, 
+  },
+};
+</script>
+
+<style scoped>
+.mar_top10{
+    margin-top: 10px
+}
+.eddit {
+    padding: 0.4rem 0.4rem;
+    text-align: right;
+}
+.search-icon {
+    font-size: 0.4rem;
+    display: flex;
+    align-items: center;
+    margin-left: 0.3rem;
+}
+.wrapper {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    height: 100%;
+}
+
+.block {
+    width: 8rem;
+    height: 14rem;
+    background-color: #fff;
+    position: relative;
+}
+.butt {
+    position: absolute;
+    bottom: 0;
+    left: 0;
+}
+.poClass p {
+    padding: 0.4rem 0.2rem;
+    color: #7d7e80;
+}
+.van-image {
+  width: 2rem !important;
+  height: 2rem !important;
+}
+.auste {
+    width: 100%;
+    height: 12rem;
+    overflow: auto;
+}
+.ayss {
+    width: 100%;
+    text-align: center;
+    line-height: 1.2rem;
+    border-bottom: 1px solid #7d7e80;
+}
+.ss {
+    position: absolute;
+    width: 100%;
+    top: 0;
+    left: 0;
+    z-index: 2;
+}
+.top{
+  height: 50px;
+}
+</style>

+ 121 - 35
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/statisticsView/statisticsView.vue

@@ -1,30 +1,53 @@
 <template>
   <div>
-    <van-nav-bar title="数据统计" left-text="返回"  @click-left="back" fixed left-arrow/>
-    <van-date-picker
-      v-model="currentDate"
-      title="选择日期"
-    />
-    <van-tabs v-model="checkStatus" sticky @change="clickLabel" offset-top="1.22667rem">
+    <div class="top">
+      <van-nav-bar title="数据统计" left-text="返回"  @click-left="back" fixed left-arrow/>
+    </div>
+    <div class="bottom" style="position: relative;">
+      <van-tabs v-model="checkStatus" sticky @change="clickLabel">
+        <van-cell-group>
+          <van-field v-model="startDate" label="开始时间" placeholder="请输入开始时间" @click="chooseDate('start')"/>
+        </van-cell-group>
+        <van-cell-group>
+          <van-field v-model="endDate" label="结束时间" placeholder="请输入结束时间" @click="chooseDate('end')"/>
+        </van-cell-group>
         <van-tab v-for="(item, index) in labelList" :title="item.name" :key="index" :name="item.id">
-            <van-cell-group v-for="(itemList, indexList) in groupList" :key="indexList" :style="indexList == 0 ? 'margin: 0.5rem 0;' : 'margin-bottom: 0.5rem'">
-                <van-cell title="提交日期" :value="itemList.happenDate" />
-                <van-cell title="项目名称" :value="itemList.projectName" />
-                <van-cell title="提交人" :value="itemList.enterName" />
-                <van-cell title="研究中心" :value="itemList.centerName" />
-                <van-cell title="阶段" :value="itemList.subDtemplateName" />
-                <van-cell title="理由" :label="itemList.reason" v-if="checkStatus != 0"/>
-            </van-cell-group>
+          <van-cell-group>
+            <van-cell>总计:  工时:{{totalWorkingTime}}分钟   工价:{{totalCost}}元</van-cell>
+          </van-cell-group>
+            <van-collapse  v-model="activeNames">
+              <van-collapse-item v-for="(item,index) in groupList" :key="index" :title="item.createDate+' 工时:'+item.working_time+'分钟 工价:'+item.cost+'元'" :name="index">
+                 <van-cell v-for="(item2,index2) in item.subDataList" :key="index2" @click="goDetail(item2)">
+                    {{item2.creatorName}}:    工时:{{item2.working_time}}分钟   工价:{{item2.cost}}元
+                 </van-cell>
+              </van-collapse-item>
+            </van-collapse>
         </van-tab>
       </van-tabs>
+    </div>
+
+    <van-popup v-model="dateShow" position="bottom" :style="{ height: '30%' }" >
+      <van-datetime-picker
+        v-model="currentDate"
+        type="date"
+        title="选择年月日"
+        @confirm="changeTime" 
+        @cancel="dateShow = false"
+      />
+    </van-popup>
   </div>
 </template>
 
 <script>
 import Vue from "vue";
 import { ImagePreview } from "vant";
-import { DatePicker } from 'vant';
+import { DatetimePicker } from 'vant';
+import { Collapse, CollapseItem ,Cell, CellGroup } from 'vant';
 Vue.use(ImagePreview);
+Vue.use(Collapse);
+Vue.use(CollapseItem);
+Vue.use(Cell);
+Vue.use(CellGroup);
 export default {
   props: {},
   components: {},
@@ -33,38 +56,98 @@ export default {
       checkStatus: '0',
       labelList: [{name: '我的统计', id: '0'},{name: '工位统计', id: '1'}],
       groupList: [],
-      currentDate: ['2021', '01', '01'],
+      currentDate: new Date(),
+      dateShow: false,
+      startDate:this.format(new Date(),"yyyy-MM-dd"),
+      endDate:this.format(new Date(),"yyyy-MM-dd"),
+      chooseType:'',
+      totalWorkingTime:0,
+      totalCost:0,
+      activeNames: ['1'],
     };
   },
   computed: {},
   watch: {},
   created() {},
-  mounted() {},
+  mounted() {
+    this.getData()
+  },
   methods: {
+    getData(){
+      let postData = {
+        startDate:this.startDate,
+        endDate:this.endDate,
+        checkStatus:this.checkStatus
+      };
+      this.$axios.post("/report/getPersonWorkHoursWagesDetail", postData)
+        .then(res => {
+          this.saving = false;
+            if(res.code == "ok") {
+              this.groupList=res.data.record
+              console.log(this.groupList,'=============')
+              this.totalWorkingTime=res.data.totalWorkingTime
+              this.totalCost=res.data.totalCost
+            } else {
+                this.$toast.fail(res.msg);
+            }
+        }).catch(err=> {this.$toast.clear();});
+    },
+    // 改变时间
+    changeTime(time) {
+      if(this.chooseType=='start'){
+        this.startDate = this.format(new Date(time),"yyyy-MM-dd");  
+      }else{
+        this.endDate = this.format(new Date(time),"yyyy-MM-dd");
+      }
+      this.currentDate = time;
+      this.dateShow = false;
+      this.getData()
+    },
+    chooseDate(type){
+      this.dateShow=true
+      this.chooseType=type
+    },
     back() {
-      this.$router.go(-1);
+      this.$router.push({
+            path:"/index",
+        })
+    },
+    goDetail(item){
+      this.$router.push({
+            path:"/statisticsDetail",
+            query:{
+            	startDate:this.startDate,
+            	endDate:this.endDate,
+            	checkStatus:this.checkStatus,
+              userId:item.creatorId
+            }
+        })
     },
+     // 时间转换
+    format(date, pattern) {
+        pattern = pattern || "yyyy-MM-dd";
+        var _this = this;
+        return pattern.replace(/([yMdhsm])(\1*)/g, function ($0) {
+            switch ($0.charAt(0)) {
+                case 'y': return _this.padding(date.getFullYear(), $0.length);
+                case 'M': return _this.padding(date.getMonth() + 1, $0.length);
+                case 'd': return _this.padding(date.getDate(), $0.length);
+                case 'w': return date.getDay() + 1;
+                case 'h': return _this.padding(date.getHours(), $0.length);
+                case 'm': return _this.padding(date.getMinutes(), $0.length);
+                case 's': return _this.padding(date.getSeconds(), $0.length);
+            }
+        });
+    },
+    padding(s, len) {
+      var len = len - (s + '').length;
+      for (var i = 0; i < len; i++) { s = '0' + s; }
+      return s;
+    },   
     // 点击标签触发
     clickLabel() {
         this.getData()
     },
-    // 获取数据
-    getData() {
-        // this.$toast.loading({
-        //   message: '数据加载中...',
-        //   forbidClick: true,
-        // });
-        // this.$axios.post("/data-item-detail/getAllDataItemDetail", {
-
-        // })
-        // .then(res => {
-        //     if(res.code == "ok") {
-
-        //     } else {
-        //         this.$toast.fail('获取失败');
-        //     }
-        // }).catch(err=> {this.$toast.clear();});
-    },
   },
 };
 </script>
@@ -124,4 +207,7 @@ export default {
     left: 0;
     z-index: 2;
 }
+.top{
+  height: 50px;
+}
 </style>

+ 41 - 5
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/statistic/index.vue

@@ -63,7 +63,11 @@
         <div class="staff" ref="tabless" :style="'width:'+(windowWidth - 430)+'px'">
             <!-- 人员工时工价表 -->
             <el-table v-if="ins == 0"  key="19" border :data="personWorkHoursWagesList" highlight-current-row v-loading="listLoading" :height="+tableHeight - 1" style="width: 100%;">
-                <el-table-column align="center" prop="departmentCascade" label="部门名称" min-width="150"></el-table-column>
+                <el-table-column align="center" prop="departmentCascade" label="部门名称" min-width="150">
+                  <template slot-scope="scope">
+                    {{scope.row.departmentCascade}}
+                  </template>
+                </el-table-column>
                 <el-table-column align="center" prop="name" label="人员" min-width="250"></el-table-column>
                 <el-table-column v-for="(item, index) in personWorkHoursWagesHead" :key="index" :label="item" align="center" min-width="250">
                     <template slot-scope="scope">
@@ -74,7 +78,11 @@
                         </div>
                     </template>
                 </el-table-column>
-                <el-table-column align="center" prop="totalResult" label="合计" min-width="250"></el-table-column>
+                <el-table-column align="center" prop="totalResult" label="合计" min-width="250">
+                   <template slot-scope="scope">
+                    {{scope.row.totalResult}}
+                  </template>
+                </el-table-column>
             </el-table>
 
             <!-- 计划实时进度表 -->
@@ -124,7 +132,7 @@
   </div>
   </div>
 
-  <el-dialog :title="'详情'" :visible.sync="reportDetailDialog" width="800px">
+  <el-dialog :title="'详情'" :visible.sync="reportDetailDialog" width="1480px">
           <div>
             日期:<el-select v-model="simpleDateChoose" placeholder="请选择" @change="getPersonWorkHoursWagesDetail()">
                 <el-option
@@ -136,10 +144,9 @@
                 </el-option>
               </el-select>
           </div>
-          <div>
+          <!-- <div>
             总计:<span>{{this.totalWorkingTime}}分钟 {{this.totalCost}}元</span>
           </div>
-          <!-- 循环盒子 -->
           <div v-for="(item,index) in personWorkHoursWagesDetail" :key="index" :label="item">
               <div>{{item.productName}}</div>
               <div>{{item.planStartDate}}-{{item.planEndDate}}</div>
@@ -166,6 +173,35 @@
                   </div>
                 </div>
               </div>
+          </div> -->
+          <div>
+            <el-table
+              :data="personWorkHoursWagesDetail"
+              style="width: 100%">
+              <el-table-column
+                prop="date"
+                label="计划(开始-结束日期)"
+                width="180">
+                <template slot-scope="scope">
+                  {{scope.row.planStartDate}}-{{scope.row.planEndDate}}
+                </template>
+              </el-table-column>
+              <el-table-column prop="productName" label="产品名称" width="180"></el-table-column>
+              <el-table-column prop="procedureName" label="工序名称" width="180"></el-table-column>
+              <el-table-column prop="progress" label="进度" width="180">
+                <template slot-scope="scope">
+                  {{scope.row.progress?scope.row.progress:0}}%
+                </template>
+              </el-table-column>
+              <el-table-column prop="cost" label="工钱" width="180"></el-table-column>
+              <el-table-column prop="checkType" label="质检方式" width="180"></el-table-column>
+              <el-table-column prop="checkerName" label="质检人" width="180"></el-table-column>
+              <el-table-column prop="working_time" label="工作时长" width="180">
+                <template slot-scope="scope">
+                  {{scope.row.working_time}}分钟
+                </template>
+              </el-table-column>
+            </el-table>
           </div>
   </el-dialog>