Просмотр исходного кода

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

Min 2 лет назад
Родитель
Сommit
88faf7e9b8

+ 64 - 10
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -130,6 +130,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     @Resource
     WxCorpInfoMapper wxCorpInfoMapper;
     @Resource
+    SysFunctionService sysFunctionService;
+    @Resource
     private InformationServiceImpl informationService;
     @Resource
     private ProjectNotifyUserMapper projectNotifyUserMapper;
@@ -1336,6 +1338,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             httpRespMsg.data = nameList;
         } catch (NullPointerException e) {
             //httpRespMsg.setError("验证失败");
+            e.printStackTrace();
             httpRespMsg.setError(MessageUtils.message("access.verificationError"));
             return httpRespMsg;
         }
@@ -1706,18 +1709,24 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 }
             }else if(timeType.getReportAuditType() == 5){
                 List<Report> updateReportList = new ArrayList<>();
-                //项目所属BU审核
-                List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, group_audit_state, creator_id, create_date, project_id,audit_dept_managerid,department_audit_state").in("id", ids));
+                //人员所属部门负责人审核或者直属领导审核
+                boolean hasAuditAllPri = sysFunctionService.hasPriviledge(user.getRoleId(), "审核全员日报");
+                List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, group_audit_state, creator_id, create_date, project_id,audit_dept_managerid,department_audit_state, project_auditor_id").in("id", ids));
                 for (Report r : reportList) {
-                    //部门负责人审核
-                    if(user.getId().equals(r.getAuditDeptManagerid())){
-                        r.setState(1);
-                        r.setDepartmentAuditState(1);
+                    //直属领导审核或者部门负责人审核
+                    Report newReport = new Report();
+                    newReport.setId(r.getId());
+                    if(hasAuditAllPri || ((r.getProjectAuditorId() != null &&  user.getId().equals(r.getProjectAuditorId()))
+                        || (r.getProjectAuditorId() == null && user.getId().equals(r.getAuditDeptManagerid())))){
+                        newReport.setState(1);
+                        newReport.setDepartmentAuditState(1);
+                        newReport.setProjectAuditState(1);
+                        newReport.setProjectAuditTime(LocalDateTime.now());
                     }else {
-                        httpRespMsg.setError("非当前日报所属人员所在部门主要负责人");
+                        httpRespMsg.setError("您无权审核该日报");
                         return httpRespMsg;
                     }
-                    updateReportList.add(r);
+                    updateReportList.add(newReport);
                 }
                 if (updateReportList.size() > 0) {
                     updateBatchById(updateReportList);
@@ -2118,8 +2127,17 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         }
         Report oneReport = reportMapper.selectById(ids.get(0));
         if(timeType.getReportAuditType()==5){
-            if(!user.getId().equals(oneReport.getAuditDeptManagerid())){
-                httpRespMsg.setError("非当前日报所属人员所在部门主要负责人");
+            //日报审核类型为5时,只有日报所属人员所在部门主要负责人或者有审核全公司日报的权限才能审核,或者填报人的直属审核人
+            Integer roleId = user.getRoleId();
+            boolean canAuditAllReport = sysFunctionService.hasPriviledge(roleId, "审核全员日报");
+            boolean isDirectAudit = false;
+            String reporterSuperiorId = userMapper.selectById(oneReport.getCreatorId()).getSuperiorId();
+            if(reporterSuperiorId!=null && reporterSuperiorId.equals(user.getId().toString())){
+                isDirectAudit = true;
+            }
+
+            if(!(isDirectAudit  || (reporterSuperiorId == null && user.getId().equals(oneReport.getAuditDeptManagerid())) || canAuditAllReport)){
+                httpRespMsg.setError("您无权操作权限");
                 return httpRespMsg;
             }
         }
@@ -2758,6 +2776,36 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 if (updateReportList.size() > 0) {
                     updateBatchById(updateReportList);
                 }
+            } else if(timeType.getReportAuditType() == 5){
+                allUsers = userMapper.selectList(new QueryWrapper<User>().select("id, name, department_id").eq("company_id", company.getId()));
+                List<Report> updateReportList = new ArrayList<>();
+                //人员所属部门负责人审核或者直属领导审核
+                boolean hasAuditAllPri = sysFunctionService.hasPriviledge(user.getRoleId(), "审核全员日报");
+                List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, group_audit_state, creator_id, create_date, project_id,audit_dept_managerid,department_audit_state, project_auditor_id").in("id", ids));
+                allReports = reportList;
+                for (Report r : reportList) {
+                    //直属领导审核或者部门负责人审核
+                    Report newReport = new Report();
+                    newReport.setId(r.getId());
+                    if(hasAuditAllPri || ((r.getProjectAuditorId() != null &&  user.getId().equals(r.getProjectAuditorId()))
+                            || (r.getProjectAuditorId() == null && user.getId().equals(r.getAuditDeptManagerid())))){
+                        r.setState(1);
+                        r.setDepartmentAuditState(1);
+                        r.setProjectAuditState(1);
+                        r.setProjectAuditTime(LocalDateTime.now());
+                        newReport.setState(1);
+                        newReport.setDepartmentAuditState(1);
+                        newReport.setProjectAuditState(1);
+                        newReport.setProjectAuditTime(LocalDateTime.now());
+                    } else {
+                        httpRespMsg.setError("您无权审核该日报");
+                        return httpRespMsg;
+                    }
+                    updateReportList.add(newReport);
+                }
+                if (updateReportList.size() > 0) {
+                    updateBatchById(updateReportList);
+                }
             } else {
                 List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
                         new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", company.getId())
@@ -5682,6 +5730,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             if (user.getIsActive() == 0 && i.isAfter(user.getInactiveDate())){
                 continue;
             }
+            //跳过入职日期以前的日期
+            if (user.getIsActive() == 1 && user.getInductionDate() != null && i.isBefore(user.getInductionDate())){
+                continue;
+            }
             Boolean workDay = timeTypeService.isWorkDay(user.getCompanyId(), i);
             if (workDay){
                 Double workTime = 0.0;
@@ -5699,6 +5751,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     Double fillHour = monthVO.getAllday() - workTime;
                     //将fillHour平均分配到每个项目
                     Double fillHourPerProject = fillHour / projectIds.size();
+                    //保留小数点后1位
+                    fillHourPerProject = new BigDecimal(fillHourPerProject).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
                     //遍历项目
                     double sumHours = 0;
                     for (int pIndex = 0; pIndex<projectIds.size(); pIndex++) {

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

@@ -433,7 +433,7 @@
         SELECT a.id, b.project_name AS project, a.working_time AS time, a.content, a.state, a.time_type as timeType, a.creator_id as creatorId, a.cost, a.report_time_type as reportTimeType, a.start_time as startTime,
         a.end_time as endTime, d.name as subProjectName,a.task_id as taskId, task.name as taskName,
         b.incharger_id as inchargerId,b.project_code as projectCode,
-        a.is_overtime as isOvertime,a.progress as progress,
+        a.is_overtime as isOvertime,a.progress as progress,audit_dept_managerid as auditDeptManagerid,audit_deptid as auditDeptid,
         a.department_audit_state as departmentAuditState, a.stage, a.pic_str as picStr, multi_worktime as multiWorktime
         , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName,
         department.department_name as auditDeptName, a.is_dept_audit as isDeptAudit, a.project_audit_state as projectAuditState,task_group.name as groupName,a.group_id as groupId, a.custom_data as customData

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

@@ -252,7 +252,7 @@
                                                         size="small" @click="approve(item1.id, item2)">{{$t('btn.through')}}</el-button>
                                                         <el-button v-if="(permissions.projectReportReview ||user.id == item2.projectAuditorId) && item2.state == 0 && item2.isDeptAudit==0 && item2.projectAuditState==0" type="danger" :loading="logining" 
                                                         size="small" @click="showDenyDialog(item1.id,0, item2)">{{$t('btn.rejected')}}</el-button>
-                                                        <el-button v-if="(permissions.projectReportReview ||user.id == item2.projectAuditorId) && item2.state == 1" type="normal" :loading="logining" size="small" 
+                                                        <el-button v-if="(permissions.projectReportReview ||user.id == item2.projectAuditorId || (user.timeType.reportAuditType== 5 && (user.id == item2.projectAuditorId || (item2.isDeptAudit == 1 && user.id == item2.auditDeptManagerid)))) && item2.state == 1" type="normal" :loading="logining" size="small" 
                                                         @click="showDenyDialog(item1.id,1, item2)">{{$t('btn.undo')}}</el-button>
                                                         <!--自己可以撤回待审核状态的报告 -->
                                                         <el-button v-if="user.id == item1.id && (item2.state == 0 || item2.state == -1)" type="normal" :loading="logining" size="small" @click="cancel(item1)">{{$t('btn.withdraw')}}</el-button>
@@ -598,7 +598,8 @@
                                         :http-request="(file) => {return addImg(file, index)}"
                                         :on-preview="(file) => {return handlePictureCardPreview(file, index)}"
                                         :before-remove="(file, fileList) => {return delImg(file, fileList, index)}"
-                                        :file-list="domain.imgListUrl" :limit="9">
+                                        :file-list="domain.imgListUrl" :limit="9"
+                                        :disabled="workForm.domains[index].state>=2?false:true">
                                         <i class="el-icon-plus"></i>
                                     </el-upload>
                                 </div>
@@ -878,6 +879,8 @@
                     :key="item.id"
                     :label="item.projectName"
                     :value="item.id">
+                    <span style="float: left">{{ item.projectName }}</span>
+                    <span style="float: right; color: #8492a6; font-size: 13px">{{ item.projectCode }}</span>
                     </el-option>
                 </el-select>
             </div>
@@ -5021,11 +5024,10 @@
                 var end = this.dateChange(-2, ends)
                 this.zhoRqi = [stat, end]
                 this.zhoRqis()
-                // this.jiazai()
             },
             // 新增日期
             newDates() {
-                // console.log(this.zhoRqi, '看卡')
+                const millisecond = 1000 * 60 * 60 * 24
                 let edate = new Date(this.zhoRqi[1])
                 let nowdate = new Date()
                 let nowdate2
@@ -6254,7 +6256,7 @@
                                 //按比例分配
                                 formData.append("progress", this.workForm.domains[i].progress);
                                 formData.append("workingTime", this.workForm.domains[i].workingTime);
-                            }
+                            } 
 
                             if(this.user.timeType.choseFromAlbum == 1 ) {
                                 console.log(this.workForm.domains[i].imgList)
@@ -6267,6 +6269,8 @@
                                     let m = JSON.stringify(imgListFor);
                                     m = m.replace(/,/g,"@");//replaceAll(',','@');企业微信不兼容replaceAll
                                     formData.append("picStr", m);
+                                } else {
+                                    formData.append("picStr", '[]');
                                 }
                             }
                             

+ 14 - 11
fhKeeper/formulahousekeeper/timesheet_h5/public/index.html

@@ -72,17 +72,20 @@
             flex: 2;
         }
         /* 清除浮动 */
-	.clearfix:after{
-		content: ""; 
-		display: block; 
-		height: 0; 
-		clear: both; 
-		visibility: hidden;  
-	}
-	.clearfix {
-		/* 触发 hasLayout */ 
-		zoom: 1; 
-	}
+        .clearfix:after{
+            content: ""; 
+            display: block; 
+            height: 0; 
+            clear: both; 
+            visibility: hidden;  
+        }
+        .clearfix {
+            /* 触发 hasLayout */ 
+            zoom: 1; 
+        }
+        .popupSearch .van-search__content {
+            background-color: #FFFFFF !important;
+        }
     </style>
 </head>
 

+ 98 - 0
fhKeeper/formulahousekeeper/timesheet_h5/src/App.vue

@@ -41,5 +41,103 @@ export default {
 };
 </script>
 
+<style>
+  .popupDiv {
+    background: #F4F4F4;
+    position: relative;
+    height: 100%;
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+  }
+  .popupSearch {
+    width: 100%;
+  }
+  .popupCon {
+    width: 100%;
+    overflow: auto;
+    position: relative;
+  }
+  .paddingDiv {
+    box-sizing: border-box;
+    margin: 0 15px;
+  }
+  .popupTitle {
+    color: #333333;
+    padding: 0 30px;
+    position: relative;
+    line-height: 20px;
+  }
+  .popupTitle::after {
+    content: '';
+    width: 3px;
+    height: 100%;
+    border-radius: 3px;
+    background: #409eff;
+    position: absolute;
+    top: 0;
+    left: 15px;
+  }
+  .popupItem {
+    background: #FFFFFF;
+    padding: 10px 10px;
+    border-radius: 6px;
+    margin-top: 14px;
+    position: relative;
+  }
+  .marginTop {
+    margin-top: 15px;
+  }
+  .paddingTop {
+    padding-top: 10px;
+  }
+  .popupItem p {
+    width: 100%;
+    overflow: hidden;
+    white-space:nowrap;
+    text-overflow: ellipsis;
+    line-height: 22px;
+  }
+  .popupItemOne {
+    font-size: 15px;
+    color: #333;
+  }
+  .popupItemTwo {
+    font-size: 13px;
+    color: #999;
+    margin-top: 10px;
+  }
+  .popupItemIcon {
+    position: absolute;
+    right: 7px;
+    top: 50%;
+    font-size: 20px;
+    margin-top: -10px;
+    color: #999;
+  }
+
+  .popupConBox {
+    box-sizing: border-box;
+  }
+  .borderNone {
+    border-radius: 0;
+  }
+  .marginNone {
+    margin: 0 !important;
+  }
+  .popupBtn {
+    padding: 0 15px;
+    margin-top: 10px;
+    margin-bottom: 15px;
+  }
+  .conBorder {
+    width: auto !important;
+    margin: 0 15px;
+    border-radius: 10px;
+    box-sizing: border-box;
+  }
+  
+</style>
+
 
 

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

@@ -1,5 +1,5 @@
 <template>
-    <div>
+    <div class="editClss">
         <van-nav-bar title="填写日报" left-text="返回" @click-left="back" fixed left-arrow/>
 
         <van-form class="login_form" ref="loginForm">
@@ -383,20 +383,41 @@
         <div class="form_tip" v-if="!canEdit && !canCancel"> 已审核无法修改 </div>
 
         <!-- 选择项目弹窗 -->
-        <van-popup v-model="showPickerUserddp" position="bottom" style="height: 80%">
-            <!-- <van-search v-model="userName" placeholder="输入项目名称搜索" @clear="sea()" @blur="sea()" @search="sea()"></van-search> -->
-            <van-search v-model="userName" placeholder="请输入项目名称/编号" @clear="sea()" @blur="sea()" @search="sea()" @input="sea()"/>
-            <div style="minHeight:300px;">
-                <div class="ryuan" style="color: rgb(185 185 185);">近期选择项目</div>
-                <div v-for="(item, index) in integrationProjectList" :key="index" class="ryuan" @click="fZr(item, index)">
-                    <p>{{item.projectName}}</p>
-                    <p style="margin-top: 5px;color: #9697B2;">{{item.projectCode}}</p> 
+        <van-popup v-model="showPickerUserddp" position="bottom" style="height: 84%">
+            <div class="popupDiv">
+                <!-- <van-search v-model="userName" placeholder="请输入项目名称/编号" @clear="sea()" @blur="sea()" @search="sea()" @input="sea()"/> -->
+                <div class="popupSearch">
+                    <van-search v-model="userName" shape="round" background="#F4F4F4" placeholder="请输入项目名称/编号" @clear="sea()" @blur="sea()" @search="sea()" @input="sea()"/>
                 </div>
+                
+                <div class="popupCon">
+                    <!-- <div class="ryuan" style="color: rgb(185 185 185);">近期选择项目</div>
+                    <div v-for="(item, index) in integrationProjectList" :key="index" class="ryuan" @click="fZr(item, index)">
+                        <p>{{item.projectName}}</p>
+                        <p style="margin-top: 5px;color: #9697B2;">{{item.projectCode}}</p> 
+                    </div>
+
+                    <div class="ryuan" style="color: rgb(185 185 185);">全部项目</div>
+                    <div v-for="(item, index) in projectss" :key="item.id" class="ryuan" @click="fZr(item, index)">
+                        <p>{{item.projectName}}</p>
+                        <p style="margin-top: 5px;color: #9697B2;">{{item.projectCode}}</p> 
+                    </div> -->
+
+                    <div class="popupTitle">近期选择项目</div>
+
+                    <div v-for="(item, index) in integrationProjectList" :key="index" class="popupItem paddingDiv" @click="fZr(item, index)">
+                        <p class="popupItemOne" v-if="item.projectName">{{item.projectName}}</p>
+                        <p class="popupItemTwo" v-if="item.projectCode">{{item.projectCode}}</p> 
+                    </div>
+
+                    <div class="popupTitle marginTop">全部项目</div>
+
+                    <div v-for="(item, index) in projectss" :key="item.id" class="popupItem paddingDiv" @click="fZr(item, index)">
+                        <p class="popupItemOne" v-if="item.projectName">{{item.projectName}}</p>
+                        <p class="popupItemTwo" v-if="item.projectCode">{{item.projectCode}}</p> 
+                    </div>
 
-                <div class="ryuan" style="color: rgb(185 185 185);">全部项目</div>
-                <div v-for="(item, index) in projectss" :key="item.id" class="ryuan" @click="fZr(item, index)">
-                    <p>{{item.projectName}}</p>
-                    <p style="margin-top: 5px;color: #9697B2;">{{item.projectCode}}</p> 
+                    <!-- <div class="popupTitle paddingDiv">全部项目</div> -->
                 </div>
             </div>
         </van-popup> 

+ 22 - 5
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/weekEdit.vue

@@ -345,12 +345,8 @@
 
         <!-- 选择项目弹窗 -->
         <van-popup v-model="showPickerUserddp" position="bottom" style="height: 80%">
-            <van-search v-model="userName" placeholder="请输入项目名称/编号" @clear="sea()" @blur="sea()" @search="sea()" @input="sea()"/>
+            <!-- <van-search v-model="userName" placeholder="请输入项目名称/编号" @clear="sea()" @blur="sea()" @search="sea()" @input="sea()"/>
             <div style="minHeight:300px;">
-                <!-- <div v-for="(item, index) in projectss" :key="item.id" class="ryuan" @click="fZr(item, index)">
-                    <p>{{item.projectName}}</p> 
-                    <p style="margin-top: 5px;color: #9697B2;">{{item.projectCode}}</p> 
-                </div> -->
 
                 <div class="ryuan" style="color: rgb(185 185 185);">近期选择项目</div>
                 <div v-for="(item, index) in integrationProjectList" :key="index" class="ryuan" @click="fZr(item, index)">
@@ -363,6 +359,27 @@
                     <p>{{item.projectName}}</p>
                     <p style="margin-top: 5px;color: #9697B2;">{{item.projectCode}}</p> 
                 </div>
+            </div> -->
+            <div class="popupDiv">
+                <div class="popupSearch">
+                    <van-search v-model="userName" shape="round" background="#F4F4F4" placeholder="请输入项目名称/编号" @clear="sea()" @blur="sea()" @search="sea()" @input="sea()"/>
+                </div>
+
+                <div class="popupCon">
+                    <div class="popupTitle">近期选择项目</div>
+
+                    <div v-for="(item, index) in integrationProjectList" :key="index" class="popupItem paddingDiv" @click="fZr(item, index)">
+                        <p class="popupItemOne" v-if="item.projectName">{{item.projectName}}</p>
+                        <p class="popupItemTwo" v-if="item.projectCode">{{item.projectCode}}</p> 
+                    </div>
+
+                    <div class="popupTitle marginTop">全部项目</div>
+
+                    <div v-for="(item, index) in projectss" :key="item.id" class="popupItem paddingDiv" @click="fZr(item, index)">
+                        <p class="popupItemOne" v-if="item.projectName">{{item.projectName}}</p>
+                        <p class="popupItemTwo" v-if="item.projectCode">{{item.projectCode}}</p> 
+                    </div>
+                </div>
             </div>
         </van-popup> 
     </div>

+ 19 - 2
fhKeeper/formulahousekeeper/timesheet_h5/src/views/expense/index.vue

@@ -18,8 +18,8 @@
                             <span v-else>{{ formshowText.name }}</span>
                         </template>
                     </van-field>
-                    <van-popup v-model="ownerIdShow" position="bottom" v-if="canExamine">
-                        <div style="minHeight:300px;">
+                    <van-popup v-model="ownerIdShow" position="bottom" v-if="canExamine" style="height: 90%">
+                        <!-- <div style="minHeight:300px;">
                             <van-radio-group v-model="userRadio" v-if="user.userNameNeedTranslate == '1'">
                                 <van-radio v-for="item in userList" :key="item.id" :name="item" class="userCheckbox">
                                     <ww-open-data type='userName' :openid='item.name'></ww-open-data>
@@ -31,6 +31,23 @@
                             </van-radio-group>
                             <van-button style="width:100%;position: -webkit-sticky;position: sticky;bottom: 0;"
                                 @click="ownerIdChange()">确定</van-button>
+                        </div> -->
+                        <div class="popupDiv paddingTop">
+                            <div class="popupCon conBorder">
+                                <van-radio-group v-model="userRadio" v-if="user.userNameNeedTranslate == '1'">
+                                    <van-radio v-for="item in userList" :key="item.id" :name="item" class="popupItem marginNone borderNone">
+                                        <ww-open-data type='userName' :openid='item.name'></ww-open-data>
+                                    </van-radio>
+                                </van-radio-group>
+                                <van-radio-group v-model="userRadio" v-else>
+                                    <van-radio v-for="item in userList" :key="item.id" :name="item" class="popupItem marginNone borderNone">{{
+                                        item.name }}</van-radio>
+                                </van-radio-group>
+                            </div>
+                            <div class="popupBtn">
+                                <van-button style="width:100%;background: #1989fa;color: #ffffff;" round
+                                @click="ownerIdChange()">确定</van-button>
+                            </div>
                         </div>
                     </van-popup>
                     <!-- 填报日期 -->

+ 32 - 41
fhKeeper/formulahousekeeper/timesheet_h5/src/views/project/index.vue

@@ -3,54 +3,45 @@
         <van-nav-bar title="项目管理" left-text="返回" @click-left="back" :right-text="projectAdd?'新增项目':''" @click-right="openDialog(-1)" fixed left-arrow/>
         
         <div class="login_form">
-            <!-- <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
-                <van-list v-model="loading" :finished="finished" finished-text="没有更多了" :error.sync="error" error-text="请求失败,点击重新加载" @load="getProject">
-                    <van-swipe-cell v-for="(item,index) in list" :key="index">
-                        <van-cell :border="false" :title="item.projectName" :value="item.projectCode"/>
-                        <template slot="right" v-if="projectManagement || item.creatorId == user.id">
-                            <van-button square type="info" text="编辑" @click="openDialog(index)"/>
-                            <van-button square type="danger" text="删除" @click="delPro(index)"/>
-                        </template>
-                    </van-swipe-cell> 
-                </van-list>
-            </van-pull-refresh> -->
             <van-sticky offset-top="1.22667rem">
-            <van-cell>
-                <van-search
-                style="height:35px"
-                v-model="popoverValue"
-                show-action
-                :placeholder="'请输入' + (popoverType == '1' ? '项目名称' : '项目编号') + '关键词'"
-                @search="popoverSearch"
-                >
-                <template slot="left">
-                    <van-popover
-                    v-model="popoverShow"
-                    trigger="click"
-                    :actions="popoverActions"
-                    @select="popoverSelect"
-                    placement="bottom-start"
+            <!-- <van-cell> -->
+                <div class="popupSearch">
+                    <van-search
+                    v-model="popoverValue"
+                    show-action
+                    shape="round" background="#F4F4F4"
+                    :placeholder="'请输入' + (popoverType == '1' ? '项目名称' : '项目编号') + '关键词'"
+                    @search="popoverSearch"
                     >
-                    <template slot="reference">
-                        <span>{{popoverType == '1' ? '项目名称' : '项目编号'}}<van-icon name="arrow-down" size="10" style="margin-left:2px;" /></span>
+                    <template slot="left">
+                        <van-popover
+                        v-model="popoverShow"
+                        trigger="click"
+                        :actions="popoverActions"
+                        @select="popoverSelect"
+                        placement="bottom-start"
+                        >
+                        <template slot="reference">
+                            <span>{{popoverType == '1' ? '项目名称' : '项目编号'}}<van-icon name="arrow-down" size="10" style="margin-left:2px;" /></span>
+                        </template>
+                        </van-popover>
                     </template>
-                    </van-popover>
-                </template>
-                <template slot="action">
-                    <div @click="popoverSearch">搜索</div>
-                </template>
-                </van-search>
-            </van-cell>
+                    <template slot="action">
+                        <div @click="popoverSearch">搜索</div>
+                    </template>
+                    </van-search>
+                </div>
+            <!-- </van-cell> -->
             </van-sticky>
             <van-pull-refresh v-model="isDownLoading" @refresh="onDownRefresh">
                 <van-list v-model="isUpLoading" :finished="upFinished" :immediate-check="false" :offset="100" finished-text="没有更多了" @load="onLoadList">
-                    <van-swipe-cell v-for="(item,index) in list" :key="index">
+                    <!-- <van-swipe-cell v-for="(item,index) in list" :key="index">
                         <van-cell :border="false" :title="item.projectName" :value="item.projectCode" clickable @click="toProjectInside(item)"/>
-                        <!-- <template slot="right" v-if="projectManagement || item.creatorId == user.id">
-                            <van-button square type="info" text="编辑" @click="openDialog(index)" style="height:100%"/>
-                            <van-button square type="danger" text="删除" @click="delPro(index)" style="height:100%"/>
-                        </template> -->
-                    </van-swipe-cell> 
+                    </van-swipe-cell>  -->
+                    <div v-for="(item, index) in list" :key="index" class="popupItem paddingDiv" @click="toProjectInside(item)">
+                        <p class="popupItemOne" v-if="item.projectName" style="overflow: auto;white-space:normal;">{{item.projectName}}</p>
+                        <p class="popupItemTwo" v-if="item.projectCode" style="overflow: auto;white-space:normal;">{{item.projectCode}}</p> 
+                    </div>
                 </van-list>
             </van-pull-refresh>
 

+ 24 - 2
fhKeeper/formulahousekeeper/timesheet_h5/src/views/review/index.vue

@@ -24,8 +24,8 @@
                         <span v-else>{{userNameValue}}</span>
                     </template>
                 </van-cell>
-                <van-popup v-model="selectUserShow" position="bottom">
-                    <van-search v-model="searchInputValue" placeholder="输入员工姓名搜索" @search="userListSearch" v-if="user.userNameNeedTranslate != '1'"></van-search>
+                <van-popup v-model="selectUserShow" position="bottom" style="height: 90%">
+                    <!-- <van-search v-model="searchInputValue" placeholder="输入员工姓名搜索" @search="userListSearch" v-if="user.userNameNeedTranslate != '1'"></van-search>
                     <div style="minHeight:300px;">
                         <template v-if="user.userNameNeedTranslate == '1'">
                             <van-checkbox class="userCheckbox" v-for="(item) in showUserList" :key="item.id" v-model="item.isChecked" >
@@ -38,6 +38,28 @@
                             </van-checkbox>
                         </template>
                         <van-button style="width:100%;position: -webkit-sticky;position: sticky;bottom: 0;" @click="selectUserConfirm()">确定</van-button>
+                    </div> -->
+                    <div class="popupDiv">
+                        <div class="popupSearch" v-if="user.userNameNeedTranslate != '1'">
+                            <van-search v-model="searchInputValue" placeholder="输入员工姓名搜索" @search="userListSearch" shape="round" background="#F4F4F4"></van-search>
+                        </div>
+
+                        <div class="popupCon conBorder">
+                            <div class="popupConBox" v-if="user.userNameNeedTranslate == '1'">
+                                <van-checkbox class="popupItem marginNone borderNone" v-for="(item) in showUserList" :key="item.id" v-model="item.isChecked" >
+                                    <ww-open-data type='userName' :openid='item.name'></ww-open-data>
+                                </van-checkbox>
+                            </div>
+                            <div class="popupConBox" v-else>
+                                <van-checkbox class="popupItem marginNone borderNone" v-for="(item) in showUserList" :key="item.id" v-model="item.isChecked" >
+                                    <span>{{item.name}}</span>
+                                </van-checkbox>
+                            </div>
+                        </div>
+
+                        <div class="popupBtn">
+                            <van-button style="width:100%;background: #1989fa;color: #ffffff;" round @click="selectUserConfirm()">确定</van-button>
+                        </div>
                     </div>
                 </van-popup>
             </van-sticky>