فهرست منبع

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

ggooalice 2 سال پیش
والد
کامیت
b454ac1448
17فایلهای تغییر یافته به همراه159 افزوده شده و 66 حذف شده
  1. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserController.java
  2. 15 6
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java
  3. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserService.java
  4. 1 9
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java
  5. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java
  6. 6 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  7. 17 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  8. 27 17
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java
  9. BIN
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/upload/费用报销导入模板.xlsx
  10. 3 3
      fhKeeper/formulahousekeeper/timesheet/src/views/Home.vue
  11. 15 5
      fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue
  12. 15 4
      fhKeeper/formulahousekeeper/timesheet/src/views/project/info.vue
  13. 16 6
      fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue
  14. 4 0
      fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue
  15. 4 0
      fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue
  16. 27 4
      fhKeeper/formulahousekeeper/timesheet/src/views/workflow/report.vue
  17. 4 0
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/msg/index.vue

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

@@ -83,8 +83,8 @@ public class UserController {
     }
 
     @RequestMapping("/getUserListByRole")
-    public HttpRespMsg getUserListByRole(){
-        return userService.getUserListByRole(request);
+    public HttpRespMsg getUserListByRole(String tableName){
+        return userService.getUserListByRole(request,tableName);
     }
 
     /**

+ 15 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -3405,6 +3405,10 @@ public class WeiXinCorpController {
                             JSONObject userJson = jsonArray.getJSONObject(m);
                             String curUserid = userJson.getString("userid");
                             String openUserid = userJson.getString("open_userid");
+                            int status = userJson.getIntValue("status");
+                            if(status!=1){
+                                continue;
+                            }
                             List<Integer> departments = (List<Integer>) userJson.get("department");
                             System.out.println("user info======:"+userJson.toString());
                             //不存在的人员, 进行插入
@@ -3415,10 +3419,10 @@ public class WeiXinCorpController {
                                     .setRoleName(role.getRolename())
                                     .setCompanyId(company.getId())
                                     .setName(userJson.getString("name"))
-                                    .setCorpwxUserid(openUserid)
+                                    .setCorpwxUserid(curUserid)
                                     .setCorpwxRealUserid(curUserid)
                                     .setColor(ColorUtil.randomColor())
-                                    .setJobNumber(curUserid.equals(openUserid)?null:curUserid)
+                                    .setJobNumber(curUserid)
                                     .setPassword(MD5Util.getPassword("000000"))
                                     .setCorpwxDeptid(departmentWx.getWxDeptid());
                             Integer max = Collections.max(departments);
@@ -3429,7 +3433,7 @@ public class WeiXinCorpController {
                                 user.setDepartmentId(dp.get().getDepartmentId());
                                 user.setDepartmentCascade(convertDepartmentIdToCascade(dp.get().getDepartmentId(),departmentList));
                             }
-                            boolean b = userList.stream().anyMatch(ul ->ul.getCorpwxUserid()!=null&&ul.getCorpwxUserid().equals(openUserid));
+                            boolean b = userList.stream().anyMatch(ul ->ul.getCorpwxUserid()!=null&&ul.getCorpwxUserid().equals(user.getCorpwxUserid()));
                             if(!b){
                                 userList.add(user);
                             }
@@ -3450,6 +3454,10 @@ public class WeiXinCorpController {
                             for (int i = 0; i < userInfo.size(); i++) {
                                 JSONObject object = userInfo.getJSONObject(i);
                                 String corpWxuserid = object.getString("userid");
+                                int status = object.getIntValue("status");
+                                if(status!=1){
+                                    continue;
+                                }
                                 String userInfoResp=wxCorpInfoService.getUserInfoWithApplication(accessToken,corpWxuserid);
                                 System.out.println("this is userinfo======="+userInfoResp);
                                 JSONObject userInfoOb = JSONObject.parseObject(userInfoResp);
@@ -3475,7 +3483,7 @@ public class WeiXinCorpController {
                                         }
                                     }
                                 }
-                                user.setCorpwxUserid(openUserid)
+                                user.setCorpwxUserid(corpWxuserid)
                                     .setName(userName)
                                     .setRoleName(role.getRolename())
                                     .setRoleId(role.getId())
@@ -3483,8 +3491,8 @@ public class WeiXinCorpController {
                                     .setCorpwxRealUserid(corpWxuserid)
                                     .setColor(ColorUtil.randomColor())
                                     .setPassword(MD5Util.getPassword("000000"))
-                                    .setJobNumber(corpWxuserid.equals(openUserid)?null:corpWxuserid);
-                                boolean b = userList.stream().anyMatch(ul -> ul.getCorpwxUserid().equals(openUserid));
+                                    .setJobNumber(corpWxuserid);
+                                boolean b = userList.stream().anyMatch(ul -> ul.getCorpwxUserid().equals(user.getCorpwxUserid()));
                                 if(!b){
                                     userList.add(user);
                                 }
@@ -3493,6 +3501,7 @@ public class WeiXinCorpController {
                             throw new Exception(json.toJSONString());
                         }
                     }
+                    System.out.println("resutlList========="+userList);
                     userService.saveBatch(userList);
                 }
             }

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

@@ -70,7 +70,7 @@ public interface UserService extends IService<User> {
 
     HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request,String keyword,String cursor);
 
-    HttpRespMsg getUserListByRole(HttpServletRequest request);
+    HttpRespMsg getUserListByRole(HttpServletRequest request,String tableName);
 
     HttpRespMsg loginAdminByThirdParty(String jobNumber, String token);
 

+ 1 - 9
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -1364,15 +1364,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
 
     @Override
     public List<Integer> getDeptIncludeSubDeptIds(Integer departmentId, List<Department> allDeptList) {
-        List<Integer> list = new ArrayList<>();
-        list.add(departmentId);
-        //搜到子部门进行添加
-        for (Department department : allDeptList) {
-            if (departmentId.equals(department.getSuperiorId())) {
-                list.addAll(getBranchDepartment(department.getDepartmentId(), allDeptList));
-            }
-        }
-        return list;
+        return getBranchDepartment(departmentId,allDeptList);
     }
 
 

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

@@ -298,7 +298,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                         .atZone(ZoneId.systemDefault()).toLocalDate();
                 expenseSheet.setCreateDate(localDate);
                 Optional<User> first;
-                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()!=1){
                     first = userList.stream().filter(us -> us.getName().equals(reimburserCell.getStringCellValue())).findFirst();
                 }else {
                     first = userList.stream().filter(us -> us.getName().equals(reimburserCell.getStringCellValue())||(us.getJobNumber()!=null&&us.getJobNumber().equals(reimburserCell.getStringCellValue()))).findFirst();
@@ -307,7 +307,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                     expenseSheet.setOwnerId(first.get().getId());
                     expenseSheet.setOwnerName(first.get().getName());
                 } else {
-                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()!=1){
                         throw new Exception("报销人[" +reimburserCell+"]不存在");
                     }else {
                         throw new Exception("报销人/工号[" +reimburserCell+"]不存在");

+ 6 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -286,10 +286,14 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             }
             if(!StringUtils.isEmpty(participation)){
                 List<Participation> participationList = participationMapper.selectList(new QueryWrapper<Participation>().eq("user_id", participation).select("project_id"));
+                List<Integer> collect;
                 if(participationList.size()>0){
-                    List<Integer> collect = participationList.stream().map(Participation::getProjectId).collect(Collectors.toList());
-                    queryWrapper.in("id",collect);
+                    collect = participationList.stream().map(Participation::getProjectId).collect(Collectors.toList());
+                }else {
+                    collect=new ArrayList<>();
+                    collect.add(-1);
                 }
+                queryWrapper.in("id",collect);
             }
             if (status != null && status != 0) {
                 queryWrapper.eq("status", status);

+ 17 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -518,7 +518,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             List<SubProject> subProjectList = integerList.size() > 0?subProjectMapper.selectList(new QueryWrapper<SubProject>().in("project_id",integerList)):new ArrayList<>();
             List<ProjectAuditor> auditorList = integerList.size() > 0?projectAuditorMapper.selectList(new QueryWrapper<ProjectAuditor>().in("project_id", integerList)): new ArrayList<>();
 
-            List<UserRecentTask> taskList = integerList.size() > 0?userRecentTaskMapper.selectList(new QueryWrapper<UserRecentTask>().in("project_id", integerList).orderByDesc("id")):new ArrayList<>();
+            ;
+
+//            List<UserRecentTask> taskList = integerList.size() > 0?userRecentTaskMapper.selectList(new QueryWrapper<UserRecentTask>().in("project_id", integerList).orderByDesc("id")):new ArrayList<>();
             List<Profession> professions = professionMapper.selectList(new QueryWrapper<Profession>().eq("company_id", companyId));
 
             List<ReportExtraDegree> degreeList = reportExtraDegreeMapper.selectList(new QueryWrapper<ReportExtraDegree>().eq("company_id", companyId));
@@ -527,7 +529,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             //获取当前项目的子项目列表,任务分组,任务列表,项目相关维度列表
             reports.forEach(r->{
                 r.setSubProjectList(subProjectList.stream().filter(s->s.getProjectId().equals(r.getProjectId())).collect(Collectors.toList()));
-                r.setTaskList(taskList.stream().filter(t->t.getProjectId().equals(r.getProjectId()) && t.getUserId().equals(r.getCreatorId())).collect(Collectors.toList()));
+                r.setTaskList(taskMapper.recentSimpleList(r.getProjectId(), userId));
                 //获取当前项目的工程专业进度
                 List<ReportProfessionProgress> progressList = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().eq("report_id", r.getId()));
                 //去掉当前项目上已经不存在的专业
@@ -2912,7 +2914,17 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 //管理员可以撤销任何状态的
                 cnt += reportMapper.update(report, new QueryWrapper<Report>().eq("id", reportId));
             }
-
+            Report oneReport = reportMapper.selectById(reportId);
+            if (oneReport.getTaskId() != null) {
+                Task task = taskMapper.selectById(oneReport.getTaskId());
+                if (task != null && task.getTaskStatus() == 1) {
+                    //撤销时要把任务重启
+                    Task upTask = new Task();
+                    upTask.setId(task.getId());
+                    upTask.setTaskStatus(0);
+                    taskMapper.updateById(upTask);
+                }
+            }
         }
         if (cnt == 0) {
             //msg.setError("只有待审核状态的报告才能撤回");
@@ -3524,14 +3536,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     String username = withCheckIn==null?row.getCell(1).getStringCellValue().trim():row.getCell(2).getStringCellValue().trim();
                     //检查人员是否存在
                     Optional<User> any;
-                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()!=1){
                         any = allUserList.stream().filter(u -> u.getName().equals(username)).findAny();
                     }else {
                         any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))).findAny();
                     }
                     if (!any.isPresent()) {
                         //msg.setError("人员["+username+"]不存在,请先在组织结构中添加或者通过钉钉同步导入");
-                        if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                        if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()!=1){
                             msg.setError(MessageUtils.message("staff.peopleNullAndAdd",username));
                         }else {
                             msg.setError(MessageUtils.message("staff.peopleNullAndAddPlus",username));

+ 27 - 17
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.constant.Constant;
 import com.management.platform.controller.WeiXinCorpController;
 import com.management.platform.entity.*;
+import com.management.platform.entity.vo.SysRichFunction;
 import com.management.platform.entity.vo.UserVO;
 import com.management.platform.mapper.*;
 import com.management.platform.service.*;
@@ -159,6 +160,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     private ThirdPartyInterfaceMapper thirdPartyInterfaceMapper;
     @Resource
     SysConfigMapper sysConfigMapper;
+    @Resource
+    private ReportFormMapper reportFormMapper;
 
     public static String provider_access_token = null;
     public static long providerTokenExpireTime = 0L;
@@ -2411,32 +2414,39 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     }
 
     @Override
-    public HttpRespMsg getUserListByRole(HttpServletRequest request) {
+    public HttpRespMsg getUserListByRole(HttpServletRequest request,String tableName) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
-        SysRole sysRole = sysRoleMapper.selectById(user.getRoleId());
+        ReportForm reportForm = reportFormMapper.selectOne(new QueryWrapper<ReportForm>().eq("report_form_name", tableName));
+        List<SysFunction> sysFunctionList = sysFunctionMapper.selectList(new QueryWrapper<SysFunction>().eq("report_form_id", reportForm.getId()));
+        String allName = sysFunctionList.stream().filter(sl -> sl.getName().contains("全公司")||sl.getName().contains("全部")||sl.getName().contains("工时成本预警表")||sl.getName().contains("日报待审核")).findFirst().get().getName();
+        String deptName = sysFunctionList.stream().filter(sl -> sl.getName().contains("负责部门")||sl.getName().contains("负责")||sl.getName().contains("工时成本预警表")||sl.getName().contains("日报待审核")).findFirst().get().getName();
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(),allName);
+        List<SysRichFunction> functionDeptList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), deptName);
         List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", user.getId()));
         List<DepartmentOtherManager> otherManagers = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", user.getId()));
         //获取全部子部门
         List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
-        List<Integer> collect = departmentList.stream().distinct().map(Department::getDepartmentId).collect(Collectors.toList());
-        List<Integer> collect1 = otherManagers.stream().distinct().map(DepartmentOtherManager::getDepartmentId).collect(Collectors.toList());
         List<Integer> deptIds=new ArrayList<>();
-        for (Integer departmentId : collect) {
-            List<Integer> ids = departmentService.getDeptIncludeSubDeptIds(departmentId, allDeptList);
-            deptIds.addAll(ids);
-        }
-        for (Integer departmentId : collect1) {
-            List<Integer> ids = departmentService.getDeptIncludeSubDeptIds(departmentId, allDeptList);
-            deptIds.addAll(ids);
-        }
-        if(deptIds!=null&&deptIds.size()>0){
-            List<User> userList = userMapper.selectList(new QueryWrapper<User>().in("department_id", deptIds));
-            if(sysRole.getRolename().equals("超级管理员")){
-                userList= userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
+        List<User> userList=new ArrayList<>();
+        //判断查看权限
+        if(functionAllList.size()==0){
+            deptIds=new ArrayList<>();
+            deptIds.add(-1);
+            if(functionDeptList.size()>0){
+                List<Integer> collect = departmentList.stream().distinct().map(dm -> dm.getDepartmentId()).collect(Collectors.toList());
+                List<Integer> otherCollect = otherManagers.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
+                collect.addAll(otherCollect);
+                for (Integer integer : collect) {
+                    List<Integer> branchDepartment = departmentService.getDeptIncludeSubDeptIds(integer, allDeptList);
+                    deptIds.addAll(branchDepartment);
+                }
             }
-            httpRespMsg.data=userList;
+            userList = userMapper.selectList(new QueryWrapper<User>().in("department_id", deptIds));
+        }else {
+            userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
         }
+        httpRespMsg.data=userList;
         return httpRespMsg;
     }
 

BIN
fhKeeper/formulahousekeeper/management-platform/src/main/resources/upload/费用报销导入模板.xlsx


+ 3 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/Home.vue

@@ -38,14 +38,14 @@
                     <el-dropdown-menu slot="dropdown">
                         <el-dropdown-item >
                             <div v-if="!isCorpWX">
-                                <div>{{$t('other.sweepWeChatYards')}}</div>
+                                <!-- <div>{{$t('other.sweepWeChatYards')}}</div> -->
+                                <div>扫码添加企业微信客服</div>
                                 <img
                                 style="width: 120px; height: 120px"
                                 src="../assets/image/code.jpg" />
                             </div>
                             <div v-if="isCorpWX">
-                                <!-- <div>{{ $t('ke-fu-wei-xin') }}</div> -->
-                                <div>请扫码添加企业微信客服</div>
+                                <div>{{ $t('ke-fu-wei-xin') }}</div>
                                 <img
                                 style="width: 120px; height: 120px"
                                 src="../assets/image/qwcode.png" />

+ 15 - 5
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -120,7 +120,7 @@
             <el-option v-for="(item, index) in selUserList" :key="index" :label="item.name" :value="item.id"></el-option>
           </el-select>
 
-          <selectCat :subject="selUserList" :subjectId="userId" :size="mini" @selectCal="selectCal" v-if="(ins == 6 || ins == 8 || ins == 9 || ins == 10 || ins == 11 || ins == 14) && user.userNameNeedTranslate == '1'"></selectCat>
+          <selectCat :subject="selUserList" :subjectId="userId" :clearable="true" :size="mini" @selectCal="selectCal" v-if="(ins == 6 || ins == 8 || ins == 9 || ins == 10 || ins == 11 || ins == 14) && user.userNameNeedTranslate == '1'"></selectCat>
           
 
           <!-- 待审核筛选切换 -->
@@ -761,7 +761,10 @@
                   <template slot-scope="scope">
                     <div>
                       <span v-if="user.userNameNeedTranslate == '1'">
-                        <ww-open-data type='departmentName' :openid='scope.row.deptName'></ww-open-data>
+                        <span v-for="item, index in scope.row.deptName" :key='index'>
+                          <ww-open-data type='departmentName' :openid='item'></ww-open-data>
+                          <span v-if="index < scope.row.deptName.length - 1">/</span>
+                        </span>
                       </span>
                       <span v-if="user.userNameNeedTranslate != '1'">
                         {{scope.row.deptName}}
@@ -1047,7 +1050,7 @@ export default {
       this.$t('ren-yuan-yue-du-gong-shi-biao'), this.$t('bumenchanyuqingkuang')],
 
       shuzArr: [this.$t('projectreport'),this.$t('projectTaskReport'),this.$t('projectcoststatement'),
-      this.$t('projectbalancesheet'),this.$t('customerprojectprofitstatement'),this.$t('projectphasetimesheet'),
+      this.$t('projectbalancesheet'),this.$t('customerprojectincomestatement'),this.$t('projectphasetimesheet'),
       this.$t('statisticsofovertimework'),this.$t('timecostearlywarningtable'),this.$t('personneltimeallocationtable'),
       this.$t('employeereporttimelinessrate'),this.$t('dailyreporttobereviewedstatistics'),this.$t('statisticsofpersonnelhours'),this.$t('taskgrouptimesheet'),this.$t('projectcostbaselinetable'),
       this.$t('ren-yuan-yue-du-gong-shi-biao'), this.$t('bumenchanyuqingkuang')],
@@ -1229,8 +1232,9 @@ export default {
 
 
     getUserList() {
+      console.log(this.shuzArr[this.ins])
       this.http.post('/user/getUserListByRole', {
-        tableName: this.shuzArr[this.ins]
+        tableName: this.shuzArr[this.ins] || '加班情况统计表'
       },
       res => {
           if (res.code == "ok") {
@@ -1775,6 +1779,12 @@ export default {
       res => {
       this.listLoading = false
         if(res.code == 'ok'){
+          if(this.user.userNameNeedTranslate == 1) {
+            for(var i in res.data.resultList) {
+              let arrDemant = res.data.resultList[i].deptName.split('/')
+              res.data.resultList[i].deptName = arrDemant
+            }
+          }
           this.tableList = res.data.resultList
           this.total = res.data.total
         }else {
@@ -1803,7 +1813,7 @@ export default {
         obj.userId = this.userId
       }
       console.log(this.departmentIdArray, '加班情况统计表')
-      if(this.departmentIdArray.length != 0){
+      if(this.departmentIdArray.length != 0 && this.departmentIdArray[0] != ''){
         let deptid = []
         if(this.user.userNameNeedTranslate != '1') {
           for(let i in this.departmentIdArray){

+ 15 - 4
fhKeeper/formulahousekeeper/timesheet/src/views/project/info.vue

@@ -483,7 +483,8 @@
         <!--修改工程专业界面-->
         <el-dialog :title="$t('engineering')" v-if="editProfessionDialog" :visible.sync="editProfessionDialog" 
         :close-on-click-modal="false" customClass="customWidth" width="1000px">
-            <el-table :data="projectProfessionList" size="small" max-height="400" :key="Math.random()">
+        <div class="gongcheng">
+            <el-table :data="projectProfessionList" size="small" height="500" :key="Math.random()">
                 <el-table-column prop="professionId" width="200">
                                    <template slot-scope="scope">
                                        <el-select v-model="scope.row.professionId" >
@@ -513,12 +514,13 @@
                                        </el-link>
                                    </template>
                                </el-table-column>
-                               <el-table-column prop="inchargerName" width="120" :label="$t('head')">
+                               <el-table-column prop="inchargerName" width="200" :label="$t('head')">
                                    <template slot-scope="scope">
-                                       <el-select v-model="scope.row.inchargerId" >
+                                       <el-select v-model="scope.row.inchargerId" v-if="user.userNameNeedTranslate != 1">
                                            <el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id">
                                            </el-option>
                                        </el-select>
+                                       <selectCat v-if="user.userNameNeedTranslate == 1" :size="'mini'" :subject="participator" :subjectId="scope.row.inchargerId" :other="scope.$index" :distinction="'2'" @selectCal="selectCal"></selectCat>
                                    </template>
                                </el-table-column>
                                <el-table-column  width="80">
@@ -534,17 +536,20 @@
                 <el-button @click.native="editProfessionDialog = false">{{ $t('btn.cancel') }}</el-button>
                 <el-button type="primary" @click="saveProjectProfessions" :loading="addLoading">{{ $t('btn.submit') }}</el-button>
             </div>
+        </div>
         </el-dialog>
 
         <!-- 项目专业人员的设置 -->
         <el-dialog :title="$t('setupprojectprofessionals')"  v-if="editPpMembDialog" :visible.sync="editPpMembDialog" :close-on-click-modal="false" customClass="customWidth" width="600px">
+            <div class="gongcheng">
             <el-table :data="curProfessionRow.membList" height="400">
                 <el-table-column prop="name" :label="$t('professionals')">
                     <template slot-scope="scope">
-                        <el-select v-model="scope.row.membId"  filterable :placeholder="$t('professionaladdsparticipant')" style="width:100%;" >
+                        <el-select v-if="user.userNameNeedTranslate != 1" v-model="scope.row.membId"  filterable :placeholder="$t('professionaladdsparticipant')" style="width:100%;" >
                             <el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id">
                             </el-option>
                         </el-select>
+                        <selectCat v-if="user.userNameNeedTranslate == 1" :size="'medium'" :subject="participator" :subjectId="scope.row.membId" :distinction="'3'" :other="scope.$index" @selectCal="selectCal"></selectCat>
                     </template>
                 </el-table-column>
                 <el-table-column prop="percentage" width="120" :label="$t('zhan-bi')">
@@ -565,6 +570,7 @@
                 <el-button  @click="editPpMembDialog = false" >{{ $t('btn.cancel') }}</el-button>
                 <el-button type="primary" @click="addPpMemb" >{{ $t('btn.determine') }}</el-button>
             </div>
+            </div>
         </el-dialog>
         <!-- 编辑项目关键节点 -->
         <el-dialog :title="$t('editkeyprojectnodes')" :visible.sync="keyNodeIsShow" width="960px" :before-close="handleClose">
@@ -1987,6 +1993,11 @@
             selectCal(obj) {
                 if(obj.distinction == '1' ) {
                     this.addForm.inchargerId = obj.id
+                } else if(obj.distinction == '2') {
+                    this.projectProfessionList[obj.other].inchargerId = obj.id
+                } else if(obj.distinction == '3') {
+                    let userList = obj.id
+                    this.curProfessionRow.membList[obj.other].membId = userList
                 }
             }
         },

+ 16 - 6
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -668,8 +668,8 @@
                             </div>
                         </el-tab-pane>
                         <el-tab-pane :label="$t('engineering')" name="engineeringProfession" v-if="user.company.packageEngineering == 1">
-                        <div style="padding-top:10px;">
-                            <el-table :data="projectProfessionList" size="small" :key="Math.random()">
+                        <div style="padding-top:10px;" class="gongcheng">
+                            <el-table :data="projectProfessionList" size="small" :key="Math.random()" :height="'400px'">
                                 <el-table-column prop="professionId" width="200">
                                     <template slot-scope="scope">
                                         <el-select v-model="scope.row.professionId" >
@@ -695,13 +695,13 @@
                                         <el-link @click="showEditPpMembs(scope.row)">{{(scope.row.membList == null || scope.row.membList.length == 0)?$t('professionalparticipants'):$t('setup')}}</el-link>
                                     </template>
                                 </el-table-column>
-                                <el-table-column prop="inchargerName" width="120" :label="$t('head')">
+                                <el-table-column prop="inchargerName" width="200" :label="$t('head')">
                                     <template slot-scope="scope">
                                         <el-select v-model="scope.row.inchargerId" v-if="user.userNameNeedTranslate != 1">
                                             <el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id"></el-option>
                                         </el-select>
 
-                                        <!-- <selectCat :size="'mini'" :subject="participator" :subjectId="scope.row.inchargerId" :index="scope.index" :distinction="'4'" style="position: relative;z-index:99999999999 !important;"></selectCat> -->
+                                        <selectCat v-if="user.userNameNeedTranslate == 1" :size="'mini'" :subject="participator" :subjectId="scope.row.inchargerId" :other="scope.$index" :distinction="'4'" @selectCal="selectCal"></selectCat>
 
                                     </template>
                                 </el-table-column>
@@ -1076,13 +1076,15 @@
 
         <!-- 项目专业人员的设置 -->
         <el-dialog :title="$t('setupprojectprofessionals')"  v-if="editPpMembDialog" :visible.sync="editPpMembDialog" :close-on-click-modal="false" customClass="customWidth" width="600px">
+            <div class="gongcheng">
             <el-table :data="curProfessionRow.membList" height="400">
                 <el-table-column prop="name" :label="$t('professionals')">
                     <template slot-scope="scope">
-                        <el-select v-model="scope.row.membId"  filterable :placeholder="$t('professionaladdsparticipant')" style="width:100%;" >
+                        <el-select v-model="scope.row.membId" v-if="user.userNameNeedTranslate != 1"  filterable :placeholder="$t('professionaladdsparticipant')" style="width:100%;" >
                             <el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id">
                             </el-option>
                         </el-select>
+                        <selectCat v-if="user.userNameNeedTranslate == 1" :size="'medium'" :subject="participator" :subjectId="scope.row.membId" :distinction="'11'" :other="scope.$index" @selectCal="selectCal"></selectCat>
                     </template>
                 </el-table-column>
                 <el-table-column prop="percentage" width="120" :label="$t('zhan-bi')">
@@ -1103,6 +1105,7 @@
                 <el-button  @click="editPpMembDialog = false" >{{ $t('btn.cancel') }}</el-button>
                 <el-button type="primary" @click="addPpMemb" >{{ $t('btn.determine') }}</el-button>
             </div>
+            </div>
         </el-dialog>
         <!-- 批量修改自定义维度 -->
         <el-dialog :title="checkoradd ? $t('changes') : $t('pi-liang-tian-jia')" :visible.sync="checkedWuduDialog" v-if="checkedWuduDialog" width="40%">
@@ -4142,7 +4145,7 @@ a {
                 } else if(obj.distinction == '3') {
                     this.addForm.inchargerId = obj.id
                 } else if(obj.distinction =='4') {
-                    this.projectProfessionList[obj.index].inchargerId == obj.id
+                    this.projectProfessionList[obj.other].inchargerId = obj.id
                 } else if(obj.distinction =='5') {
                     this.paramInchargerId = obj.id
                 } else if(obj.distinction == '10') {
@@ -4152,6 +4155,10 @@ a {
                         arr.push(userList[i].id)
                     }
                     this.addForm.auditUserIds = arr
+                } else if(obj.distinction == '11') {
+                    let userList = obj.id
+                    console.log(obj)
+                    this.curProfessionRow.membList[obj.other].membId = userList
                 }
             }
         },
@@ -4281,4 +4288,7 @@ a {
 .wpgCssClass .el-form-item__label{
     font-weight: 600;
 }
+.gongcheng .el-table .cell{
+    overflow: inherit !important;
+}
 </style>

+ 4 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue

@@ -1959,6 +1959,10 @@
                             this.checkLists = [],
                             this.text2 = '',
                             this.radio = 0
+                            let obj = {
+                                id: this.taskIid
+                            }
+                            this.gain(obj)
                         } else {
                             this.$message({
                                 message: res.msg,

+ 4 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue

@@ -1432,6 +1432,10 @@ import { error } from 'dingtalk-jsapi';
                             this.checkLists = [],
                             this.text2 = '',
                             this.radio = 0
+                            let obj = {
+                                id: this.taskIid
+                            }
+                            this.gain(obj)
                         } else {
                             this.$message({
                                 message: res.msg,

+ 27 - 4
fhKeeper/formulahousekeeper/timesheet/src/views/workflow/report.vue

@@ -8,10 +8,20 @@
         </el-col>
         <p style="padding-top:80px;margin: 0 0 10px 10px;color:#666;">{{$t('timeApprovalProcess')}}</p>
         <div>
-        <el-col :span="6" >
+        <el-col :span="6" > 
             <el-scrollbar style="height:100%;border:1px solid #dddddd;margin-left:15px;" >
             <div class="tree" :style="'height:'+ (tableHeight-120) + 'px'">
-                <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick" accordion></el-tree>
+                <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick" accordion>
+                    <span class="custom-tree-node" slot-scope="{ node, data }">
+                        <!-- <span>{{ node.label }}</span> -->
+                        <span v-if="user.userNameNeedTranslate == '1'">
+                          <ww-open-data type='departmentName' :openid='node.label'></ww-open-data>
+                        </span>
+                        <span v-else>
+                          {{ node.label }}
+                        </span>
+                    </span>
+                </el-tree>
             </div>
             </el-scrollbar>
         </el-col>
@@ -57,7 +67,8 @@
               <el-form label-width="80px">
               <el-form-item :label="$t('other.selectdepartment')" >
                   <el-cascader ref="deptCascader"  v-model="curDeptId" :placeholder="$t('qing-xuan-ze-bu-men')" style="width: 100%" @change="chooseDept"
-                    :options="option" :props="{ checkStrictly: true,expandTrigger: 'hover' }" :show-all-levels="false" clearable></el-cascader>
+                    :options="option" :props="{ checkStrictly: true,expandTrigger: 'hover' }" :show-all-levels="false" clearable v-show="user.userNameNeedTranslate != 1"></el-cascader>
+                <vueCascader :size="'small'" :subjectId="curDeptId" :widthStr="'200'" :clearable="true" :subject="option" :radios="true" :distinction="'3'" @vueCasader="vueCasader" v-if="user.userNameNeedTranslate == 1"></vueCascader>
               </el-form-item>
               </el-form>
             <div slot="footer" class="dialog-footer">
@@ -83,7 +94,8 @@
 </template>
 <script>
     import util from "../../common/js/util";
-
+    // 引入自定义级联组件
+    import vueCascader from "@/components/cascader.vue"
     export default {
         data() {
             return {
@@ -114,6 +126,9 @@
                 sysAuditUSer:{}
             };
         },
+        components: {
+            vueCascader
+        },
         methods: {
             setAuditUser() {
                 this.http.post('/audit-workflow-time-setting/setAuditSysUser',{userId: this.auditManagerId},
@@ -327,6 +342,14 @@
                     );
             },
 
+            vueCasader(obj) {
+                if(obj.distinction == '3') {
+                    let arr = []
+                    arr.push(obj.id)
+                    this.curDeptId = arr
+                }
+            }
+
         },
         created() {
             let height = window.innerHeight;

+ 4 - 0
fhKeeper/formulahousekeeper/timesheet_h5/src/views/msg/index.vue

@@ -80,6 +80,10 @@
                     .then(res => {
                         if(res.code == "ok") {
                             this.getMessage()
+                            if (item.type == 1 || (item.msg != null && item.msg.indexOf('任务') > 0)) {
+                                //跳到待办任务上
+                                this.$router.push('/task'); 
+                            } 
                         } 
                     }).catch(err=> {this.$toast.clear();});
                 }