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