Kaynağa Gözat

提交相关代码

Lijy 4 ay önce
ebeveyn
işleme
7c2a9d5063

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

@@ -6777,7 +6777,6 @@
             },
             // 按周填报里内容的填写点击确定
             setWeekProItemData() {
-                
                 //专业版模式下,任务分组和阶段必填
                 if (this.user.company.packageProject == 1 && this.user.companyId === 3917) {
                     if (!this.zhoBao.groupId || !this.zhoBao.stage) {
@@ -7107,7 +7106,9 @@
                     var zhi = this.zhoData[iss]
                     var he = 0
                     for(var i in zhi) {
-                        if(i != 'zhoDataTime' && i != 'he' && zhi[i].workingTime && zhi[i].workingTime.length > 0) {
+                        const workingTimeStr = zhi[i].workingTime ? zhi[i].workingTime + '' : ''
+                        if(i != 'zhoDataTime' && i != 'he' && zhi[i].workingTime && workingTimeStr.length > 0) {
+                            console.log('执行')
                             he += +zhi[i].workingTime
                         }
                     }

+ 116 - 5
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/weeklyReportReview.vue

@@ -75,7 +75,7 @@
           <el-table-column type="expand">
             <template slot-scope="props">
               <div style="padding: 10px 30px">
-                <el-table :data="props.row.dataList" style="width: 100%" border @selection-change="(e) => weeklyReportItemSelect(e, props.row)" :span-method="({rowIndex, columnIndex}) => mergeCellsRow({ rowIndex, columnIndex, dataLength: props.row.dataList.length, columnLength: props.row.dataList.length })">
+                <el-table :data="props.row.dataList" style="width: 100%" border @selection-change="(e) => weeklyReportItemSelect(e, props.row)" :span-method="({rowIndex, columnIndex}) => mergeCellsRow({ rowIndex, columnIndex, dataLength: props.row.dataList.length, columnLength: props.row.projectNameList.length })">
                   <el-table-column type="selection" width="55"></el-table-column>
                   <el-table-column label="日期" prop="userName">
                     <template slot-scope="scope">
@@ -85,7 +85,7 @@
                   <template v-for="(item, index) in props.row.projectNameList">
                     <el-table-column :label="item" prop="item" align="center">
                       <template slot-scope="scope">
-                        <el-link type="primary">
+                        <el-link type="primary" @click="viewDetails(scope.row.projectList[item])">
                           {{ scope.row.projectList[item] && scope.row.projectList[item].time + 'h' }}
                         </el-link>
                       </template>
@@ -304,6 +304,111 @@
               <el-button type="primary" @click="approveinfun()" v-else>{{ $t('btn.determine') }}</el-button>
           </div>
       </el-dialog>
+
+      <el-dialog title="查看详情" v-if="FilteredDataRowVisable" :visible.sync="FilteredDataRowVisable" :close-on-click-modal="false" customClass="customWidth" width="800px">
+          <div>
+            <el-card shadow="never">
+                <p>{{ $t('other.project') + ':' }}<b>{{FilteredDataRow.projectCode+'/'+FilteredDataRow.project}}<span v-if="FilteredDataRow.subProjectName != null"> / {{FilteredDataRow.subProjectName}}</span>
+                    <span style="margin-left:15px;color:#DAA520;" >[ 
+                        <span v-if="user.timeType.reportAuditType == 7">
+                            {{$t('other.reviewer')}}:<TranslationOpenData :configurationItems="{ openType: 'userName', openId: FilteredDataRow.projectAuditorName, renderIndex: 0 }" /><span v-if="FilteredDataRow.projectAuditState==1">√</span>
+                            <span v-if="FilteredDataRow.deptAuditorName">、</span>
+                            <TranslationOpenData :configurationItems="{ openType: 'userName', openId: FilteredDataRow.deptAuditorName, renderIndex: 0 }" /><span v-if="FilteredDataRow.departmentAuditState==1">√</span>
+                        </span>
+                        <span v-else>
+                            <span v-if="FilteredDataRow.isDeptAudit==0">
+                                <span v-if="FilteredDataRow.projectAuditState==0">
+                                    {{ user.companyId == 469?"待部门主管":$t('other.waitForTheProjectReviewer') }}<span v-if="FilteredDataRow.projectAuditorName != null">(
+                                        <!-- {{FilteredDataRow.projectAuditorName}} -->
+                                        <span v-if="user.userNameNeedTranslate == '1'"><TranslationOpenDataText type='userName' :openid='FilteredDataRow.projectAuditorName'></TranslationOpenDataText></span>
+                                        <span v-if="user.userNameNeedTranslate != '1'">{{FilteredDataRow.projectAuditorName}}</span>
+                                        )</span>{{ $t('other.audit') }}
+                                </span>
+                                <span style="color:#32CD32;" v-else-if="FilteredDataRow.projectAuditState==1">
+                                    {{ user.companyId == 469?"待部门主管":$t('other.projectAuditor') }}<span v-if="FilteredDataRow.projectAuditorName != null">(
+                                        <!-- {{FilteredDataRow.projectAuditorName}} -->
+                                        <span v-if="user.userNameNeedTranslate == '1'"><TranslationOpenDataText type='userName' :openid='FilteredDataRow.projectAuditorName'></TranslationOpenDataText></span>
+                                        <span v-if="user.userNameNeedTranslate != '1'">{{FilteredDataRow.projectAuditorName}}</span>
+                                    )</span>{{ $t('state.approved') }}
+                                </span>
+                            </span>
+                            <span v-else-if="FilteredDataRow.isDeptAudit==1">
+                                <!-- {{($t('other.await') +FilteredDataRow.auditDeptName+('('+FilteredDataRow.deptAuditorName+')')+ $t('other.audit'))}} -->
+                                ({{$t('other.await')}}
+                                <span v-if="user.userNameNeedTranslate == '1'"><TranslationOpenDataText type='departmentName' :openid='FilteredDataRow.auditDeptName'></TranslationOpenDataText></span>
+                                <span v-if="user.userNameNeedTranslate != '1'">{{FilteredDataRow.auditDeptName}}</span>
+                                (<span v-if="user.userNameNeedTranslate == '1'"><TranslationOpenDataText type='userName' :openid='FilteredDataRow.deptAuditorName'></TranslationOpenDataText></span>
+                                <span v-if="user.userNameNeedTranslate != '1'">{{FilteredDataRow.deptAuditorName}}</span>)
+                                {{$t('other.audit')}})
+                            </span>
+                        </span>]
+                    </span>
+                    </b>
+                </p>
+                <p v-if="user.timeType.reportAuditType == 6" >{{ $t('shenHeLiuCheng') }}<span v-if="FilteredDataRow.auditorList && FilteredDataRow.auditorList.length == 1">{{ $t('yiCengShenHe') }}(<span class="themeFontColor">{{ FilteredDataRow.auditorList[0].name }}</span>)</span>
+                <span v-if="FilteredDataRow.auditorList && FilteredDataRow.auditorList.length == 2">{{ $t('liangCengShenHe') }}(<span class="themeFontColor">{{ FilteredDataRow.auditorList[0].name }}->{{ FilteredDataRow.auditorList[1].name }}</span>)</span>
+                <el-button size="small" @click="viewOneReport(FilteredDataRow)" v-if="!FilteredDataRow.auditorList">{{ $t('cha-kan') }}</el-button>
+                </p>
+                <p v-if="user.timeType.customDegreeActive==1 && (FilteredDataRow.degree_id != null || FilteredDataRow.multiDegrId != '[]')">{{user.timeType.customDegreeName}}:{{FilteredDataRow.degreeName}}</p>
+                <p v-if="user.timeType.customDataActive==1">{{user.timeType.customDataName}}:{{FilteredDataRow.customData}}</p>
+                <p v-if="user.timeType.customTextActive==1">{{user.timeType.customTextName}}:{{FilteredDataRow.customText}}</p>
+                <p v-if="user.company.packageEngineering == 1">
+                    {{ $t('other.professionalProgress') +':'}} <span style="margin-right:10px;" v-for="progressItem in FilteredDataRow.professionProgressList" :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>
+                <p v-if="user.companyId == yuzhongCompId">
+                                        <span>{{ $t('jiao-se') }}:{{FilteredDataRow.extraField1? roleList.filter(r=>r.value == FilteredDataRow.extraField1)[0].label:''}}</span>
+                                    <span style="margin-left:10px;">{{ $t('gongZuoZhiZe') }}:{{ FilteredDataRow.extraField2? FilteredDataRow.extraField2Name:''}}</span>
+                                    <span style="margin-left:10px;">{{ $t('gongZuoNeiRong') }}:{{ FilteredDataRow.extraField3? FilteredDataRow.extraField3Name:''}}</span></p>
+                <p v-if="FilteredDataRow.taskId != null">{{$t('other.task')}}:{{FilteredDataRow.taskName}}
+                    <span style="margin-left:10px;" v-if="user.companyId==3092">-- {{ $t('fuWu') }}:{{ FilteredDataRow.sapServiceName }}</span></p>
+                <p v-if="FilteredDataRow.groupId">
+                    <span>{{$t('other.taskGroup')}}:{{FilteredDataRow.groupName}}</span>
+                    <!-- 阶段 -->
+                    <span v-if="FilteredDataRow.stage != null && user.companyId != yuzhongCompId" style="margin-left:10px;"> {{$t('other.inputStage')}}:{{FilteredDataRow.stage}}</span>
+                </p>
+                <p v-if="user.company.companyName == '成都明夷电子科技有限公司'">
+                    <span>{{ $t('lable.percentageOfTime') }} :{{ FilteredDataRow.progress }}%</span>
+                </p>
+                <p v-else>
+                    <span v-if="FilteredDataRow.multiWorktime==1">{{ $t('other.project') }}</span>
+                    <span>{{$t('time.duration')}}:</span>
+                    <span v-if="FilteredDataRow.startTime">{{ FilteredDataRow.startTime + '-' + FilteredDataRow.endTime }}</span>
+                    <span>{{FilteredDataRow.time.toFixed(1)}}h </span>
+                    <span class="propsbtn" v-if="FilteredDataRow.isOvertime === 1">
+                    <el-tag type="danger" size="mini" style="margin-left: 65px">{{ $t('other.WorkOvertime') }}<span v-if="FilteredDataRow.overtimeHours">{{FilteredDataRow.overtimeHours.toFixed(1)}}{{$t('time.hour')}}</span></el-tag></span>
+                </p>
+
+                <div v-if="FilteredDataRow.multiWorktime==0">
+                <p>{{ $t('other.matters') }}:<span v-html="FilteredDataRow.content"></span></p>
+                </div>
+                <div v-if="FilteredDataRow.multiWorktime==1" >
+                    <div v-for="(timeItem, tIndex) in FilteredDataRow.worktimeList" :key="tIndex"
+                        style="border: 0.5px #ddd solid;margin:5px 0px;padding:5px; ">
+                        <p style="line-height:20px;margin:5px 0px;">{{$t('time.duration')}}:
+                            <span v-if="FilteredDataRow.reportTimeType == 2" style="margin-right:10px;">{{timeItem.startTime+'-'+timeItem.endTime}}</span>
+                        {{timeItem.time.toFixed(1)}}h  
+                        <span v-if="timeItem.detail" style="margin-left:10px;"> {{timeItem.detail}} </span>
+                        </p>
+                        <p style="line-height:20px;margin:5px 0px;">{{ $t('other.matters') }}:<span v-html="timeItem.content"></span></p>
+                    </div>
+                </div>
+            </el-card>
+          </div>
+          <div slot="footer" class="dialog-footer">
+              <el-button  @click="FilteredDataRowVisable = false" >{{ $t('btn.cancel') }}</el-button>
+          </div>
+      </el-dialog>
   </div>
 </template>
 
@@ -399,7 +504,9 @@
                   reason: ''
               },
               undoBathFormLoading: false,
-              tableSelectRow: []
+              tableSelectRow: [],
+              FilteredDataRow: {},
+              FilteredDataRowVisable: false
           };
       },
       filters: {
@@ -410,8 +517,11 @@
           }
       },
       methods: {
+        viewDetails(row) {
+            this.FilteredDataRow = row
+            this.FilteredDataRowVisable = true
+        },
           showBatchRevocationVisable(row, index) {
-              console.log(row, '<===== 点击当前撤销')
               this.batchRevocationList = row.membdateList || []
               this.batchRevocationListIndex = index
               this.batchRevocationVisable = true
@@ -942,7 +1052,8 @@
                         let projectNameList = []
                         for(let i in daySummaryList) {
                           const projectList = (daySummaryList[i].projectList || [])
-                          projectNameList = projectNameList.concat(projectList.map(item => item.project))
+                          const projectNames = projectList.map(item => item.project)
+                          projectNameList = [...new Set([...projectNameList, ...projectNames])]
                         }
                         return {
                           ...item,