Browse Source

普通版本中增加项目状态的撤销和完成操作,已撤销和已完成的不能填报日报

seyason 3 years ago
parent
commit
b29fd31d3a

+ 48 - 20
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -188,25 +188,45 @@ public class ReportController {
         //检查项目是否截止
         List<Integer> integers = Arrays.asList(projectId);
         DateTimeFormatter localDtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", integers).isNotNull("plan_end_date"));
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", integers));
         for (int i=0;i<projectId.length; i++) {
             int pid = projectId[i];
             Optional<Project> findP = projectList.stream().filter(p->p.getId().equals(pid)).findFirst();
             if (findP.isPresent()) {
                 Project curP = findP.get();
                 if (!createDate[i].contains("@")) {
-                    if (curP.getPlanEndDate().isBefore(LocalDate.parse(createDate[i], localDtf))) {
+                    if (curP.getStatus() == 2) {
                         HttpRespMsg msg = new HttpRespMsg();
-                        msg.setError("提交失败,项目["+curP.getProjectName()+"]截止于"+localDtf.format(curP.getPlanEndDate())+",请修改。");
+                        msg.setError("项目["+curP.getProjectName()+"]已完成。");
+                        return msg;
+                    }
+                    if (curP.getStatus() == 3) {
+                        HttpRespMsg msg = new HttpRespMsg();
+                        msg.setError("项目["+curP.getProjectName()+"]已撤销。");
+                        return msg;
+                    }
+                    if (curP.getPlanEndDate() != null && curP.getPlanEndDate().isBefore(LocalDate.parse(createDate[i], localDtf))) {
+                        HttpRespMsg msg = new HttpRespMsg();
+                        msg.setError("项目["+curP.getProjectName()+"]截止于"+localDtf.format(curP.getPlanEndDate())+",请修改。");
                         return msg;
                     }
                 } else {
                     //批量填报
                     String[] dateArr = createDate[i].split("@");
                     for (String curDate : dateArr) {
-                        if (curP.getPlanEndDate().isBefore(LocalDate.parse(curDate, localDtf))) {
+                        if (curP.getStatus() == 2) {
+                            HttpRespMsg msg = new HttpRespMsg();
+                            msg.setError("项目["+curP.getProjectName()+"]已完成。");
+                            return msg;
+                        }
+                        if (curP.getStatus() == 3) {
                             HttpRespMsg msg = new HttpRespMsg();
-                            msg.setError("提交失败,项目["+curP.getProjectName()+"]截止于"+localDtf.format(curP.getPlanEndDate())+",请修改。");
+                            msg.setError("项目["+curP.getProjectName()+"]已撤销。");
+                            return msg;
+                        }
+                        if (curP.getPlanEndDate() != null && curP.getPlanEndDate().isBefore(LocalDate.parse(curDate, localDtf))) {
+                            HttpRespMsg msg = new HttpRespMsg();
+                            msg.setError("项目["+curP.getProjectName()+"]截止于"+localDtf.format(curP.getPlanEndDate())+",请修改。");
                             return msg;
                         }
                     }
@@ -464,21 +484,21 @@ public class ReportController {
                     }
                 } else {
                     if (targetUidList == null) {
-                        Report report = new Report()
-                                .setId(id[i] == -1 ? null : id[i])
-                                .setProjectId(projectId[i])
-                                .setSubProjectId(subProjectId[i])
-                                .setGroupId(groupId[i])
-                                .setReportTimeType(reportTimeType[i])
-                                .setMultiWorktime(multiWorktime.length > 0?multiWorktime[i]:0)
-                                .setContent(content.length > 0?content[i]:"-")
-                                .setDegreeId(degreeId.length > 0?degreeId[i]:null)
-                                .setStage(stage[i])
-                                .setState(draft==0?0:3)
-                                .setCompanyId(user.getCompanyId())
-                                .setPicAdd(pics!=null?pics[i]:null)
-                                .setCreateDate(LocalDate.parse(createDate[i], DateTimeFormatter.ofPattern("yyyy-MM-dd")))
-                                .setCreatorId(token);
+                        Report report = new Report();
+                        report.setId(id[i] == -1 ? null : id[i]);
+                        report.setProjectId(projectId[i]);
+                        report.setSubProjectId(subProjectId[i]);
+                        report.setGroupId(groupId[i]);
+                        report.setReportTimeType(reportTimeType[i]);
+                        report.setMultiWorktime(multiWorktime.length > 0?multiWorktime[i]:0);
+                        report.setContent(content.length > 0?content[i]:"-");
+                        report.setDegreeId(degreeId.length > 0?degreeId[i]:null);
+                        report.setStage(stage != null && stage.length>0?stage[i]:"-");
+                        report.setState(draft==0?0:3);
+                        report.setCompanyId(user.getCompanyId());
+                        report.setPicAdd(pics!=null && pics.length>0?pics[i]:null);
+                        report.setCreateDate(LocalDate.parse(createDate[i], DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                        report.setCreatorId(token);
                         report.setProjectAuditState(0);
                         if (auditWorkflowList.size() == 0) {
                             //没有自定义审核流,默认的直接是项目负责人审核
@@ -600,6 +620,14 @@ public class ReportController {
             httpRespMsg.setError("验证失败");
             return httpRespMsg;
         }
+        //校验工作时长
+        for (Report report : reportList) {
+            if (report.getWorkingTime() <= 0.0) {
+                HttpRespMsg httpRespMsg = new HttpRespMsg();
+                httpRespMsg.setError("工作时长必须大于零");
+                return httpRespMsg;
+            }
+        }
 
         return reportService.editReport(reportList, createDate.length > 0 ? createDate[0] : null, targetUserList, hourCost, user.getCompanyId());
     }

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

@@ -58,12 +58,12 @@ public class StagesController {
         boolean findSameName = false;
         if (item.getId() == null) {
             QueryWrapper<Stages> queryWrapper = new QueryWrapper<Stages>();
-            queryWrapper.eq("group_id", item.getGroupId()).eq("stagesName", item.getStagesName());
+            queryWrapper.eq("group_id", item.getGroupId()).eq("stages_name", item.getStagesName());
             int cnt = stagesService.count(queryWrapper);
             findSameName = cnt>0?true: false;
         } else {
             QueryWrapper<Stages> queryWrapper = new QueryWrapper<Stages>();
-            queryWrapper.eq("group_id", item.getGroupId()).eq("stagesName", item.getStagesName()).ne("id", item.getId());
+            queryWrapper.eq("group_id", item.getGroupId()).eq("stages_name", item.getStagesName()).ne("id", item.getId());
             int cnt = stagesService.count(queryWrapper);
             findSameName = cnt>0?true: false;
         }

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Report.java

@@ -11,10 +11,12 @@ import java.io.Serializable;
 import java.util.HashMap;
 import java.util.List;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.management.platform.entity.vo.WorktimeItem;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * <p>
@@ -52,6 +54,8 @@ public class Report extends Model<Report> {
      * 日期
      */
     @TableField("create_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate createDate;
 
     /**

+ 57 - 70
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -279,20 +279,25 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
                 List<Integer> ids = null;
                 if (deptId != null) {
-                    //找到该部门的所有子部门
-                    List<Department> allDepts = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
-                    Optional<Department> first = allDepts.stream().filter(d -> d.getDepartmentId().equals(deptId)).findFirst();
-                    if (first.isPresent()) {
-                        Department department = first.get();
-                        //递归获取全部子部门
-                        List<Department> deptList = getSubDepts(department, allDepts);
-                        deptList.add(department);
-                        ids = deptList.stream().map(Department::getDepartmentId).collect(Collectors.toList());
+                    if (deptId == 0) {
+                        //未分配的情况
+                        ids = new ArrayList<>();
+                        ids.add(0);
+                    } else {
+                        //找到该部门的所有子部门
+                        List<Department> allDepts = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+                        Optional<Department> first = allDepts.stream().filter(d -> d.getDepartmentId().equals(deptId)).findFirst();
+                        if (first.isPresent()) {
+                            Department department = first.get();
+                            //递归获取全部子部门
+                            List<Department> deptList = getSubDepts(department, allDepts);
+                            deptList.add(department);
+                            ids = deptList.stream().map(Department::getDepartmentId).collect(Collectors.toList());
+                        }
                     }
                 }
                 nameList = reportMapper.getReportNameByDateAndDept(date,
                         ids, targetUid, companyId);
-
                 if (nameList.size() > 0) {
                     List<String> userIds = new ArrayList<>();
                     nameList.forEach(n->{
@@ -520,69 +525,43 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     @Override
     public HttpRespMsg editReport(List<Report> reportList, String date, List<User> userList, BigDecimal hourCost, Integer companyId) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        List<Integer> idList = new ArrayList<>();
-
         TimeType timeType = timeTypeMapper.selectById(companyId);
         double totalWorkTime = 0;
         for (Report report : reportList) {
             totalWorkTime +=report.getWorkingTime();
         }
-        for (Report report : reportList) {
-            //获取一下信息
-            if (report.getWorkingTime() <= 0.0) {
-                httpRespMsg.setError("工作时长必须大于零");
-                return httpRespMsg;
+
+        //删除不在本次更新名单中的老记录
+        if (date != null && !date.contains("@")) {
+            //取到已有记录的id集合
+            List<Integer> idList = reportList.stream().filter(r->r.getId() != null).map(Report::getId).collect(Collectors.toList());
+            if (idList.size() > 0) {
+                reportMapper.delete(new QueryWrapper<Report>()
+                        .eq("create_date", date)
+                        .eq("creator_id", reportList.get(0).getCreatorId())
+                        .notIn("id", idList));
             }
-            if (report.getId() == null) {
-                //检查是否存在计算加班工资的情况
-                if (!timeType.getPayOvertime()) {
-                    //不能超过最多时间,超过的话,等比例核算
-                    if (totalWorkTime > timeType.getAllday()) {
-                        BigDecimal cost;
-                        if (hourCost == null) {
-                            cost = userList.stream().filter(u -> u.getId().equals(report.getCreatorId())).findFirst().get().getCost().multiply(new BigDecimal(timeType.getAllday()))
-                                    .multiply(new BigDecimal(report.getWorkingTime())).divide(new BigDecimal(totalWorkTime), RoundingMode.HALF_UP);
-                        } else {
-                            cost = hourCost.multiply(new BigDecimal(timeType.getAllday()))
-                                    .multiply(new BigDecimal(report.getWorkingTime())).divide(new BigDecimal(totalWorkTime), RoundingMode.HALF_UP);
-                        }
-                        report.setCost(cost);
-                    }
-                }
-                if (reportMapper.insert(report) == 0) {
-                    httpRespMsg.setError("操作失败");
-                }
-            } else {
-                //只操作没有审核通过的
-                if (reportMapper.selectById(report.getId()).getState() != 1) {
-                    //检查是否存在计算加班工资的情况
-                        if (!timeType.getPayOvertime()) {
-                        //不能超过最多时间,超过的话,等比例核算
-                        if (totalWorkTime > timeType.getAllday()) {
-                            BigDecimal cost;
-                            if (hourCost == null) {
-                                cost = userList.stream().filter(u -> u.getId().equals(report.getCreatorId())).findFirst().get().getCost().multiply(new BigDecimal(timeType.getAllday()))
-                                        .multiply(new BigDecimal(report.getWorkingTime())).divide(new BigDecimal(totalWorkTime), RoundingMode.HALF_UP);
-                            } else {
-                                cost = hourCost.multiply(new BigDecimal(timeType.getAllday()))
-                                        .multiply(new BigDecimal(report.getWorkingTime())).divide(new BigDecimal(totalWorkTime), RoundingMode.HALF_UP);
-                            }
-                            report.setCost(cost);
-                        }
-                    }
-                    if (reportMapper.updateById(report) == 0) {
-                        httpRespMsg.setError("操作失败");
+        }
+
+        for (Report report : reportList) {
+            //检查是否存在计算加班工资的情况,,重新计算当日薪酬
+            if (!timeType.getPayOvertime()) {
+                //不能超过最多时间,超过的话,等比例核算
+                if (totalWorkTime > timeType.getAllday()) {
+                    BigDecimal cost;
+                    if (hourCost == null) {
+                        cost = userList.stream().filter(u -> u.getId().equals(report.getCreatorId())).findFirst().get().getCost().multiply(new BigDecimal(timeType.getAllday()))
+                                .multiply(new BigDecimal(report.getWorkingTime())).divide(new BigDecimal(totalWorkTime), RoundingMode.HALF_UP);
+                    } else {
+                        cost = hourCost.multiply(new BigDecimal(timeType.getAllday()))
+                                .multiply(new BigDecimal(report.getWorkingTime())).divide(new BigDecimal(totalWorkTime), RoundingMode.HALF_UP);
                     }
+                    report.setCost(cost);
                 }
             }
-            idList.add(report.getId());
-        }
-        if (idList.size() > 0 && date != null && !date.contains("@")) {
-            reportMapper.delete(new QueryWrapper<Report>()
-                    .eq("create_date", date)
-                    .eq("creator_id", reportList.get(0).getCreatorId())
-                    .notIn("id", idList));
         }
+        //批量新增或更新
+        reportService.saveOrUpdateBatch(reportList);
 
         int enginerring = companyMapper.selectById(companyId).getPackageEngineering();
         if (enginerring == 1) {
@@ -613,7 +592,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         }
 
         //异步下载图片
-
         loadPicFromCorpWXServer(companyId, reportList);
 
         return httpRespMsg;
@@ -1990,14 +1968,21 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         row.getCell(i).setCellType(CellType.STRING);
                     }
 
+                    if (row.getCell(0) == null) {
+                        msg.setError("第"+dataCount+"行缺少日期");
+                        return msg;
+                    }
                     boolean isDateFormat = row.getCell(0).getCellTypeEnum() == CellType.NUMERIC;
                     String reportDate = isDateFormat?sdf.format(row.getCell(0).getDateCellValue()):row.getCell(0).getStringCellValue();
-
+                    if (StringUtils.isEmpty(reportDate)) {
+                        msg.setError("第"+dataCount+"行缺少日期");
+                        return msg;
+                    }
                     String username = withCheckIn==null?row.getCell(1).getStringCellValue().trim():row.getCell(2).getStringCellValue().trim();
                     //检查人员是否存在
                     Optional<User> any = allUserList.stream().filter(u -> u.getName().equals(username)).findAny();
                     if (!any.isPresent()) {
-                        msg.setError("人员["+username+"]不存在,请先在组织结构中添加或者通过企业微信/钉钉同步导入");
+                        msg.setError("人员["+username+"]不存在,请先在组织结构中添加或者通过钉钉同步导入");
                         return msg;
                     }
                     User reportCreator = any.get();
@@ -2051,9 +2036,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     }
                 }
             }
-            //先删除老数据
+            //先删除老数据, 修改为批处理
             for (Report r : reportList) {
-                reportMapper.delete(new QueryWrapper<Report>().eq("company_id", companyId).eq("creator_id", r.getCreatorId()).eq("create_date", r.getCreateDate()));
+                reportMapper.delete(new QueryWrapper<Report>()
+                        .eq("company_id", companyId)
+                        .eq("creator_id", r.getCreatorId())
+                        .eq("create_date", r.getCreateDate()));
             }
             //存储
             reportService.saveBatch(reportList);
@@ -2067,8 +2055,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             msg.setError("数据格式有误或存在空数据 导入失败");
             return msg;
         } catch (Exception e) {
-            e.printStackTrace();
-            msg.setError("发生其他错误");
+            msg.setError("发生其他错误:"+e.getMessage());
             return msg;
         } finally {
             //关闭流

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

@@ -492,9 +492,16 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 User oldUser = userMapper.selectById(targetId);
                 boolean salaryChange = false;
 
-                if ((oldUser.getMonthCost() == null && monthCostValue.intValue() != 0) || oldUser.getMonthCost().compareTo(monthCostValue) != 0 || oldUser.getCost().compareTo(costValue) != 0) {
-                    salaryChange = true;
+                if (oldUser.getCost() == null) {
+                    if (costValue.intValue() != 0) {
+                        salaryChange = true;
+                    }
+                } else {
+                    if (oldUser.getCost().compareTo(costValue) != 0) {
+                        salaryChange = true;
+                    }
                 }
+
                 String oldCostApplyDate = oldUser.getCostApplyDate();
                 userMapper.updateById(oldUser
                         .setName(name)

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -338,7 +338,7 @@
                 #{item, jdbcType=INTEGER}
             </foreach>
         </if>
-        <if test="deptIds == null and companyId != null">
+        <if test="companyId != null">
             AND b.company_id = #{companyId}
         </if>
         <if test="userId != null">

+ 80 - 4
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -18,7 +18,7 @@
                     </div>
                 </el-form-item>
 
-                <el-form-item v-if="user.company.packageProject==1">
+                <el-form-item >
                     <span style="margin-left:10px;margin-right:10px;color:#606266;">状态</span>
                     <el-select v-model="status" style="width:120px;"  placeholder="请选择" @change="searchList">
                         <el-option label="全部" value=0 ></el-option>
@@ -117,12 +117,13 @@
             <!-- 客户管理 -->
             <el-table-column prop="customerName" label="客户"  v-if="user.company.packageCustomer == 1">
             </el-table-column>
-            <!--专业项目协作-->
-            <el-table-column prop="status" label="状态" width="100" v-if="user.company.packageProject == 1">
+            <el-table-column prop="status" label="状态" width="100" >
                 <template slot-scope="scope">
                     {{scope.row.status == null?"-":statusTxt[scope.row.status]}}
                 </template>
             </el-table-column>
+            <!--专业项目协作-->
+            
             <el-table-column prop="planStartDate" label="开始日期" width="96" >
             </el-table-column>
             <el-table-column prop="planEndDate" label="截止日期" width="96" >
@@ -132,11 +133,14 @@
                     {{scope.row.progress==null?"-":scope.row.progress}}%
                 </template>
             </el-table-column>
-            <el-table-column label="操作" width="290" v-if="user.role == 1||user.role == 2||user.role == 5 || user.leader">
+            <el-table-column label="操作" width="390"  align="left" v-if="user.role == 1||user.role == 2||user.role == 5 || user.leader">
                 <template slot-scope="scope">
                     <el-button v-if="user.role>0" size="mini"  @click="subProject(scope.row)">子项目</el-button>
                     <el-button size="mini" v-if="user.role>0 || user.id==scope.row.inchargerId" type="primary" @click="handleAdd(scope.$index, scope.row)">编辑</el-button>
                     <el-button v-if="user.role>0" size="mini"  @click="deletePro(scope.$index, scope.row)">删除</el-button>
+                    <el-button v-if="user.role>0 && scope.row.status == 1" size="mini"  @click="cancelPro(scope.row)">撤销</el-button>
+                    <el-button v-if="user.role>0 && scope.row.status == 1" size="mini"  @click="finishPro(scope.row)">完成</el-button>
+                    <el-button v-if="user.role>0 && scope.row.status >= 2" size="mini"  @click="restartPro(scope.row)">重启</el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -600,6 +604,78 @@ a {
             }
         },
         methods: {
+            //重启项目
+            restartPro(row) {
+                this.http.post('/project/start',{id: row.id},
+                    res => {
+                        if (res.code == "ok") {
+                            this.$message({
+                            message: '重启成功',
+                            type: "success"
+                            });
+                            row.status = 1;
+                        } else {
+                            this.$message({
+                            message: res.msg,
+                            type: "error"
+                            });
+                        }
+                    },
+                    error => {
+                        this.$message({
+                            message: error,
+                            type: "error"
+                        });
+                    });
+            },
+            //撤销项目
+            cancelPro(row) {
+                this.http.post('/project/cancel',{id: row.id},
+                    res => {
+                        if (res.code == "ok") {
+                            this.$message({
+                            message: '撤销成功',
+                            type: "success"
+                            });
+                            row.status = 3;
+                        } else {
+                            this.$message({
+                            message: res.msg,
+                            type: "error"
+                            });
+                        }
+                    },
+                    error => {
+                        this.$message({
+                            message: error,
+                            type: "error"
+                        });
+                    });
+            },
+            //完成项目
+            finishPro(row) {
+                this.http.post('/project/finish',{id: row.id},
+                    res => {
+                        if (res.code == "ok") {
+                            this.$message({
+                            message: '项目完成',
+                            type: "success"
+                            });
+                            row.status = 2;
+                        } else {
+                            this.$message({
+                            message: res.msg,
+                            type: "error"
+                            });
+                        }
+                    },
+                    error => {
+                        this.$message({
+                            message: error,
+                            type: "error"
+                        });
+                    });
+            },
             exportProjectData() {
                 //导出项目
                 this.http.post('/project/exportData',{},

+ 8 - 7
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -183,7 +183,7 @@
             </el-form>
             <span slot="footer" class="dialog-footer">
                 <el-button @click="departmentVisible = false">取消</el-button>
-                <el-button type="primary" @click="submitDepartment">提交</el-button>
+                <el-button type="primary" @click="submitDepartment" >提交</el-button>
             </span>
         </el-dialog>
 
@@ -239,7 +239,7 @@
             </el-form>
             <span slot="footer" class="dialog-footer">
                 <el-button @click="dialogVisible=false">取消</el-button>
-                <el-button type="primary" @click="submitInsert">提交</el-button>
+                <el-button type="primary" @click="submitInsert" :loading="submitLoading">提交</el-button>
             </span>
         </el-dialog>
 
@@ -278,7 +278,7 @@
             </el-form>
             <span slot="footer" class="dialog-footer">
                 <el-button @click="dialogVisible1=false">取消</el-button>
-                <el-button type="primary" @click="submitInsert1">提交</el-button>
+                <el-button type="primary" @click="submitInsert1" :loading="submitLoading">提交</el-button>
             </span>
         </el-dialog>
 
@@ -363,6 +363,7 @@
     export default {
         data() {
             return {
+                submitLoading:false,
                 deactiveUser:null,
                 deactiveDate:null,
                 deactiveDialog:false,
@@ -926,7 +927,7 @@
             submitInsert() {
                 this.$refs.form1.validate(valid => {
                     if (valid) {
-                        this.listLoading = true;
+                        this.submitLoading = true;
                         var form = {
                             name: this.insertForm.name,
                             phone: this.insertForm.phone,
@@ -946,7 +947,7 @@
                         }
                         this.http.post( this.port.manage.insert, form,
                         res => {
-                            this.listLoading = false;
+                            this.submitLoading = false;
                             if (res.code == "ok") {
                                 this.$message({
                                     message: this.insertForm.id != null ? "修改" : "创建" + "成功",
@@ -1072,7 +1073,7 @@
             submitInsert1() {
                 this.$refs.form1.validate(valid => {
                     if (valid) {
-                        this.listLoading = true;
+                        this.submitLoading = true;
                         var form = {
                             id: this.insertForm.id,
                             name: this.insertForm.name,
@@ -1089,7 +1090,7 @@
                         }
                         this.http.post( this.port.manage.insert, form,
                         res => {
-                            this.listLoading = false;
+                            this.submitLoading = false;
                             if (res.code == "ok") {
                                 this.$message({
                                     message: "修改成功",

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

@@ -298,7 +298,7 @@
                         <el-select v-model="domain.projectId" placeholder="请选择项目" style="width:200px;" clearable="true"  filterable="true"
                         @change="selectProject(domain, index)"
                         :disabled="workForm.domains.length==0?true:(workForm.domains[index].state>=2?false:true)">
-                            <el-option v-for="item in projectList" :key="item.id" :label="item.projectName" :value="item.id"></el-option>
+                            <el-option v-for="item in projectList" :disabled="item.status>=2" :key="item.id" :label="item.projectName" :value="item.id"></el-option>
                         </el-select>
                         <span  v-if="domain.subProjectList != null && domain.subProjectList.length> 0"
                             style="margin-left:45px;">子项目</span>
@@ -3554,7 +3554,7 @@
                                 this.getDepartment();
                             } else {
                                 this.$message({
-                                    message: res.msg,
+                                    message: (this.isDraft==0?'提交失败:':'暂存失败:')+res.msg,
                                     type: "error"
                                 });
                             }

+ 3 - 3
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue

@@ -358,6 +358,7 @@
                 .then(res => {
                     if(res.code == "ok") {
                         this.projectss = res.data;
+                        this.projectss = this.projectss.filter(p=>p.status == 1);
                         this.proads = res.data
                     } else {
                         this.$toast.fail('获取失败:'+res.msg);
@@ -779,10 +780,9 @@
                                 }
                                 
                                 var subProjectName = null;
-                                if (list[i].subProjectId != 0) {
+                                if (list[i].subProjectId) {
                                     subProjectName = list[i].subProjectList.filter(s=>s.id==list[i].subProjectId)[0].name;
                                 }
-                                
                                 array.push({
                                     id: list[i].id,
                                     projectId: list[i].projectId,
@@ -1289,7 +1289,7 @@
                         }
                     } else {
                         toast.clear();
-                        this.$toast.fail((this.isDraft==0?'提交失败':'暂存成功')+':'+res.msg);
+                        this.$toast.fail((this.isDraft==0?'提交失败':'暂存失败')+':'+res.msg);
                     }
                 }).catch(err=> {toast.clear();});
             },