Browse Source

优化

master
陈裕财 3 years ago
parent
commit
fbe3ccf407
  1. 8
      src/router/routes_xm.js
  2. 33
      src/views/xm/core/xmProduct/top-nav.vue
  3. 43
      src/views/xm/core/xmProject/XmProjectForLink.vue
  4. 7
      src/views/xm/core/xmTask/XmTaskListForProduct.vue

8
src/router/routes_xm.js

@ -255,12 +255,12 @@ export default {
hidden:true
},
{
path: 'product',
component: _import('xm/core/xmProduct/XmProductForLinkComplex'),
name: 'productProductLink',
path: 'project',
component: _import('xm/core/xmProject/XmProjectForLinkComplex'),
name: 'productProjectLink',
iconCls: 'fa el-icon-menu',
meta: {
title: '产品-产品',
title: '产品-项目',
icon: 'product',roles:["user"]
},
hidden:true

33
src/views/xm/core/xmProduct/top-nav.vue

@ -12,34 +12,37 @@
:router="true"
>
<el-menu-item :index="'/xm/core/product/overview?productId='+xmProduct.id">
<el-menu-item :index="'/xm/core/product/overview?productId='+xmProduct.id">
<span
slot="title"
style="font-size: 18px; color: #ffd04b"
class="hidden-sm-and-down"
style="font-size: 18px; color: #409eff"
class="hidden-md-and-down"
:title="xmProduct.productName"
>
<font v-if="xmProduct.productName.length >= 15"
><strong
>&nbsp;<el-avatar class="top-icon" icon="el-icon-odometer" style="background-color:#E6A23C"></el-avatar>&nbsp;:&nbsp;{{ xmProduct.productName.substring(0, 15) }}</strong
<font v-if="xmProduct.productName.length >= 15">
<strong>
&nbsp;<el-avatar class="top-icon" icon="el-icon-s-opportunity" style="background-color:#409EFF"></el-avatar>&nbsp;{{ xmProduct.productName.substring(0, 15) }}</strong
></font
>
<font type="danger" v-else
><strong>&nbsp;<el-avatar class="top-icon" icon="el-icon-odometer" style="background-color:#E6A23C"></el-avatar>&nbsp;:&nbsp;{{ xmProduct.productName }}</strong></font
<div v-else>
<font type="danger">
<strong>&nbsp; <el-avatar class="top-icon" icon="el-icon-s-opportunity" style="background-color:#409EFF"></el-avatar>&nbsp;:&nbsp;{{ xmProduct.productName }}</strong></font
>
</div>
</span>
<span
slot="title"
style="color: #ffd04b"
class="hidden-md-and-up"
style="color: #409eff"
class="hidden-lg-and-up"
:title="xmProduct.productName"
>
<font v-if="xmProduct.productName.length >= 15"
>&nbsp;<el-avatar class="top-icon" icon="el-icon-odometer" style="background-color:#E6A23C"></el-avatar>&nbsp;:&nbsp;{{ xmProduct.productName.substring(0, 15) }}</font
<font v-if="xmProduct.productName.length >= 15">
&nbsp;<el-avatar class="top-icon" icon="el-icon-s-opportunity" style="background-color:#409EFF"></el-avatar>&nbsp;:&nbsp;{{ xmProduct.productName.substring(0, 15) }}</font
>
<font type="danger" v-else
>&nbsp;<el-avatar class="top-icon" icon="el-icon-odometer" style="background-color:#E6A23C"></el-avatar>&nbsp;:&nbsp;{{ xmProduct.productName }}</font
<font type="danger" v-else>
&nbsp;<el-avatar class="top-icon" icon="el-icon-s-opportunity" style="background-color:#409EFF"></el-avatar>&nbsp;:&nbsp;{{ xmProduct.productName }}</font
>
</span>
</el-menu-item>

43
src/views/xm/core/xmProject/XmProjectForLink.vue

@ -1,23 +1,31 @@
<template>
<section>
<section class="padding">
<el-row>
<el-input v-model="filters.key" style="width:30%;" placeholder="请输入关键字进行查找项目" v-if="!xmIteration && !xmProduct">
</el-input>
<el-button @click="searchXmProjects" icon="el-icon-search" v-if="!xmIteration && !xmProduct"></el-button>
<xm-project-select @row-click="onXmProjectSelect">
<span style="text-align:right;">
<xm-project-select v-if="xmProduct && xmProduct.id" @row-click="onXmProjectSelect" :auto-select="false" :link-product-id="xmProduct.id">
<font slot="title">添加更多项目到产品中</font>
</xm-project-select>
<xm-project-select v-if="xmIteration && xmIteration.id" @row-click="onXmProjectSelect" :auto-select="false" :link-iteration-id="xmIteration.id">
<font slot="title">添加更多项目到产品中</font>
</xm-project-select>
</span>
</el-row>
<el-row class="page-main ">
<el-table ref="table" :height="tableHeight" stripe :data="xmProjects" highlight-current-row v-loading="load.list" style="width: 100%;">
<el-row>
<el-table ref="table" :height="tableHeight" stripe :data="xmProjects" highlight-current-row v-loading="load.list" border style="width: 100%;">
<el-table-column type="index" label="序号" width="55" ></el-table-column>
<el-table-column prop="id" label="项目编码" min-width="80" ></el-table-column>
<el-table-column prop="name" label="标题名称" min-width="80" ></el-table-column>
<el-table-column prop="seq" label="顺序" min-width="80" >
<span class="cell-text"> {{scope.row.username}}} </span>
<span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.username" placeholder="" @change="editSomeFields(scope.row,'username',$event)" :maxlength="22"></el-input></span>
</el-table-column>
<template slot-scope="scope">
<span class="cell-text"> {{scope.row.seq}} </span>
<span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.username" placeholder="" @change="editSomeFields(scope.row,'seq',$event)" :maxlength="22"></el-input></span>
</template>
</el-table-column>
<el-table-column label="操作" width="245" fixed="right">
<template slot-scope="scope">
<el-button-group>
@ -48,15 +56,14 @@
import { listXmProject, } from '@/api/xm/core/xmProject';
import { mapGetters } from 'vuex'
import { delXmProductProjectLink, addXmProductProjectLink,batchDelXmProductProjectLink,editSomeFieldsXmProductProjectLink } from '@/api/xm/core/xmProductProjectLink';
import XmProjectSelect from '@/views/xm/core/components/XmProjectSelect.vue';
import XmProjectSelect from '@/views/xm/core/components/XmProjectSelect.vue';
import store from '@/store'
export default {
props:['xmProduct','xmIteration'],
export default {
computed: {
...mapGetters([
'userInfo','roles'
'userInfo','roles','xmProduct','xmIteration'
]),
},
watch:{
@ -137,16 +144,20 @@ import XmProjectSelect from '@/views/xm/core/components/XmProjectSelect.vue';
total: this.pageInfo.total,
count:this.pageInfo.count,
};
debugger;
if(this.xmProduct){
params.productId=this.xmProduct.id
params.linkProductId=this.xmProduct.id
}
if(this.xmIteration){
params.iterationId=this.xmIteration.id
params.linkIterationId=this.xmIteration.id
}
if(this.filters.key){
params.key='%'+this.filters.key+'%'
}
if( !params.linkIterationId && !params.linkProductId){
return;
}
this.load.list = true;
if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){
let orderBys=[];
@ -170,7 +181,9 @@ import XmProjectSelect from '@/views/xm/core/components/XmProjectSelect.vue';
}).catch( err => this.load.list = false );
},
goToProject(row){
this.$router.push({path:'/xm/core/xmProject/XmProjectInfoRoute',query:{id:row.id}})
store.dispatch("setProjectInfo",row).then(res=>{
this.$router.push({path:'/xm/core/project/overview',query:{projectId:row.id}})
})
},
selectProject:function(row){
this.editForm=row

7
src/views/xm/core/xmTask/XmTaskListForProduct.vue

@ -1,6 +1,6 @@
<template>
<section>
<xm-task-mng :xm-product="xmProduct" ptype="1" ntype="0"></xm-task-mng>
<xm-task-mng :xm-product="xmProduct" ptype="1" query-scope="task"></xm-task-mng>
</section>
</template>
@ -13,10 +13,9 @@
export default {
computed: {
...mapGetters([
'userInfo','roles'
'userInfo','roles','xmProduct'
]),
},
props: ["xmProduct",'isMultiSelect'],
},
watch: {
"selkey": function(val) {
// console.log("");

Loading…
Cancel
Save