diff --git a/src/api/xm/core/xmProduct.js b/src/api/xm/core/xmProduct.js
index db69a5da..b4ef744d 100644
--- a/src/api/xm/core/xmProduct.js
+++ b/src/api/xm/core/xmProduct.js
@@ -33,3 +33,6 @@ export const addXmProduct = params => { return axios.post(`${base}/xm/core/xmPro
export const copyTo = params => { return axios.post(`${base}/xm/core/xmProduct/copyTo`, params); };
export const createProductCode = params => { return axios.post(`${base}/xm/core/xmProduct/createProductCode`, params); };
+
+
+export const unDelXmProduct = params => { return axios.post(`${base}/xm/core/xmProduct/unDel`, params); };
diff --git a/src/api/xm/core/xmProject.js b/src/api/xm/core/xmProject.js
index 7eb22673..69f72d81 100644
--- a/src/api/xm/core/xmProject.js
+++ b/src/api/xm/core/xmProject.js
@@ -42,3 +42,7 @@ export const copyTo = params => { return axios.post(`${base}/xm/core/xmProject/c
export const createProjectCode = params => { return axios.post(`${base}/xm/core/xmProject/createProjectCode`, params); };
+
+export const unDelXmProject = params => { return axios.post(`${base}/xm/core/xmProject/unDel`, params); };
+
+
diff --git a/src/router/routes_xm.js b/src/router/routes_xm.js
index 2bb5a35a..9875a755 100644
--- a/src/router/routes_xm.js
+++ b/src/router/routes_xm.js
@@ -22,6 +22,7 @@ export default {
{ path: 'xmProjectState/XmCockpit', name: 'XmCockpit', meta: { title: '领导驾驶舱' ,openTab:true,outUrl:'${curlDomain}/xm/'+process.env.VERSION+'/#/datav/xm/branch/branchDatavFullScreen'}},
{ path: 'xmProjectState/XmProjectStateMng', component: _import('xm/core/xmProjectState/XmProjectStateMng'), name: 'XmProjectStateMng', meta: { title: '项目统计' }},
{ path: 'xmBranchState/XmBranchStateMng', component: _import('xm/core/xmBranchState/XmBranchStateMng'), name: 'XmBranchStateMng', meta: { title: '所有项目汇总' }},
+ { path: 'xmProject/XmProjectRecycle', component: _import('xm/core/xmProject/XmProjectRecycle'), name: 'XmProjectRecycle', meta: { title: '项目回收站' }},
{ path: 'xmRecord/XmRecord', component: _import('xm/core/xmRecord/XmRecord'), name: 'XmRecord', meta: { title: '项目动态' }},
{ path: 'xmProject/XmProjectTplMng', component: _import('xm/core/xmProject/XmProjectTplMng'), name: 'XmProjectTplMng', meta: { title: '项目模板' }},
@@ -103,6 +104,8 @@ export default {
{ path: 'xmProduct/XmProductAllMng', component: _import('xm/core/xmProduct/XmProductAllMng'), name: 'XmProductAllMng', meta: { title: '产品总览' }},
{ path: 'xmProduct/XmProductMng', component: _import('xm/core/xmProduct/XmProductMng'), name: 'XmProductMng', meta: { title: '产品管理' }},
+ { path: 'xmProduct/XmProductRecycle', component: _import('xm/core/xmProduct/XmProductRecycle'), name: 'XmProductRecycle', meta: { title: '产品回收站' }},
+
{ path: 'xmProduct/XmProductTplMng', component: _import('xm/core/xmProduct/XmProductTplMng'), name: 'XmProductTplMng', meta: { title: '产品模板' }},
{ path: 'xmMenu/XmMenuMng', component: _import('xm/core/xmMenu/XmMenuMng'), name: 'XmMenuMng', meta: { title: '需求管理' }},
diff --git a/src/views/xm/core/xmProduct/XmProductRecycle.vue b/src/views/xm/core/xmProduct/XmProductRecycle.vue
new file mode 100644
index 00000000..739fc582
--- /dev/null
+++ b/src/views/xm/core/xmProduct/XmProductRecycle.vue
@@ -0,0 +1,372 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+ 查询条件
+
+
+
+
+ 产品查询范围:
+
+
+
+
+
+
+
+
+
+
+
+
+ 创建时间:
+
+
+
+
+ 产品名称:
+
+
+
+
+
+
+ 产品经理:
+
+ {{filters.pmUser.username}}
+ 选责任人
+ 我的
+
+
+
+
+ 项目 {{selProject?selProject.name:''}}
+
+
+
+
+ 迭代 {{xmIteration.iterationName}}
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.productName}}
+
+
+
+
+
+
+ {{scope.row.finishRate}}%
+
+
+
+
+
+
+
+
+ {{scope.row.pmUsername}}
+
+
+
+
+
+
+
+
+
+ 撤销删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/xm/core/xmProject/XmProjectRecycle.vue b/src/views/xm/core/xmProject/XmProjectRecycle.vue
new file mode 100644
index 00000000..b5a1d094
--- /dev/null
+++ b/src/views/xm/core/xmProject/XmProjectRecycle.vue
@@ -0,0 +1,212 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.name}}
+
+
+
+
+
+
+
+
+ {{scope.row.totalProgress}}%
+
+
+
+
+ {{scope.row.startTime? scope.row.startTime.substr(0,10) : ""}}~{{scope.row.endTime? scope.row.endTime.substr(0,10) : ""}}
+
+
+
+
+ 撤销删除
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file