Browse Source

优化更多

master
陈裕财 4 years ago
parent
commit
c448607634
  1. 9
      src/styles/mdp.scss
  2. 97
      src/views/xm/core/xmTask/XmTaskAgileKanban.vue
  3. 78
      src/views/xm/core/xmTask/XmTaskMng.vue

9
src/styles/mdp.scss

@ -160,13 +160,8 @@
padding-top: 10px;
}
}
.more-label-font {
text-align: center;
float: left;
height: 28px;
line-height: 28px;
margin-right: 10px;
margin-top: 2px;
.more-label-font {
min-width: 100px;
}
.tips{

97
src/views/xm/core/xmTask/XmTaskAgileKanban.vue

@ -24,6 +24,9 @@
width="450"
>
<template slot-scope="scope">
<el-row>
</el-row>
<draggable
:name="scope.row.menuId"
:sort="false"
@ -55,43 +58,20 @@
:key="task.id + t"
>
<span>
{{ task.sortLevel }}&nbsp;
<el-tag v-if="task.level <= '2'" type="info">轻微</el-tag>
<el-tag v-else-if="task.level == '3'" type="warning"
>一般</el-tag
>
<el-tag v-else-if="task.level == '4'" type="danger"
>紧急</el-tag
>
<el-tag v-else type="danger">特急</el-tag>
<span
v-for="(item, index) in [formatExeUsernames(task)]"
:key="index"
>
<el-tooltip :content="item.exeUsernames"
><el-link
:type="item.type"
@click.stop="showEditForm(task)"
>{{ item.showMsg }}</el-link
></el-tooltip
>
</span>
<el-tooltip content="进度"
><el-link
{{ task.sortLevel }}&nbsp;<el-tag title="优先级" v-for="(item,index) in formatDictsWithClass(dicts,'priority',task.level)" :key="task.id+index" :type="item.className">{{item.name}}</el-tag>
<span title="执行人">
{{task.executorUsername?task.executorUsername:'未设置执行人'}}
</span> <el-link title="进度"
style="border-radius: 30px"
:type="task.rate >= 100 ? 'success' : 'warning'"
@click.stop="showEditForm(task)"
>
{{ (task.rate != null ? task.rate : 0) + "%" }}
</el-link></el-tooltip
>
<el-tooltip content="预算金额、工时"
><el-tag type="info"
</el-link> <el-tag type="info" title=""
>{{
parseFloat(task.budgetAt / 10000).toFixed(2)
}},{{ task.budgetWorkload }}人时</el-tag
></el-tooltip
>
}},{{ task.budgetWorkload }}人时</el-tag >
<el-link
type="primary"
@click.stop="showEditForm(task)"
@ -109,9 +89,8 @@
<el-dialog
title="编辑任务"
:visible.sync="editFormVisible"
:with-header="false"
width="80%"
top="20px"
:with-header="false"
fullscreen
append-to-body
:close-on-click-modal="false"
>
@ -131,8 +110,9 @@
</template>
<script>
import util from '@/common/js/util';//
import draggable from "vuedraggable";
import { editXmTaskSomeFields } from "@/api/xm/core/xmTask";
import { initDicts,editXmTaskSomeFields } from "@/api/xm/core/xmTask";
import XmTaskEdit from "./XmTaskEdit"; //
export default {
@ -151,7 +131,15 @@ export default {
{ label: "已结算", status: "4", number: 0 },
{ label: "已关闭", status: "9", number: 0 },
],
taskStateInit: [],
taskStateInit: [],
dicts: {
priority: [],
taskType: [],
planType: [],
xmTaskSettleSchemel: [],
taskState:[],
xm_plan_lvl:[],
},
tasks: {},
menus: [],
drag: {
@ -178,6 +166,7 @@ export default {
},
},
methods: {
...util,
onMove(e) {
console.log("onMove--e==", e);
@ -239,42 +228,7 @@ export default {
return false;
}
},
formatExeUsernames(row) {
var exeUsernames = row.exeUsernames;
var respons = {
type: "info",
executorUsername: row.executorUsername,
showMsg: "",
exeUsernames: exeUsernames,
executorUserid: row.executorUserid,
};
if (!row.executorUserid && exeUsernames) {
var exeStatuss = exeUsernames.split(",");
respons.showMsg = exeStatuss.length + "人候选中";
return respons;
} else if (!row.executorUserid && !exeUsernames) {
respons.showMsg = "候选中";
return respons;
}
if (row.executorUserid && exeUsernames && exeUsernames.length > 0) {
var exeStatuss = exeUsernames.split(",").filter((i) => {
return i.indexOf(row.executorUsername) >= 0;
});
if (exeStatuss.length <= 0) {
respons.showMsg = "去设置";
return respons;
}
respons.showMsg = exeStatuss.join(",");
if (respons.showMsg.indexOf("验收不过") >= 0) {
respons.type = "danger";
} else if (respons.showMsg.indexOf("已验收") >= 0) {
respons.type = "success";
}
} else {
respons.showMsg = "去设置";
}
return respons;
},
initData() {
var xmTasks = this.xmTasks;
this.taskState=JSON.parse(JSON.stringify(this.taskStateInit))
@ -314,6 +268,7 @@ export default {
afterExecEditSubmit() {},
},
mounted() {
initDicts(this)
this.taskStateInit=JSON.parse(JSON.stringify(this.taskState))
this.initData();

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

@ -77,7 +77,7 @@
trigger="manual"
v-model="moreVisible"
>
<el-row>
<el-row style="margin-top:-10px;">
<el-col :span="24">
<el-button style="float:right;"
icon="el-icon-close"
@ -87,7 +87,17 @@
>
</el-col>
</el-row>
<el-row>
<el-row>
<el-col :span="24" style="padding-top: 5px;">
<font class="more-label-font">显示方式:</font
> <el-row>
<el-radio v-model="displayType" label="grant">甘特图</el-radio>
<el-radio v-model="displayType" label="agile">敏捷看板</el-radio>
<el-radio v-model="displayType" label="table">表格</el-radio>
</el-row>
</el-col>
<el-col :span="24" style="padding-top: 5px">
<font class="more-label-font">产品:</font
> <xm-product-select :auto-select="false" :link-project-id="filters.selProject && filters.selProject.id?filters.selProject.id:null" @row-click="onProductSelected" @clear="onProductClearSelect"></xm-product-select>
@ -149,21 +159,6 @@
>我的</el-button
>
</el-col>
<el-col :span="24" style="padding-top: 5px">
<font class="more-label-font">创建时间:</font>
<el-date-picker
v-model="dateRanger"
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-col>
<el-col :span="24" style="padding-top: 5px">
<font class="more-label-font">技能:</font>
<el-button
@ -201,16 +196,30 @@
</el-col>
<el-col :span="24" style="padding-top: 5px">
<font class="more-label-font">是否为众包任务:</font>
<el-checkbox
class="padding-top"
<font class="more-label-font">众包任务:</font>
<el-checkbox
v-model="filters.taskOut"
true-label="1"
false-label=""
>众包</el-checkbox
>
</el-col>
<el-col :span="24" style="padding-top: 5px">
<font class="more-label-font">创建时间:</font>
<el-date-picker
v-model="dateRanger"
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-col>
<el-col :span="24" style="padding-top: 10px;">
<el-button
type="primary"
@ -287,26 +296,11 @@
icon="el-icon-delete"
title="批量删除"
></el-button
>
<el-popover
placement="top-start"
title="选择展示方式"
width="400"
trigger="click"
>
<el-row>
<el-radio v-model="displayType" label="grant">甘特图</el-radio>
<el-radio v-model="displayType" label="agile">敏捷看板</el-radio>
<el-radio v-model="displayType" label="table">表格</el-radio>
</el-row>
<el-button slot="reference">视图</el-button>
</el-popover>
>
</span>
</el-row>
<el-row>
<el-row ref="table">
<template v-if="displayType != 'grant'">
<xm-task-agile-kanban
:tableHeight="tableHeight"
@ -329,8 +323,7 @@
border
tooltip-effect="light"
:height="tableHeight"
row-key="id"
ref="table"
row-key="id"
:row-style="{height:'60px'}"
>
<el-table-column
@ -2152,6 +2145,11 @@ export default {
initData(){
if (this.selProject) {
this.filters.selProject = this.selProject;
if(this.selProject.workType=='2'){
this.displayType='agile'
}else{
this.displayType='table'
}
}
if (this.xmProduct) {
this.filters.product = this.xmProduct;

Loading…
Cancel
Save