Переглянути джерело

Merge remote-tracking branch 'origin/master'

yurk 2 роки тому
батько
коміт
ed0f9f5e12

+ 19 - 11
fhKeeper/formulahousekeeper/timesheet/src/permissions.js

@@ -42,12 +42,16 @@ const StringUtil = {
         setFinanceAuditor: false, //设置财务审核人
 
         // 项目报表服务 // 
-        reportProject: false, // 项目报表 //
-        reportTask : false, // 项目任务报表 //
-        reportCostOf : false, // 项目成本报表 // 
-        reportBalance : false, // 项目收支平衡表 // 
+        reportProject: false, // 全部项目报表 //
+        reportAllTask : false, // 全部项目任务报表 //
+        reportTask : false, // 负责项目任务报表 //
+        reportAllCostOf : false, // 全部项目成本报表 // 
+        reportCostOf : false, // 负责项目成本报表 // 
+        reportAllBalance : false, // 全部项目收支平衡表 // 
+        reportBalance : false, // 负责项目收支平衡表 // 
         reportProfits : false, // 客户项目利润表 // 
-        reportPhase : false, // 项目阶段工时表 // 
+        reportAllPhase : false, // 全部项目阶段工时表 // 
+        reportPhase : false, // 负责项目阶段工时表 // 
         reportAllOvertime : false, // 全公司加班情况 //
         reportOvertime : false, // 负责部门加班情况 //
         reportCost: false, // 查看加班成本 //
@@ -57,7 +61,7 @@ const StringUtil = {
         reportTimeDivide: false, // 负责部门工时分配 //
         reportAllTimely: false, // 全公司填报及时率 //
         reportTimely: false, // 负责部门填报及时率 //
-        reportAuditRate: false, // 查看日报待审核统计 // 
+        reportAuditRate: false, // 日报待审核统计 // 
         reportPersonnel: false, // 全公司工时统计 //
         reportResponsible: false, // 负责部门工时统计 //
 
@@ -121,11 +125,15 @@ const StringUtil = {
         arr[i] == '薪资数据上传' ? obj.financialUpload = true : ''
         arr[i] == '薪资数据导出' ? obj.financialExport = true : ''
         arr[i] == '导出分摊数据' ? obj.financialShare = true : ''
-        arr[i] == '项目任务报表' ? obj.reportTask = true : ''
-        arr[i] == '项目成本报表' ? obj.reportCostOf = true : ''
-        arr[i] == '项目收支平衡表' ? obj.reportBalance = true : ''
+        arr[i] == '负责项目任务报表' ? obj.reportTask = true : ''
+        arr[i] == '全部项目任务报表' ? obj.reportAllTask = true : ''
+        arr[i] == '负责项目成本报表' ? obj.reportCostOf = true : ''
+        arr[i] == '全部项目成本报表' ? obj.reportAllCostOf = true : ''
+        arr[i] == '负责项目收支平衡表' ? obj.reportBalance = true : ''
+        arr[i] == '全部项目收支平衡表' ? obj.reportAllBalance = true : ''
         arr[i] == '客户项目利润表' ? obj.reportProfits = true : ''
-        arr[i] == '项目阶段工时表' ? obj.reportPhase = true : ''
+        arr[i] == '负责项目阶段工时表' ? obj.reportPhase = true : ''
+        arr[i] == '全部项目阶段工时表' ? obj.reportAllPhase = true : ''
         arr[i] == '全公司加班情况' ? obj.reportAllOvertime = true : ''
         arr[i] == '负责部门加班情况' ? obj.reportOvertime = true : ''
         arr[i] == '请假填报' ? obj.leaveFil = true : ''
@@ -157,7 +165,7 @@ const StringUtil = {
         arr[i] == '日报待审核统计' ? obj.reportAuditRate = true : ''
         arr[i] == '查看工时统计' ? obj.countHours = true : ''
         arr[i] == '查看成本统计' ? obj.countCost = true : ''
-        arr[i] == '项目报表' ? obj.reportProject = true : ''
+        arr[i] == '全部项目报表' ? obj.reportProject = true : ''
         arr[i] == '批量填报' ? obj.reportBatch = true : ''
         arr[i] == '项目阶段管理' ? obj.projectPhase = true : ''
         arr[i] == '全公司工时统计' ? obj.reportPersonnel = true : ''

+ 8 - 19
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -20,13 +20,13 @@
                   <span>项目报表服务</span>
                 </template>
                   <el-menu-item index="1-1" v-if="permissions.reportProject"><p @click="ssl(0)">项目报表</p></el-menu-item>
-                  <el-menu-item index="1-2" v-if="permissions.reportTask"><p @click="ssl(1)">项目任务报表</p></el-menu-item>
-                  <el-menu-item index="1-3" v-if="permissions.reportCostOf"><p @click="ssl(2)">项目成本报表</p></el-menu-item>
+                  <el-menu-item index="1-2" v-if="permissions.reportTask || permissions.reportAllTask"><p @click="ssl(1)">项目任务报表</p></el-menu-item>
+                  <el-menu-item index="1-3" v-if="permissions.reportCostOf || permissions.reportAllCostOf"><p @click="ssl(2)">项目成本报表</p></el-menu-item>
                   <el-menu-item index="1-9" v-if="permissions.reportAllTimeDivide || permissions.reportTimeDivide"><p @click="ssl(8)">人员工时分配表</p></el-menu-item>
                   <el-menu-item index="1-4" v-if="permissions.reportCostWarning"><p @click="ssl(7)">工时成本预警表</p></el-menu-item>
-                  <el-menu-item index="1-5" v-if="permissions.reportBalance"><p @click="ssl(3)">项目收支平衡表</p></el-menu-item>
+                  <el-menu-item index="1-5" v-if="permissions.reportBalance || permissions.reportAllBalance"><p @click="ssl(3)">项目收支平衡表</p></el-menu-item>
                   <el-menu-item index="1-6" v-if="user.company.packageCustomer == 1 && permissions.reportProfits"><p @click="ssl(4)">客户项目利润表</p></el-menu-item>
-                  <el-menu-item index="1-7" v-if="permissions.reportPhase"><p @click="ssl(5)">项目阶段工时表</p></el-menu-item>
+                  <el-menu-item index="1-7" v-if="permissions.reportPhase || permissions.reportAllPhase"><p @click="ssl(5)">项目阶段工时表</p></el-menu-item>
                   <el-menu-item index="1-8" v-if="permissions.reportAllOvertime || permissions.reportOvertime"><p @click="ssl(6)">加班情况统计表</p></el-menu-item>
 
                   <el-menu-item index="1-10" v-if="permissions.reportAllTimely || permissions.reportTimely"><p @click="ssl(9)">员工填报及时率</p></el-menu-item>
@@ -744,25 +744,14 @@ export default {
   },
   methods: {
     authorityToJudge() {
-      // if(this.permissions.reportProject) {this.ins = 0;return} else
-      // if(this.permissions.reportTask) {this.ins = 1;return} else
-      // if(this.permissions.reportCostOf) {this.ins = 2;return} else
-      // if(this.permissions.reportTimeDivide) {this.ins = 8;return} else
-      // if(this.permissions.reportCostWarning) {this.ins = 7;return} else
-      // if(this.permissions.reportBalance) {this.ins = 3;return} else
-      // if(this.permissions.reportProfits) {this.ins = 4;return} else
-      // if(this.permissions.reportPhase) {this.ins = 5;return} else
-      // if(this.permissions.reportOvertime) {this.ins = 6;return} else
-      // if(this.permissions.reportTimely) {this.ins = 9;return} else
-      // if(this.permissions.reportAuditRate) {this.ins = 10;return} else {this.allWrong = false}
       if(this.permissions.reportProject) {this.ssl(0);this.defaultActive = '1-1';return} else
-      if(this.permissions.reportTask) {this.ssl(1);this.defaultActive = '1-2';return} else
-      if(this.permissions.reportCostOf) {this.ssl(2);this.defaultActive = '1-3';return} else
+      if(this.permissions.reportTask || this.permissions.reportAllTask) {this.ssl(1);this.defaultActive = '1-2';return} else
+      if(this.permissions.reportCostOf || this.permissions.reportAllCostOf) {this.ssl(2);this.defaultActive = '1-3';return} else
       if(this.permissions.reportTimeDivide || this.permissions.reportAllTimeDivide) {this.ssl(8);this.defaultActive = '1-9';return} else
       if(this.permissions.reportCostWarning) {this.ssl(7);this.defaultActive = '1-4';return} else
-      if(this.permissions.reportBalance) {this.ssl(3);this.defaultActive = '1-5';return} else
+      if(this.permissions.reportBalance || this.permissions.reportAllBalance) {this.ssl(3);this.defaultActive = '1-5';return} else
       if(this.permissions.reportProfits) {this.ssl(4);this.defaultActive = '1-6';return} else
-      if(this.permissions.reportPhase) {this.ssl(5);this.defaultActive = '1-7';return} else
+      if(this.permissions.reportPhase || this.permissions.reportAllPhase) {this.ssl(5);this.defaultActive = '1-7';return} else
       if(this.permissions.reportOvertime || this.permissions.reportAllOvertime) {this.ssl(6);this.defaultActive = '1-8';return} else
       if(this.permissions.reportTimely || this.permissions.reportAllTimely) {this.ssl(9);this.defaultActive = '1-10';return} else
       if(this.permissions.reportAuditRate) {this.ssl(10);this.defaultActive = '1-11';return} else 

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

@@ -93,6 +93,9 @@
                             <el-dropdown-item v-if="permissions.projectPhase && user.company.packageProject == 1">
                                 <el-link type="primary" :underline="false" @click="phaseProjectDialog = true">项目阶段管理</el-link>
                             </el-dropdown-item>
+                            <el-dropdown-item v-if="user.timeType.projectLevelState == 1">
+                                <el-link type="primary" :underline="false" @click="projectLevelDialog = true">项目级别管理</el-link>
+                            </el-dropdown-item>
                         </el-dropdown-menu>
                         </el-dropdown>
                 </el-form-item>
@@ -206,9 +209,10 @@
             </template>
             </el-table-column>
             <!-- 级别 -->
-            <el-table-column prop="level" label="级别" min-width="190"   v-if="user.company.packageProject == 1">
+            <el-table-column :prop="user.timeType.projectLevelState == 1 ? 'levelName' : 'level'" label="级别" min-width="190"   v-if="user.company.packageProject == 1">
                 <template slot-scope="scope">
-                    {{importanceListLable[scope.row.level - 1]}}
+                    <span v-if="user.timeType.projectLevelState == 1">{{scope.row.levelName}}</span>
+                    <span v-else>{{importanceListLable[scope.row.level - 1]}}</span>
                 </template>
             </el-table-column>
             <!-- 供应商 -->
@@ -622,6 +626,43 @@
                 <el-button type="primary" @click="addPanthPro()" >新增项目阶段</el-button>
             </div>
         </el-dialog>
+
+        <!-- 项目级别管理 -->
+        <el-dialog title="项目级别管理" show-header="false" v-if="projectLevelDialog" :visible.sync="projectLevelDialog" :close-on-click-modal="false" customClass="customWidth" width="600px">
+            <el-table :data="levelList" highlight-current-row  height="400" style="width: 100%;">
+                <el-table-column type="index" width="60" label="序号">
+                    <template slot-scope="scope" >
+                            {{scope.$index+1+(page-1)*size}}
+                        </template>
+                </el-table-column>
+                <el-table-column prop="projectLevelName" label="级别名称" ></el-table-column>
+                <el-table-column label="操作" width="150">
+                    <template slot-scope="scope" >
+                        <el-button size="small" type="primary" @click="addProjectLevel(scope.row)">编辑</el-button>
+                        <el-button size="small" type="danger" @click="deleteProjectLevel(scope.row)">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="projectLevelDialog = false" >关闭</el-button>
+                <el-button type="primary" @click="addProjectLevel()" >新增项目级别</el-button>
+            </div>
+        </el-dialog>
+
+        <!-- 新增/编辑项目级别 -->
+        <el-dialog title="新增/修改项目级别" v-if="addProjectLevelDialog" :visible.sync="addProjectLevelDialog" :close-on-click-modal="false" customClass="customWidth" width="500px">
+            <el-form ref="form2" :model="addLevelForm" :rules="rules" label-width="120px">
+                <el-form-item label="项目级别名称" prop="projectLevelName">
+                    <el-input v-model="addLevelForm.projectLevelName" placeholder="请输入名称" clearable></el-input>
+                </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="addProjectLevelDialog = false">取消</el-button>
+                <el-button type="primary" @click="submitLevelPro" :loading="addLoading">提交</el-button>
+            </div>
+        </el-dialog>
+
+
         <!-- 新增/编辑 分类条目 -->
         <el-dialog title="新增/修改分类条目" v-if="addClfDialog" :visible.sync="addClfDialog" :close-on-click-modal="false" customClass="customWidth" width="500px">
             <el-form ref="form2" :model="addClf" :rules="rules" label-width="100px">
@@ -856,8 +897,10 @@ a {
             return {
                 addFlgmainProjectDialog: false,
                 addFlgPanthProjectDialog: false,
+                addProjectLevelDialog: false,
                 mainProjectList: [],
                 mainProjectDialog: false,
+                projectLevelDialog: false,
                 showImportResult: false,
                 importResultMsg:null,
                 isganttshow: false,
@@ -938,6 +981,7 @@ a {
                     name: [{ required: true, message: "请输入名称", trigger: "blur" }],
                     code: [{ required: true, message: "请输入编号", trigger: "blur" }],
                     projectStageName: [{ required: true, message: "请输入名称", trigger: "blur" }],
+                    projectLevelName: [{ required: true, message: "请输入名称", trigger: "blur" }],
                 },
                 ause: [],
                 auseList: [],
@@ -957,6 +1001,10 @@ a {
                     id: '',
                     projectStageName: ''
                 },
+                addLevelForm: {
+                    id: '',
+                    projectStageName: ''
+                },
                 statusClf:null,
                 permissionsObj: {},
 
@@ -988,6 +1036,7 @@ a {
                 listHeader: [], // 列表表头
                 rowid: '',
                 phaseProjectDialog: false, // 项目阶段
+                levelList: [],  // 项目级别
             };
         },
         // 过滤器
@@ -1054,6 +1103,66 @@ a {
                     });
                 });
             },
+            // 获取级别
+            getProjectLevel(){
+                this.http.post('/project-level/list', {},
+                res => {
+                    if (res.code == "ok") {
+                        this.levelList = res.data
+                        // this.$set(this, 'levelList', res.data)
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                });
+            },
+            addProjectLevel(row){
+                this.addProjectLevelDialog = true
+                if(!row) {
+                    this.addLevelForm = {
+                        projectLevelName: '',
+                        id: ''
+                        // companyId:''
+                    }
+                } else {
+                    this.addLevelForm = {
+                        id: row.id,
+                        projectLevelName: row.projectLevelName
+                        // companyId: row.companyId
+                    }
+                }
+            },
+            submitLevelPro(){
+                this.http.post('/project-level/addOrMod',this.addLevelForm,
+                    res => {
+                        if (res.code == "ok") {
+                            this.addProjectLevelDialog = false;
+                            this.getProjectLevel()
+                        } else {
+                            this.$message({
+                                message: res.msg,
+                                type: "error"
+                            });
+                        }
+                    },
+                    error => {
+                        this.$message({
+                            message: error,
+                            type: "error"
+                        });
+                        }
+                    );
+            },
+
+
             // 表格点击
             tableCellClassName({row, column, rowIndex, columnIndex}) {
                 row.index=rowIndex;
@@ -3180,6 +3289,9 @@ a {
             if(this.user.timeType.mainProjectState == 1){
                 this.getMainProject()
             }
+            if(this.user.timeType.projectLevelState == 1){
+                this.getProjectLevel()
+            }
 
             // 判断释放为专业版
             if(this.user.company.packageProject == 1) {

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

@@ -909,7 +909,6 @@
                         } else {
                             param.customTextActive = 0
                         }
-                        
                         param.fillOvertime = param.fillOvertime ? 1 : 0
                         param.lockWorktime = param.lockWorktime ? 1 : 0
                         param.fillAhead = param.fillAhead ? 1 : 0

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

@@ -3453,7 +3453,7 @@
             },
 
             // 获取日期列表
-            getAllDate() {
+            getAllDate(e) {
                 var dayArry = [];
                 var day = this.getCountDays();
                 let curMonthDay = null;
@@ -3488,16 +3488,24 @@
                     let nowmonth = new Date().getMonth() + 1
                     let nowd = new Date().getFullYear() + '-' + (nowmonth < 10 ? '0' + nowmonth : nowmonth)
                     if(nowd == this.date){
-                        let nowday = new Date().getDate()
+                        
+                        if(e && sessionStorage.msg){
+                        }else{
+                            sessionStorage.msg = this.date + '-' + (nowday < 10 ? '0' + nowday : nowday)
+                        }
+                        let nowday = new Date(sessionStorage.msg).getDate()
                         this.choseDay = nowday - 1
-                        sessionStorage.msg = this.date + '-' + (nowday < 10 ? '0' + nowday : nowday)
+                        
                         let monthdate = new Date(sessionStorage.msg)
                         this.curDate = (monthdate.getMonth() + 1) + '月' + monthdate.getDate() + '日'
                         console.log('choseday',sessionStorage.msg,this.choseDay,monthdate.getDate());
                     }else{
-                        this.choseDay = 0;
-                        sessionStorage.msg = this.date + '-01'
-                        let monthdate = new Date(this.date + '-01')
+                        if(e && sessionStorage.msg){
+                        }else{
+                            sessionStorage.msg = this.date + '-01'
+                        }
+                        this.choseDay = day - 1
+                        let monthdate = new Date(sessionStorage.msg)
                         this.curDate = (monthdate.getMonth() + 1) + '月' + monthdate.getDate() + '日'
                     }
                 }else{
@@ -5314,7 +5322,7 @@
             var t = util.formatDate.format(now, 'yyyy-MM-dd');
             var startStr = util.formatDate.format(new Date(), 'yyyy-MM') + "-01";
             this.exportParam.dateRange = [startStr,t];
-            this.getAllDate();
+            this.getAllDate(1);
             this.getReportList();
             this.getProjectList();
             this.getFillProjectList();