Browse Source

Merge remote-tracking branch 'origin/master'

master
陈裕财 4 years ago
parent
commit
199af6af0e
  1. 8
      src/api/mdp/sys/menuFavorite.js
  2. 1
      src/common/js/util.js
  3. 2
      src/store/index.js
  4. 67
      src/store/modules/menuFavorite.js
  5. 4
      src/views/mdp/workflow/ru/task/TaskListAssigneeToMe.vue
  6. 7
      src/views/mdp/workflow/ru/task/TaskMng.vue
  7. 168
      src/views/myWork/my/components/boxCard.vue
  8. 117
      src/views/myWork/my/components/moduleSet.vue
  9. 24
      src/views/myWork/my/index.scss
  10. 27
      src/views/myWork/my/index.vue
  11. 12
      src/views/myWork/set/index.scss
  12. 4
      src/views/myWork/set/index.vue
  13. 3
      src/views/xm/core/xmProduct/XmProductAllMng.vue
  14. 12
      src/views/xm/core/xmProduct/XmProductMng.vue
  15. 8
      src/views/xm/core/xmProject/XmProjectMng.vue
  16. 6
      src/views/xm/core/xmTask/XmMyTaskCenter.vue
  17. 9
      src/views/xm/core/xmTask/XmTaskMng.vue

8
src/api/mdp/sys/menuFavorite.js

@ -0,0 +1,8 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getSysBasePath();
export const userMenuFavoriteList = params => { return axios.get(`${base}/menu/menuFavorite/list`, { params: params }); };
export const saveMenuFavoriteList = params => { return axios.post(`${base}/menu/menuFavorite/batchSaveMenuFavorites`, params); };

1
src/common/js/util.js

@ -14,7 +14,6 @@ function padding(s, len) {
export default {
calcTableMaxHeight(cssSelector) {
var table=cssSelector;
if(typeof cssSelector == 'string'){
table=document.querySelector(cssSelector);

2
src/store/index.js

@ -7,6 +7,7 @@ import tagsView from './modules/tagsView'
import user from './modules/user'
import noticeMsg from './modules/noticeMsg'
import getters from './getters'
import menuFavorite from './modules/menuFavorite'
Vue.use(Vuex)
@ -18,6 +19,7 @@ const store = new Vuex.Store({
tagsView,
user,
noticeMsg,
menuFavorite
},
getters
})

67
src/store/modules/menuFavorite.js

@ -0,0 +1,67 @@
import { userMenuFavoriteList, saveMenuFavoriteList} from '@/api/mdp/sys/menuFavorite'
const menuFavorite = {
state: {
//喜欢的菜单
fMenu: [],
loading: {search: false, add: false}
},
mutations: {
getUserFavoriteMenuRequest(state) {
state.loading.search = true;
},
getUserFavoriteMenuFailure(state) {
state.loading.search = false;
},
getUserFavoriteMenuSuccess(state, {list}) {
state.loading.search = false;
console.log(list, "list--->");
state.fMenu = list;
},
saveUserFavoriteMenuRequest(state) {
state.loading.add = true;
},
saveUserFavoriteMenuFailure(state) {
state.loading.add = false;
},
saveUserFavoriteMenuSuccess(state, {}) {
state.loading.add = false;
},
},
actions: {
getUserFavoriteMenu({commit, state}, {userid}) {
commit('getUserFavoriteMenuRequest');
userMenuFavoriteList({userid}).then(res => {
commit('getUserFavoriteMenuSuccess', {list: res.data.data});
}).catch(err => {
commit('getUserFavoriteMenuFailure');
})
},
saveUserFavoriteMenu({commit, state, dispatch}, form) {
commit('saveUserFavoriteMenuRequest');
saveMenuFavoriteList(form).then(res => {
dispatch('getUserFavoriteMenu', {userid: form.userid});
commit('saveUserFavoriteMenuSuccess');
}).catch(err => {
commit('saveUserFavoriteMenuFailure');
})
}
}
}
export default menuFavorite

4
src/views/mdp/workflow/ru/task/TaskListAssigneeToMe.vue

@ -1,15 +1,15 @@
<template>
<section>
<task-mng :assigneeToMe="true"></task-mng>
<task-mng :assigneeToMe="true" :source="source"></task-mng>
</section>
</template>
<script>
import TaskMng from './TaskMng';//
export default {
name:'TaskListAssigneeToMe',
props: ['source'],
data() {
return {
filters: {

7
src/views/mdp/workflow/ru/task/TaskMng.vue

@ -21,7 +21,7 @@
<el-button v-show="assigneeToMe===false" class="hidden-sm-and-down" v-on:click="showSendSms">短信催办</el-button>
<el-button v-show="assigneeToMe===false" class="hidden-sm-and-down" v-on:click="showOaMsg">OAMSG催办</el-button>
<el-button @click.native="showTagSelect(false)" icon="el-icon-plus">标签</el-button>
<el-button style="margin-top: 20px;" @click.native="showTagSelect(false)" icon="el-icon-plus">标签</el-button>
<el-button @click="moreFilterVisible = true" circle icon="el-icon-more"></el-button>
<el-drawer title="更多查询条件" :visible.sync="moreFilterVisible" append-to-body :size="400">
<el-row class="page-container more-filter">
@ -132,7 +132,7 @@
</el-table>
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange"
@size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum"
:page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
:page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right; margin-top:20px;"></el-pagination>
<!--编辑 Execution act_ru_execution界面-->
</el-row>
<el-calendar v-if="showCalendar==true" v-loading="listLoading" v-model="filters.calendarDate">
@ -256,7 +256,7 @@
export default {
name: "TaskMng",
props: ["assigneeToMe", "defaultShowCalendar", "isClaim","bizParentPkid","bizPkid","procInstIds"], //
props: ["assigneeToMe", "defaultShowCalendar", "isClaim","bizParentPkid","bizPkid","procInstIds", "source"], //
computed: {
...mapGetters(["userInfo", "myDepts", "myPosts"]),
screenWidth: function() {
@ -1398,6 +1398,7 @@
} else {
this.showCalendar = false;
}
this.$nextTick(() => {
if (!this.showCalendar) {
var clientRect = this.$refs.table.$el.getBoundingClientRect();

168
src/views/myWork/my/components/boxCard.vue

@ -1,43 +1,48 @@
<template>
<div class="my_grid" style="width: 100%; min-height: 800px; margin-top: 10px">
<grid-layout
:layout.sync="layout"
:col-num="12"
:row-height="120"
:is-draggable="true"
:is-resizable="true"
:vertical-compact="true"
:margin="[10, 10]"
:use-css-transforms="true"
>
<grid-item
v-for="item in layout"
:x="item.x"
:y="item.y"
:w="item.w"
:h="item.h"
:i="item.i"
:key="item.i">
<div class="m_content_card_title">
<span><b>{{item.moduleName}}</b></span>
</div>
<dsp v-if="item.name == 'dsp'"></dsp>
<wdrw v-if="item.name == 'wdrw'"></wdrw>
<wdcp v-if="item.name == 'wdcp'"></wdcp>
<wdxm v-if="item.name == 'wdxm'"></wdxm>
</grid-item>
</grid-layout>
</div>
<div>
<div class="empty" v-if="layout.length == 0">
<el-empty description="暂未选择模块"></el-empty>
</div>
<div v-else class="my_grid" style="width: 100%; min-height: 800px; margin-top: 10px">
<grid-layout
:layout.sync="layout"
:col-num="layoutColNum"
:row-height="120"
:is-draggable="true"
:is-resizable="true"
:is-mirrored="false"
:vertical-compact="true"
:margin="[10, 10]"
:use-css-transforms="true"
>
<grid-item
v-for="(item) in layout"
:x="item.x"
:y="item.y"
:w="item.w"
:h="item.h"
:i="item.i"
:key="item.i">
<div class="m_content_card_title">
<span><b>{{item.menuname}}</b></span>
</div>
<dsp source="GZT" v-if="item.menuid == 'dsp'"></dsp>
<wdrw source="GZT" v-if="item.menuid == 'wdrw'"></wdrw>
<wdcp source="GZT" v-if="item.menuid == 'wdcp'"></wdcp>
<wdxm source="GZT" v-if="item.menuid == 'wdxm'"></wdxm>
</grid-item>
</grid-layout>
</div>
</div>
</template>
<script>
import dsp from '@/views/mdp/workflow/ru/task/TaskListAssigneeToMe.vue';
import wdrw from '@/views/xm/core/xmTask/xmTaskCenter.vue';
import wdrw from '@/views/xm/core/xmTask/xmMyTaskCenter.vue';
import wdcp from '@/views/xm/core/xmProduct/XmProductAllMng.vue';
import wdxm from '@/views/xm/core/xmProject/XmProjectMng';
import VueGridLayout from 'vue-grid-layout';
import { mapGetters } from 'vuex'
export default {
components: {
@ -48,54 +53,56 @@ export default {
GridLayout: VueGridLayout.GridLayout,
GridItem: VueGridLayout.GridItem
},
computed: {
...mapGetters(['userInfo']),
menuFavorite() {
return this.$store.state.menuFavorite.fMenu;
}
},
watch: {
'menuFavorite': {
handler(val, oval) {
this.layout = [];
val.forEach((element, index) => {
this.addItem(element, index);
});
}
}
},
data() {
return {
layout: [
{
moduleName: '待审批',
name: 'dsp',
isOpen: false,
x: 0,
y: 0,
w: 6,
h: 4,
i: 0
},
{
moduleName: '我的任务',
name: 'wdrw',
isOpen: false,
x: 6,
y: 0,
w: 6,
h: 4,
i: 1
},
{
moduleName: '我的产品',
name: 'wdcp',
isOpen: false,
//
layout: [],
//
layoutColNum: 12,
}
},
methods: {
addItem: function(element, index) {
this.layout.push(
{
...element,
// x: (this.layout.length * 6) % (this.layoutColNum || 12),
x: 0,
y: 2,
w: 6,
// y: this.layout.length + (this.layoutColNum || 12),
y: 12,
w: 12,
h: 4,
i: 2
},
{
moduleName: '我的项目',
name: 'wdxm',
isOpen: false,
x: 6,
y: 2,
w: 6,
h: 4,
i: 3
i: index,
}
],
}
)
},
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('getUserFavoriteMenu', {userid: this.userInfo.displayUserid});
})
},
methods: {
}
}
</script>
@ -109,6 +116,18 @@ export default {
<style lang="scss" scoped>
@import '../../common.scss';
@import '../index.scss';
.empty {
height: 500px;
background: #fff;
margin: 11px;
padding: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.vue-grid-layout {
background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.15) 1%, rgba(0, 0, 0, 0) 1%)
,linear-gradient(0deg,rgba(0, 0, 0, 0.15) 1%, rgba(0, 0, 0, 0) 1%);
@ -117,7 +136,6 @@ export default {
.vue-grid-item:not(.vue-grid-placeholder) {
background: #fff;
box-shadow: 1px 1px 1px 1px #ccc;
}
.vue-grid-item .resizing {

117
src/views/myWork/my/components/moduleSet.vue

@ -23,21 +23,21 @@
</div>
</div>
</div>
<div class="nav">
<div class="nav_item" :class="{itemActive:selectArr.indexOf(item.index) != -1}" v-for="(item, index) in (tempMenu.length > 0 ? tempMenu : menus)" :key="index" @click="selectItem(item, index)">
<img :src="item.img" alt="">
<div class="nav" v-loading="menuFavorite.loading.search">
<div class="nav_item" :class="{itemActive: item.isChecked}" v-for="(item, index) in (tempMenu.length > 0 ? tempMenu : menus)" :key="index" @click="selectItem(item, index)">
<img :src="item.icon" alt="">
<div class="desc">
<p>{{item.name}}</p>
<p>{{item.menuname}}</p>
<span>
{{item.desc}}
{{item.menudesc}}
</span>
</div>
<i v-if="selectArr.indexOf(item.index) != -1" class="el-icon-success"></i>
<i v-if="item.isChecked" class="el-icon-success"></i>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button>
<el-button type="primary"> </el-button>
<el-button type="primary" :loading="menuFavorite.loading.add" @click="save"> </el-button>
</span>
</el-dialog>
</template>
@ -47,71 +47,120 @@ import img1 from '../../img/dsp.png'
import img2 from '../../img/wdrw.png'
import img3 from '../../img/wdxm.png'
import img4 from '../../img/wdcp.png'
import { mapGetters } from 'vuex'
export default {
props: ['value'],
computed: {
...mapGetters(['userInfo']),
visible: {
get: function () {
if(this.value) {
//
this.getUserModules();
}
return this.value;
},
set: function (val) {
this.$emit('input', val)
this.menus.forEach(element => {
element.isChecked = false;
});
this.$emit('input', val);
}
},
menuFavorite() {
return this.$store.state.menuFavorite;
}
},
watch: {
'menuFavorite.fMenu' : {
handler(val, oval) {
if(!val || val.length < 1) return
this.menus.forEach(m => {
val.forEach(v => {
if(m.menuid == v.menuid) {
m.isChecked = true;
}
})
})
}
}
},
data() {
return {
searchResult: '',
selectArr: [],
tempMenu: [],
menus: [
{
index: 0,
img: img1,
name: '待审批',
desc: '可以直接显示全部待审批列表,也可根据审批分类详细筛选单条待审批事项'
menuid: 'dsp',
icon: img1,
menuname: '待审批',
menudesc: '可以直接显示全部待审批列表,也可根据审批分类详细筛选单条待审批事项',
isChecked: false,
},
{
index: 1,
img: img2,
name: '我的任务',
desc: '可以直接显示全部任务列表,也可根据状态、类型详细筛选分类的任务'
menuid: 'wdrw',
icon: img2,
menuname: '我的任务',
menudesc: '可以直接显示全部任务列表,也可根据状态、类型详细筛选分类的任务',
isChecked: false,
},
{
index: 2,
img: img3,
name: '我的项目',
desc: '可以直接显示全部项目列表,也可根据项目状态产品筛选单条项目'
menuid: 'wdxm',
icon: img3,
menuname: '我的项目',
menudesc: '可以直接显示全部项目列表,也可根据项目状态产品筛选单条项目',
isChecked: false,
},
{
index: 3,
img: img4,
name: '我的产品',
desc: '可以直接显示全部产品列表,可新增我的产品'
menuid: 'wdcp',
icon: img4,
menuname: '我的产品',
menudesc: '可以直接显示全部产品列表,可新增我的产品',
isChecked: false,
}
]
],
}
},
methods: {
searchMenu(val) {
console.log("查询菜单" + val);
let tempArr = [];
this.menus.forEach(element => {
if(element.name.indexOf(val) != -1) {
tempArr.push(element);
}
}
});
this.tempMenu = tempArr;
},
selectItem(item, index) {
let arrIndex = this.selectArr.indexOf(item.index);
if(arrIndex != -1) {
this.selectArr.splice(arrIndex, 1);
}else {
this.selectArr.push(item.index);
}
this.$set(item, 'isChecked', !item.isChecked)
},
getUserModules() {
this.$store.dispatch('getUserFavoriteMenu', {userid: this.userInfo.displayUserid});
},
save() {
let saveModules = [];
this.menus.forEach(m => {
if(m.isChecked) {
saveModules.push(m);
}
})
this.$store.dispatch('saveUserFavoriteMenu', {data: saveModules, userid: this.userInfo.displayUserid}).then(() => {
this.visible = false
this.$message.success("设置成功");
})
}
}
}

24
src/views/myWork/my/index.scss

@ -5,23 +5,23 @@
height: 100px;
align-items: center;
border: 1px solid #ebeef5;
box-shadow: 0 2px 12px 0 rgba($color: #000000, $alpha: .2);
margin: 0 10px;
.m_avatar {
width: 58px;
height: 58px;
width: 52px;
height: 52px;
margin-left: 34px;
}
.m_msg {
margin-left: 22px;
p:nth-child(1) {
font-size: 22px;
font-size: 20px;
font-weight: bold;
color: #7D7D7D;
opacity: 0.92;
}
p:nth-child(2) {
margin-top: 12px;
font-size: 16px;
font-size: 14px;
font-weight: bold;
color: #7D7D7D;
opacity: 0.53;
@ -44,20 +44,20 @@
padding: 30px;
background: #fff;
border: 1px solid #ebeef5;
box-shadow: 0 2px 12px 0 rgba($color: #000000, $alpha: .2);
}
.m_left {
display: flex;
flex-direction: row;
margin-right: 10px;
margin-left: 10px;
.m_left_1 {
flex: 1.5;
p {
font-size: 20px;
margin-bottom: 30px;
font-size: 18px;
margin-bottom: 20px;
}
span {
font-size: 16px;
font-size: 15px;
line-height: 42px;
color: #7D7D7D;
}
@ -67,6 +67,7 @@
img {
width: 100%;
margin-left: 20px;
margin-top: 10px;
}
}
}
@ -75,6 +76,7 @@
display: flex;
flex-direction: row;
flex-wrap: wrap;
margin-right: 10px;
.m_right_menu {
display: flex;
width: 33.3%;
@ -84,8 +86,8 @@
font-size: 16px;
cursor: pointer;
img {
width: 68px;
height: 68px;
width: 58px;
height: 58px;
}
span {
margin-top: 12px;

27
src/views/myWork/my/index.vue

@ -21,27 +21,27 @@
</div>
</div>
<div class="m_right">
<div class="m_right_menu">
<div class="m_right_menu" @click="gotolink('/xm/core/xmProduct/XmProductMng')">
<img src="../img/cp.png" alt="">
<span>产品管理</span>
</div>
<div class="m_right_menu">
<div class="m_right_menu" @click="gotolink('/xm/core/xmMenu/XmMenuMng')">
<img src="../img/xqgl.png" alt="">
<span>需求管理</span>
</div>
<div class="m_right_menu">
<div class="m_right_menu" @click="gotolink('/xm/core/xmProject/XmProjectAllMng')">
<img src="../img/xmgl.png" alt="">
<span>项目管理</span>
</div>
<div class="m_right_menu">
<div class="m_right_menu" @click="gotolink('/xm/core/xmGroup/XmGroupAllMng')">
<img src="../img/tdgl.png" alt="">
<span>团队管理</span>
</div>
<div class="m_right_menu">
<div class="m_right_menu" @click="gotolink('/xm/core/xmTask/XmTaskCenter')">
<img src="../img/kfrw.png" alt="">
<span>开发任务</span>
</div>
<div class="m_right_menu">
<div class="m_right_menu" @click="gotolink('/xm/core/xmQuestion/XmQuestionMng')">
<img src="../img/qx.png" alt="">
<span>缺陷管理</span>
</div>
@ -79,12 +79,25 @@ export default {
return msg;
}
},
watch: {
},
data() {
return {
moduleSetVisible: false
}
},
methods: {
gotolink(url) {
this.$router.replace(url);
},
},
mounted() {
}

12
src/views/myWork/set/index.scss

@ -1,3 +1,15 @@
.set_container {
width: 100%;
height: 100vh;
background: rgb(238, 238, 238);
}
.set_content {
padding:30px 18px 18px 18px;
overflow: hidden;
position: relative;
}
.m_msgcard {
width: 100%;
height: 120px;

4
src/views/myWork/set/index.vue

@ -1,6 +1,6 @@
<template>
<div class="m_container">
<div class="m_content">
<div class="set_container">
<div class="set_content">
<div class="m_msgcard">
<el-avatar class="m_avater" :src="editForm.headimgurl || defaultImg">
</el-avatar>

3
src/views/xm/core/xmProduct/XmProductAllMng.vue

@ -1,6 +1,6 @@
<template>
<section>
<xm-product-mng :data-scope="'all'"></xm-product-mng>
<xm-product-mng :data-scope="'all'" :source="source"></xm-product-mng>
</section>
</template>
@ -11,6 +11,7 @@
import XmProductMng from './XmProductMng.vue';
export default {
props: ['source'],
computed: {
...mapGetters([
'userInfo','roles'

12
src/views/xm/core/xmProduct/XmProductMng.vue

@ -85,13 +85,13 @@
迭代 <el-tag v-if="xmIteration">{{xmIteration.iterationName}}</el-tag>
</font>
</el-col>
<el-col :span="24" style="padding-top:10px;">
<el-button type="primary" @click="searchXmProducts" >查询</el-button>
<el-col :span="24" style="padding-top:10px;">
<el-button type="primary" @click="searchXmProducts" >查询</el-button>
<el-button type="text" @click="templateVisible=!templateVisible" >{{templateVisible?"隐藏模板":"显示模板"}}</el-button>
<el-button type="text" @click="guiderStart(true)" icon="el-icon-help">新手导航</el-button>
</el-col>
</el-row>
<el-button slot="reference" icon="el-icon-more" id="guider-two"></el-button>
<el-button slot="reference" style="margin-top: 10px;" icon="el-icon-more" id="guider-two"></el-button>
</el-popover>
<span style="float:right;">
<el-popover style="padding-left:10px;"
@ -115,7 +115,7 @@
</el-badge>
</el-col>
</el-row>
<el-button type="primary" slot="reference" icon="el-icon-plus" v-if="!xmIteration" id="guider-one" round>产品</el-button>
<el-button type="primary" slot="reference" style="margin-top: 10px;" icon="el-icon-plus" v-if="!xmIteration" id="guider-one" round>产品</el-button>
</el-popover>
</span>
</el-row>
@ -323,7 +323,7 @@
import Guider from '@/components/Guider/Index.js';
export default {
props:['selProject','xmIteration'],
props:['selProject','xmIteration', 'source'],
computed: {
...mapGetters([
'userInfo','roles'
@ -739,7 +739,7 @@
}
});
this.$nextTick(() => {
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.table.$el);
this.maxTableHeight = this.source == 'GZT' ? this.maxTableHeight : util.calcTableMaxHeight(this.$refs.table.$el);
this.getXmProducts(this.guiderStart);
});
},

8
src/views/xm/core/xmProject/XmProjectMng.vue

@ -32,7 +32,7 @@
<el-input v-model="filters.key" style="width:15%;" placeholder="项目名称模糊查询" clearable>
</el-input>
<el-button type="primary" icon="el-icon-search" @click="searchXmProjects">查询</el-button>
<el-button style="margin-top: 10px;" type="primary" icon="el-icon-search" @click="searchXmProjects">查询</el-button>
<el-popover
placement="top-start"
title="更多查询条件或操作"
@ -95,7 +95,7 @@
</el-badge>
</el-col>
</el-row>
<el-button id="prj-plus-btn" type="primary" slot="reference" icon="el-icon-plus" round>项目</el-button>
<el-button id="prj-plus-btn" type="primary" style="margin-top: 10px;" slot="reference" icon="el-icon-plus" round>项目</el-button>
</el-popover>
</span>
</el-row>
@ -343,7 +343,7 @@
import Guider from '@/components/Guider/Index.js';
export default {
props:['dataScope'],
props:['dataScope', 'source'],
computed: {
...mapGetters([
'userInfo','roles'
@ -882,7 +882,7 @@
initSimpleDicts('all',['projectType','priority','projectStatus']).then(res=>{
this.dicts=res.data.data;
})
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.table.$el);
this.maxTableHeight = this.source == 'GZT' ? this.maxTableHeight : util.calcTableMaxHeight(this.$refs.table.$el);
this.showInfo = false;
this.getXmProjects(this.guiderStart);
});

6
src/views/xm/core/xmTask/XmMyTaskCenter.vue

@ -1,18 +1,17 @@
<template>
<section>
<el-row class="xm-task">
<xm-task-mng :is-task-center="1" :is-my="1"></xm-task-mng>
<xm-task-mng :source="source" :is-task-center="1" :is-my="1"></xm-task-mng>
</el-row>
</section>
</template>
<script>
import { mapGetters } from 'vuex';
import xmTaskMng from './XmTaskMng';
export default {
props: ['source'],
computed: {
...mapGetters([
'userInfo','roles'
@ -36,7 +35,6 @@
//
},
mounted() {
}
}

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

@ -7,7 +7,6 @@
:class="{ 'flex-box': displayType == 'agil' }"
>
<el-row>
<el-popover v-if=" ptype==='0' && (!selProject || !selProject.id)"
placement="bottom"
width="400"
@ -103,6 +102,7 @@
>{{ skill.skillName }}</el-tag
>
<el-button
style="margin-top: 10px;"
v-if="!filters.tags || filters.tags.length == 0"
@click.native="tagSelectVisible = true"
>标签</el-button
@ -380,7 +380,7 @@
>
</el-col>
</el-row>
<el-button slot="reference">更多</el-button>
<el-button style="margin-top: 10px;" slot="reference">更多</el-button>
</el-popover>
<el-popover
@ -636,7 +636,7 @@
:current-page="pageInfo.pageNum"
:page-size="pageInfo.pageSize"
:total="pageInfo.total"
style="float: right"
style="float: right; margin-top: 10px;"
></el-pagination>
</template>
<xm-gantt
@ -1194,6 +1194,7 @@ export default {
"xmIteration",
"ptype",//0-1-all/
"queryScope",//planTask,task,plan,,
"source" // "GZT:"
],
watch: {
selProject: function (oval, val) {
@ -2568,7 +2569,7 @@ export default {
this.initData();
this.$nextTick(() => {
this.getXmTasks();
this.tableHeight = util.calcTableMaxHeight(this.$refs.table.$el);
this.tableHeight = this.source == 'GZT' ? this.tableHeight : util.calcTableMaxHeight(this.$refs.table.$el);
initSimpleDicts( "all", ["planType","taskType","priority","xmTaskSettleSchemel","priority","taskState" ]).then((res) => {
this.dicts = res.data.data;
});

Loading…
Cancel
Save