Przeglądaj źródła

1.修改项目管理 编辑参与人权限 移动端问题
2.修改移动端编辑主项目字段值展示问题

yusm 1 dzień temu
rodzic
commit
08c38d40ce

+ 4 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.aliyun.dingtalkcontact_1_0.models.SearchUserResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -22,7 +21,6 @@ import com.management.platform.webservice.po.ProjectQueryResponse;
 import com.management.platform.webservice.po.ProjectTask;
 import com.management.platform.webservice.po.ServiceProduct;
 import com.management.platform.webservice.po.XmlResponseData;
-import io.micrometer.core.instrument.util.DoubleFormat;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.http.client.entity.UrlEncodedFormEntity;
@@ -3434,7 +3432,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         Integer companyId = user.getCompanyId();
         TimeType timeType = timeTypeMapper.selectById(companyId);
         Project project = projectMapper.selectById(id);
-
+        if(null!=project.getProjectMainId()){
+            ProjectMain projectMain = projectMainMapper.selectById(project.getProjectMainId());
+            project.setProjectMainName(projectMain.getName());
+        }
         //以里程碑完成度来算还是按任务工时完成度
         if(1 == timeType.getProjectProgressCheck()){
             List<ProjectTaskTimeCostVO> allTaskCosts = taskMapper.getProjectAllTaskTimeCost(id);

+ 13 - 12
fhKeeper/formulahousekeeper/timesheet_h5/src/views/project/edit.vue

@@ -6,7 +6,7 @@
         <van-field v-model="projectDetail.projectCode" :label="user.companyId == '7030' ? '项目令号' : '项目编号'" :disabled="!editCodeAndName"></van-field>
         <van-field v-model="projectDetail.projectName" label="项目名称" :disabled="!editCodeAndName"></van-field>
         <!-- 主项目 -->
-        <van-field label="主项目" @click="mainProjectShow = true" readonly clickable v-if="user.timeType.mainProjectState == '1'">
+        <van-field label="主项目" :disabled="canOnlyModParticipator"  @click="!canOnlyModParticipator?mainProjectShow = true:''" readonly clickable v-if="user.timeType.mainProjectState == '1'">
             <template #input>
                 <span>{{projectDetail.projectMainName}}</span>
             </template>
@@ -21,7 +21,7 @@
                 ></van-picker>
             </van-popup>
         <!-- 项目分类 -->
-        <van-field label="项目分类" @click="categoryShow = true" readonly clickable v-if="user.timeType.mainProjectState != '1'">
+        <van-field label="项目分类" :disabled="canOnlyModParticipator" @click="!canOnlyModParticipator?categoryShow = true:''" readonly clickable v-if="user.timeType.mainProjectState != '1'">
             <template #input>
                 <span>{{projectDetail.categoryName}}</span>
             </template>
@@ -36,9 +36,9 @@
                 ></van-picker>
             </van-popup>
         <!-- 项目描述 -->
-        <van-field v-model="projectDetail.projectDesc" label="项目描述"></van-field>
+        <van-field v-model="projectDetail.projectDesc" :disabled="canOnlyModParticipator" label="项目描述"></van-field>
         <!-- 项目类型 -->
-        <van-field label="项目类型" @click="publicShow = true" readonly clickable>
+        <van-field label="项目类型" :disabled="canOnlyModParticipator" @click="!canOnlyModParticipator?publicShow = true:''" readonly clickable>
             <template #input>
                 <span>{{publicList[projectDetail.isPublic]}}</span>
             </template>
@@ -52,7 +52,7 @@
                 ></van-picker>
             </van-popup>
         <!-- 项目级别 -->
-        <van-field label="项目级别" @click="levelShow = true" readonly clickable>
+        <van-field label="项目级别" :disabled="canOnlyModParticipator" @click="!canOnlyModParticipator?levelShow = true:''" readonly clickable>
             <template #input>
                 <span>{{projectDetail.levelLabel}}</span>
             </template>
@@ -67,7 +67,7 @@
                 ></van-picker>
             </van-popup>
         <!-- 日报审核人 -->
-        <van-field label="日报审核人"  readonly clickable @click="dailyReviewFlg = true" v-if="user.timeType.reportAuditType == 0 || user.timeType.reportAuditType == 4">
+        <van-field label="日报审核人" :disabled="canOnlyModParticipator"  readonly clickable @click="!canOnlyModParticipator?dailyReviewFlg = true:''" v-if="user.timeType.reportAuditType == 0 || user.timeType.reportAuditType == 4">
             <template #input>
                 <span v-if="projectDetail.auditorList.length > 0">
                     <span v-for="(items, indexs) in projectDetail.auditorList" :key="indexs">
@@ -105,7 +105,7 @@
                 <span v-else>{{projectDetail.userNames}}</span>
             </template>
         </van-field>
-            <van-popup v-model="userNamesShow" position="bottom" :style="{ height: '80%' }">
+            <van-popup v-model="userNamesShow" position="bottom" :style="{ height: '80%' }" >
                 <van-search v-model="userName" placeholder="输入员工姓名搜索" @search="onSearch" v-if="user.userNameNeedTranslate != '1'"></van-search>
                 <div style="minHeight:300px;">
                 <template v-if="user.userNameNeedTranslate == '1'">
@@ -118,7 +118,7 @@
                 </div>
             </van-popup>
         <!-- 项目经理 -->
-        <van-field label="项目经理" @click="editProjectMan ? inchargerShow = true : ''" readonly clickable :disabled="!editProjectMan">
+        <van-field label="项目经理" @click="(editProjectMan&& !canOnlyModParticipator) ? inchargerShow = true : ''" readonly clickable :disabled="!editProjectMan || canOnlyModParticipator">
             <template #input>
                 <span v-if="user.userNameNeedTranslate == '1'"><TranslationOpenDataText type='userName' :openid='projectDetail.inchargerName'></TranslationOpenDataText></span>
                 <span v-else>{{projectDetail.inchargerName}}</span>
@@ -139,7 +139,7 @@
                 </van-picker>
             </van-popup>
         <!-- 开始日期 -->
-        <van-field label="计划开始日期" @click="startDateShow = true" readonly clickable>
+        <van-field label="计划开始日期" @click="!canOnlyModParticipator?startDateShow = true:''" readonly clickable :disabled="canOnlyModParticipator">
             <template #input>
                 <span>{{projectDetail.planStartDate}}</span>
             </template>
@@ -156,7 +156,7 @@
                 />
             </van-popup>
         <!-- 结束日期 -->
-        <van-field label="计划结束日期" @click="endDateShow = true" readonly clickable>
+        <van-field label="计划结束日期" @click="!canOnlyModParticipator?endDateShow = true:''" readonly clickable :disabled="canOnlyModParticipator">
             <template #input>
                 <span>{{projectDetail.planEndDate}}</span>
             </template>
@@ -177,7 +177,7 @@
 
         <div class="form_btn" style="position: fixed; bottom: 0px; width: 100%">
             <div style="padding-bottom: 10px">
-                <van-button square block type="info" @click="deleteProject()" style="width: 50%; float: left">删除</van-button>
+                <van-button square block type="info" :disabled="canOnlyModParticipator" @click="deleteProject()" style="width: 50%; float: left">删除</van-button>
                 <van-button square block type="danger" @click="submitProject" style="width: 50%; float: left">保存</van-button>
             </div>
         </div>
@@ -218,7 +218,8 @@ export default {
             endDateShow: false,
             dailyUserList: [],
             dailyReviewFlg: false,
-            editProjectMan: false
+            editProjectMan: false,
+            canOnlyModParticipator: this.$route.query.canOnlyModParticipator==='1'?true:false,
         }
     },
     mounted() {

+ 13 - 4
fhKeeper/formulahousekeeper/timesheet_h5/src/views/project/projectInside.vue

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <van-nav-bar :title="projectDetail.projectName ? projectDetail.projectName : '-'" left-text="返回" @click-left="back" fixed left-arrow :right-text="(active == 0 && (projectManagement || user.id==projectDetail.inchargerId || user.id==projectDetail.creatorId)) ? '编辑项目' : ''" @click-right="openProject()" />
+        <van-nav-bar :title="projectDetail.projectName ? projectDetail.projectName : '-'" left-text="返回" @click-left="back" fixed left-arrow :right-text="(active == 0 && (projectManagement || user.id==projectDetail.inchargerId || user.id==projectDetail.creatorId || canModParticipator)) ? '编辑项目' : ''" @click-right="openProject()" />
         <!-- <van-nav-bar :title="projectDetail.projectName ? projectDetail.projectName : '-'" left-text="返回" @click-left="back" fixed left-arrow :right-text="activeTextFlg ? '编辑项目' : ''" @click-right="openProject()" /> -->
         <div class="content">
             <!-- <van-cell><div style="width:100%;text-align:center;font-size:120%">{{projectDetail.projectName ? projectDetail.projectName : '-'}}</div></van-cell> -->
@@ -241,7 +241,8 @@ export default {
             projectManagement: false,
             projectId: JSON.parse(sessionStorage.projectId),
             projectDetail: {},
-            
+            canModParticipator: false,
+            canOnlyModParticipator: false,
             active: 0,
             activeFlg: true,
             activeTextFlg: false,
@@ -275,6 +276,9 @@ export default {
             if(this.user.functionList[i].name == '管理全部项目'){
                 this.projectManagement = true
             }
+             if(this.user.functionList[i].name == '编辑项目参与人'){
+                this.canModParticipator = true
+            }
         }
         if(this.user.company.packageWorktime == 1) {
             this.activeFlg = false
@@ -362,8 +366,13 @@ export default {
         },
         
         openProject(){
-            if(this.active == 0 && (this.projectManagement || this.user.id==this.projectDetail.inchargerId || this.user.id==this.projectDetail.creatorId)){
-                this.$router.push("/editProject");
+            if(this.active == 0 && (this.projectManagement || this.user.id==this.projectDetail.inchargerId || this.user.id==this.projectDetail.creatorId || this.canModParticipator)){
+                //判断是否只有编辑参与人的权限
+                if(this.canModParticipator && !this.projectManagement && this.user.id!=this.projectDetail.inchargerId && this.user.id!=this.projectDetail.creatorId){
+                    this.canOnlyModParticipator = true
+                    
+                }
+                this.$router.push({path: "/editProject", query: {canOnlyModParticipator: this.canOnlyModParticipator?'1':'0'}});
             }
         },