| 
					
				 | 
			
			
				@@ -55,6 +55,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const tenderList = await this.ctx.service.tender.getBuildList('', userPermission, this.ctx.session.sessionUser.is_admin); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (const t of tenderList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     await this.ctx.service.tenderCache.loadTenderCache(t, this.ctx.session.sessionUser.accountId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    t.canFinish = await this.ctx.service.tender.checkTenderCanFinish(t); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const categoryData = await this.ctx.service.category.getAllCategory(this.ctx.session.sessionProject.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const valuations = await this.ctx.service.valuation.getProjectValidValuation(this.ctx.session.sessionProject.id); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -73,6 +74,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     pid: this.ctx.session.sessionProject.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     colSet: this.colSet, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     subProject, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    buildStatus: tenderConst.buildStatus, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.selfCategoryLevel = await this.ctx.service.projectAccount.getSelfCategoryLevel(this.ctx.session.sessionUser.accountId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.is_finish = false; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -92,6 +94,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const tenderList = await this.ctx.service.tender.getFinishList('', userPermission, this.ctx.session.sessionUser.is_admin); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (const t of tenderList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     await this.ctx.service.tenderCache.loadTenderCache(t, this.ctx.session.sessionUser.accountId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    t.canFinish = await this.ctx.service.tender.checkTenderCanFinish(t); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const categoryData = await this.ctx.service.category.getAllCategory(this.ctx.session.sessionProject.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const valuations = await this.ctx.service.valuation.getProjectValidValuation(this.ctx.session.sessionProject.id); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -110,6 +113,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     pid: this.ctx.session.sessionProject.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     colSet: this.colSet, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     subProject, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    buildStatus: tenderConst.buildStatus, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.selfCategoryLevel = await this.ctx.service.projectAccount.getSelfCategoryLevel(this.ctx.session.sessionUser.accountId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.is_finish = true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -127,6 +131,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (const t of renderData.tenderList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     t.visitor = (await this.ctx.service.tenderTourist.getTourists(t.id)).map(x => { return x.user_name; }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     await this.ctx.service.tenderCache.loadTenderCache(t, this.ctx.session.sessionUser.accountId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    t.canFinish = await this.ctx.service.tender.checkTenderCanFinish(t); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.categoryData = await this.ctx.service.category.getAllCategory(this.ctx.session.sessionProject.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.valuations = await this.ctx.service.valuation.getProjectValidValuation(this.ctx.session.sessionProject.id); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -140,6 +145,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.selfCategoryLevel = await this.ctx.service.projectAccount.getSelfCategoryLevel(this.ctx.session.sessionUser.accountId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.is_finish = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.colSet = this.colSet; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                renderData.buildStatus = tenderConst.buildStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.subProject = await this.ctx.service.subProject.getSubProject(this.ctx.session.sessionProject.id, this.ctx.session.sessionUser.accountId, this.ctx.session.sessionUser.is_admin, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 await this.layout(view, renderData, modal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } catch (err) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -155,6 +161,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (const t of renderData.tenderList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     t.visitor = (await this.ctx.service.tenderTourist.getTourists(t.id)).map(x => { return x.user_name; }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     await this.ctx.service.tenderCache.loadTenderCache(t, this.ctx.session.sessionUser.accountId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    t.canFinish = await this.ctx.service.tender.checkTenderCanFinish(t); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.categoryData = await this.ctx.service.category.getAllCategory(this.ctx.session.sessionProject.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.valuations = await this.ctx.service.valuation.getProjectValidValuation(this.ctx.session.sessionProject.id); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -168,6 +175,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.selfCategoryLevel = await this.ctx.service.projectAccount.getSelfCategoryLevel(this.ctx.session.sessionUser.accountId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.is_finish = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.colSet = this.colSet; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                renderData.buildStatus = tenderConst.buildStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 renderData.subProject = await this.ctx.service.subProject.getSubProject(this.ctx.session.sessionProject.id, this.ctx.session.sessionUser.accountId, this.ctx.session.sessionUser.is_admin, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 await this.layout(view, renderData, modal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } catch (err) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -690,13 +698,13 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         async saveBuildStatus(ctx) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const status = parseInt(ctx.query.status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const status = parseInt(ctx.query.status || ctx.request.body.status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 await ctx.service.tender.saveBuildStatus(ctx.tender.data, status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } catch (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.log(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.postError(err, '修改在建状态失败'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ctx.redirect('/tender/' + ctx.params.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ctx.redirect(ctx.request.header.referer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |