Browse Source

优化

master
陈裕财 4 years ago
parent
commit
7a4dd5e18f
  1. 4
      src/api/xm/core/xmTask.js
  2. 88
      src/views/xm/core/xmTask/XmTaskMng.vue

4
src/api/xm/core/xmTask.js

@ -46,6 +46,10 @@ export const batchRelTasksWithMenu = params => { return axios.post(`${base}/xm/c
export const setTaskCreateUser = params => { return axios.post(`${base}/xm/core/xmTask/setTaskCreateUser`, params); };
export const editTime = params => { return axios.post(`${base}/xm/core/xmTask/editTime`, params); };

88
src/views/xm/core/xmTask/XmTaskMng.vue

@ -191,7 +191,8 @@
</el-table-column>
<el-table-column sortable prop="startTime" label="起止时间" width="120" show-overflow-tooltip>
<template slot-scope="scope">
{{getDateString(scope.row.startTime)}}&nbsp;~&nbsp;{{getDateString(scope.row.endTime)}}
<el-link @click="drawerVisible=true">{{getDateString(scope.row.startTime)}}&nbsp;~&nbsp;{{getDateString(scope.row.endTime)}}
</el-link>
<!--
<div v-for="(item,index) in [calcTaskStateByTime(scope.row.startTime,scope.row.endTime,scope.row)]" :key="index ">
<el-tag :type="item.type">{{getDateString(scope.row.startTime)}}~{{getDateString(scope.row.endTime)}} {{item.desc}}</el-tag>
@ -262,8 +263,45 @@
<div class="exector extra">
<div class="field-label">用户故事</div><el-tag v-if="editForm.menuName" style="margin-left:10px;border-radius:30px;" >{{editForm.menuName}}</el-tag>
</div>
<div class="exector extra">
<div class="field-label">计划时间</div>
<el-date-picker
v-model="budgetDateRanger"
class="hidden-sm-and-down"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="计划开始日期"
end-placeholder="计划完成日期"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00','23:59:59']"
:picker-options="pickerOptions"
></el-date-picker>
{{taskTime}}
</div>
<div class="exector extra">
<div class="field-label">实际时间</div>
<el-date-picker
v-model="actDateRanger"
class="hidden-sm-and-down"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="实际开始日期"
end-placeholder="实际完成日期"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00','23:59:59']"
:picker-options="pickerOptions"
></el-date-picker>
<el-button @click="editTime(editForm)">保存时间</el-button>
</div>
<div class="progress extra">
<div class="field-label">任务进度</div>
<div class="field-label"></div>
<el-row>
<el-slider
v-model="editForm.rate"
@ -271,7 +309,7 @@
</el-slider>
</el-row>
<el-row>
<el-button @click="editProgress(editForm.rate)">保存进度</el-button>
<el-button @click="editProgress(editForm.rate)">完成{{editForm.rate}}%</el-button>
<el-button style="font-size:12px;" @click="editProgress(40)">完成40%</el-button>
<el-button style="font-size:12px;" @click="editProgress(80)">完成80%</el-button>
<el-button style="font-size:12px;" @click="editProgress(100)">完成100%</el-button>
@ -292,9 +330,6 @@
<div class="skill extra">
<div class="field-label">技能要求</div><el-tag style="margin-left:10px;border-radius:30px;">{{editForm.taskSkillNames?editForm.taskSkillNames:'无'}}</el-tag>
</div>
<div class="extra">
<div class="field-label">任务周期</div>{{getDateString(editForm.startTime)+' ~ '+ getDateString(editForm.endTime)}} {{taskTime}}
</div>
</el-row>
<div v-if="drawerkey == '1' && drawerVisible==true" style="overflow-x:hidden">
@ -370,7 +405,7 @@
import util from '@/common/js/util';//
//import Sticky from '@/components/Sticky' // header
import { listOption } from '@/api/mdp/meta/itemOption';//
import { getTask ,listXmTask,editXmTask,editRate, delXmTask, batchDelXmTask,batchImportTaskFromTemplate,batchSaveBudget,setTaskCreateUser} from '@/api/xm/core/xmTask';
import { getTask ,listXmTask,editXmTask,editRate,editTime, delXmTask, batchDelXmTask,batchImportTaskFromTemplate,batchSaveBudget,setTaskCreateUser} from '@/api/xm/core/xmTask';
import XmTaskAdd from './XmTaskAdd';//
import XmTaskEdit from './XmTaskEdit';//
import XmTaskMngBatch from './XmTaskMngBatch';//
@ -441,16 +476,21 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
}
},
taskTime() {
const s = new Date(this.editForm.startTime);
if(this.budgetDateRanger.length>1){
const s = new Date(this.budgetDateRanger[0]);
const sy = s.getFullYear();
const sm = s.getMonth();
const sd = s.getDate();
const e = new Date(this.editForm.endTime);
const e = new Date(this.budgetDateRanger[1]);
const ey = e.getFullYear();
const em = e.getMonth();
const ed = e.getDate();
let len = (new Date(ey,em,ed) - new Date(sy,sm,sd))/(24*3600*1000) + 1;
return len;
}else{
return 0;
}
},
tasksTreeData() {
let xmTasks = JSON.parse(JSON.stringify(this.xmTasks || []));
@ -637,6 +677,11 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
util.formatDate.format(endDate, "yyyy-MM-dd")
],
pickerOptions: util.pickerOptions('datarange'),
budgetDateRanger: [
],
actDateRanger: [
],
}
},//end data
methods: {
@ -991,6 +1036,16 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
},
rowClick: function(row){
this.editForm=row;
if(row.startTime && row.endTime){
this.budgetDateRanger=[row.startTime,row.endTime]
}else{
this.budgetDateRanger=[]
}
if(row.actStartTime && row.actEndTime){
this.actDateRanger=[row.actStartTime,row.actEndTime]
}else{
this.actDateRanger=[]
}
// this.$emit('row-click',row,);// @row-click="rowClick"
},
@ -1260,7 +1315,6 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
if(dateStr==null || dateStr=="" || dateStr==undefined){
return ""
}else{
debugger;
var now=new Date();
var years=now.getFullYear();
if(dateStr.indexOf(years)==0){
@ -1738,6 +1792,20 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
}
}
},
editTime(row){
var params={taskId:row.taskId,projectId:row.projectId,startTime:this.budgetDateRanger[0],endTime:this.budgetDateRanger[1],actStartTime:this.actDateRanger[0],actEndTime:this.actDateRanger[1]}
this.load.edit = true;
editTime(params).then((res) => {
var tips=res.data.tips;
this.$message({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
this.getXmTasks();
this.load.edit = false;
}).catch( err =>{
this.load.edit = false;
this.editForm.rate = this.oldrate;
this.drawerVisible = false;
});
}
/**end 自定义函数请在上面加**/

Loading…
Cancel
Save