Browse Source

优化

master
陈裕财 3 years ago
parent
commit
0f76f372c8
  1. 13
      src/views/xm/core/xmWorkload/WorkloadSetDayList.vue
  2. 17
      src/views/xm/core/xmWorkload/XmWorkloadList.vue
  3. 21
      src/views/xm/core/xmWorkload/XmWorkloadSimpleList.vue
  4. 18
      src/views/xm/core/xmWorkload/XmWorkloadSimpleListForBizDate.vue
  5. 9
      src/views/xm/rpt/project/projectWorkloadSetDayList.vue

13
src/views/xm/core/xmWorkload/WorkloadSetDayList.vue

@ -5,7 +5,7 @@
<div> <div>
<div <div
class="main" class="main"
id="projectWorkloadSetDayList"
:id="id"
style="width: 100%; height: 600px; margin: 0 auto" style="width: 100%; height: 600px; margin: 0 auto"
></div> ></div>
</div> </div>
@ -23,7 +23,7 @@
@clear="onProjectClear" @clear="onProjectClear"
></xm-project-select> ></xm-project-select>
</el-form-item> </el-form-item>
<el-form-item label="人员编号" v-if="queryScope !== 'my'">
<el-form-item label="人员编号" v-if="queryScope !== 'my' && (!user|| !user.userid)">
<el-input v-model="filters.userid"></el-input> <el-input v-model="filters.userid"></el-input>
</el-form-item> </el-form-item>
@ -244,6 +244,7 @@
<script> <script>
import util from "@/common/js/util"; // import util from "@/common/js/util"; //
import seq from '@/common/js/sequence';//
import { initSimpleDicts } from "@/api/mdp/meta/item"; // import { initSimpleDicts } from "@/api/mdp/meta/item"; //
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
@ -255,7 +256,7 @@ export default {
XmProjectSelect, XmProjectSelect,
XmWorkloadSimpleListForBizDate, XmWorkloadSimpleListForBizDate,
}, },
props: ["xmProduct", "xmProject", "queryScope"],
props: ["xmProduct", "xmProject", "queryScope",'user'],
computed: { computed: {
...mapGetters(["userInfo", "roles"]), ...mapGetters(["userInfo", "roles"]),
dataSetCpd() { dataSetCpd() {
@ -340,6 +341,7 @@ export default {
hadCommitSworkload: "已提交待审核", hadCommitSworkload: "已提交待审核",
hadSetSworkload: "已结算", hadSetSworkload: "已结算",
}, },
id:seq.sn(),
}; //end return }; //end return
}, //end data }, //end data
methods: { methods: {
@ -359,6 +361,9 @@ export default {
if (this.filters.taskId) { if (this.filters.taskId) {
params.taskId = this.filters.taskId; params.taskId = this.filters.taskId;
} }
if(this.user && this.user.userid){
params.userid = this.user.userid;
}
this.load.list = true; this.load.list = true;
listProjectWorkloadSetDay(params).then((res) => { listProjectWorkloadSetDay(params).then((res) => {
this.xmProjectWorkloadSetDays = res.data.tips.isOk this.xmProjectWorkloadSetDays = res.data.tips.isOk
@ -383,7 +388,7 @@ export default {
}, },
drawCharts() { drawCharts() {
this.myChart = this.$echarts.init( this.myChart = this.$echarts.init(
document.getElementById("projectWorkloadSetDayList")
document.getElementById(this.id)
); );
var that = this; var that = this;
this.myChart.on("updateAxisPointer", function (event) { this.myChart.on("updateAxisPointer", function (event) {

17
src/views/xm/core/xmWorkload/XmWorkloadList.vue

@ -12,7 +12,11 @@
<!--列表 XmWorkload 工时登记表--> <!--列表 XmWorkload 工时登记表-->
<el-table ref="xmWorkloadTable" :data="xmWorkloads" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> <el-table ref="xmWorkloadTable" :data="xmWorkloads" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column> <el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column>
<el-table-column prop="username" label="姓名" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="username" label="姓名" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<el-link @click="queryUserWorkload(scope.row)">{{scope.row.username}}</el-link>
</template>
</el-table-column>
<el-table-column prop="bizDate" label="报送日期" min-width="80" show-overflow-tooltip></el-table-column> <el-table-column prop="bizDate" label="报送日期" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="workload" label="报送工时" min-width="80" show-overflow-tooltip></el-table-column> <el-table-column prop="workload" label="报送工时" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="wstatus" label="状态" min-width="80" show-overflow-tooltip> <el-table-column prop="wstatus" label="状态" min-width="80" show-overflow-tooltip>
@ -63,6 +67,10 @@
<el-dialog title="需求明细" :visible.sync="menuDetailVisible" width="90%" top="20px" append-to-body> <el-dialog title="需求明细" :visible.sync="menuDetailVisible" width="90%" top="20px" append-to-body>
<xm-menu-detail :visible="menuDetailVisible" :xm-menu="{id:editForm.menuId,name:editForm.bizName}" :reload="true"></xm-menu-detail> <xm-menu-detail :visible="menuDetailVisible" :xm-menu="{id:editForm.menuId,name:editForm.bizName}" :reload="true"></xm-menu-detail>
</el-dialog> </el-dialog>
<el-dialog :title="'【'+editForm.username+'】在项目【'+editForm.projectId+'】的工时记录情况'" :visible.sync="userWorkloadDayListVisible" width="90%" top="20px" append-to-body>
<workload-set-day-list :xm-project="{id:editForm.projectId}" :user="{userid:editForm.userid,username:editForm.username}"></workload-set-day-list>
</el-dialog>
</el-row> </el-row>
</section> </section>
</template> </template>
@ -85,6 +93,7 @@
"xm-test-case-detail":()=>import("../xmTestCase/XmTestCaseDetail"), "xm-test-case-detail":()=>import("../xmTestCase/XmTestCaseDetail"),
"xm-test-plan-case-detail":()=>import("../xmTestPlanCase/XmTestPlanCaseDetail"), "xm-test-plan-case-detail":()=>import("../xmTestPlanCase/XmTestPlanCaseDetail"),
"xm-menu-detail":()=>import("../xmMenu/XmMenuDetail"), "xm-menu-detail":()=>import("../xmMenu/XmMenuDetail"),
"project-workload-set-day-list":()=>import("../../rpt/project/projectWorkloadSetDayList")
}, },
props:['xmTask','visible','bizType'/*报工类型1-任务,2-缺陷,3-测试用例设计,4-测试执行 */, props:['xmTask','visible','bizType'/*报工类型1-任务,2-缺陷,3-测试用例设计,4-测试执行 */,
'xmMenu','xmTestCase','xmQuestion','xmTestPlanCase'], 'xmMenu','xmTestCase','xmQuestion','xmTestPlanCase'],
@ -188,6 +197,8 @@
caseDetailVisible:false, caseDetailVisible:false,
planCaseDetailVisible:false, planCaseDetailVisible:false,
menuDetailVisible:false, menuDetailVisible:false,
userWorkloadDayListVisible:false,
} }
},//end data },//end data
methods: { methods: {
@ -382,6 +393,10 @@
}else if(this.bizType=='5'){ }else if(this.bizType=='5'){
this.menuDetailVisible=true this.menuDetailVisible=true
} }
},
queryUserWorkload(row){
this.editForm=row
this.userWorkloadDayListVisible=true;
} }
},//end methods },//end methods

21
src/views/xm/core/xmWorkload/XmWorkloadSimpleList.vue

@ -15,7 +15,11 @@
</el-descriptions> </el-descriptions>
<el-table ref="xmWorkloadTable" :max-height="maxTableHeight" :data="xmWorkloads" :row-style="{height:'50px'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> <el-table ref="xmWorkloadTable" :max-height="maxTableHeight" :data="xmWorkloads" :row-style="{height:'50px'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column> <el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column>
<el-table-column prop="username" label="姓名" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="username" label="姓名" width="120" show-overflow-tooltip>
<template slot-scope="scope">
<el-link @click="queryUserWorkload(scope.row)">{{scope.row.username}}</el-link>
</template>
</el-table-column>
<el-table-column prop="bizDate" label="登记日期" width="120" show-overflow-tooltip></el-table-column> <el-table-column prop="bizDate" label="登记日期" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="workload" label="登记工时" width="120" show-overflow-tooltip></el-table-column> <el-table-column prop="workload" label="登记工时" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="wstatus" label="确认状态" width="120" show-overflow-tooltip> <el-table-column prop="wstatus" label="确认状态" width="120" show-overflow-tooltip>
@ -84,6 +88,10 @@
<el-dialog title="需求明细" :visible.sync="menuDetailVisible" width="90%" top="20px" append-to-body> <el-dialog title="需求明细" :visible.sync="menuDetailVisible" width="90%" top="20px" append-to-body>
<xm-menu-detail :visible="menuDetailVisible" :xm-menu="{id:editForm.menuId,name:editForm.bizName}" :reload="true"></xm-menu-detail> <xm-menu-detail :visible="menuDetailVisible" :xm-menu="{id:editForm.menuId,name:editForm.bizName}" :reload="true"></xm-menu-detail>
</el-dialog> </el-dialog>
<el-dialog :title="'【'+editForm.username+'】在项目【'+editForm.projectId+'】的工时记录情况'" :visible.sync="userWorkloadDayListVisible" width="90%" top="20px" append-to-body>
<workload-set-day-list :xm-project="{id:editForm.projectId}" :user="{userid:editForm.userid,username:editForm.username}"></workload-set-day-list>
</el-dialog>
</el-row> </el-row>
</section> </section>
</template> </template>
@ -105,8 +113,9 @@
"xm-test-case-detail":()=>import("../xmTestCase/XmTestCaseDetail"), "xm-test-case-detail":()=>import("../xmTestCase/XmTestCaseDetail"),
"xm-test-plan-case-detail":()=>import("../xmTestPlanCase/XmTestPlanCaseDetail"), "xm-test-plan-case-detail":()=>import("../xmTestPlanCase/XmTestPlanCaseDetail"),
"xm-menu-detail":()=>import("../xmMenu/XmMenuDetail"), "xm-menu-detail":()=>import("../xmMenu/XmMenuDetail"),
"workload-set-day-list":()=>import("./WorkloadSetDayList"),
}, },
props:['xmTask','visible','userid','wstatus','sstatus'],
props:['xmTask','visible','userid','wstatus','sstatus','projectId'],
computed: { computed: {
...mapGetters(['userInfo']), ...mapGetters(['userInfo']),
@ -156,6 +165,7 @@
userid:'',username:'',ctime:'',taskId:'',cuserid:'',bizDate:'',wstatus:'',remark:'',ttype:'',id:'',sbillId:'',stime:'',sstatus:'',amt:'',samt:'',workload:'' userid:'',username:'',ctime:'',taskId:'',cuserid:'',bizDate:'',wstatus:'',remark:'',ttype:'',id:'',sbillId:'',stime:'',sstatus:'',amt:'',samt:'',workload:''
}, },
maxTableHeight:300, maxTableHeight:300,
userWorkloadDayListVisible:false,
} }
},//end data },//end data
methods: { methods: {
@ -247,6 +257,9 @@
if(this.userid){ if(this.userid){
params.userid=this.userid params.userid=this.userid
} }
if(this.projectId){
params.projectId=this.projectId
}
if(this.wstatus){ if(this.wstatus){
params.wstatus=this.wstatus params.wstatus=this.wstatus
@ -355,6 +368,10 @@
}else if(this.bizType=='5'){ }else if(this.bizType=='5'){
this.menuDetailVisible=true this.menuDetailVisible=true
} }
},
queryUserWorkload(row){
this.editForm=row
this.userWorkloadDayListVisible=true;
} }
},//end methods },//end methods
mounted() { mounted() {

18
src/views/xm/core/xmWorkload/XmWorkloadSimpleListForBizDate.vue

@ -3,7 +3,11 @@
<el-row class="padding-top"> <el-row class="padding-top">
<el-table ref="xmWorkloadTable" :max-height="maxTableHeight" :data="xmWorkloads" :row-style="{height:'50px'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> <el-table ref="xmWorkloadTable" :max-height="maxTableHeight" :data="xmWorkloads" :row-style="{height:'50px'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column> <el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column>
<el-table-column prop="username" label="姓名" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="username" label="姓名" width="120" show-overflow-tooltip>
<template slot-scope="scope">
<el-link @click="queryUserWorkload(scope.row)">{{scope.row.username}}</el-link>
</template>
</el-table-column>
<el-table-column prop="bizDate" label="登记日期" width="120" show-overflow-tooltip></el-table-column> <el-table-column prop="bizDate" label="登记日期" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="workload" label="登记工时" width="120" show-overflow-tooltip></el-table-column> <el-table-column prop="workload" label="登记工时" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="wstatus" label="确认状态" width="120" show-overflow-tooltip> <el-table-column prop="wstatus" label="确认状态" width="120" show-overflow-tooltip>
@ -72,6 +76,11 @@
<el-dialog title="需求明细" :visible.sync="menuDetailVisible" width="90%" top="20px" append-to-body> <el-dialog title="需求明细" :visible.sync="menuDetailVisible" width="90%" top="20px" append-to-body>
<xm-menu-detail :visible="menuDetailVisible" :xm-menu="{id:editForm.menuId,name:editForm.bizName}" :reload="true"></xm-menu-detail> <xm-menu-detail :visible="menuDetailVisible" :xm-menu="{id:editForm.menuId,name:editForm.bizName}" :reload="true"></xm-menu-detail>
</el-dialog> </el-dialog>
<el-dialog :title="'【'+editForm.username+'】在项目【'+editForm.projectId+'】的工时记录情况'" :visible.sync="userWorkloadDayListVisible" width="90%" top="20px" append-to-body>
<workload-set-day-list :xm-project="{id:editForm.projectId}" :user="{userid:editForm.userid,username:editForm.username}"></workload-set-day-list>
</el-dialog>
</section> </section>
</template> </template>
@ -94,6 +103,7 @@
"xm-test-case-detail":()=>import("../xmTestCase/XmTestCaseDetail"), "xm-test-case-detail":()=>import("../xmTestCase/XmTestCaseDetail"),
"xm-test-plan-case-detail":()=>import("../xmTestPlanCase/XmTestPlanCaseDetail"), "xm-test-plan-case-detail":()=>import("../xmTestPlanCase/XmTestPlanCaseDetail"),
"xm-menu-detail":()=>import("../xmMenu/XmMenuDetail"), "xm-menu-detail":()=>import("../xmMenu/XmMenuDetail"),
"workload-set-day-list":()=>import("./WorkloadSetDayList"),
}, },
props:[ 'visible','wstatus','sstatus','bizDate','projectId','userid','taskId','bizMonth','detailId','sbillId'], props:[ 'visible','wstatus','sstatus','bizDate','projectId','userid','taskId','bizMonth','detailId','sbillId'],
computed: { computed: {
@ -147,6 +157,8 @@
caseDetailVisible:false, caseDetailVisible:false,
planCaseDetailVisible:false, planCaseDetailVisible:false,
menuDetailVisible:false, menuDetailVisible:false,
userWorkloadDayListVisible:false,
} }
},//end data },//end data
methods: { methods: {
@ -398,6 +410,10 @@
}else if(this.bizType=='5'){ }else if(this.bizType=='5'){
this.menuDetailVisible=true this.menuDetailVisible=true
} }
},
queryUserWorkload(row){
this.editForm=row
this.userWorkloadDayListVisible=true;
} }
},//end methods },//end methods

9
src/views/xm/rpt/project/projectWorkloadSetDayList.vue

@ -1,11 +1,11 @@
<template> <template>
<section> <section>
<el-dialog :title="(filters.project?'【'+filters.project.name+'】':'')+'结算工时按日分布趋势图'" append-to-body modal-append-to-body width="80%" top="20px" :visible.sync="visible">
<el-dialog :title="(filters.project?'【'+(filters.project.name?filters.project.name:filters.project.id)+'】':'')+'结算工时按日分布趋势图'" append-to-body modal-append-to-body width="80%" top="20px" :visible.sync="visible">
<el-row :gutter="5"> <el-row :gutter="5">
<el-col :span="18"> <el-col :span="18">
<div> <div>
<div class="main" id="projectWorkloadSetDayList" style="width:100%;height:600px;margin:0 auto;"></div>
<div class="main" :id="id" style="width:100%;height:600px;margin:0 auto;"></div>
</div> </div>
</el-col> </el-col>
<el-col :span="6" class="border padding"> <el-col :span="6" class="border padding">
@ -36,6 +36,7 @@
<script> <script>
import util from '@/common/js/util';// import util from '@/common/js/util';//
import seq from '@/common/js/sequence';//
import { initSimpleDicts } from '@/api/mdp/meta/item';// import { initSimpleDicts } from '@/api/mdp/meta/item';//
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
@ -91,6 +92,7 @@
maxTableHeight:300, maxTableHeight:300,
visible:false, visible:false,
xmProjectWorkloadSetDays:[], xmProjectWorkloadSetDays:[],
id:seq.sn(),
}//end return }//end return
},//end data },//end data
@ -122,7 +124,6 @@
this.filters.project=params.xmProject this.filters.project=params.xmProject
this.filters.iteration=params.xmIteration this.filters.iteration=params.xmIteration
this.xmProjectWorkloadSetDays=[] this.xmProjectWorkloadSetDays=[]
this.$nextTick(()=>{ this.$nextTick(()=>{
if(this.$refs['xmProjectSelect'])this.$refs['xmProjectSelect'].clearSelect(); if(this.$refs['xmProjectSelect'])this.$refs['xmProjectSelect'].clearSelect();
this.listProjectWorkloadSetDay(); this.listProjectWorkloadSetDay();
@ -130,7 +131,7 @@
}, },
drawCharts() { drawCharts() {
this.myChart = this.$echarts.init(document.getElementById("projectWorkloadSetDayList"));
this.myChart = this.$echarts.init(document.getElementById(this.id));
var that=this; var that=this;
this.myChart.on('updateAxisPointer', function (event) { this.myChart.on('updateAxisPointer', function (event) {
const xAxisInfo = event.axesInfo[0]; const xAxisInfo = event.axesInfo[0];

Loading…
Cancel
Save