Parcourir la source

出差审批调整,增加来自日报

Lijy il y a 2 ans
Parent
commit
eacab8a45b

+ 3 - 1
fhKeeper/formulahousekeeper/timesheet/src/i18n/en.json

@@ -1479,5 +1479,7 @@
   "xuan-ze-ji-du": "Choose a quarter",
   "xuan-ze-nian": "Choose the Year",
   "xuan-ze-nian-fen": "Choose the Month",
-  "zheng-shi-xiang-mu-gong-shi": "Official project hours"
+  "zheng-shi-xiang-mu-gong-shi": "Official project hours",
+  "lai-zi-ri-bao": "From Daily",
+  "tian-bao-ren": "Applicant"
 }

+ 3 - 1
fhKeeper/formulahousekeeper/timesheet/src/i18n/zh.json

@@ -1479,5 +1479,7 @@
   "di-si-ji-du": "第四季度",
   "ge-fen-zu-yu-jie-duan-gong-shi-biao": "各分组与阶段工时表",
   "ge-fen-zu-jie-duan-gong-shi-biao": "各分组阶段工时表",
-  "di": "第"
+  "di": "第",
+  "lai-zi-ri-bao": "来自日报",
+  "tian-bao-ren": "填报人"
 }

+ 24 - 4
fhKeeper/formulahousekeeper/timesheet/src/views/awayOffice/awayOffice.vue

@@ -28,7 +28,7 @@
                     <template slot="title">
                         <i class="iconfont firerock-iconliucheng"></i>
                         <span slot="title">{{ $t('businesstriApprovalProcess') }}</span>
-                    </template>
+                    </template> 
                 </el-menu-item>
             </el-menu>
         </el-col>
@@ -410,7 +410,11 @@
                 <el-col :span="18" >
                     <el-scrollbar style="height:100%;border:1px solid #dddddd;margin-right:20px;" >
                         <div class="tree" :style="'height:'+ (tableHeight-120) + 'px'">
-                            <div style="padding:5px;color:#333;" v-if="depData != null">{{ $t('setup') }} &lt;<span style="color:#20a0ff;">{{depData.label}}&gt;</span> {{ $t('approvalprocessforbusiness') }}
+                            <div style="padding:5px;color:#333;" v-if="depData != null">{{ $t('setup') }} &lt;<span style="color:#20a0ff;">
+                                <!-- {{depData.label}} -->
+                                <span v-if="user.userNameNeedTranslate != 1">{{depData.label}}</span>
+                                <span v-if="user.userNameNeedTranslate == 1"><ww-open-data type='departmentName' :openid='depData.label'></ww-open-data></span>
+                                &gt;</span> {{ $t('approvalprocessforbusiness') }}
                                 <el-tooltip effect="dark" v-if="depData != null && depData.children!=null" :content="$t('onlyapplicabletotheimmediatestaffofthecurrentdepartment')" placement="top-start">
                                     <i class="el-icon-question"></i>
                                 </el-tooltip>
@@ -422,9 +426,22 @@
                                 <icon class="iconfont firerock-iconInsertLine addNode" @click="showNodeDialog(0)"></icon>
                                 <icon class="iconfont firerock-iconright"></icon>
                                 <span v-for="(item, index) in dataArray" :key="item.seq" >
-                                    <el-button type="primary" v-if="item.auditorType == 1" @click="editNodeDialog(index, item)">{{item.auditDeptName}}</el-button>
+                                    <!-- <el-button type="primary" v-if="item.auditorType == 1" @click="editNodeDialog(index, item)">{{item.auditDeptName}}</el-button> -->
+                                    
+                                    <!-- <el-button type="primary" v-if="item.auditorType == 2" @click="editNodeDialog(index, item)">{{item.userName}}</el-button> -->
+                                    <el-button type="primary" v-if="item.auditorType == 1 && user.userNameNeedTranslate == 1" @click="editNodeDialog(index, item)">
+                                        <ww-open-data type='departmentName' :openid='item.auditDeptName'></ww-open-data>
+                                    </el-button>
+                                    <el-button type="primary" v-if="item.auditorType == 2 && user.userNameNeedTranslate == 1" @click="editNodeDialog(index, item)">
+                                        <ww-open-data type='userName' :openid='item.userName'></ww-open-data>
+                                    </el-button>
                                     <el-button type="primary" v-if="item.auditorType == 0" >{{ $t('projectLeader') }}</el-button>
-                                    <el-button type="primary" v-if="item.auditorType == 2" @click="editNodeDialog(index, item)">{{item.userName}}</el-button>
+                                    <el-button type="primary" v-if="item.auditorType == 1 && user.userNameNeedTranslate != 1" @click="editNodeDialog(index, item)">
+                                        {{item.auditDeptName}}
+                                    </el-button>
+                                    <el-button type="primary" v-if="item.auditorType == 2 && user.userNameNeedTranslate != 1" @click="editNodeDialog(index, item)">
+                                        {{item.userName}}
+                                    </el-button>
                                     <icon class="iconfont firerock-iconright"></icon>
                                     <icon class="iconfont firerock-iconInsertLine addNode" @click="showNodeDialog(index+1)"></icon>
                                     <icon class="iconfont firerock-iconright"></icon>
@@ -877,6 +894,7 @@ export default {
             curWorkflowList:{},
             denyReasonVisible : false,
             auditLogList:[],
+            selectedAuuid: ''
         }
     },
     created(){
@@ -1761,6 +1779,7 @@ export default {
                     if (arr[i].children != null && arr[i].children.length>0) {
                         arr[i].children = this.changeArr(arr[i].children);
                     }
+                    arr[i].type = 'dep'
                     arr[i].id && (arr[i].value = arr[i].id);
                     delete arr[i].id;
                 }
@@ -1812,6 +1831,7 @@ export default {
                     this.curUserId = item.userId;
                     this.dialogVisible = true;
                     this.curDeptId = item.auditDeptId;
+                    this.selectedAuuid = item.userId || item.auditDeptId
                 } else {
                     this.$message({
                         message: res.msg,

+ 181 - 6
fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue

@@ -768,8 +768,7 @@
             <!-- 评论 -->
             <div class="remark" v-show="addForm.id != null">
                 <span class="zh">
-                    
-                        <div class="player" v-if="critic.length > 0">
+                        <div class="player">
                             <p>{{ $t('participantin') }}</p>
                             <div class="bj">
                                 <span  v-for="(pl, i) in critic" :key="i">
@@ -782,8 +781,11 @@
                             </div>
                         </div>
                     <div class="subject">
-                        <div class="sub-all">{{ $t('alldynamic') }}</div>
-                        <div class="sub-details" ref="main">
+                        <div class="sub-all">
+                            <div :class="dynamicTab ? 'subOn' : ''" @click="dynamicTab = true">{{ $t('alldynamic') }}</div>
+                            <div :class="dynamicTab ? '' : 'subOn'" @click="dynamicTab = false">{{ $t('lai-zi-ri-bao') }}</div>
+                        </div>
+                        <div class="sub-details" ref="main" v-if="dynamicTab">
                             <ul class="infinite-list" v-infinite-scroll="load" ref="contRoll">
                                 <div style="width: 100%" v-if="commentList.length <= 0">
                                     <img src="../../assets/image/xiao.png" alt="">
@@ -826,8 +828,130 @@
                                 </li>
                             </ul>
                         </div>
+
+                        <div class="Daily" v-if="!dynamicTab">
+                            <div class="one_daily_body DailyBody">
+                                <el-card shadow="never" v-for="(item2,index2) in dailyList" :key="index2" style="margin-bottom: 20px;">
+                                    <p>
+                                        {{ $t('tian-bao-ren') }}: <span v-if="user.userNameNeedTranslate != 1">{{item2.userName}}</span>
+                                        <span v-if="user.userNameNeedTranslate == 1">
+                                            <ww-open-data type='userName' :openid='item2.userName'></ww-open-data>
+                                        </span>
+                                    </p>
+                                    <p>{{ $t('other.approvalStatus') }}:
+                                        <span v-if="user.company.packageEngineering == 0">
+                                            <span style="margin-left:15px;color:#DAA520;"  v-if="item2.state == 0">[ 
+                                                <span v-if="item2.isDeptAudit==0">
+                                                    <span v-if="item2.projectAuditState==0">
+                                                        <!-- 待项目审核人 --> {{$t('other.waitForTheProjectReviewer')}}
+                                                        <span v-if="item2.projectAuditorName != null">(
+                                                            <span v-if="user.userNameNeedTranslate == '1'">
+                                                                <ww-open-data type='userName' :openid='item2.projectAuditorName'></ww-open-data>
+                                                            </span>
+                                                            <span v-if="user.userNameNeedTranslate != '1'">{{item2.projectAuditorName}}</span>
+                                                            )</span> 
+                                                        <!-- 审核 --> {{$t('other.audit')}}
+                                                    </span>
+                                                    <span style="color:#32CD32;" v-else-if="item2.projectAuditState==1">
+                                                        <!-- 项目审核人 --> {{$t('other.projectAuditor')}}
+                                                        <span v-if="item2.projectAuditorName != null">(
+                                                            <!-- {{item2.projectAuditorName}} -->
+                                                            <span v-if="user.userNameNeedTranslate == '1'">
+                                                                <ww-open-data type='userName' :openid='item2.projectAuditorName'></ww-open-data>
+                                                            </span>
+                                                            <span v-if="user.userNameNeedTranslate != '1'">{{item2.projectAuditorName}}</span>
+                                                            )</span>
+                                                        <!-- 审核通过 --> {{$t('state.approved')}}
+                                                    </span>
+                                                </span>
+                                                <span v-else-if="item2.isDeptAudit==1">
+                                                    ({{$t('other.await')}}
+                                                    <span v-if="user.userNameNeedTranslate == '1'">
+                                                        <ww-open-data type='departmentName' :openid='item2.auditDeptName'></ww-open-data>
+                                                    </span>
+                                                    <span v-if="user.userNameNeedTranslate != '1'">{{item2.auditDeptName}}</span>
+                                                    {{$t('other.audit')}})
+                                                </span>
+                                                ]</span> 
+                                            <span style="margin-left:15px;color:#DAA520;" v-else-if="item2.state == -1">[ {{$t('other.importWaitingForReview')}} ]</span>
+                                            <span style="margin-left:15px;color:#32CD32;" v-else-if="item2.state == 1">[ {{$t('state.alreadyPassed')}} ]
+                                                <span style="color:#c7e944" v-if="item2.reportAutoApprove == 1">{{$t('other.automaticReview')}}</span>
+                                            </span>
+                                            
+                                            <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 2">[ {{$t('state.rejected')}} ] {{$t('other.reason')}}:{{item2.rejectReason}}</span>
+                                            <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 3">[ {{$t('state.waitingsubmit')}} ]</span>
+                                        </span>
+                                        <span v-if="user.company.packageEngineering == 1">
+                                            <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == -1">[ {{$t('other.importWaitingForReview')}} ]</span>
+                                            <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == 0 && item2.departmentAuditState == -1">[ {{$t('other.waitingForProfessionalReview')}} ]</span>
+                                            <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == 0 && item2.departmentAuditState == 0">[ {{$t('other.waitingForDepartmentReview')}} ]</span>
+                                            <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == 0 && item2.departmentAuditState == 1">[ {{$t('other.waitForTheProjectReviewer')}}<span v-if="item2.projectAuditorName != null">
+                                                (
+                                                    <span v-if="user.userNameNeedTranslate != 1">
+                                                        {{item2.projectAuditorName}}
+                                                    </span>
+                                                    <span v-if="user.userNameNeedTranslate == 1">
+                                                        <ww-open-data type='userName' :openid='item2.projectAuditorName'></ww-open-data>
+                                                    </span>
+                                                )
+                                            </span>{{$t('other.audit')}} ]</span>
+                                            <span style="margin-left:15px;color:#32CD32;" v-else-if="item2.state == 1">[ {{$t('state.alreadyPassed')}} ]</span>
+                                            <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 2">[ {{$t('state.rejected')}} ] {{$t('other.reason')}}:{{item2.rejectReason}}</span>
+                                            <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 3">[ {{$t('state.waitingsubmit')}} ]</span>
+                                        </span>
+                                    </p>
+                                    <!-- 自定义日报文本 -->
+                                    <p v-if="user.timeType.customTextActive==1">{{user.timeType.customTextName}}:{{item2.customText}}</p>
+                                    <p v-if="user.company.packageEngineering == 1">
+                                        {{$t('other.professionalProgress')}}:
+                                        <span style="margin-right:10px;" v-for="progressItem in item2.professionProgress" :key="progressItem.id">{{progressItem.professionName}}({{progressItem.progress}}%) 
+                                            <el-tooltip v-if="progressItem.auditState == 0"  :content="$t('state.WaitingAudit')" effect="light" placement="top">
+                                            <i class="iconfont firerock-icondaibandengdaishenhe"></i>
+                                            </el-tooltip>
+                                            <el-tooltip v-if="progressItem.auditState == 1" :content="$t('state.alreadyPassed')" effect="light" placement="top">
+                                            <i  class="iconfont firerock-iconshenhetongguo"></i>
+                                            </el-tooltip>
+                                            <el-tooltip v-if="progressItem.auditState == 2" :content="$t('state.notThrough')" effect="light" placement="top">
+                                            <i  class="iconfont firerock-iconshenhebohui"></i>
+                                            </el-tooltip>
+                                            </span>
+                                    </p>
+                                    <div v-if="item2.multiWorktime==0">
+                                    <p style="display: inline-block;">{{$t('time.duration')}}:
+                                        <span v-if="item2.reportTimeType == 0" style="margin-right:10px;">{{typeList[item2.timeType]}}</span>
+                                        <span v-if="item2.reportTimeType == 2" style="margin-right:10px;">{{item2.startTime+'-'+item2.endTime}}</span>
+                                    {{item2.time.toFixed(1)}}h  
+                                    <el-tag type="danger" size="mini" style="margin-left: 65px" v-if="item2.isOvertime === 1">{{$t('other.WorkOvertime')}}<span v-if="item2.overtimeHours">{{item2.overtimeHours.toFixed(1)}}h</span></el-tag>
+                                    </p>
+                                    <p>{{$t('other.matters')}}:<span v-html="item2.content"></span></p>
+                                    </div>
+                                    <div v-if="item2.multiWorktime==1" >
+                                        <p>{{$t('other.projectDuration')}}:{{item2.time.toFixed(1)}}h  <el-tag type="danger" size="mini" style="margin-left: 65px" v-if="item2.isOvertime === 1">{{ $t('other.WorkOvertime') }}<span v-if="item2.overtimeHours">{{item2.overtimeHours.toFixed(1)}}h</span></el-tag></p>
+                                        <div v-for="(timeItem, tIndex) in item2.worktimeList" :key="tIndex"
+                                            style="border: 0.5px #ddd solid;margin-bottom:5px;padding:5px;">
+                                            <p style="display: inline-block;">{{$t('time.duration')}}:
+                                                <span v-if="item2.reportTimeType == 2" style="margin-right:10px;">{{timeItem.startTime+'-'+timeItem.endTime}}</span>
+                                            {{timeItem.time.toFixed(1)}}h  
+                                            </p>
+                                            <p>{{$t('other.matters')}}:<span v-html="timeItem.content"></span></p>
+                                        </div>
+                                    </div>
+                                    <p v-if="item2.state == 1 && user.timeType.needEvaluate == 1">{{$t('other.evaluation')}}:<span v-html="item2.evaluate"></span></p>
+                                    
+                                    <!--照片的显示 -->
+                                    <p v-if="item2.pics != null && item2.pics.length > 0"> 
+                                        <el-image v-for="(pic, index) in item2.pics" :key="index"
+                                            style="width: 100px; height: 100px; margin-right:10px;"
+                                            :src="pic" 
+                                            :preview-src-list="item2.pics">
+                                        </el-image>
+                                    </p>
+                                </el-card>
+                            </div>
+                        </div>
+
                     </div>
-                    <div class="issue">
+                    <div class="issue" v-if="dynamicTab">
                         <!-- <el-input type="textarea" class="textareays" label-width="100%" label-height="140px"></el-input> -->
                         <div class="issue_fixation">
                             <div class="inputDeep"><el-input
@@ -1307,7 +1431,9 @@
                 
                 taskListPage: 1,
                 taskListSize: 20,
-                taskListTotal: 0
+                taskListTotal: 0,
+                dynamicTab: true,
+                dailyList: []
             };
             
         },
@@ -1317,6 +1443,29 @@
             }
         },
         methods: {
+            // 获取来自日报
+            getDailyList(id) {
+                this.http.post('/report/getTaskReportList',{ 
+                    // taskId: '22131'
+                    taskId: id
+                },
+                res => {
+                    if (res.code == "ok") {
+                        this.dailyList = res.data
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                });
+            },
             restrictNumber(targetId) {
                 let inpu = document.getElementById(targetId)
                 inpu.value = inpu.value.replace(/[^\d.]/g, "");  //仅保留数字和"."
@@ -2472,6 +2621,7 @@
                 this.getTaskProgressList(task.id); // 获取任务进展列表 
                 this.getUsers(); // 获取名单数据
                 this.gain(task); // 获取评论列表
+                this.getDailyList(task.id) // 获取来自日报
                 this.getRelationTaskList(1, task.id)
                 this.getTaskFileList(1,task.id)
             },  
@@ -2540,6 +2690,7 @@
                     sk.push(e.userName)
                 })
                 this.critic = new Set(sk)
+                console.log(this.critic, '参与人',this.critic.length)
             },
 
             // 点击发布
@@ -3403,6 +3554,30 @@
     };
 </script>
 
+<style lang="scss" scoped>
+    .Daily p {
+        margin: 0 !important;
+        padding: 0 0 10px 0 !important;
+    }
+    .sub-all {
+        div {
+            display: inline-block;
+            padding: 0 20px;
+            font-size: 20px;
+            cursor: pointer;
+        }
+        .subOn {
+            color: #66b1ff;
+        }
+    }
+    .DailyBody {
+        margin: 0 20px;
+    }
+    .Daily{
+        height: 120%;
+        overflow: auto;
+    }
+</style>
 
 <style >
 .taskCardCircleBox{

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

@@ -432,8 +432,11 @@
                         </div>
                     <!-- </span> -->
                     <div class="subject">
-                        <div class="sub-all">{{ $t('alldynamic') }}</div>
-                        <div class="sub-details" ref="main">
+                        <div class="sub-all">
+                            <div :class="dynamicTab ? 'subOn' : ''" @click="dynamicTab = true">{{ $t('alldynamic') }}</div>
+                            <div :class="dynamicTab ? '' : 'subOn'" @click="dynamicTab = false">{{ $t('lai-zi-ri-bao') }}</div>
+                        </div>
+                        <div class="sub-details" ref="main" v-if="dynamicTab">
                             <ul class="infinite-list" v-infinite-scroll="load" ref="contRoll">
                                 <div style="width: 100%" v-if="commentList.length <= 0">
                                     <img src="../../assets/image/xiao.png" alt="">
@@ -470,8 +473,129 @@
                                 </li>
                             </ul>
                         </div>
+
+                        <div class="Daily" v-if="!dynamicTab">
+                            <div class="one_daily_body DailyBody">
+                                <el-card shadow="never" v-for="(item2,index2) in dailyList" :key="index2" style="margin-bottom: 20px;">
+                                    <p>
+                                        {{ $t('tian-bao-ren') }}: <span v-if="user.userNameNeedTranslate != 1">{{item2.userName}}</span>
+                                        <span v-if="user.userNameNeedTranslate == 1">
+                                            <ww-open-data type='userName' :openid='item2.userName'></ww-open-data>
+                                        </span>
+                                    </p>
+                                    <p>{{ $t('other.approvalStatus') }}:
+                                        <span v-if="user.company.packageEngineering == 0">
+                                            <span style="margin-left:15px;color:#DAA520;"  v-if="item2.state == 0">[ 
+                                                <span v-if="item2.isDeptAudit==0">
+                                                    <span v-if="item2.projectAuditState==0">
+                                                        <!-- 待项目审核人 --> {{$t('other.waitForTheProjectReviewer')}}
+                                                        <span v-if="item2.projectAuditorName != null">(
+                                                            <span v-if="user.userNameNeedTranslate == '1'">
+                                                                <ww-open-data type='userName' :openid='item2.projectAuditorName'></ww-open-data>
+                                                            </span>
+                                                            <span v-if="user.userNameNeedTranslate != '1'">{{item2.projectAuditorName}}</span>
+                                                            )</span> 
+                                                        <!-- 审核 --> {{$t('other.audit')}}
+                                                    </span>
+                                                    <span style="color:#32CD32;" v-else-if="item2.projectAuditState==1">
+                                                        <!-- 项目审核人 --> {{$t('other.projectAuditor')}}
+                                                        <span v-if="item2.projectAuditorName != null">(
+                                                            <!-- {{item2.projectAuditorName}} -->
+                                                            <span v-if="user.userNameNeedTranslate == '1'">
+                                                                <ww-open-data type='userName' :openid='item2.projectAuditorName'></ww-open-data>
+                                                            </span>
+                                                            <span v-if="user.userNameNeedTranslate != '1'">{{item2.projectAuditorName}}</span>
+                                                            )</span>
+                                                        <!-- 审核通过 --> {{$t('state.approved')}}
+                                                    </span>
+                                                </span>
+                                                <span v-else-if="item2.isDeptAudit==1">
+                                                    ({{$t('other.await')}}
+                                                    <span v-if="user.userNameNeedTranslate == '1'">
+                                                        <ww-open-data type='departmentName' :openid='item2.auditDeptName'></ww-open-data>
+                                                    </span>
+                                                    <span v-if="user.userNameNeedTranslate != '1'">{{item2.auditDeptName}}</span>
+                                                    {{$t('other.audit')}})
+                                                </span>
+                                                ]</span> 
+                                            <span style="margin-left:15px;color:#DAA520;" v-else-if="item2.state == -1">[ {{$t('other.importWaitingForReview')}} ]</span>
+                                            <span style="margin-left:15px;color:#32CD32;" v-else-if="item2.state == 1">[ {{$t('state.alreadyPassed')}} ]
+                                                <span style="color:#c7e944" v-if="item2.reportAutoApprove == 1">{{$t('other.automaticReview')}}</span>
+                                            </span>
+                                            
+                                            <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 2">[ {{$t('state.rejected')}} ] {{$t('other.reason')}}:{{item2.rejectReason}}</span>
+                                            <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 3">[ {{$t('state.waitingsubmit')}} ]</span>
+                                        </span>
+                                        <span v-if="user.company.packageEngineering == 1">
+                                            <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == -1">[ {{$t('other.importWaitingForReview')}} ]</span>
+                                            <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == 0 && item2.departmentAuditState == -1">[ {{$t('other.waitingForProfessionalReview')}} ]</span>
+                                            <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == 0 && item2.departmentAuditState == 0">[ {{$t('other.waitingForDepartmentReview')}} ]</span>
+                                            <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == 0 && item2.departmentAuditState == 1">[ {{$t('other.waitForTheProjectReviewer')}}<span v-if="item2.projectAuditorName != null">
+                                                (
+                                                    <span v-if="user.userNameNeedTranslate != 1">
+                                                        {{item2.projectAuditorName}}
+                                                    </span>
+                                                    <span v-if="user.userNameNeedTranslate == 1">
+                                                        <ww-open-data type='userName' :openid='item2.projectAuditorName'></ww-open-data>
+                                                    </span>
+                                                )
+                                            </span>{{$t('other.audit')}} ]</span>
+                                            <span style="margin-left:15px;color:#32CD32;" v-else-if="item2.state == 1">[ {{$t('state.alreadyPassed')}} ]</span>
+                                            <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 2">[ {{$t('state.rejected')}} ] {{$t('other.reason')}}:{{item2.rejectReason}}</span>
+                                            <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 3">[ {{$t('state.waitingsubmit')}} ]</span>
+                                        </span>
+                                    </p>
+                                    <!-- 自定义日报文本 -->
+                                    <p v-if="user.timeType.customTextActive==1">{{user.timeType.customTextName}}:{{item2.customText}}</p>
+                                    <p v-if="user.company.packageEngineering == 1">
+                                        {{$t('other.professionalProgress')}}:
+                                        <span style="margin-right:10px;" v-for="progressItem in item2.professionProgress" :key="progressItem.id">{{progressItem.professionName}}({{progressItem.progress}}%) 
+                                            <el-tooltip v-if="progressItem.auditState == 0"  :content="$t('state.WaitingAudit')" effect="light" placement="top">
+                                            <i class="iconfont firerock-icondaibandengdaishenhe"></i>
+                                            </el-tooltip>
+                                            <el-tooltip v-if="progressItem.auditState == 1" :content="$t('state.alreadyPassed')" effect="light" placement="top">
+                                            <i  class="iconfont firerock-iconshenhetongguo"></i>
+                                            </el-tooltip>
+                                            <el-tooltip v-if="progressItem.auditState == 2" :content="$t('state.notThrough')" effect="light" placement="top">
+                                            <i  class="iconfont firerock-iconshenhebohui"></i>
+                                            </el-tooltip>
+                                            </span>
+                                    </p>
+                                    <div v-if="item2.multiWorktime==0">
+                                    <p style="display: inline-block;">{{$t('time.duration')}}:
+                                        <span v-if="item2.reportTimeType == 0" style="margin-right:10px;">{{typeList[item2.timeType]}}</span>
+                                        <span v-if="item2.reportTimeType == 2" style="margin-right:10px;">{{item2.startTime+'-'+item2.endTime}}</span>
+                                    {{item2.time.toFixed(1)}}h  
+                                    <el-tag type="danger" size="mini" style="margin-left: 65px" v-if="item2.isOvertime === 1">{{$t('other.WorkOvertime')}}<span v-if="item2.overtimeHours">{{item2.overtimeHours.toFixed(1)}}h</span></el-tag>
+                                    </p>
+                                    <p>{{$t('other.matters')}}:<span v-html="item2.content"></span></p>
+                                    </div>
+                                    <div v-if="item2.multiWorktime==1" >
+                                        <p>{{$t('other.projectDuration')}}:{{item2.time.toFixed(1)}}h  <el-tag type="danger" size="mini" style="margin-left: 65px" v-if="item2.isOvertime === 1">{{ $t('other.WorkOvertime') }}<span v-if="item2.overtimeHours">{{item2.overtimeHours.toFixed(1)}}h</span></el-tag></p>
+                                        <div v-for="(timeItem, tIndex) in item2.worktimeList" :key="tIndex"
+                                            style="border: 0.5px #ddd solid;margin-bottom:5px;padding:5px;">
+                                            <p style="display: inline-block;">{{$t('time.duration')}}:
+                                                <span v-if="item2.reportTimeType == 2" style="margin-right:10px;">{{timeItem.startTime+'-'+timeItem.endTime}}</span>
+                                            {{timeItem.time.toFixed(1)}}h  
+                                            </p>
+                                            <p>{{$t('other.matters')}}:<span v-html="timeItem.content"></span></p>
+                                        </div>
+                                    </div>
+                                    <p v-if="item2.state == 1 && user.timeType.needEvaluate == 1">{{$t('other.evaluation')}}:<span v-html="item2.evaluate"></span></p>
+                                    
+                                    <!--照片的显示 -->
+                                    <p v-if="item2.pics != null && item2.pics.length > 0"> 
+                                        <el-image v-for="(pic, index) in item2.pics" :key="index"
+                                            style="width: 100px; height: 100px; margin-right:10px;"
+                                            :src="pic" 
+                                            :preview-src-list="item2.pics">
+                                        </el-image>
+                                    </p>
+                                </el-card>
+                            </div>
+                        </div>
                     </div>
-                    <div class="issue">
+                    <div class="issue" v-if="dynamicTab">
                         <!-- <el-input type="textarea" class="textareays" label-width="100%" label-height="140px"></el-input> -->
                         <div class="issue_fixation">
                             <div class="inputDeep"><el-input
@@ -804,10 +928,35 @@ import { error } from 'dingtalk-jsapi';
                 groupName: '',
                 groupNameList: [],
                 departmentList: [],
-                deptId: []
+                deptId: [],
+                dynamicTab: true,
+                dailyList: []
             };
         },
         methods: {
+            // 获取来自日报
+            getDailyList(id) {
+                this.http.post('/report/getTaskReportList',{ 
+                    // taskId: '22131'
+                    taskId: id
+                },
+                res => {
+                    if (res.code == "ok") {
+                        this.dailyList = res.data
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                });
+            },
             judgedate(itemD){
                 let nowdate = new Date()
                 let idate = new Date(itemD + " 23:59:59")
@@ -1248,6 +1397,8 @@ import { error } from 'dingtalk-jsapi';
                 this.getTaskProgressList(task.id); // 获取任务进展列表 
                 this.getUsers(); // 获取名单数据
                 this.gain(task); // 获取评论列表
+                this.dynamicTab = true
+                this.getDailyList(task.id) // 获取来自日报
                 // this.getStageList()
             }, 
             addExecutorLine() {
@@ -1819,6 +1970,7 @@ import { error } from 'dingtalk-jsapi';
         mounted() {
             this.getList();
             this.getUsers();
+            // this.getDailyList()
             if(this.user.timeType.projectWithDept) {
                 this.getDepartmentList()
             }
@@ -1830,6 +1982,29 @@ import { error } from 'dingtalk-jsapi';
 </script>
 
 <style lang="scss" scoped>
+    .Daily p {
+        margin: 0 !important;
+        padding: 0 0 10px 0 !important;
+    }
+    .sub-all {
+        // display: flex;
+        div {
+            display: inline-block;
+            padding: 0 20px;
+            font-size: 20px;
+            cursor: pointer;
+        }
+        .subOn {
+            color: #66b1ff;
+        }
+    }
+    .DailyBody {
+        margin: 0 20px;
+    }
+    .Daily{
+        height: 120%;
+        overflow: auto;
+    }
 // .classification {
 //     width: 120px;
 //     // height: 100%;