diff --git a/src/router/routes_xm.js b/src/router/routes_xm.js
index 65da9290..a8173fd7 100644
--- a/src/router/routes_xm.js
+++ b/src/router/routes_xm.js
@@ -1,6 +1,7 @@
/* Layout */
import Layout from '../views/layout/Layout'
import XmProjectLayout from '../views/xm/core/xmProject/index'
+import XmProductLayout from '../views/xm/core/xmProduct/index'
const _import = require('./_import_' + process.env.NODE_ENV)
export default {
@@ -230,7 +231,186 @@ export default {
]
},
-
+ {
+ path: '/xm/core/product',
+ component: XmProductLayout,
+ name: '产品管理',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品管理',
+ icon: 'product'
+ },
+ hidden:true,
+ // leaf: true,//只有一个节点
+ children: [
+ {
+ path: 'overview',
+ component: _import('xm/core/xmProduct/XmProductOverviewComplex'),
+ name: 'productOverview',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-首页',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'product',
+ component: _import('xm/core/xmProduct/XmProductForLinkComplex'),
+ name: 'productProductLink',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-产品',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'menu',
+ component: _import('xm/core/xmMenu/XmMenuBox'),
+ name: 'productMenu',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-需求',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'iteration',
+ component: _import('xm/core/xmIteration/XmIterationForLinkComplex'),
+ name: 'productIteration',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-迭代',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'plan',
+ component: _import('xm/core/xmTask/XmPlan'),
+ name: 'productPlan',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-计划',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'task',
+ component: _import('xm/core/xmTask/XmTaskListForProduct'),
+ name: 'productMenu',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-任务',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'env',
+ component: _import('xm/core/xmEnvList/XmEnvListMng'),
+ name: 'productEnv',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-环境清单',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'question',
+ component: _import('xm/core/xmQuestion/XmQuestionForProduct'),
+ name: 'productQuestion',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-缺陷',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'group',
+ component: _import('xm/core/xmGroup/XmGroupForProduct'),
+ name: 'productGroup',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-团队',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'contract',
+ component: _import('xm/core/xmContract/XmContractForProduct'),
+ name: 'productContract',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-合同',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'record',
+ component: _import('xm/core/xmRecord/XmRecordForProduct'),
+ name: 'productRecord',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-日志',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'workloadDay',
+ component: _import('xm/core/xmWorkload/WorkloadSetDayList'),
+ name: 'productBudget',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-工时日报',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'workloadMonth',
+ component: _import('xm/core/xmWorkload/WorkloadSetMonthList'),
+ name: 'productWorkloadMonth',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-工时月报',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'file',
+ component: _import('xm/core/xmFile/XmFileForProduct'),
+ name: 'productFile',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-文档',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+ {
+ path: 'report',
+ component: _import('xm/rpt/reportIndexForProduct'),
+ name: 'productReport',
+ iconCls: 'fa el-icon-menu',
+ meta: {
+ title: '产品-效能',
+ icon: 'product',roles:["user"]
+ },
+ hidden:true
+ },
+
+ ]
+ },
{ path: '/xm/core/testCasedbRoute', component: _import('xm/core/xmTestCasedb/XmTestCasedbRoute'), name: 'XmTestCasedbRoute', meta: { title: '测试库管理',roles:["user"] },hidden:true},
{
@@ -361,7 +541,7 @@ export default {
},
//leaf: true,//只有一个节点
children: [
- { path: 'xmProject/XmProjectCost', component: _import('xm/core/xmProject/XmProjectCost'), name: 'XmProjectCost', meta: { title: '应付款',roles:["user"]}},
+ { path: 'xmProduct/XmProjectCost', component: _import('xm/core/xmProject/XmProjectCost'), name: 'XmProjectCost', meta: { title: '应付款',roles:["user"]}},
{ path: 'xmTaskSbill/XmTaskSbillMng', component: _import('xm/core/xmTaskSbill/XmTaskSbillMng'), name: 'XmTaskSbilllMng', meta: { title: '任务结算单',roles:["user"]}},
{ path: 'xmWorkload/WorkloadSetDayListMy', component: _import('xm/core/xmWorkload/WorkloadSetDayListMy'), name: 'WorkloadSetDayListMy', meta: { title: '工时日报(我)',roles:["user"]}},
diff --git a/src/views/xm/core/xmContract/XmContractForProduct.vue b/src/views/xm/core/xmContract/XmContractForProduct.vue
new file mode 100644
index 00000000..9b42e70e
--- /dev/null
+++ b/src/views/xm/core/xmContract/XmContractForProduct.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/xm/core/xmFile/XmFileForProduct.vue b/src/views/xm/core/xmFile/XmFileForProduct.vue
new file mode 100644
index 00000000..efc965c0
--- /dev/null
+++ b/src/views/xm/core/xmFile/XmFileForProduct.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/xm/core/xmFile/XmFileMng.vue b/src/views/xm/core/xmFile/XmFileMng.vue
index 2a455701..a56a598f 100644
--- a/src/views/xm/core/xmFile/XmFileMng.vue
+++ b/src/views/xm/core/xmFile/XmFileMng.vue
@@ -60,7 +60,7 @@
return [];
},
},
- props: ["selProject"],
+ props: ["selProject","xmProduct"],
data() {
return {
filters: {
diff --git a/src/views/xm/core/xmGroup/XmGroupForProduct.vue b/src/views/xm/core/xmGroup/XmGroupForProduct.vue
new file mode 100644
index 00000000..c2925c65
--- /dev/null
+++ b/src/views/xm/core/xmGroup/XmGroupForProduct.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/xm/core/xmProduct/XmProductMng.vue b/src/views/xm/core/xmProduct/XmProductMng.vue
index 854913f6..a0ed762c 100644
--- a/src/views/xm/core/xmProduct/XmProductMng.vue
+++ b/src/views/xm/core/xmProduct/XmProductMng.vue
@@ -407,6 +407,7 @@
import MdpSelectUserXm from "@/views/xm/core/components/MdpSelectUserXm/index";
import Guider from '@/components/Guider/Index.js';
+ import store from '@/store'
export default {
props:['selProject','xmIteration', 'source'],
@@ -621,8 +622,9 @@
//进入info界面
intoInfo(row) {
this.editForm = row;
- this.$router.push({ name:'XmProductInfoRoute', query: {id:row.id} })
- localStorage.setItem("xm-product-info-route",JSON.stringify(row));
+ store.dispatch("setXmProduct",row).then(res=>{
+ this.$router.push({ name:'productOverview', query: {productId:row.id} })
+ })
//this.showInfo = true;
},
//选择行xmProduct
diff --git a/src/views/xm/core/xmProduct/XmProductOverviewComplex.vue b/src/views/xm/core/xmProduct/XmProductOverviewComplex.vue
index e0f16b0b..a7bd13e9 100644
--- a/src/views/xm/core/xmProduct/XmProductOverviewComplex.vue
+++ b/src/views/xm/core/xmProduct/XmProductOverviewComplex.vue
@@ -64,10 +64,8 @@ import ProcinstMng from '@/views//mdp/workflow/hi/procinst/ProcinstMng';
export default {
components: { XmProductOverview, XmProductEdit, XmProductProjectLinkMng,TaskMng,ProcinstMng,},
computed: {
- ...mapGetters(["userInfo"]),
- },
-
- props:['xmProduct'],
+ ...mapGetters(["userInfo","xmProduct"]),
+ },
watch:{
},
data() {
diff --git a/src/views/xm/core/xmProduct/index.vue b/src/views/xm/core/xmProduct/index.vue
new file mode 100644
index 00000000..5866282d
--- /dev/null
+++ b/src/views/xm/core/xmProduct/index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
diff --git a/src/views/xm/core/xmProduct/top-nav.vue b/src/views/xm/core/xmProduct/top-nav.vue
new file mode 100644
index 00000000..962d2a14
--- /dev/null
+++ b/src/views/xm/core/xmProduct/top-nav.vue
@@ -0,0 +1,351 @@
+
+
+
+
+
+
+
diff --git a/src/views/xm/core/xmQuestion/XmQuestionForProduct.vue b/src/views/xm/core/xmQuestion/XmQuestionForProduct.vue
new file mode 100644
index 00000000..be25d192
--- /dev/null
+++ b/src/views/xm/core/xmQuestion/XmQuestionForProduct.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
diff --git a/src/views/xm/core/xmRecord/XmRecordForProduct.vue b/src/views/xm/core/xmRecord/XmRecordForProduct.vue
new file mode 100644
index 00000000..3cdb1144
--- /dev/null
+++ b/src/views/xm/core/xmRecord/XmRecordForProduct.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/xm/core/xmRecord/XmRecordMng.vue b/src/views/xm/core/xmRecord/XmRecordMng.vue
index 497b7324..485cdbd1 100644
--- a/src/views/xm/core/xmRecord/XmRecordMng.vue
+++ b/src/views/xm/core/xmRecord/XmRecordMng.vue
@@ -1,6 +1,7 @@
@@ -17,7 +18,7 @@
'userInfo','roles'
])
},
- props:['selProject'],
+ props:['selProject','xmProduct'],
data() {
return {
diff --git a/src/views/xm/rpt/reportIndexForProduct.vue b/src/views/xm/rpt/reportIndexForProduct.vue
new file mode 100644
index 00000000..c1e2f1c1
--- /dev/null
+++ b/src/views/xm/rpt/reportIndexForProduct.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
\ No newline at end of file