浏览代码

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

cs 2 年之前
父节点
当前提交
f60dfddd02

文件差异内容过多而无法显示
+ 5411 - 3894
fhKeeper/formulahousekeeper/octopus/package-lock.json


+ 12 - 3
fhKeeper/formulahousekeeper/octopus/src/views/customer/list.vue

@@ -192,7 +192,7 @@
             </span>
         </el-dialog>
         <!-- 其他设置 -->
-        <el-dialog v-if="editDialogG" :visible.sync="editDialogG" title="其他设置">
+        <el-dialog v-if="editDialogG" :visible.sync="editDialogG" title="其他设置" width="850px">
             <el-form label-width="100px" class="otherForm">
                 <el-form-item><el-checkbox v-model="dialogData.reportWorkflow">是否开启审批流设置</el-checkbox></el-form-item>
                 <el-form-item><el-checkbox v-model="dialogData.needEvaluate">审核通过需输入评价</el-checkbox></el-form-item>
@@ -207,7 +207,7 @@
                 <el-form-item><el-checkbox v-model="dialogData.reportApproveMsgpush">日报审核通过是否推送消息</el-checkbox></el-form-item>
                 <el-form-item><el-checkbox v-model="dialogData.projectWithDept">项目是否有所属部门</el-checkbox></el-form-item>
                 <el-form-item><el-checkbox v-model="dialogData.financeJobnumEnabled">财务导入薪资是否支持工号</el-checkbox></el-form-item>
-                <el-form-item><el-checkbox v-model="dialogData.reportAutoApprove">是否开启日报自动审核</el-checkbox></el-form-item>
+                <!-- <el-form-item><el-checkbox v-model="dialogData.reportAutoApprove">是否开启日报自动审核</el-checkbox></el-form-item> -->
                 <el-form-item><el-checkbox v-model="dialogData.notAllowedNoAttendance">是否开启考勤为0不可填报</el-checkbox></el-form-item>
                 <el-form-item><el-checkbox v-model="dialogData.stageHasEvtime">是否开启预估工时</el-checkbox></el-form-item>
                 <!-- <el-form-item><el-checkbox v-model="dialogData.pushReportData">是否开通【推送工时数据】</el-checkbox></el-form-item> -->
@@ -222,6 +222,13 @@
                         <el-option :value="2" label="先分组审核再PM审核"></el-option>
                     </el-select>
                 </el-form-item>
+                <el-form-item>
+                    <el-checkbox v-model="dialogData.reportAutoApprove">是否开启日报自动审核</el-checkbox>
+                    <el-input-number v-if="dialogData.reportAutoApprove" v-model.number="dialogData.reportAutoApproveDays" controls-position="right" size="mini" style="margin: 0 10px 0 10px;width: 90px;" :min="0"></el-input-number>
+                    <el-tooltip effect="dark" :content="`${dialogData.reportAutoApproveDays}天后自动审核`" placement="top-start" v-if="dialogData.reportAutoApprove">
+                        <i class="el-icon-question"></i>
+                    </el-tooltip>
+                </el-form-item>
             </el-form>
             <!-- 是否开启审批流设置,是否启用主项目模式,是否秘薪模式,是否显示日报审批流程,是否CRO企业,是否仅使用导入日报审核(不要项目审核) reportAuditType-->
             <span slot="footer" class="dialog-footer">
@@ -381,6 +388,7 @@
                             this.$set(this.dialogData,'includeWeekends',res.data.includeWeekends ? true : false)
                             this.$set(this.dialogData,'multiWorktime',res.data.multiWorktime ? true : false)
                             this.$set(this.dialogData,'reportAuditType',res.data.reportAuditType)
+                            this.$set(this.dialogData,'reportAutoApproveDays',res.data.reportAutoApproveDays)
                         }else{
                             this.$message({
                                 message: res.msg,
@@ -659,7 +667,8 @@
                     // pushReportData: this.dialogData.pushReportData ? 1 : 0,
                     includeWeekends: this.dialogData.includeWeekends ? 1 : 0,
                     multiWorktime: this.dialogData.multiWorktime ? 1 : 0,
-                    reportAuditType: this.dialogData.reportAuditType
+                    reportAuditType: this.dialogData.reportAuditType,
+                    reportAutoApproveDays: this.dialogData.reportAutoApproveDays, // 自动审核的天数
                 },res => {
                     if(res.code == 'ok'){
                         this.editDialogG = false

文件差异内容过多而无法显示
+ 5423 - 3906
fhKeeper/formulahousekeeper/timesheet/package-lock.json


+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/components/taskComponent.vue

@@ -56,7 +56,7 @@
                         <span style="float: right; color: #8492a6; font-size: 13px;margin-left: 20px" v-if="item.jobNumber">{{ item.jobNumber }}</span>
                     </el-option>
                 </el-select>
-                <selectCat v-if="user.userNameNeedTranslate == 1" :size="'mini'" :subject="users" :subjectId="executorItem.executorId" :distinction="'1'" @selectCal="selectCal" :index="index" :disabled="(addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement && !(groupResponsibleId == user.id)"></selectCat>
+                <selectCat v-if="user.userNameNeedTranslate == 1" :size="'mini'" :filterable="true" :subject="users" :subjectId="executorItem.executorId" :distinction="'1'" @selectCal="selectCal" :index="index" :disabled="(addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement && !(groupResponsibleId == user.id)"></selectCat>
                 
                 <span style="margin-left:30px;margin-right:10px;">{{ $t('plantime') }}</span>
                 <el-input-number size="small" :disabled="(addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement && !(groupResponsibleId == user.id)" v-model="gstimday[index]" style="width:16%;" :min="1" :max="100"  :placeholder="$t('danweitian')" @change="chggstim(0,index)"></el-input-number ><span style="margin-left:5px;">{{ $t('time.day') }}</span>

+ 2 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/contract/index.vue

@@ -696,7 +696,8 @@ export default {
         } else {
           obj.text = row.msg
         }
-        this.contractForm = obj
+        row.msg = obj
+        this.contractForm = row
       } else {
         this.contractForm = row
       }

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

@@ -975,6 +975,10 @@ import { error } from 'dingtalk-jsapi';
                     if(obj.showOrNot) {
                         this.getList()
                     }
+
+                    if(obj.submitInsert) {
+                        this.getList()
+                    }
                 } else {
                     this.backToParentTask()
                 }

+ 72 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -245,6 +245,7 @@
                     
                 <el-button size="small" type="primary" @click="handleSelectionZzjgbtn3" v-if="user.userNameNeedTranslate != 1">{{ $t('modifyingDepartments') }}</el-button>
                 <el-button size="small" type="primary" @click="handJue">{{ $t('modifyingRoles') }}</el-button>
+                <el-button size="small" type="primary" @click="workingHoursDialogClick()">修正工时所属部门</el-button>
                
                 
                 
@@ -262,6 +263,24 @@
         </el-col>
       </div>
 
+      <!-- 修正工时所属部门 -->
+      <el-dialog title="修正工时" :visible.sync="workingHoursDialog" width="650px" :before-close="handleClose">
+        <div>
+          <div class="workingHours">
+            <el-radio v-model="workingHoursRadio" label="1">全部工时</el-radio>
+            <el-radio v-model="workingHoursRadio" label="2">部分工时</el-radio>
+          </div>
+          <div class="workingHours workingHoursData" v-if="workingHoursRadio == 2">
+            <span class="workingHoursSpan">日期范围</span>
+            <el-date-picker v-model="workingHoursDatas" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
+          </div>
+        </div>
+        <span slot="footer" class="dialog-footer">
+          <el-button @click="workingHoursDialog = false">取 消</el-button>
+          <el-button type="primary" @click="workingHours()">确 定</el-button>
+        </span>
+      </el-dialog>
+
       <!-- 批量修改弹出框 -->
         <el-dialog :title="$t('changes')" :visible.sync="handleSelectionZzjgshow" v-if="handleSelectionZzjgshow" width="30%">
             <el-form model="" label-width="20%">
@@ -803,6 +822,9 @@ export default {
   },
   data() {
     return {
+      workingHoursDialog: false,
+      workingHoursRadio: '1',
+      workingHoursDatas: [],
       recordMsgDialog: false,
       recordMsg: {indate: [],msg:''},
       roleNameFlg: '',
@@ -1715,6 +1737,16 @@ export default {
       }
       this.handleSelectionZzjgshow = true;
     },
+    workingHoursDialogClick() {
+      let endDate = this.dayjs(`${new Date()}`).format('YYYY-MM-DD')
+      let startDate = this.dayjs(`${new Date()}`).format('YYYY-MM') + '-01'
+      this.workingHoursDatas = [startDate, endDate]
+      if (this.handleSelectionZzjgDate.length == 0) {
+        this.$message(this.$t('pleaseselectpersonnel'));
+        return;
+      }
+      this.workingHoursDialog = true
+    },
     handJue() {
       if (this.handleSelectionZzjgDate.length == 0) {
         this.$message(this.$t('pleaseselectpersonnel'));
@@ -3385,6 +3417,36 @@ export default {
               this.$message({message: '其它错误',type: "error"});
           }      
        })
+    },
+    // 修正工时所属部门
+    workingHours() {
+      let obj = {
+        userIds: '',
+        startDate: '',
+        endDate: ''
+      }
+      if(this.workingHoursRadio == '2') {
+        obj.startDate = this.workingHoursDatas[0],
+        obj.endDate = this.workingHoursDatas[1]
+      }
+      let arr = []
+      for(var i in this.handleSelectionZzjgDate) {
+        arr.push(this.handleSelectionZzjgDate[i].id)
+      }
+      obj.userIds = arr.toString()
+      this.http.post('/report/correctWorkingTime', obj,
+      res => {
+        if (res.code == "ok") {
+          this.getUser();
+          this.workingHoursDialog = false
+          this.$message({message: '操作成功',type: "success"});
+        } else {
+            this.$message({message: res.msg,type: "error"});
+        }
+      },
+      error => {
+          this.$message({message: error,type: "error"});
+      });
     }
   },
   mounted() {
@@ -3412,6 +3474,16 @@ export default {
 </script>
 
 <style scoped>
+.workingHours {
+  padding: 0 60px;
+}
+.workingHoursData {
+  margin-top: 30px;
+}
+.workingHoursSpan {
+  display: inline-block;
+  margin-right: 20px;
+}
 .line {
   width: 30px;
   /* height: 500px; */

+ 3 - 4
fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue

@@ -39,18 +39,17 @@
                 ],
                 routers: [],
                 key: 0,
-                isSyncData: null
+                isSyncData: false
             };
         },
         created() {
             if(localStorage.userInfo) {
                 this.user = JSON.parse(localStorage.userInfo)
+                // 是否为钉钉同步
+                this.isSyncData = this.user.timeType.syncDingding || this.user.timeType.syncFanwei;
             }
         },
         mounted() {
-            // 是否为钉钉同步
-            this.isSyncData = this.user.timeType.syncDingding || this.user.timeType.syncFanwei;
-
             //有错误信息,优先跳转到登录页面去
             if(window.location.href.indexOf('errorMsg') != '-1') {
                 this.$router.push("/login");