Explorar o código

填写日报,展现审批流

QuYueTing hai 1 día
pai
achega
78e2085d79

+ 25 - 20
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -328,7 +328,7 @@
         <div class="staff" ref="tabless" :style="'width:'+(windowWidth - 430)+'px'">
             <!--项目报表 -->
             <el-table v-if="ins == 0" key="0" border :data="list0" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
-                <el-table-column  prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : user.companyId == '7030' ? '项目令号' : $t('Itemno')"  width="120"></el-table-column>
+                <el-table-column  prop="projectCode" :label="$t('Itemno')"  width="120"></el-table-column>
                 <el-table-column  prop="projectMainName" label="主项目"  width="200" v-if="user.companyId == 4811"></el-table-column>
                 <el-table-column  prop="projectName" :label="$t('headerTop.projectName')" width="200">
                   <template slot-scope="scope" >
@@ -384,7 +384,7 @@
 
             <!-- 项目任务报表 -->
             <el-table v-if="ins == 1" key="1" border :data="list1" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;" :span-method="objectSpanMethod">
-                <el-table-column  prop="project_code" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')"  width="120"></el-table-column>
+                <el-table-column  prop="project_code" :label="$t('Itemno')"  width="120"></el-table-column>
                 <el-table-column  prop="project_name" :label="$t('headerTop.projectName')" width="200">
                   <template slot-scope="scope" >
                     <!-- {{scope.row.project_name}} -->
@@ -512,7 +512,7 @@
 
             <!--项目成本报表 -->
             <el-table v-if="ins == 2"  key="2" border :data="list2" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
-                <el-table-column  prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')"  width="120"></el-table-column>
+                <el-table-column  prop="projectCode" :label="$t('Itemno')"  width="120"></el-table-column>
                 <el-table-column  prop="projectName" :label="$t('headerTop.projectName')" >
                   <template slot-scope="scope" >
                     {{scope.row.projectName}}
@@ -559,7 +559,7 @@
 
             <!--项目收支平衡表 -->
             <el-table v-if="ins == 3"  key="3" border :data="list3" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
-                <el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')"  width="120"></el-table-column>
+                <el-table-column prop="projectCode" :label="$t('Itemno')"  width="120"></el-table-column>
                 <el-table-column  prop="projectMainName" label="主项目"  width="200" v-if="user.companyId == 4811"></el-table-column>
                 <el-table-column prop="projectName" :label="$t('headerTop.projectName')" >
                   <template slot-scope="scope" >
@@ -677,7 +677,7 @@
             <el-table v-if="ins == 5" border :data="list5" key="5"
             highlight-current-row v-loading="listLoading" :height="tableHeight"
              style="width: 100%;" ref="table">
-                <el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')"  width="120" fixed ></el-table-column>
+                <el-table-column prop="projectCode" :label="$t('Itemno')"  width="120" fixed ></el-table-column>
                 <el-table-column prop="projectName" :label="$t('headerTop.projectName')" width="240" fixed  >
                   <template slot-scope="scope" >
                     {{scope.row.projectName}}
@@ -710,7 +710,7 @@
             highlight-current-row v-loading="listLoading" :height="tableHeight"
              style="width: 66%;float:right;" ref="grouptable">
                 <el-table-column :label="$t('statisticsbyproject')" header-align="center">
-                  <el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" min-width="75"></el-table-column>
+                  <el-table-column prop="projectCode" :label="$t('Itemno')" min-width="75"></el-table-column>
                   <el-table-column prop="projectName" :label="$t('headerTop.projectName')" min-width="125"></el-table-column>
                   <el-table-column prop="groupName" :label="$t('groupname')" min-width="100"></el-table-column>
                   <el-table-column prop="workingTime" :label="$t('time.workingHours')+ '(h)'" min-width="50" align="right" header-align="center">
@@ -743,7 +743,7 @@
                       </div>
                     </template>
                   </el-table-column>
-                  <el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" width="220"></el-table-column>
+                  <el-table-column prop="projectCode" :label="$t('Itemno')" width="220"></el-table-column>
                   <el-table-column prop="projectName" :label="$t('headerTop.projectName')" width="220"></el-table-column>
                   <el-table-column prop="degreeName" :label="user.timeType.customDegreeName" width="180" v-if="user.timeType.customDegreeActive == 1"></el-table-column>
                   <el-table-column prop="username" :label="$t('lable.name')" width="120">
@@ -806,7 +806,7 @@
                 <!-- 按项目统计表 -->
                 <el-table v-if="overtimeTabActive === 'project'" key="6-project" border :data="projectOvertimeList" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
                   <el-table-column type="index" label="序号" width="80"></el-table-column>
-                  <el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" width="220"></el-table-column>
+                  <el-table-column prop="projectCode" :label="$t('Itemno')" width="220"></el-table-column>
                   <el-table-column prop="projectName" :label="$t('headerTop.projectName')" width="220"></el-table-column>
                   <el-table-column prop="workingTime" label="工作时长(h)" width="120" align="right">
                     <template slot-scope="scope">
@@ -884,7 +884,7 @@
             <!-- 工时成本预警表 -->
             <el-table v-if="ins == 7" key="7" border :data="baseCostList" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
             <!-- 当前总预算,已发生工时成本,xxx成本预算,xxx已发生成本,xxx已发生占比, yyy成本预算,yyy已发生成本,yyy已发生占比。 -->
-                <el-table-column  prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')"  width="120" fixed></el-table-column>
+                <el-table-column  prop="projectCode" :label="$t('Itemno')"  width="120" fixed></el-table-column>
                 <el-table-column  prop="projectName" :label="$t('headerTop.projectName')" min-width="200" fixed></el-table-column>
                 <el-table-column prop="baseCurcost" :label="$t('currenttotalbudget')" width="150" align="right">
                   <template slot-scope="scope">
@@ -1046,7 +1046,7 @@
 
             <!-- 项目成本基线表 -->
             <el-table v-if="ins == 13" key="13" border :data="outputValueList" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
-                <el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" min-width="150"></el-table-column>
+                <el-table-column prop="projectCode" :label="$t('Itemno')" min-width="150"></el-table-column>
                 <el-table-column prop="projectName" :label="$t('headerTop.projectName')" min-width="250"></el-table-column>
                 <el-table-column v-for="item in outputValueTitle" :key="item" :label="item" min-width="150" align="right">
                   <template slot-scope="scope">
@@ -1143,7 +1143,7 @@
 
             <!-- 项目各分组与阶段工时表 -->
             <el-table v-if="ins == 16"  key="16" border :data="groupingItemsArr" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
-                <el-table-column align="center" prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" min-width="150"></el-table-column>
+                <el-table-column align="center" prop="projectCode" :label="$t('Itemno')" min-width="150"></el-table-column>
                 <el-table-column align="center" prop="projectName" :label="$t('headerTop.projectName')" min-width="150"></el-table-column>
                 <el-table-column align="center" prop="groupName" :label="$t('other.taskGroup')" min-width="150"></el-table-column>
                 <el-table-column align="center" prop="workingTime" :label="$t('fen-zu-he-ji-gong-shi')" min-width="150"></el-table-column>
@@ -1168,7 +1168,7 @@
 
             <!-- 任务重启表 -->
             <el-table v-if="ins == 18"  key="18" border :data="taskRestartArr" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
-                <el-table-column align="center" prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" min-width="150"></el-table-column>
+                <el-table-column align="center" prop="projectCode" :label="$t('Itemno')" min-width="150"></el-table-column>
                 <el-table-column align="center" prop="projectName" :label="$t('headerTop.projectName')" min-width="150"></el-table-column>
                 <el-table-column align="center" prop="taskName" :label="$t('nameofthetask')" min-width="150"></el-table-column>
                 <el-table-column align="center" prop="restartReason" :label="$t('zhongQiYuanYin')" min-width="150"></el-table-column>
@@ -1191,7 +1191,7 @@
             <!-- FTE报表 -->
             <el-table v-if="ins == 19"  key="19" border :data="fTEDataList" highlight-current-row v-loading="listLoading" :height="+tableHeight - 1" style="width: 100%;" @sort-change="tableSort">
                 <el-table-column align="center" prop="area" :label="customName" min-width="150"></el-table-column>
-                <el-table-column align="center" prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" min-width="250"></el-table-column>
+                <el-table-column align="center" prop="projectCode" :label="$t('Itemno')" min-width="250"></el-table-column>
                 <el-table-column align="center" prop="projectName" :label="$t('headerTop.projectName')" min-width="250"></el-table-column>
                 <el-table-column align="center" prop="userName" :label="$t('renMing')" min-width="150" sortable="custom">
                   <template slot-scope="scope">
@@ -1358,7 +1358,7 @@
                 </template>
               </el-table-column>
               <el-table-column align="center" prop="projectName" :label="$t('headerTop.projectName')"></el-table-column>
-              <el-table-column align="center" prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')"></el-table-column>
+              <el-table-column align="center" prop="projectCode" :label="$t('Itemno')"></el-table-column>
               <el-table-column align="center" prop="residueTime" :label="$t('shengYuGongShiH')" width="150"></el-table-column>
             </el-table>
             <div class="packetConsumption" v-if="ins == 24" :style="`height:${tabPosition == 0 ? tableHeight : tableHeight + 50}px`" v-loading="listLoading">
@@ -1475,7 +1475,7 @@
             <el-table  v-if="ins == 25" :key="25" border :data="isbeCustomReport.consumptionScheduleTwo" highlight-current-row v-loading="listLoading" :height="(+tableHeight) - 1" style="width: 100%;" >
               <el-table-column align="center" prop="projectName" :label="$t('headerTop.projectName')" min-width="220"></el-table-column>
               <el-table-column align="center" prop="categoryName" :label="$t('projectclassification')" min-width="150"></el-table-column>
-              <el-table-column align="center" prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" min-width="150"></el-table-column>
+              <el-table-column align="center" prop="projectCode" :label="$t('Itemno')" min-width="150"></el-table-column>
               <el-table-column align="center" prop="planStartDate" :label="$t('starttimes')" min-width="150"></el-table-column>
               <el-table-column align="center" prop="planEndDate" :label="$t('deadline')" min-width="150"></el-table-column>
               <el-table-column align="center" prop="planHour" :label="$t('fenPeiGongShiH')" width="100"></el-table-column>
@@ -1545,7 +1545,7 @@
                 </template>
               </el-table-column>
               <el-table-column align="center" prop="projectName" :label="$t('headerTop.projectName')" min-width="150"></el-table-column>
-              <el-table-column align="center" prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" min-width="150"></el-table-column>
+              <el-table-column align="center" prop="projectCode" :label="$t('Itemno')" min-width="150"></el-table-column>
               <el-table-column align="center" prop="taskName" :label="$t('xiangMuRenWu')" min-width="150"></el-table-column>
               <el-table-column align="center" prop="planHour" :label="$t('jiHuaGongShiH')" min-width="150"></el-table-column>
               <el-table-column align="center" prop="consumeTime" :label="$t('xiaoHaoGongShiH')" min-width="150"></el-table-column>
@@ -1626,7 +1626,7 @@
             <!-- FTE 计划报表 -->
             <el-table v-if="ins == 30"  key="30" border :data="fTEPlanDataList" highlight-current-row v-loading="listLoading" :height="+tableHeight - 1" style="width: 100%;" @sort-change="tableSort">
               <el-table-column align="center" prop="area" :label="customName" min-width="150"></el-table-column>
-              <el-table-column align="center" prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" min-width="250"></el-table-column>
+              <el-table-column align="center" prop="projectCode" :label="$t('Itemno')" min-width="250"></el-table-column>
               <el-table-column align="center" prop="projectName" :label="$t('headerTop.projectName')" min-width="250"></el-table-column>
               <el-table-column align="center" prop="userName" :label="$t('renMing')" min-width="150" sortable="custom">
                 <template slot-scope="scope">
@@ -2019,7 +2019,7 @@
                   </template>
                 </el-table-column>
                 <el-table-column prop="projectName" :label="$t('headerTop.projectName')" width="200"></el-table-column>
-                <el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" width="200"></el-table-column>
+                <el-table-column prop="projectCode" :label="$t('Itemno')" width="200"></el-table-column>
                 <el-table-column prop="createDate" :label="$t('workovertimedate')" width="120"></el-table-column>
                 <el-table-column prop="workingTime" :label="$t('workinghoursoftheday')+ '(h)'" width="160"></el-table-column>
                 <el-table-column prop="overtimeHours" :label="$t('jia-ban-shi-chang')+ '(h)'" width="130"></el-table-column>
@@ -3546,7 +3546,12 @@ export default {
           sl.endDate = this.rangeDatas[1]
         } else if(this.ins == 35) {
           fName = `异常工时表.xlsx`
-          url = `/report/exportAbnormalWorkHours`
+          url = `/report/exportAbnormalReportList`
+          sl.startDate = this.rangeDatas[0]
+          sl.endDate = this.rangeDatas[1]
+          if(this.userId) {
+            sl.userId = this.userId
+          }
         }
         this.exportReportLoading = true
           this.http.post(url, sl,
@@ -5716,7 +5721,7 @@ export default {
       this.attachmentImages = attachments.map(item => {
         return {
           name: item,
-          url: `/upload/${item}`,
+          url: `/upload/${item}`+(item.indexOf('.')== -1?'.jpg':''),
           title: '附件照片'
         }
       })

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/packetConsumption/tables.vue

@@ -77,7 +77,7 @@
       </template>
       <template v-if="echartTableType == '表格'">
         <el-table :data="echartsTableData" border style="width: 100%" :height="(+tableHeight - 0) - 1" v-loading="echartsLoading" show-summary :summary-method="getSummaries">
-          <el-table-column prop="projectCode" :label="user.companyId='7030' ? '项目令号' : '项目编号'"></el-table-column>
+          <el-table-column prop="projectCode" label="项目编号"></el-table-column>
           <el-table-column prop="projectName" label="项目名称"></el-table-column>
           <el-table-column prop="workTime" label="时长(h)" width="180"></el-table-column>
         </el-table>

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/project/cost.vue

@@ -82,7 +82,7 @@
                 <template v-if="singleChoiceType == '项目'">
                     <el-radio-group v-model="nameNumber" size="small" @change="subtypeSwitching">
                         <el-radio-button label="1">{{ $t('headerTop.projectName') }}</el-radio-button>
-                        <el-radio-button label="2">{{ user.companyId == '7030' ? '项目令号' : '项目编号' }}</el-radio-button>
+                        <el-radio-button label="2">{{'项目编号' }}</el-radio-button>
                     </el-radio-group>
                 </template>
                 <template v-if="singleChoiceType == '部门' && this.parentDeptId">

+ 26 - 8
fhKeeper/formulahousekeeper/timesheet/src/views/project/financeComponents/salaryDetails.vue

@@ -13,6 +13,12 @@
                     <el-link type="primary" :underline="false" @click="audits()"
                         v-if="user.timeType.financeAudit == '1'">{{ revaelse }}</el-link>
                 </el-form-item>
+                <el-form-item label="薪酬类型" v-if="user.companyId <= 10 || user.companyId == 8555">
+                    <el-select v-model="salaryType" size="small" style="width:150px;" @change="loadMonthData">
+                        <el-option :value="0" label="计提工资"></el-option>
+                        <el-option :value="1" label="实发工资"></el-option>
+                    </el-select>
+                </el-form-item>
                 <el-form-item label="部门">
                     <el-cascader v-model="departmentId" :placeholder="$t('qing-xuan-ze-bu-men')" style="width: 160px" @change="loadMonthData"
                       :options="departmentArray" :props="{ checkStrictly: true,expandTrigger: 'hover' }" :show-all-levels="false"  clearable v-if="user.userNameNeedTranslate != 1" size="small"></el-cascader>
@@ -327,7 +333,7 @@
         <el-dialog :title="title" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false"
             customClass="customWidth" width="600px">
             <el-form ref="form1" :model="addForm" :rules="rules" label-width="100px">
-                <el-form-item :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')">
+                <el-form-item :label="$t('Itemno')">
                     <el-input v-model="addForm.code" :placeholder="$t('Pleaseentertheprojectnumber')"
                         clearable></el-input>
                 </el-form-item>
@@ -382,7 +388,7 @@
         </el-dialog>
 
         <!--导入时的设置界面 -->
-        <el-dialog :title="$t('Financialdataimport')" v-if="importDialog" :visible.sync="importDialog"
+        <el-dialog title="财务数据导入" v-if="importDialog" :visible.sync="importDialog"
             :close-on-click-modal="false" customClass="customWidth" width="550px">
             <el-form ref="form3" :model="importParam">
                 <el-form-item :label="$t('Itheimport')">
@@ -390,6 +396,11 @@
                     <el-date-picker v-model="date" type="month" :placeholder="$t('Selectmonth')" format="yyyy-MM"
                         value-format="yyyy-MM"></el-date-picker>
                 </el-form-item>
+                <el-form-item label="薪酬类型" v-if="user.companyId <= 10 || user.companyId == 8555">
+                    <el-select v-model="importParam.salaryType" >
+                        <el-option :value="0" label="计提工资"></el-option><el-option :value="1" label="实发工资"></el-option>
+                    </el-select>
+                </el-form-item>
                 <el-form-item prop="syncHistoryReport">
                     <el-checkbox :label="$t('Recalculatereportedcostsforthemonth')"
                         v-model="importParam.syncHistoryReport"></el-checkbox>
@@ -400,7 +411,7 @@
                     <el-checkbox :label="$t('Synchronizeemployeemonthlycosttorganizationalstructure')"
                         v-model="importParam.syncUserCost"></el-checkbox>
                 </el-form-item>
-                <el-form-item prop="isVerification">
+                <el-form-item prop="isVerification" v-if="!(user.companyId <= 10 || user.companyId == 8555)">
                     <el-checkbox label="是否为核销数据" v-model="importParam.isVerification"></el-checkbox> <span>(请确认模板中有计提奖金和奖金核销列)</span>
                 </el-form-item>
             </el-form>
@@ -820,6 +831,7 @@ export default {
     },
     data() {
         return {
+            salaryType: 1,
             proSettingChosenProjects: [],
             proSetting: {
                 ymonth: null, settingType: 0,
@@ -860,7 +872,7 @@ export default {
             hasNoProjectUsers: false,
             isUploading: false,
             importDialog: false,
-            importParam: { syncUserCost: true, syncHistoryReport: true, isVerification: false },
+            importParam: { syncUserCost: true, syncHistoryReport: true, isVerification: false, salaryType: 1 },
             user: JSON.parse(sessionStorage.getItem("user")),
             permissions: JSON.parse(sessionStorage.getItem("permissions")),
             userDetailVisible: false,
@@ -1164,7 +1176,8 @@ export default {
             this.isUploading = true;
             this.http.post('/finance/exportFinance', {
                 date: this.exportMonth,
-                deptId: this.departmentId[this.departmentId.length - 1]
+                deptId: this.departmentId[this.departmentId.length - 1],
+                salaryType: this.salaryType
             }, res => {
                 this.isUploading = false;
                 if (res.code == 'ok') {
@@ -1652,7 +1665,8 @@ export default {
             this.http.post('/finance/getTimeCost', { 
                 yearMonth: this.date, 
                 assignNoProUser: this.assignNoProUser,
-                deptId: this.departmentId[this.departmentId.length - 1]
+                deptId: this.departmentId[this.departmentId.length - 1],
+                salaryType: this.salaryType
             },
                 res => {
                     if (res.code == "ok") {
@@ -1788,7 +1802,8 @@ export default {
                 assignNoProUser: this.assignNoProUser,
                 groupByCategory: this.groupByCategory,
                 onlyTotal: this.personnelAllocation ? 1 : 0,
-                deptId: this.departmentId[this.departmentId.length - 1]
+                deptId: this.departmentId[this.departmentId.length - 1],
+                salaryType: this.salaryType
             },
                 res => {
                     this.exportDataProcessing = false;
@@ -1878,6 +1893,8 @@ export default {
                 formData.append("yearMonth", this.date);
                 formData.append("syncUserCost", this.importParam.syncUserCost);
                 formData.append("syncHistoryReport", this.importParam.syncHistoryReport);
+                formData.append("salaryType", this.importParam.salaryType)
+                
                 this.isUploading = true;
                 let urls = ''
                 if (this.user.timeType.financeAudit == '1') {
@@ -1957,7 +1974,8 @@ export default {
             this.http.post('/finance/getByMonth', {
                 companyId: this.user.companyId,
                 yearMonth: this.date,
-                deptId: this.departmentId[this.departmentId.length - 1]
+                deptId: this.departmentId[this.departmentId.length - 1],
+                salaryType: this.salaryType
             },
                 res => {
                     this.listLoading = false;

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/project/info.vue

@@ -28,7 +28,7 @@
                         </div></el-col>
                     </el-row>
                     <el-row :gutter="10">
-                        <el-col :span="5" ><div class="gray_label">{{ user.companyId == '7030' ? '项目令号' : $t('Itemno') }}: </div></el-col><el-col :span="7" ><div >{{project.projectCode}}&nbsp;</div></el-col>
+                        <el-col :span="5" ><div class="gray_label">{{ $t('Itemno') }}: </div></el-col><el-col :span="7" ><div >{{project.projectCode}}&nbsp;</div></el-col>
                         <el-col :span="5" v-if="permissions.projectContract"><div class="gray_label">{{ $t('contractamount') }}:</div></el-col>
                         <el-col :span="7" >
                         <div style="float:left;" v-if="permissions.projectContract">{{project.contractAmount == null?'-':project.contractAmount | numberToCurrency}} 元</div>
@@ -356,7 +356,7 @@
         <!--编辑基本信息界面-->
         <el-dialog :title="$t('jiebnxx')" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth" width="960px">
             <el-form ref="basicInfoForm" :model="addForm" :rules="rules" label-width="120px">
-                <el-form-item :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" >
+                <el-form-item :label="$t('Itemno')" >
                     <el-input v-model="addForm.code"  :placeholder="$t('peaseenterthe')" clearable :disabled="(!permissions.projectManagement && addForm.creatorId != user.id && !permissions.projectCodeAndName) || isShowProjectName"></el-input> 
                 </el-form-item>
                 <el-form-item :label="$t('headerTop.projectName')" prop="name">

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

@@ -12,7 +12,7 @@
                     <el-input v-model="keyword" class="input-with-select" @keyup.enter.native="searchList()" :placeholder="searchField == '1' ? $t('peaseenterthe') : $t('peaseenterthe')" clearable="true" size="small">
                         <el-select v-model="searchField" style="width:120px;"  slot="prepend" :placeholder="$t('defaultText.pleaseChoose')">
                             <el-option :label="$t('headerTop.projectName')" value=1 ></el-option>
-                            <el-option :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" value=2 ></el-option>
+                            <el-option :label="$t('Itemno')" value=2 ></el-option>
                         </el-select>
                         <el-button slot="append" @click="searchList" icon="el-icon-search"></el-button>
                     </el-input>
@@ -175,7 +175,7 @@
         <el-table ref="projectlistOfWudulist" border @cell-mouse-enter="hoverCall" @cell-mouse-leave="handCall" :cell-class-name="tableCellClassName" :data="list" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;" @selection-change="checkedWudulist" @sort-change="tableSort">
             <el-table-column type="selection" width="60" :selectable="isSelectable">
             </el-table-column>
-            <el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" sortable="custom" width="150"></el-table-column>
+            <el-table-column prop="projectCode" :label="$t('Itemno')" sortable="custom" width="150"></el-table-column>
             <el-table-column prop="projectMainName" :label="$t('zhu-xiang-mu')" sortable="custom" min-width="250" v-if="user.timeType.mainProjectState == '1'">
             </el-table-column>
             <el-table-column prop="contractCode" :label="$t('contractno')" width="200" v-if="user.companyId == '936'">
@@ -402,11 +402,11 @@
         <el-dialog :title="title" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth" width="960px" :top="'6vh'">
             <div style="height: 72vh;overflow-y: auto;overflow-x: hidden;">
                 <el-form ref="form1" :model="addForm" :rules="user.companyId == 7783?zysbRules:rules" label-width="120px">
-                    <el-form-item :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" :class="title == $t('newproject')" v-if="user.companyId!=936">
+                    <el-form-item :label="$t('Itemno')" :class="title == $t('newproject')" v-if="user.companyId!=936">
                         <!-- <el-input v-model="addForm.code" :disabled="!permissions.projectManagement && addForm.creatorId != user.id" placeholder="请输入项目编号" clearable></el-input> -->
                         <el-input v-model="addForm.code" :placeholder="$t('peaseenterthe')" clearable :disabled="canOnlyModParticipator || (!permissions.projectManagement && addForm.creatorId != user.id && !permissions.projectCodeAndName)" maxlength="50" show-word-limit="true"></el-input>
                     </el-form-item>
-                    <el-form-item :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" :class="title == $t('newproject') && user.companyId == 936 ? 'wpgCssClass' : ''" v-if="user.companyId==936" prop="code">
+                    <el-form-item :label="$t('Itemno')" :class="title == $t('newproject') && user.companyId == 936 ? 'wpgCssClass' : ''" v-if="user.companyId==936" prop="code">
                         <!-- <el-input v-model="addForm.code" :disabled="!permissions.projectManagement && addForm.creatorId != user.id" placeholder="请输入项目编号" clearable></el-input> -->
                         <el-input v-model="addForm.code" :placeholder="$t('peaseenterthe')" clearable :disabled="canOnlyModParticipator || (!permissions.projectManagement && addForm.creatorId != user.id && !permissions.projectCodeAndName) || isShowProjectName" maxlength="50" show-word-limit="true"></el-input>
                     </el-form-item>
@@ -856,7 +856,7 @@
             <el-table ref="projectForSubCopy" border @cell-mouse-enter="hoverCall" @cell-mouse-leave="handCall" :cell-class-name="tableCellClassName" :data="forSubProjectlist" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;" @selection-change="checkedProlistForSub" @sort-change="tableSort">
                 <el-table-column type="selection" width="60" >
                 </el-table-column>
-                <el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')"  width="150"></el-table-column>
+                <el-table-column prop="projectCode" :label="$t('Itemno')"  width="150"></el-table-column>
                 <el-table-column prop="projectName" :label="$t('headerTop.projectName')" min-width="250">
                 </el-table-column>
             </el-table>
@@ -871,7 +871,7 @@
         <el-dialog :title="$t('modifysubproject')" v-if="addSubProject" :visible.sync="addSubProject" :close-on-click-modal="false" customClass="customWidth" width="500px">
             <el-form ref="form2" :model="temaddForm" :rules="rules" label-width="100px">
                 <!-- <el-form-item label="项目编号" prop="code"> -->
-                <el-form-item :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')">
+                <el-form-item :label="$t('Itemno')">
                     <el-input v-model="temaddForm.code" :placeholder="$t('peaseenterthe')" clearable></el-input>
                 </el-form-item>
                 <el-form-item :label="$t('headerTop.projectName')" prop="name">

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/project/project_gantt.vue

@@ -86,7 +86,7 @@
 
   <div class="demand-container" v-if="!isDataLoaded">
     <el-table height="75vh" :loading="demandListLoading" :data="demandList">
-      <el-table-column :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" prop="projectCode" width="160"></el-table-column>
+      <el-table-column :label="$t('Itemno')" prop="projectCode" width="160"></el-table-column>
       <el-table-column :label="$t('headerTop.projectName')" prop="projectName" min-width="240"></el-table-column>
       <el-table-column :label="$t('jin-qi-ri-huo-yue-ren-yuan')" prop="activeUsers" min-width="240">
         <template slot-scope="scope">

+ 37 - 36
fhKeeper/formulahousekeeper/timesheet/src/views/projectApproval/projectApproval.vue

@@ -9,7 +9,7 @@
                     <el-input v-model="keyword" class="input-with-select" @keyup.enter.native="searchList" :placeholder="searchField == '1' ? $t('peaseenterthe') : $t('peaseenterthe')" clearable="true" size="small">
                         <el-select v-model="searchField" style="width:120px;"  slot="prepend" :placeholder="$t('defaultText.pleaseChoose')">
                             <el-option :label="$t('headerTop.projectName')" value=1 ></el-option>
-                            <el-option :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" value=2 ></el-option>
+                            <el-option :label="$t('Itemno')" value=2 ></el-option>
                         </el-select>
                         <el-button slot="append" @click="searchList" icon="el-icon-search"></el-button>
                     </el-input>
@@ -50,7 +50,7 @@
                     <el-table ref="projectlistOfWudulist" border @cell-mouse-enter="hoverCall" @cell-mouse-leave="handCall" :cell-class-name="tableCellClassName" :data="list" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;" @selection-change="checkedWudulist">
                         <el-table-column type="selection" width="60" :selectable="isSelectable">
                         </el-table-column>
-                        <el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')"  width="150"></el-table-column>
+                        <el-table-column prop="projectCode" :label="$t('Itemno')"  width="150"></el-table-column>
                         <el-table-column prop="projectName" :label="$t('headerTop.projectName')" min-width="250" sortable="custom">
                             <template slot-scope="scope">
                                 <div> 
@@ -103,7 +103,7 @@
                                 <el-button size="mini" type="primary" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck)&&scope.row.status!=1" :disabled="(scope.row.status!==-1&& scope.row.status!==2) || user.id!== scope.row.creatorId"    @click="handleAdd(scope.$index, scope.row)">{{'编辑'}}</el-button>
                                 <el-button size="mini" type="success" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck) && scope.row.status==0" :disabled="!scope.row.isFirstCheckUser"  @click="check(scope.row,1)" >{{'通过'}}</el-button>
                                 <el-button size="mini" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck) && scope.row.status==0" :disabled="!scope.row.isFirstCheckUser"  @click="showDenyDialog(scope.row,2)">{{'驳回'}}</el-button>
-                                <!-- <el-button size="mini" v-if="(permissions.projectApprovalEdit ||permissions.projectApprovalCheck) && scope.row.status==-1" @click="check(scope.row,3)">{{'撤销'}}</el-button> -->
+                                <el-button size="mini" type="danger" v-if="permissions.projectApprovalEdit" @click="deletePro(scope.row)">删除</el-button>
                             </template>
                         </el-table-column>
                     </el-table>
@@ -126,7 +126,7 @@
                     <el-dialog :title="title" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth" width="960px" :top="'6vh'">
                         <div style="height: 72vh;overflow-y: auto;overflow-x: hidden;">
                             <el-form ref="form1" :model="addForm" :rules="rules" label-width="120px">
-                                <el-form-item :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" :class="title == $t('newproject')" v-if="user.companyId!=936">
+                                <el-form-item :label="$t('Itemno')" :class="title == $t('newproject')" v-if="user.companyId!=936">
                                     <!-- <el-input v-model="addForm.code" :disabled="!permissions.projectManagement && addForm.creatorId != user.id" placeholder="请输入项目编号" clearable></el-input> -->
                                     <el-input v-model="addForm.code" :placeholder="$t('peaseenterthe')" clearable :disabled="canOnlyModParticipator || (!permissions.projectManagement && addForm.creatorId != user.id && !permissions.projectCodeAndName)" maxlength="50" show-word-limit="true"></el-input>
                                 </el-form-item>
@@ -250,20 +250,6 @@
                                     <div style="padding: 7px 0; ">
                                         <span class="themeFontColor" style="font-size: 17px;">{{'审核人'}}</span>
                                     </div>
-                                    <!-- <div >
-                                        <div  v-for="(item, index) in pointList" :key="index" >
-                                        第{{index+1}}审核人:
-                                        <el-select  v-if="user.userNameNeedTranslate != 1" :disabled="item.status!=0" v-model="item.userId" style="width:140px;" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="manageSelect" size="small" filterable popper-class="managePopperClass">
-                                            <el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id">
-                                                <span style="float: left">{{ item.name }}</span>
-                                            </el-option>
-                                        </el-select> 
-                                        <selectCat v-if="user.userNameNeedTranslate == 1" :size="'medium'" :subject="participator" :subjectId="item.userId" :distinction="'12'" @selectCal="selectCal" :disabled="canOnlyModParticipator || projectManagerEdit || isShowProjectName"></selectCat>
-                                        <i class="el-icon-circle-plus-outline" @click="addInput(index)" v-if="index==pointList.length-1"></i>
-                                        <i class="el-icon-remove-outline" v-if="pointList.length>1 && item.status==0"  @click="deleteInput(index)"></i>
-                                        <span>{{item.status==0?'待审核':item.status==1?"已审核":"已驳回"}}</span>
-                                        </div>
-                                    </div> -->
                                     <div>
                                         <div v-for="(item, index) in pointList" :key="index" style="margin-bottom: 10px; padding: 10px; border: 1px solid #e0e0e0; border-radius: 5px;">
                                             第{{index + 1}}审核人:
@@ -282,7 +268,7 @@
                             </el-form>  
                         </div>
                         <div slot="footer" class="dialog-footer;">
-                            <el-button @click.native="deletePro(1, addForm)" v-if="(permissions.projectApprovalEdit) && addForm.id" style="float:left">{{ $t('btn.delete') }}</el-button>
+                            <el-button @click.native="deletePro(addForm)" v-if="(permissions.projectApprovalEdit) && addForm.id" style="float:left">{{ $t('btn.delete') }}</el-button>
                             <el-button @click.native="addFormVisible = false">{{ $t('btn.cancel') }}</el-button>
                             <el-button type="primary" :disabled="addForm.status != -1 && addForm.status != 2 " @click="tempSave" :loading="addLoading">{{ $t('btn.temporaryStorage') }}</el-button>
                             <el-button type="primary" @click="submitInsert" :loading="addLoading">{{ $t('btn.submit') }}</el-button>
@@ -349,24 +335,24 @@
                     </el-dialog>
 
                     <!--查看立项-->
-                    <el-dialog :title="$t('Checkthedetails')" v-if="projectApprovalDetailVisible" :visible.sync="projectApprovalDetailVisible" :close-on-click-modal="false" customClass="customWidth" width="800px">
-                        <el-row :gutter="10" >
-                            <el-col :span="5" ><div class="gray_label">{{user.companyId='7030' ? '项目令号:' : '项目编号:'}}</div></el-col>
+                    <el-dialog title="查看详情" v-if="projectApprovalDetailVisible" :visible.sync="projectApprovalDetailVisible" :close-on-click-modal="false" customClass="customWidth" width="800px">
+                        <el-row :gutter="10" class="detail-row">
+                            <el-col :span="5" ><div class="gray_label">{{'项目编号:'}}</div></el-col>
                             <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.projectCode}}</div></el-col>
                             <el-col :span="5" ><div class="gray_label">{{'项目名称:'}}</div></el-col>
                             <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.projectName}}</div></el-col>
                         </el-row>
-                        <el-row :gutter="10" >
+                        <el-row :gutter="10" class="detail-row">
                             <el-col :span="5" ><div class="gray_label">{{'项目分类:'}}</div></el-col>
                             <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.categoryName}}</div></el-col>
                             <el-col :span="5" ><div class="gray_label">{{'项目类型:'}}</div></el-col>
                             <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.isPublic==0?"正式项目":"非项目"}}</div></el-col>
                         </el-row>
-                        <el-row :gutter="10" >
+                        <el-row :gutter="10" class="detail-row">
                             <el-col :span="3" ><div class="gray_label">{{'项目描述:'}}</div></el-col>
                             <el-col :span="21" ><div class="gray_label ">{{projectApprocalDetail.projectDesc}}</div></el-col>
                         </el-row>
-                        <el-row :gutter="10" >
+                        <el-row :gutter="10" class="detail-row">
                             <el-col :span="3" ><div class="gray_label">{{'全部参与人:'}}</div></el-col>
                             <el-col :span="21" ><div class="gray_label ">
                                 <span v-for="(par, index) in projectApprocalDetail.participationApprovalList" :key="par.userId">
@@ -380,7 +366,7 @@
                             </span>
                             </div></el-col>
                         </el-row>
-                        <el-row :gutter="10" >
+                        <el-row :gutter="10" class="detail-row">
                             <el-col :span="5" ><div class="gray_label">{{'项目经理:'}}</div></el-col>
                             <el-col :span="7" ><div class="gray_label " > 
                                 <span v-if="user.userNameNeedTranslate != 1">{{projectApprocalDetail.inchargerName}}</span>
@@ -400,13 +386,13 @@
                             </span>
                             </div></el-col>
                         </el-row>
-                        <el-row :gutter="10" >
+                        <el-row :gutter="10" class="detail-row">
                             <el-col :span="5" ><div class="gray_label">{{'级别:'}}</div></el-col>
                             <el-col :span="7" ><div class="gray_label ">{{importanceListLable[projectApprocalDetail.level-1]}}</div></el-col>
                             <el-col :span="5" ><div class="gray_label">{{'合同金额:'}}</div></el-col>
                             <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.contractAmount}}</div></el-col>
                         </el-row>
-                        <el-row :gutter="10" >
+                        <el-row :gutter="10" class="detail-row">
                             <el-col :span="5" ><div class="gray_label">{{'计划开始日期:'}}</div></el-col>
                             <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.planStartDate}}</div></el-col>
                             <el-col :span="5" ><div class="gray_label">{{'计划结束日期:'}}</div></el-col>
@@ -414,20 +400,20 @@
                         </el-row>
                        
                         <el-divider></el-divider>
-                        <el-row :gutter="10" >
-                            <el-col :span="24" ><div class="gray_label">{{'成本基线'}}</div></el-col>
+                        <el-row :gutter="10" class="detail-row">
+                            <el-col :span="24" ><div class="gray_label section-title">{{'成本基线'}}</div></el-col>
                         </el-row>
             
-                        <div class="gray_label" v-for="(item,index) in projectApprocalDetail.projectApprovalBasecostList">
+                        <div class="gray_label detail-item" v-for="(item,index) in projectApprocalDetail.projectApprovalBasecostList" :key="index">
                             <span>{{item.baseName+":"}}</span><span>{{item.baseAmount}}</span>
                         </div>
                         <el-divider></el-divider>
 
-                        <el-row :gutter="10" >
-                            <el-col :span="24" ><div class="gray_label">{{'操作记录'}}</div></el-col>
+                        <el-row :gutter="10" class="detail-row">
+                            <el-col :span="24" ><div class="gray_label section-title">{{'操作记录'}}</div></el-col>
                         </el-row>
         
-                        <div class="gray_label" v-for="(item,index) in approvalLogData">
+                        <div class="gray_label detail-item" v-for="(item,index) in approvalLogData" :key="index">
                             <span v-if="user.userNameNeedTranslate != 1">{{item.userName}} {{item.createTime}} {{approvalTypeStr[item.type]}}{{ $t('leRiBao') }}</span>
                             <span v-if="user.userNameNeedTranslate == 1"><TranslationOpenDataText type='userName' :openid='item.userName'></TranslationOpenDataText> {{item.createTime}}{{approvalTypeStr[item.type]}}{{ $t('leRiBao') }}</span>
                         </div>
@@ -1493,8 +1479,8 @@ methods: {
         // console.log(this.searchField)
         this.getList()
     },
-    deletePro(i, item) {
-        this.$confirm(this.$t('queDingYaoShanChuLiXiang')+'[' + item.name +this.$t('ma')+']',this.$t('shanChuLiXiang'), {
+    deletePro(item) {
+        this.$confirm(this.$t('queDingYaoShanChuLiXiang')+'[' + (item.name||item.projectName) +this.$t('ma')+']',this.$t('shanChuLiXiang'), {
             confirmButtonText: this.$t('btn.determine'),
             cancelButtonText: this.$t('btn.cancel'),
             type: "warning"
@@ -1689,5 +1675,20 @@ methods: {
 .gray_label {
     color:#999 !important;
     min-height: 20px;
+    line-height: 1.8;
+}
+
+.detail-row {
+    margin-bottom: 10px;
+}
+
+.detail-item {
+    padding: 8px 0;
+    line-height: 2;
+}
+
+.section-title {
+    font-weight: 600;
+    margin-bottom: 8px;
 }
 </style>

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/settings/timetype.vue

@@ -248,7 +248,7 @@
                     </el-form>
                     <div class="underpanel">
                         <div class="whiteList_head">
-                            <span style="float:left;color:#999">{{ $t('personneltoset') }}</span>
+                            <span style="float:left;color:#999">不提醒/无需填报人员设置</span>
                             <el-link type="primary" style="float:left;margin-left:15px" :underline="false" @click="addWhite('personnel')">{{ $t('addTian') }}</el-link>
                         </div>
                         <div class="whiteList_content">

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

@@ -656,16 +656,36 @@
                             <el-form-item v-if="user.timeType.reportAuditType != 3 && user.timeType.reportAuditType != 5 && domain.auditUserList.length > 0">
                                 <template slot="label">
                                     <span style="color:#FF0000;">*</span>
-                                    <span >{{$t('other.projectAuditor')}}</span>
+                                    <span>审核人</span>
+                                </template>
+                                <!-- 按审批流显示审核人-->
+                                <template v-if="user.timeType.reportWorkflow">
+                                    <span v-for="(nodeItem, nodeIndex) in domain.auditWorkflow">
+                                        <span v-if="nodeItem.isDeptAudit">
+                                            <el-tag v-if="user.userNameNeedTranslate != '1'">{{ nodeItem.auditDeptManagerName }}</el-tag>
+                                            <el-tag v-else><TranslationOpenDataText type='userName' :openid='nodeItem.auditDeptManagerName'></TranslationOpenDataText></el-tag>
+                                        </span>
+                                        <span v-else>
+                                            <el-select v-model="domain.projectAuditorId" :disabled="!domain.canEdit" @change="$forceUpdate()" v-if="user.userNameNeedTranslate != '1'" style="width:100px;">
+                                                <el-option v-for="item in domain.auditUserList" :label="item.auditorName" :value="item.auditorId" :key="item.id">
+                                                    <span style="float: left" v-if="user.userNameNeedTranslate == '1'"><TranslationOpenDataText type='userName' :openid='item.auditorName'></TranslationOpenDataText></span>
+                                                    <span style="float: left" v-if="user.userNameNeedTranslate != '1'">{{item.auditorName}}</span>
+                                                </el-option>
+                                            </el-select>
+                                            <selectCat v-if="user.userNameNeedTranslate == '1'" :size="'medium'" :subject="domain.auditUserList" :idx="index" :subjectId="domain.projectAuditorId" ref="selectCat" :flg="domain.projectAuditorId ? true : false" :flgs="true" @selectCatCli="selectCatCli" :disabled="!domain.canEdit"></selectCat>
+                                        </span>
+                                        <i class="el-icon-right" v-if="nodeIndex < domain.auditWorkflow.length-1" style="margin:0 10px;"></i>
+                                    </span>
+                                </template>
+                                <template v-else>
+                                    <el-select v-model="domain.projectAuditorId" :disabled="!domain.canEdit" @change="$forceUpdate()" v-if="user.userNameNeedTranslate != '1'" style="width:200px;">
+                                        <el-option v-for="item in domain.auditUserList" :label="item.auditorName" :value="item.auditorId" :key="item.id">
+                                            <span style="float: left" v-if="user.userNameNeedTranslate == '1'"><TranslationOpenDataText type='userName' :openid='item.auditorName'></TranslationOpenDataText></span>
+                                            <span style="float: left" v-if="user.userNameNeedTranslate != '1'">{{item.auditorName}}</span>
+                                        </el-option>
+                                    </el-select>
+                                    <selectCat v-if="user.userNameNeedTranslate == '1'" :size="'medium'" :subject="domain.auditUserList" :idx="index" :subjectId="domain.projectAuditorId" ref="selectCat" :flg="domain.projectAuditorId ? true : false" :flgs="true" @selectCatCli="selectCatCli" :disabled="!domain.canEdit"></selectCat>
                                 </template>
-                                
-                                <el-select v-model="domain.projectAuditorId" :disabled="!domain.canEdit" @change="$forceUpdate()" v-if="user.userNameNeedTranslate != '1'" style="width:200px;">
-                                    <el-option v-for="item in domain.auditUserList" :label="item.auditorName" :value="item.auditorId" :key="item.id">
-                                        <span style="float: left" v-if="user.userNameNeedTranslate == '1'"><TranslationOpenDataText type='userName' :openid='item.auditorName'></TranslationOpenDataText></span>
-                                        <span style="float: left" v-if="user.userNameNeedTranslate != '1'">{{item.auditorName}}</span>
-                                    </el-option>
-                                </el-select>
-                                <selectCat v-if="user.userNameNeedTranslate == '1'" :size="'medium'" :subject="domain.auditUserList" :idx="index" :subjectId="domain.projectAuditorId" ref="selectCat" :flg="domain.projectAuditorId ? true : false" :flgs="true" @selectCatCli="selectCatCli" :disabled="!domain.canEdit"></selectCat>
                             </el-form-item>
                         </div>
                         <el-form-item v-if="user.companyId == yuzhongCompId">
@@ -1220,7 +1240,7 @@
                 </div>
 
                 <div class="zhoFel" v-if="user.timeType.reportAuditType == 0 || user.timeType.reportAuditType == 4">
-                    <p>{{$t('other.reviewer')}}</p>
+                    <p>审核人</p>
                     <el-select v-model="zhoBao.projectAuditorId" v-if="user.userNameNeedTranslate != 1" :placeholder="$t('defaultText.pleaseChoose')" clearable="true" style="width: 355px">
                         <el-option v-for="item in zhoBao.auditUserList" :key="item.id" :label="item.auditorName" :value="item.auditorId"></el-option>
                     </el-select>
@@ -1840,6 +1860,76 @@
           <el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isFlag" :title="$t('message.loading')+'...'" type="success" center :closable="false" show-icon></el-alert>
           <el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isMore" :title="$t('message.noMoreData')" type="success" center show-icon></el-alert>
         </el-tab-pane>
+
+        <el-tab-pane label="缺考勤人员列表" name="fifth" v-if="(user.timeType.syncCorpwxTime==1 || user.timeType.syncFanwei == 1 || user.timeType.syncDingding == 1) && user.companyId!=5978">
+          <div class="selectworktime_export" style="margin-top:10px">
+            <div class="selectworktime_export_l">
+              <el-date-picker
+              class="selecteworktime_datapick"
+              v-model="WorktimeDatepickValue"
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              align="right"
+              unlink-panels
+              :range-separator="$t('other.to')"
+              :start-placeholder="$t('time.startDate')"
+              :end-placeholder="$t('time.endDate')"
+              :default-time="['12:00:00', '12:00:00']"
+              size="small"
+              popper-class="selecteorktime_datapick_popper"
+              @change="showMissingCardTimeUserList()"
+            >
+              </el-date-picker>
+              
+              <el-button size="small" @click="getDoubleLastWeek(3)">{{$t('time.twoWeeksAgo')}}</el-button>
+              <el-button size="small" @click="getLastWeek(3)">{{$t('time.lastWeek')}}</el-button>
+              <el-button size="small" @click="getThisWeek(3)">{{$t('time.nextWeek')}}</el-button>
+            </div>
+            <div>
+                <el-cascader v-if="user.userNameNeedTranslate != 1" :size="'small'" v-model="deptIdForNoReport" :placeholder="$t('qing-xuan-ze-bu-men')" :options="departmentList" :props="{ checkStrictly: true, value: 'id' }" clearable style="width: 200px;" @change="showMissingCardTimeUserList()"></el-cascader>
+                    <vueCascader :size="'small'" :widthStr="'200'" :clearable="true" :subject="trandepartmentList" :radios="true" :distinction="'18'" @vueCasader="vueCasader" v-if="user.userNameNeedTranslate == 1" :selectNameChuan="$t('other.allDepartments')"></vueCascader>
+                <el-link
+                    type="primary"
+                    style="float: right; vertical-align: middle;height:32px"
+                    @click="exportMissingCardTimeUserList()"
+                    >{{$t('export.exportData')}}</el-link
+                >
+            </div>
+          </div>
+          <el-table
+            ref="hasworkTbl5"
+            :data="missingCardTimeUserListData"
+            border
+            :height="'70vh'"
+            highlight-current-row
+            style="width: 100%"
+            v-loading="tbload"
+            lazy
+          >
+            <el-table-column min-width="150" :label="$t('lable.department')" prop="departmentName">
+                <template slot-scope="scope">
+                    <span v-if="user.userNameNeedTranslate == 1"><TranslationOpenDataText type='departmentName' :openid='scope.row.departmentName'></TranslationOpenDataText></span>
+                    <span v-if="user.userNameNeedTranslate != 1">{{scope.row.departmentName}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column min-width="150" prop="userName" :label="$t('lable.name')" >
+                <template slot-scope="scope">
+                    <span v-if="user.userNameNeedTranslate == 1"><TranslationOpenDataText type='userName' :openid='scope.row.userName'></TranslationOpenDataText></span>
+                    <span v-if="user.userNameNeedTranslate != 1">{{scope.row.userName}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column
+              min-width="200"
+              label="缺勤日期"
+              align="center"
+              prop="workDate"
+            >
+            </el-table-column>
+          </el-table>
+          <el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isFlag" :title="$t('message.loading')+'...'" type="success" center :closable="false" show-icon></el-alert>
+          <el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isMore" :title="$t('message.noMoreData')" type="success" center show-icon></el-alert>
+        </el-tab-pane>
+
         <el-tab-pane :label="$t('cardtimenotfull')" name="fourth" v-if="(user.timeType.syncCorpwxTime==1 || user.timeType.syncFanwei == 1 || user.timeType.syncDingding == 1) && user.companyId!=5978">
           <div class="selectworktime_export" style="margin-top:10px">
             <div class="selectworktime_export_l">
@@ -2819,7 +2909,8 @@
                 refreshAttendanceLoading: false,
                 customConfigurationRow: {
                     subUserCustomList: []
-                }
+                },
+                missingCardTimeUserListData: []
             };
         },
         watch: {
@@ -4564,8 +4655,58 @@
         this.showMonthWorkTimeReminder()
       } else if (t.name == "fourth") {
         this.showReportTimeLessThanCardTimeList();
+      } else if (t.name == "fifth") {
+        this.showMissingCardTimeUserList();
       }
     },
+    // 显示缺考勤人员列表
+    showMissingCardTimeUserList() {
+      this.tbload = true;
+      this.http.post(
+        "/report/getMissingCardTimeUserList",
+        {
+          startDate: this.WorktimeDatepickValue[0],
+          endDate: this.WorktimeDatepickValue[1],
+          departmentId: this.deptIdForNoReport.length>0?this.deptIdForNoReport[this.deptIdForNoReport.length-1]:null
+        },
+        (res) => {
+          if (res.code == "ok") {
+            this.tbload = false;
+            this.missingCardTimeUserListData = res.data;
+          }
+        },
+        (error) => {
+          this.tbload = false;
+          this.$message({
+            message: error,
+            type: "error",
+          });
+        }
+      );
+    },
+    // 导出缺考勤人员列表
+    exportMissingCardTimeUserList() {
+      this.http.post(
+        "/report/exportMissingCardTimeUserList",
+        {
+          startDate: this.WorktimeDatepickValue[0],
+          endDate: this.WorktimeDatepickValue[1],
+          departmentId: this.deptIdForNoReport.length>0?this.deptIdForNoReport[this.deptIdForNoReport.length-1]:null
+        },
+        (res) => {
+          if (res.code == "ok") {
+            let url = res.data;
+            this.downloadByA('缺考勤人员列表.xlsx', url);
+          }
+        },
+        (error) => {
+          this.$message({
+            message: error,
+            type: "error",
+          });
+        }
+      );
+    },
     //导出员工每日填报工时数
     exportMembWorkHours() {   
       this.http.post(
@@ -4574,6 +4715,7 @@
           // month: this.date,
           startDate: this.WorktimeDatepickValue[0],
           endDate: this.WorktimeDatepickValue[1],
+          hasReportDeptId: this.deptIdForHasReport.length>0?this.deptIdForHasReport[this.deptIdForHasReport.length-1]:null,
         },
         (res) => {
           if (res.code == "ok") {
@@ -4853,6 +4995,9 @@
       }else if(e==2){
         this.WorktimeDatepickValue = lastwd 
         this.showMonthWorkTimeReminder()
+      }else if(e==3){
+        this.WorktimeDatepickValue = lastwd 
+        this.showMissingCardTimeUserList()
       }else{
         this.WorktimeDatepickValue = lastwd 
         this.showMonthNotWorkTime()
@@ -4868,6 +5013,9 @@
       }else if(e==2){
         this.WorktimeDatepickValue = nowwd 
         this.showMonthWorkTimeReminder()
+      }else if(e==3){
+        this.WorktimeDatepickValue = nowwd 
+        this.showMissingCardTimeUserList()
       }else{
         this.WorktimeDatepickValue = nowwd 
         this.showMonthNotWorkTime()
@@ -4883,6 +5031,9 @@
       }else if(e==2){
         this.WorktimeDatepickValue = nextwd 
         this.showMonthWorkTimeReminder()
+      }else if(e==3){
+        this.WorktimeDatepickValue = nextwd 
+        this.showMissingCardTimeUserList()
       }else{
         this.WorktimeDatepickValue = nextwd 
         this.showMonthNotWorkTime()
@@ -5294,8 +5445,15 @@
                 this.dimension(domain, index);
                 
                 //获取项目审核人
-                if (this.user.timeType.reportAuditType == 0 || this.user.timeType.reportAuditType == 4) {
+                if ( this.user.timeType.reportAuditType == 4) {
                     this.getProjectAuditorList(domain, index);
+                } else if (this.user.timeType.reportAuditType == 0) {
+                    if (this.user.timeType.reportWorkflow) {
+                        //启用审批流了,按照审批流显示
+                        this.getWorkFlowList(domain, index);
+                    } else {
+                        this.getProjectAuditorList(domain, index);
+                    }
                 } else {
                     //按分组的负责人来审核
                     domain.projectAuditorId = null;
@@ -5392,7 +5550,55 @@
                     }
                 );
             },
-
+            //获取审批流进行显示
+            getWorkFlowList(domainItem, index) {
+                if(domainItem.projectId == '') {
+                    return
+                }
+                domainItem.projectAuditorId = null;
+                domainItem.projectAuditorName = null;
+                var param = { projectId: domainItem.projectId};
+                if (this.isSubstitude) {
+                    if (this.workForm.userId != null && this.workForm.userId.length>0) {
+                        param.userId = this.workForm.userId[0];
+                    }
+                }
+                this.http.post('/project-auditor/getWorkFlowList',param,
+                res => {
+                    if (res.code == "ok") {
+                        //取项目节点,进行加载
+                        domainItem.auditWorkflow = res.data;
+                        for (var i=0;i<res.data.length; i++) {
+                            var node = res.data[i];
+                            if (node.isDeptAudit == 0) {
+                                var pAuditors = node.projectAuditors;
+                                domainItem.auditUserList = pAuditors;
+                                console.log('333333333', pAuditors)
+                                if (pAuditors == null || pAuditors.length==0) {
+                                    this.$message({
+                                        message: this.$t('message.Dailyreviewerhasnotbeensetpleasecontacttheprojectmanager'),
+                                        type: "error"
+                                    });
+                                } else if (pAuditors.length==1) {
+                                    //默认取第一个显示
+                                    domainItem.projectAuditorId = domainItem.auditUserList[0].auditorId;
+                                    domainItem.projectAuditorName = domainItem.auditUserList[0].auditorName;
+                                }
+                                break;
+                            }
+                        }
+                        
+                        this.$forceUpdate();
+                    } 
+                },
+                error => {
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                    }
+                );
+            },
             //获取项目审核人
             getProjectAuditorList(domainItem, index) {
                 if(domainItem.projectId == '') {
@@ -5400,7 +5606,7 @@
                 }
                 domainItem.projectAuditorId = null;
                 domainItem.projectAuditorName = null;
-                var param = { projectId: domainItem.projectId};
+                var param = { projectId: domainItem.projectId, forReport: true};
                 if (this.isSubstitude) {
                     if (this.workForm.userId != null && this.workForm.userId.length>0) {
                         param.userId = this.workForm.userId[0];
@@ -9202,7 +9408,7 @@
                             } else {
                                 if (this.user.timeType.reportAuditType == 0 || this.user.timeType.reportAuditType == 4) {
                                     this.$message({
-                                        message: this.$t('message.Pleasespecifyaprojectreviewer'),
+                                        message: '审核人尚未设置',
                                         type: "error"
                                     });
                                     return;
@@ -9532,6 +9738,12 @@
                     this.deptIdForHasReport = arr
                     this.showReportTimeLessThanCardTimeList();
                 }
+                if(obj.distinction == '18' && obj) {
+                    let arr = []
+                    arr.push(obj.id)
+                    this.deptIdForNoReport = arr
+                    this.showMissingCardTimeUserList();
+                }
             },
             //分页
             handleCurrentChange(val) {

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/transferWorkingHours.vue

@@ -56,7 +56,7 @@
                                 </TranslationOpenDataText>
                             </template>
                         </el-table-column>
-                        <el-table-column align="center" prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')"
+                        <el-table-column align="center" prop="projectCode" :label="$t('Itemno')"
                             width="240"></el-table-column>
                         <el-table-column align="center" prop="projectName" :label="$t('headerTop.projectName')"
                             width="240"></el-table-column>