|
@@ -394,7 +394,7 @@ module.exports = app => {
|
|
|
throw '该单位已不存在权限中,移除失败';
|
|
|
}
|
|
|
await ctx.service.datacollectAudit.delAudit(data.id);
|
|
|
- responseData.data = await ctx.service.datacollectAudit.getList(projectId);
|
|
|
+ responseData.data = await ctx.service.datacollectAudit.getList(ctx.subProject.project_id);
|
|
|
break;
|
|
|
case 'del-company':
|
|
|
const companyInfo2 = await ctx.service.datacollectAudit.getDataById(data.id);
|
|
@@ -402,21 +402,21 @@ module.exports = app => {
|
|
|
throw '该单位已不存在权限中,移除失败';
|
|
|
}
|
|
|
await ctx.service.datacollectAudit.delAudit(data.id);
|
|
|
- responseData.data = await ctx.service.datacollectAudit.getList(projectId);
|
|
|
+ responseData.data = await ctx.service.datacollectAudit.getList(ctx.subProject.project_id);
|
|
|
break;
|
|
|
case 'tender':
|
|
|
if (ctx.session.sessionProject.page_show.addDataCollect !== parseInt(data.add_datacollect)) {
|
|
|
ctx.session.sessionProject.page_show.addDataCollect = parseInt(data.add_datacollect);
|
|
|
- await ctx.service.project.updatePageshow(projectId);
|
|
|
+ await ctx.service.project.updatePageshow(ctx.subProject.project_id);
|
|
|
}
|
|
|
- await ctx.service.datacollectTender.updateList(projectId, data.tids);
|
|
|
+ await ctx.service.datacollectTender.updateList(ctx.subProject.project_id, data.tids);
|
|
|
responseData.data = {
|
|
|
- dcTenders: await ctx.service.datacollectTender.getList(projectId),
|
|
|
+ dcTenders: await ctx.service.datacollectTender.getList(ctx.subProject.project_id),
|
|
|
addDatacollect: ctx.session.sessionProject.page_show.addDataCollect,
|
|
|
};
|
|
|
break;
|
|
|
case 'save-dp06':
|
|
|
- responseData.data = await ctx.service.project.saveCommonJson(projectId, 'daPing06_set', data.daPing06Set);
|
|
|
+ responseData.data = await ctx.service.project.saveCommonJson(ctx.subProject.project_id, 'daPing06_set', data.daPing06Set);
|
|
|
break;
|
|
|
default:
|
|
|
throw '参数有误';
|
|
@@ -427,6 +427,121 @@ module.exports = app => {
|
|
|
ctx.body = {err: 1, msg: err.toString(), data: null};
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ async manage(ctx) {
|
|
|
+ try {
|
|
|
+ this.defaultCheck(ctx);
|
|
|
+ const projectId = ctx.session.sessionProject.id;
|
|
|
+ const projectData = await ctx.service.project.getDataById(projectId);
|
|
|
+ if (projectData === null) throw '没有对应的项目数据';
|
|
|
+ if (ctx.session.sessionUser.is_admin === 0) throw '没有访问权限';
|
|
|
+
|
|
|
+ const tenderList = await ctx.service.tender.getList('', null, 1);
|
|
|
+ const removeTenders = await ctx.service.shenpiAudit.getRemoveTenders(tenderList);
|
|
|
+ if (removeTenders.length > 0) {
|
|
|
+ ctx.helper._.remove(tenderList, function(n) {
|
|
|
+ return removeTenders.indexOf(n.id) !== -1;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ for (const t of 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);
|
|
|
+ }
|
|
|
+ // todo 自定义分类移动到子项目内部后,在整个项目上没有分类了
|
|
|
+ const categoryData = []; // await this.ctx.service.category.getAllCategory(this.ctx.session.sessionProject.id);
|
|
|
+
|
|
|
+ // 获取所有项目参与者
|
|
|
+ const accountList = await ctx.service.projectAccount.getAllDataByCondition({
|
|
|
+ where: {project_id: ctx.session.sessionProject.id, enable: 1},
|
|
|
+ columns: ['id', 'name', 'company', 'role', 'enable', 'is_admin', 'account_group', 'mobile'],
|
|
|
+ });
|
|
|
+ const unitList = await ctx.service.constructionUnit.getAllDataByCondition({where: {pid: ctx.session.sessionProject.id}});
|
|
|
+ const accountGroupList = unitList.map(item => {
|
|
|
+ const groupList = accountList.filter(item1 => item1.company === item.name);
|
|
|
+ return {groupName: item.name, groupList};
|
|
|
+ });
|
|
|
+ const renderData = {
|
|
|
+ projectData,
|
|
|
+ tenderList,
|
|
|
+ auditConst,
|
|
|
+ auditType: auditConst.auditType,
|
|
|
+ accountList,
|
|
|
+ accountGroup: accountGroupList,
|
|
|
+ categoryData,
|
|
|
+ settingConst,
|
|
|
+ measureType: tenderConst.measureType,
|
|
|
+ jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.setting.manage),
|
|
|
+ uid: this.ctx.session.sessionUser.accountId,
|
|
|
+ pid: this.ctx.session.sessionProject.id,
|
|
|
+ spid: ctx.subProject.id,
|
|
|
+ scPermission: scheduleConst.permission,
|
|
|
+ change_type_list: shenpiConst.change_type_list,
|
|
|
+ };
|
|
|
+ renderData.selfCategoryLevel = await this.ctx.service.projectAccount.getSelfCategoryLevel(this.ctx.session.sessionUser.accountId);
|
|
|
+ await this.layout('sp_setting/manage.ejs', renderData, 'sp_setting/manage_modal.ejs');
|
|
|
+ } catch (error) {
|
|
|
+ ctx.helper.log(error);
|
|
|
+ ctx.redirect('/dashboard');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ async manageTenderSave(ctx) {
|
|
|
+ try {
|
|
|
+ this.defaultCheck(ctx);
|
|
|
+ if (ctx.session.sessionUser.is_admin === 0) throw '没有设置权限';
|
|
|
+ const projectId = ctx.session.sessionProject.id;
|
|
|
+ const responseData = {
|
|
|
+ err: 0, msg: '', data: {},
|
|
|
+ };
|
|
|
+
|
|
|
+ const data = JSON.parse(ctx.request.body.data);
|
|
|
+ if (!data.type) {
|
|
|
+ throw '提交数据错误';
|
|
|
+ }
|
|
|
+ if (!data.tid) {
|
|
|
+ throw '参数有误';
|
|
|
+ }
|
|
|
+ const tender = await ctx.service.tender.getDataById(data.tid);
|
|
|
+ if (!tender) {
|
|
|
+ throw '标段不存在';
|
|
|
+ }
|
|
|
+ const tenderInfo = await ctx.service.tenderInfo.getTenderInfo(tender.id);
|
|
|
+ switch (data.type) {
|
|
|
+ case 'msg':
|
|
|
+ const lastRevise = await ctx.service.ledgerRevise.getLastestRevise(tender.id);
|
|
|
+ const revising = (lastRevise && lastRevise.status !== auditConst.revise.status.checked) || false;
|
|
|
+ // 获取审批流,游客账号,及投资进度账号信息
|
|
|
+ responseData.data.tender = tender;
|
|
|
+ responseData.data.revising = revising;
|
|
|
+ responseData.data.shenpi = await ctx.service.shenpiAudit.getShenpi(tender.id, tenderInfo);
|
|
|
+ const tourists = await ctx.service.tenderTourist.getTourists(tender.id);
|
|
|
+ for (const t of tourists) {
|
|
|
+ t.permission = await ctx.service.tenderTourist.getTouristPermission(t);
|
|
|
+ }
|
|
|
+ responseData.data.tourists = tourists;
|
|
|
+ responseData.data.scheduleAuditList = ctx.session.sessionProject.page_show.xxjd ? await ctx.service.scheduleAudit.getAllDataByCondition({ where: { tid: tender.id } }) : [];
|
|
|
+ responseData.data.constructionAuditList = ctx.session.sessionProject.page_show.openConstruction ? await ctx.service.constructionAudit.getList(tender.id) : [];
|
|
|
+ break;
|
|
|
+ case 'copy2otu':
|
|
|
+ if (data.userType === 'tourist') {
|
|
|
+ await ctx.service.tenderTourist.setOtherTender(data.tidList, data.auditList);
|
|
|
+ } else if (data.userType === 'schedule') {
|
|
|
+ await ctx.service.scheduleAudit.setOtherTender(data.tidList, data.auditList);
|
|
|
+ } else if (data.userType === 'construction') {
|
|
|
+ await ctx.service.constructionAudit.setOtherTender(data.tidList, data.auditList);
|
|
|
+ } else {
|
|
|
+ throw '参数有误';
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw '参数有误';
|
|
|
+ }
|
|
|
+ ctx.body = responseData;
|
|
|
+ } catch (err) {
|
|
|
+ this.log(err);
|
|
|
+ ctx.body = { err: 1, msg: err.toString(), data: null };
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return SettingController;
|