浏览代码

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper into master

seyason 3 年之前
父节点
当前提交
6f2ac198d2
共有 17 个文件被更改,包括 302 次插入31 次删除
  1. 12 0
      fhKeeper/formulahousekeeper/inva_4_tivo/css/index.css
  2. 二进制
      fhKeeper/formulahousekeeper/inva_4_tivo/image/bannar1.gif
  3. 二进制
      fhKeeper/formulahousekeeper/inva_4_tivo/image/bannar1.jpg
  4. 二进制
      fhKeeper/formulahousekeeper/inva_4_tivo/image/gongshi.jpg
  5. 6 2
      fhKeeper/formulahousekeeper/inva_4_tivo/index.html
  6. 16 2
      fhKeeper/formulahousekeeper/inva_4_tivo/js/index.js
  7. 8 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  8. 7 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java
  9. 8 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java
  10. 4 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java
  11. 5 7
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java
  12. 62 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  13. 72 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml
  14. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml
  15. 97 16
      fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue
  16. 1 0
      fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue
  17. 2 2
      fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

+ 12 - 0
fhKeeper/formulahousekeeper/inva_4_tivo/css/index.css

@@ -71,6 +71,7 @@
 .product {
     width: 100%;
     position: fixed;
+    z-index: 10;
     top: 6.25rem;
     left: 0;
     background: #fff;
@@ -767,3 +768,14 @@ body {
     width: 100%;
 }
 
+.mengban {
+    width: 100%;
+    height: 200px;
+    background: #000;
+    opacity: .4;
+    position: absolute;
+    top: 148px;
+    left: 0;
+    z-index: 1;
+}
+

二进制
fhKeeper/formulahousekeeper/inva_4_tivo/image/bannar1.gif


二进制
fhKeeper/formulahousekeeper/inva_4_tivo/image/bannar1.jpg


二进制
fhKeeper/formulahousekeeper/inva_4_tivo/image/gongshi.jpg


+ 6 - 2
fhKeeper/formulahousekeeper/inva_4_tivo/index.html

@@ -86,7 +86,8 @@
     
     <!-- 轮播图 -->
     <div class="bannar">
-        <img src="./image/bannar1.jpg" style="width: 100%;" alt="">
+        <!-- <img src="./image/bannar1.jpg" style="width: 100%;" alt=""> -->
+        <img src="./image/bannar1.gif" style="width: 100%;" alt="">
     </div>
 
     <!-- 系统管理 -->
@@ -96,7 +97,7 @@
             <div class="connont">
                 <div class="manContent">
                     <img id="jiesaoImg" src="./image/gsgj.png" alt="" style="padding-top: 300px;">
-                    <p id="jiesaoP" style="opacity: 0;">智能系统管理  你的<span>工时管家</span></p>
+                    <p id="jiesaoP" style="opacity: 0;">化繁为简  只需一个<span>工时管家</span></p>
                 </div>
             </div>
         </div>
@@ -284,6 +285,7 @@
             <h2>来自客户的认可</h2>
             <div class="conImg">
                 <div class="conImgCon">
+                    <div class="mengban"></div>
                     <img src="./image/kehu1.jpg" alt="">
                     <div class="conImgConImg">
                         <img src="./image/ions/chengdu.png" alt="">
@@ -301,6 +303,7 @@
                     </div>
                 </div>
                 <div class="conImgCon">
+                    <div class="mengban"></div>
                     <img src="./image/kehu2.jpg" alt="">
                     <div class="conImgConImg">
                         <img src="./image/ions/xinchun.png" alt="">
@@ -317,6 +320,7 @@
                     </div>
                 </div>
                 <div class="conImgCon">
+                    <div class="mengban"></div>
                     <img src="./image/kehu3.jpg" alt="">
                     <div class="conImgConImg">
                         <img src="./image/ions/tanggu.png" alt="">

+ 16 - 2
fhKeeper/formulahousekeeper/inva_4_tivo/js/index.js

@@ -1,6 +1,19 @@
 // 产品鼠标移入移出
-$('#productHov').hover(function () {$("#product").show()},function () {$("#product").hide()})
-$('#product').hover(function () {$("#product").show()},function () {$("#product").hide()})
+let fls = true
+$('#productHov').hover(function () {$("#product").show()},function () {
+    setTimeout(function() {
+        if(fls) {
+            $("#product").hide()
+        }
+    }, 200)
+})
+$('#product').hover(function () {
+    fls = false
+    $("#product").show()
+},function () {
+    fls = true
+    $("#product").hide()
+})
 
 // 导航下划线
 $('.aus li').hover(function () {
@@ -9,6 +22,7 @@ $('.aus li').hover(function () {
 },function () {
     let i = $(this).index()
     $(".aus li").eq(i).removeClass('tils')
+
 })
 
 $('.auss li').hover(function () {

+ 8 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -496,5 +496,13 @@ public class ProjectController {
     public HttpRespMsg exportReportTimelinessRate(HttpServletRequest request,String startDate,String endDate){
         return projectService.exportReportTimelinessRate(request,startDate,endDate);
     }
+    @RequestMapping("/getWaitingReviewList")
+    public HttpRespMsg getWaitingReviewList(HttpServletRequest request,Integer stateKey,String userId,Integer departmentId,Integer projectId,Integer pageIndex,Integer pageSize,String startDate,String endDate){
+        return projectService.getWaitingReviewList(request,stateKey,userId,departmentId,projectId,pageIndex,pageSize,startDate,endDate);
+    }
+    @RequestMapping("/exportWaitingReviewList")
+    public HttpRespMsg exportWaitingReviewList(HttpServletRequest request,Integer stateKey,String userId,Integer departmentId,Integer projectId,String startDate,String endDate){
+        return projectService.exportWaitingReviewList(request,stateKey,userId,departmentId,projectId,startDate,endDate);
+    }
 }
 

+ 7 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -17,7 +17,7 @@ import java.util.List;
  * </p>
  *
  * @author Seyason
- * @since 2022-06-23
+ * @since 2022-06-24
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -254,6 +254,12 @@ public class TimeType extends Model<TimeType> {
     @TableField("work_content_state")
     private Integer workContentState;
 
+    /**
+     * 0-不可提前填报 1-可提前填报
+     */
+    @TableField("fill_ahead")
+    private Integer fillAhead;
+
     @TableField(exist = false)
     private List<User> userList;
 

+ 8 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java

@@ -96,4 +96,12 @@ public interface ProjectMapper extends BaseMapper<Project> {
     List<Map<String, Object>> getUserWorkingTimeList(String userId, Integer companyId, String startDate, String endDate, Integer projectId, Integer start, Integer size);
 
     long findCountWithUser(String userId, Integer companyId, String startDate, String endDate, Integer projectId, Integer start,Integer size);
+
+    List<Map<String, Object>> getWaitingReviewListByDepartment(Integer companyId, String userId, Integer departmentId,Integer start,Integer size,String startDate,String endDate);
+
+    List<Map<String, Object>> getWaitingReviewListByProject(Integer companyId, String userId, Integer projectId,Integer start,Integer size,String startDate,String endDate);
+
+    long findCountWithDepartment(Integer companyId, String userId, Integer departmentId, Integer start, Integer size,String startDate,String endDate);
+
+    long findCountWithProject(Integer companyId, String userId, Integer projectId, Integer start, Integer size,String startDate,String endDate);
 }

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -139,4 +139,8 @@ public interface ProjectService extends IService<Project> {
     HttpRespMsg getUserReportTimelinessRate(HttpServletRequest request, String startDate, String endDate, Integer departmentId, String userId,Integer pageIndex,Integer pageSize);
 
     HttpRespMsg exportReportTimelinessRate(HttpServletRequest request, String startDate, String endDate);
+
+    HttpRespMsg getWaitingReviewList(HttpServletRequest request, Integer stateKey, String userId, Integer departmentId,Integer projectId,Integer pageIndex,Integer pageSize,String startDate,String endDate);
+
+    HttpRespMsg exportWaitingReviewList(HttpServletRequest request, Integer stateKey, String userId, Integer departmentId, Integer projectId,String startDate,String endDate);
 }

+ 5 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java

@@ -332,10 +332,6 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                     if(codeCell==null){
                         continue;
                     }
-                    if(happenDateCell.toString().trim().equals("")||happenDateCell==null){
-                        msg.setError("费用日期不能为空");
-                        return msg;
-                    }
                     ExpenseItem expenseItem = new ExpenseItem();
                     System.out.println(codeCell.getStringCellValue());
                     Optional<Project> project = projectList.stream().filter(pro ->(StringUtils.isEmpty(pro.getProjectCode())?"":pro.getProjectCode()).equals(codeCell.getStringCellValue())
@@ -346,9 +342,11 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                         throw new Exception("项目编号/项目名称为[" + codeCell.getStringCellValue() + "]的项目不存在");
                     }
                     expenseItem.setExpenseId(expenseSheet.getId());
-                    LocalDate happenDate = Instant.ofEpochMilli(happenDateCell.getDateCellValue().getTime())
-                            .atZone(ZoneId.systemDefault()).toLocalDate();
-                    expenseItem.setHappenDate(String.valueOf(happenDate));
+                    if(!happenDateCell.toString().trim().equals("")&&happenDateCell!=null){
+                        LocalDate happenDate = Instant.ofEpochMilli(happenDateCell.getDateCellValue().getTime())
+                                .atZone(ZoneId.systemDefault()).toLocalDate();
+                        expenseItem.setHappenDate(String.valueOf(happenDate));
+                    }
                     if(invoiceTypeCell!=null){
                         switch (invoiceTypeCell.getStringCellValue()) {
                             case "增值税专用发票":

+ 62 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -3191,6 +3191,68 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         return httpRespMsg;
     }
 
+    @Override
+    public HttpRespMsg getWaitingReviewList(HttpServletRequest request, Integer stateKey, String userId, Integer departmentId,Integer projectId,Integer pageIndex,Integer pageSize,String startDate,String endDate) {
+        HttpRespMsg msg=new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("token"));
+        List<Map<String,Object>> list;
+        Integer size;
+        Integer start;
+        if(pageIndex!=null&&pageSize!=null){
+            size=pageSize;
+            start=(pageIndex-1)*size;
+        }else {
+            size=null;
+            start=null;
+        }
+        long total;
+        if(stateKey==0){
+            list=projectMapper.getWaitingReviewListByDepartment(user.getCompanyId(),userId,departmentId,start,size,startDate,endDate);
+            total=projectMapper.findCountWithDepartment(user.getCompanyId(),userId,departmentId,null,null,startDate,endDate);
+        }else {
+            list=projectMapper.getWaitingReviewListByProject(user.getCompanyId(),userId,projectId,start,size,startDate,endDate);
+            total=projectMapper.findCountWithProject(user.getCompanyId(),userId,projectId,null,null,startDate,endDate);
+        }
+        HashMap map=new HashMap();
+        map.put("total",total);
+        map.put("result",list);
+        msg.data=map;
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg exportWaitingReviewList(HttpServletRequest request, Integer stateKey, String userId, Integer departmentId, Integer projectId,String startDate,String endDate) {
+        HttpRespMsg msg = getWaitingReviewList(request, stateKey, userId, departmentId, projectId, null, null,startDate,endDate);
+        HashMap resultmap= (HashMap) msg.data;
+        List<Map<String,Object>> list= (List<Map<String, Object>>) resultmap.get("result");
+        List<List<String>> dataList=new ArrayList<>();
+        String[] s;
+        String fileName;
+        if(stateKey==0){
+            s= new String[]{"人员", "部门", "待审核数量"};
+            fileName = "人员部门待审核统计_"+System.currentTimeMillis();
+        }else {
+            s= new String[]{"人员", "项目", "待审核数量"};
+            fileName = "人员项目待审核统计_"+System.currentTimeMillis();
+        }
+        dataList.add(Arrays.asList(s));
+        for (Map<String, Object> map : list) {
+            List<String> item=new ArrayList<>();
+            item.add(String.valueOf(map.get("userName")));
+            if(stateKey==0){
+                item.add(String.valueOf(map.get("departmentName")));
+            }else {
+                item.add(String.valueOf(map.get("projectName")));
+            }
+            item.add(String.valueOf(map.get("num")));
+            dataList.add(item);
+        }
+        //生成excel文件导出
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
+        msg.data = resp;
+        return msg;
+    }
+
 
     private List<Department> getSubDepts(Department dp, List<Department> list) {
         List<Department> collect = list.stream().filter(l -> dp.getDepartmentId().equals(l.getSuperiorId())).collect(Collectors.toList());

+ 72 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -639,5 +639,77 @@
         </if>
     </select>
 
+    <select id="getWaitingReviewListByDepartment" resultType="java.util.Map">
+        select us.name as userName,dp.department_name as departmentName,COUNT((rp.state=0 or null) and ( rp.is_dept_audit =1 or null)) as num
+        from user us
+        left join department dp on us.manage_dept_id =dp.department_id
+        left join report rp on rp.audit_deptid=dp.department_id
+        where us.company_id=#{companyId} and  us.manage_dept_id !=0 and rp.create_date between #{startDate} and #{endDate} and us.is_active=1
+        <if test="departmentId!=null">
+            and dp.department_id=#{departmentId}
+        </if>
+        <if test="userId!=null">
+            and us.id=#{userId}
+        </if>
+        group by dp.department_id,us.id
+        <if test="start!=null and size!=null">
+            limit #{start},#{size}
+        </if>
+    </select>
+
+    <select id="getWaitingReviewListByProject" resultType="java.util.Map">
+        select us.name as userName,project.project_name as projectName,COUNT((rp.state=0 or null) and ( rp.is_dept_audit =0 or null)) as num
+        from user us
+        left join report rp on rp.project_auditor_id=us.id
+        left join project on project.id=rp.project_id
+        where us.company_id=#{companyId} and rp.project_id is not null and rp.create_date between #{startDate} and #{endDate}  and us.is_active=1
+        <if test="projectId!=null">
+            and project.id=#{projectId}
+        </if>
+        <if test="userId!=null">
+            and us.id=#{userId}
+        </if>
+        group by project.id,us.id
+        <if test="start!=null and size!=null">
+            limit #{start},#{size}
+        </if>
+    </select>
+
+    <select id="findCountWithDepartment" resultType="java.lang.Long">
+        select  count(1)
+        from (select us.name as userName,dp.department_name as departmentName,COUNT((rp.state=0 or null) and ( rp.is_dept_audit =1 or null)) as num
+        from user us
+        left join department dp on us.manage_dept_id =dp.department_id
+        left join report rp on rp.audit_deptid=dp.department_id
+        where us.company_id=#{companyId} and  us.manage_dept_id !=0 and rp.create_date between #{startDate} and #{endDate}  and us.is_active=1
+        <if test="departmentId!=null">
+            and dp.department_id=#{departmentId}
+        </if>
+        <if test="userId!=null">
+            and us.id=#{userId}
+        </if>
+        group by dp.department_id,us.id
+        <if test="start!=null and size!=null">
+            limit #{start},#{size}
+        </if>) total
+    </select>
 
+    <select id="findCountWithProject" resultType="java.lang.Long">
+        select  count(1)
+        from (select us.name as userName,project.project_name as projectName,COUNT((rp.state=0 or null) and ( rp.is_dept_audit =0 or null)) as num
+        from user us
+        left join report rp on rp.project_auditor_id=us.id
+        left join project on project.id=rp.project_id
+        where us.company_id=#{companyId} and rp.project_id is not null and rp.create_date between #{startDate} and #{endDate}  and us.is_active=1
+        <if test="projectId!=null">
+            and project.id=#{projectId}
+        </if>
+        <if test="userId!=null">
+            and us.id=#{userId}
+        </if>
+        group by project.id,us.id
+        <if test="start!=null and size!=null">
+            limit #{start},#{size}
+        </if>) total
+    </select>
 </mapper>

文件差异内容过多而无法显示
+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml


+ 97 - 16
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -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-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-menu>
         </el-col>
@@ -59,13 +60,18 @@
           </el-select>
         </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>
-            <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>
-          
+
+        <!-- 按部门/项目筛选 -->
+        <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">
             <span style="float: left;color: #8492a6;">{{ item.projectCode }}</span>
             <span style="float: right;font-size: 13px;margin-left: 20px">{{ item.projectName }}</span>
@@ -73,13 +79,13 @@
         </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
             @change="selcts(9)" size="small" style="margin-left:10px"
           ></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-select>
       </div>
@@ -423,12 +429,19 @@
 
             </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="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>
 
+            <!-- 日报待审核统计 -->
+            <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: ["项目报表","项目任务报表","项目成本报表",
       "项目收支平衡表(利润表)","客户项目利润报表","项目阶段工时表",
       "加班情况统计表","工时成本预警表","人员工时分配表",
-      "员工填报及时率报表"],
+      "员工填报及时率统计","日报待审核统计"],
       ins: 0,
       user: JSON.parse(sessionStorage.user),
       overTimeList: [], // 项目加班情况统计列表
@@ -633,10 +646,12 @@ export default {
       cusProListOvertime: [],
 
       userWorkHoursList: [],
-      timelyCostList: [],
+      reportTimelyList: [],
+      auditRateList: [],
       departmentList: [],
       departmentIdArray: [],
-      selUserList: []
+      selUserList: [],
+      departmentOrProject: 0
 
     };
   },
@@ -873,7 +888,9 @@ export default {
                 } else if (this.ins == 8) {
                     this.getWorkHoursList()
                 } else if (this.ins == 9) {
-                    this.getTimelyCostList()
+                    this.getReportTimelyList()
+                } else if (this.ins == 10) {
+                    this.getAuditRateList()
                 }
             },
       exportExcel() {
@@ -917,6 +934,21 @@ export default {
           url += "/exportReportTimelinessRate"
           sl.startDate = this.rangeDatas[0]
           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,
             res => {
@@ -959,9 +991,11 @@ export default {
       this.overTimeList = []
       this.baseCostList = []
       this.userWorkHoursList = []
-      this.timelyCostList = []
-      this.departmentIdArray = [],
+      this.reportTimelyList = []
+      this.auditRateList = []
+      this.departmentIdArray = []
       this.userId = null
+      this.selUserList = this.userList
       this.getList();
     },
     getCustomerProjectInAndOut() {
@@ -1207,7 +1241,7 @@ export default {
         })
       })
     },
-    getTimelyCostList(){
+    getReportTimelyList(){
       let parameter = {
         startDate: this.rangeDatas[0],
         endDate: this.rangeDatas[1],
@@ -1225,7 +1259,45 @@ export default {
         res => {
           this.listLoading = false
           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
           }else {
             this.$message({
@@ -1396,7 +1468,10 @@ export default {
         this.getWorkHoursList()
       }
       if(this.ins == 9){
-        this.getTimelyCostList()
+        this.getReportTimelyList()
+      }
+      if(this.ins == 10){
+        this.getAuditRateList()
       }
     },
     // 日期
@@ -1420,6 +1495,12 @@ export default {
           this.selUserList = this.userList
         }
       }
+      if(e == 10){
+        this.proJuctId = ''
+        this.departmentIdArray = []
+        this.selUserList = this.userList
+        this.userId = ''
+      }
       // console.log(this.customerId);
       this.getList()
     },

+ 1 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -2400,6 +2400,7 @@ a {
                                 type: "success"
                             });
                             this.getList();
+                            this.addFormVisible = false
                         } else if (res.code == 'reconfirm') {
                             this.deleteAlertMsg = res.msg;
                             this.forceDeletePro(item.id);

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -496,14 +496,14 @@
                         </el-form-item>
                         <!-- 相关维度 -->
                         <el-form-item :label="yonghuUser.customDegreeName" v-if="domain.projectId && yonghuUser.customDegreeActive == 1" :rules="user.timeType.customDegreeStatus == 1 && domain.wuduList.length != 0 ? { required: true, message: '请选择' + yonghuUser.customDegreeName, trigger: ['change','blur'] } : null" :prop="'domains.' + index + '.degreeId'">
-                            <el-select v-model="domain.degreeId" clearable placeholder="请选择">
+                            <el-select v-model="domain.degreeId" :disabled="!canEdit" clearable placeholder="请选择">
                                 <el-option v-for="item in domain.wuduList" :key="item.value" :label="item.name" :value="item.id">
                                 </el-option>
                             </el-select>
                         </el-form-item>
                         <!-- 相关数值 -->
                         <el-form-item :label="yonghuUser.customDataName" v-if="domain.projectId && yonghuUser.customDataActive == 1" :prop="'domains.' + index + '.customData'" :rules="user.timeType.customDataStatus == 1 ? { type: 'number', required: true, message: '请填写' + yonghuUser.customDataName, trigger: ['change','blur'] } : null">
-                            <el-input-number :id="'numberData_'+index" v-model="domain.customData" style="width:200px;" @keyup.native="restrictNumber('numberData_'+index)"></el-input-number>
+                            <el-input-number :id="'numberData_'+index" :disabled="!canEdit" v-model="domain.customData" style="width:200px;" @keyup.native="restrictNumber('numberData_'+index)"></el-input-number>
                         </el-form-item>
                         <!-- 自定义文本 -->
                         <el-form-item :label="yonghuUser.customTextName" v-if="yonghuUser.customTextActive == 1" :prop="'domains.' + index + '.customText'" :rules="user.timeType.customTextStatus == 1 ? { required: true, message: '请填写' + yonghuUser.customTextName, trigger: ['change','blur'] } : null">