123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- 'use strict';
- /**
- * 指标对比控制器
- *
- * @author Mai
- * @data 2018/4/19
- * @version
- */
- const libConst = require('../const/lib');
- module.exports = app => {
- class CompareController extends app.BaseController {
- /**
- * 指标对比页面
- *
- * @param {object} ctx - egg全局context
- * @return {void}
- */
- async index (ctx) {
- const libList = await ctx.service.quotaLib.getList(libConst.status.enter);
- const dyNames = await ctx.service.templateNode.getDanYuanNames();
- const renderData = {
- libList,
- nodeConst: this.app.nodeConst,
- dyNames,
- };
- await this.layout('compare/index.ejs', renderData, 'compare/modal.ejs');
- }
- async search (ctx) {
- const responseData = {
- err: 0,
- msg: '',
- data: [],
- };
- try {
- const data = JSON.parse(ctx.request.body.data);
- const tenders = data.tenders;
- if (!data.keyword || data.keyword === '') {
- throw '请输入查询关键字';
- }
- for (const tender of tenders) {
- if (!tender.lib_id) {
- throw '查询的标段有误或不存在';
- }
- tender.data = await ctx.service.tenderNode.search(tender.lib_id, data.keyword);
- for (const n of tender.data) {
- const condition = {
- lib_id: tender.lib_id,
- node_id: n.node_id,
- };
- n.children = await ctx.service.tenderIndex.getAllDataByCondition({where: condition});
- }
- }
- responseData.data = tenders;
- } catch (err) {
- responseData.err = 1;
- responseData.msg = err.toString();
- console.log(err);
- }
- ctx.body = responseData;
- }
- async searchClass(ctx) {
- try {
- const data = JSON.parse(ctx.request.body.data);
- const tenders = data.tenders;
- const indexClass = this.app.nodeConst.indexClass;
- if (!data.indexClass) {
- throw '查询的指标分类不存在';
- } else {
- if (data.indexClass === indexClass.dy) {
- if (!data.className) {
- throw '查询的单元指标分类不存在';
- }
- } else if (data.indexClass !== indexClass.zh && data.indexClass !== indexClass.fx) {
- throw '查询的指标分类不存在';
- }
- }
- for (const tender of tenders) {
- if (!tender.lib_id) {
- throw '查询的标段有误或不存在';
- }
- tender.data = await ctx.service.tenderNode.searchClass(tender.lib_id, data.indexClass, data.className);
- for (const n of tender.data) {
- const condition = {
- lib_id: tender.lib_id,
- node_id: n.node_id,
- };
- n.children = await ctx.service.tenderIndex.getAllDataByCondition({where: condition});
- }
- }
- ctx.body = {err: 0, msg: '', data: tenders};
- } catch (err) {
- ctx.body = {err: 1, msg: err.toString(), data: []};
- console.log(err);
- }
- }
- }
- return CompareController;
- }
|