浏览代码

Merge branch 'master' into olym

olym 8 年之前
父节点
当前提交
713f627b05

+ 3 - 3
modules/reports/controllers/rpt_cfg_controller.js

@@ -2,15 +2,15 @@
  * Created by Tony on 2017/7/5.
  */
 
-let mongoose = require('mongoose');
-let rpt_util = require('../util/rpt_util');
+import mongoose from "mongoose";
+import rpt_util from "../util/rpt_util";
 let Rpt_Map_Fld_Mdl = mongoose.model('rpt_mapping_field');
 
 
 //统一回调函数
 let callback = function(req, res, err, message, data){
     res.json({error: err, message: message, data: data});
-}
+};
 
 module.exports = {
     getReportUserCfg: function(req, res){

+ 18 - 20
modules/reports/controllers/rpt_controller.js

@@ -2,21 +2,21 @@
  * Created by Tony on 2017/3/13.
  */
 
-let mongoose = require('mongoose');
-let async = require('async');
+import mongoose from "mongoose";
+import async from "async";
 
-let JV = require('../rpt_component/jpc_value_define');
+import JV from "../rpt_component/jpc_value_define";
 
 let Template = mongoose.model('rpt_templates');
-let rptTplFacade = require('../facade/rpt_template_facade');
-let demoTemplateFacade = require('../facade/rpt_tpl_data_demo_facade');
+import rptTplFacade from "../facade/rpt_template_facade";
+import demoTemplateFacade from "../facade/rpt_tpl_data_demo_facade";
 
-let JpcEx = require('../rpt_component/jpc_ex');
-let rptUtil = require("../util/rpt_util");
-let rpt_xl_util = require('../util/rpt_excel_util');
-let rpt_pdf_util = require('../util/rpt_pdf_util');
-let fs = require('fs');
-let strUtil = require('../../../public/stringUtil');
+import JpcEx from "../rpt_component/jpc_ex";
+import rptUtil from "../util/rpt_util";
+import rpt_xl_util from "../util/rpt_excel_util";
+import rpt_pdf_util from "../util/rpt_pdf_util";
+import fs from "fs";
+import strUtil from "../../../public/stringUtil";
 
 //统一回调函数
 let callback = function(req, res, err, data){
@@ -66,7 +66,7 @@ function getAllPagesCommonOrg(rpt_id, pageSize, option, cb) {
             }
         }
     );
-};
+}
 
 function getAllPagesCommon(rpt_id, pageSize, cb) {
     let rptTpl = null;
@@ -76,23 +76,23 @@ function getAllPagesCommon(rpt_id, pageSize, cb) {
             let tplData = {};
             if (rptTpl[JV.NODE_FIELD_MAP]) {
                 //1. 离散数据
-                if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS].leng > 0) {
+                if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS].length > 0) {
                     tplData[JV.DATA_DISCRETE_DATA] = [];
                 }
                 //2. 主数据
-                if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS].leng > 0) {
+                if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS].length > 0) {
                     tplData[JV.DATA_MASTER_DATA] = [];
                 }
                 //3. 从数据
-                if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS].leng > 0) {
+                if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS].length > 0) {
                     tplData[JV.DATA_DETAIL_DATA] = [];
                 }
                 //2. Ex主数据
-                if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS_EX] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS_EX].leng > 0) {
+                if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS_EX] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS_EX].length > 0) {
                     tplData[JV.DATA_MASTER_DATA_EX] = [];
                 }
                 //3. Ex从数据
-                if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS_EX] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS_EX].leng > 0) {
+                if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS_EX] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS_EX].length > 0) {
                     tplData[JV.DATA_DETAIL_DATA_EX] = [];
                 }
                 //4. 重点: 开始组装$PROJECT对象
@@ -108,7 +108,7 @@ function getAllPagesCommon(rpt_id, pageSize, cb) {
             cb('No report template was found!', null);
         }
     })
-};
+}
 
 module.exports = {
     getReportAllPages: function(req, res){
@@ -125,7 +125,6 @@ module.exports = {
             rptName = req.params.rptName,
             isOneSheet = req.params.isOneSheet,
             option = req.params.option;
-        ;
         let dftOption = option||JV.PAGING_OPTION_NORMAL;
         getAllPagesCommonOrg(rpt_id, pageSize, dftOption, function(err, pageRst){
             fs.writeFileSync('D:/GitHome/ConstructionOperation/tmp/testRpt.js', JSON.stringify(pageRst));
@@ -151,7 +150,6 @@ module.exports = {
             pageSize = req.params.size,
             rptName = req.params.rptName,
             option = req.params.option;
-        ;
         let parallelFucs = [];
         let dftOption = option||JV.PAGING_OPTION_NORMAL;
         for (let id of rpt_ids) {

+ 11 - 9
modules/reports/controllers/rpt_tpl_controller.js

@@ -2,24 +2,26 @@
  * Created by Tony on 2017/6/1.
  */
 
-let mongoose = require('mongoose');
+import mongoose from "mongoose";
 
-let async = require("async");
-let counter = require('../../../public/counter/counter');
+import async from "async";
+import counter from "../../../public/counter/counter";
 
 let RptTplModel = mongoose.model('rpt_templates');
 let TreeNodeModel = mongoose.model('rpt_tpl_tree');
 
-let rptTplDef = require("../../../public/rpt_tpl_def").getUtil();
-let stringUtil = require("../../../public/stringUtil");
-let JV = require('../rpt_component/jpc_value_define');
+import rpttplDefObj from "../../../public/rpt_tpl_def";
+let rptTplDef = rpttplDefObj.getUtil();
 
-//let test_glj_type_util = require("../../../public/cache/std_glj_type_util");
+//import stringUtil from "../../../public/stringUtil";
+import JV from "../rpt_component/jpc_value_define";
+
+//import test_glj_type_util from "../../../public/cache/std_glj_type_util");
 
 //统一回调函数
 let callback = function(req, res, err, message, data){
     res.json({error: err, message: message, data: data});
-}
+};
 
 module.exports = {
     getDftTemplates(req, res) {
@@ -174,4 +176,4 @@ module.exports = {
             }
         });
     }
-}
+};

+ 2 - 3
modules/reports/facade/rpt_template_facade.js

@@ -1,7 +1,7 @@
 /**
  * Created by Tony on 2017/8/9.
  */
-let mongoose = require("mongoose");
+import mongoose from "mongoose";
 let rpt_tpl_mdl = mongoose.model("rpt_templates");
 
 module.exports = {
@@ -10,6 +10,5 @@ module.exports = {
 
 async function getRptTemplate(tplId) {
     //console.log('templateId: ' + parseInt(tplId));
-    let rst = await  rpt_tpl_mdl.findOne({"ID": parseInt(tplId)}, '-_id');
-    return rst;
+    return await  rpt_tpl_mdl.findOne({"ID": parseInt(tplId)}, '-_id');
 }

+ 1 - 1
modules/reports/facade/rpt_tpl_data_demo_facade.js

@@ -1,7 +1,7 @@
 /**
  * Created by Tony on 2017/8/9.
  */
-let mongoose = require("mongoose");
+import mongoose from "mongoose";
 let rpt_tpl_data_demo_mdl = mongoose.model("rpt_temp_tpl_data");
 
 module.exports = {

+ 1 - 1
modules/reports/facade/rpt_tpl_data_facade.js

@@ -2,7 +2,7 @@
  * Created by Tony on 2017/8/9.
  */
 
-let mongoose = require("mongoose");
+import mongoose from "mongoose";
 let rpt_tpl_mdl = mongoose.model("rpt_templates");
 
 module.exports = {

+ 1 - 1
modules/reports/models/rpt_cfg.js

@@ -2,7 +2,7 @@
  * Created by Tony on 2017/6/14.
  * 把报表相关的配置(字体、边框、格式等都放在一条记录中,方便整理,毕竟用户的报表格式基本是固定的,无需怎样调整)
  */
-let mongoose = require('mongoose');
+import mongoose from "mongoose";
 let Schema = mongoose.Schema;
 let FormatSchema = new Schema({
     "ID" : String,

+ 1 - 1
modules/reports/models/rpt_mapping_field.js

@@ -2,7 +2,7 @@
  * Created by Tony on 2017/7/11.
  * 为后台报表模板选择指标用
  */
-let mongoose = require('mongoose');
+import mongoose from "mongoose";
 let MapFieldSchema = new mongoose.Schema({
     "fieldMapGrpName" : String,
     "Name": String,

+ 1 - 1
modules/reports/models/rpt_template.js

@@ -2,7 +2,7 @@
  * Created by Tony on 2016/12/23.
  * 仅仅是存放报表模板的地方,由谁来引用是TreeNodeSchema的事情
  */
-let mongoose = require('mongoose');
+import mongoose from "mongoose";
 let Schema = mongoose.Schema;
 let RptTemplateSchema = new Schema({
     "ID" : Number,

+ 1 - 1
modules/reports/models/rpt_tpl_data.js

@@ -2,7 +2,7 @@
  * Created by Tony on 2017/7/24.
  */
 
-let mongoose = require('mongoose');
+import mongoose from "mongoose";
 let Schema = mongoose.Schema;
 
 let rptTplPrjSchema = new Schema({

+ 1 - 1
modules/reports/models/rpt_tpl_data_demo.js

@@ -1,7 +1,7 @@
 /**
  * Created by Tony on 2016/12/28.
  */
-let mongoose = require('mongoose');
+import mongoose from "mongoose";
 // let dbm = require("../../../config/db/db_manager");
 // let smartcostdb = dbm.getCfgConnection("scConstruct");
 let Schema = mongoose.Schema;

+ 1 - 1
modules/reports/models/tpl_tree_node.js

@@ -2,7 +2,7 @@
  * Created by Tony on 2017/5/31.
  * 不同的用户会有一套自己的模板结构列表
  */
-let mongoose = require('mongoose');
+import mongoose from "mongoose";
 let Schema = mongoose.Schema;
 let TreeNodeSchema = new Schema({
     ID:Number,

+ 3 - 3
modules/reports/routes/report_router.js

@@ -2,9 +2,9 @@
  * Created by Tony on 2017/3/13.
  */
 
-let express = require('express');
+import express from "express";
 let rptRouter = express.Router();
-let reportController = require('./../controllers/rpt_controller');
+import reportController from "./../controllers/rpt_controller";
 
 module.exports =function (app) {
     app.get('/report',  function(req, res) {
@@ -24,4 +24,4 @@ module.exports =function (app) {
 
     rptRouter.get('/getPDF/:id/:size/:rptName', reportController.getPDF);//2/A4/07-1表
     app.use("/report_api", rptRouter);
-}
+};

+ 4 - 4
modules/reports/routes/rpt_tpl_router.js

@@ -1,7 +1,7 @@
-let express = require("express");
+import express from "express";
 let rptTplRouter = express.Router();
-let reportTplController = require('./../controllers/rpt_tpl_controller');
-let reportCfgController = require('./../controllers/rpt_cfg_controller');
+import reportTplController from "./../controllers/rpt_tpl_controller";
+import reportCfgController from "./../controllers/rpt_cfg_controller";
 
 module.exports = function (app) {
     app.get('/rpt_tpl',  function(req, res) {
@@ -26,4 +26,4 @@ module.exports = function (app) {
     rptTplRouter.post('/getUserRptCfg', reportCfgController.getReportUserCfg);
     rptTplRouter.post('/getMappingFields', reportCfgController.getAllMappingFields);
     app.use("/report_tpl_api", rptTplRouter);
-}
+};

+ 2 - 0
public/calc_util.js

@@ -203,9 +203,11 @@ class Calculation {
         let private_compile_feeType = function() {
             if (feeTypes) {
                 me.compiledFeeTypes = {};
+                me.compiledFeeTypeNames = [];
                 for (let ft of feeTypes) {
                     me.compiledFeeTypes[ft.type] = ft.name;
                     me.compiledFeeTypes[ft.name] = ft.type;    // 中文预编译,可靠性有待验证
+                    me.compiledFeeTypeNames.push(ft.name);
                 }
             }
         };

+ 9 - 0
public/web/tree_sheet/tree_sheet_helper.js

@@ -164,6 +164,15 @@ var TREE_SHEET_HELPER = {
         };
         TreeNodeCellType.prototype = new GC.Spread.Sheets.CellTypes.Text();
         TreeNodeCellType.prototype.paint = function (ctx, value, x, y, w, h, style, options) {
+            console.log(style);
+            if (style.backColor) {
+                ctx.save();
+                ctx.fillStyle = style.backColor;
+                ctx.fillRect(x, y, w, h);
+                ctx.restore();
+            } else {
+                ctx.clearRect(x, y, w, h);
+            }
             // ������(x1, y1)���(��, ��), (x2, y2)�յ�(��, ��), ��ɫ
             var drawLine = function (canvas, x1, y1, x2, y2, color) {
                 ctx.save();

+ 12 - 15
web/building_saas/main/html/calc_program_manage.html

@@ -8,26 +8,23 @@
 </head>
 
 <body>
-    <div class="main">
-        <div class="content">
-            <div class="toolsbar">
+    <div class="toolsbar px-1">
+    </div>
+    <div class="container-fluid">
+        <div class="row">
+        <div class="col-lg-3 p-0">
+            <div class="main-data-full" id="mainSpread">
             </div>
-            <div class="container-fluid">
-                <div class="row">
-                  <div class="col-lg-3 p-0">
-                    <div class="main-data-full" id="mainSpread">
-                     </div>
-                   </div>
-                  <div class="col-lg-9 p-0">
-                    <div class="main-data-full" id="detailSpread">
-                    </div>
-                  </div>
-                </div>
+        </div>
+        <div class="col-lg-9 p-0">
+            <div class="main-data-full" id="detailSpread">
             </div>
         </div>
     </div>
+    </div>
+
     <!--弹出 计算基数-->
-    <div class="modal fade" id="jsjs" data-backdrop="static">
+<div class="modal fade" id="jsjs" data-backdrop="static">
         <div class="modal-dialog" role="document">
             <div class="modal-content">
                 <div class="modal-header">

+ 10 - 1
web/building_saas/main/js/views/calc_program_manage.js

@@ -38,11 +38,20 @@ let rationPM = {
     buildSheet: function (){
         let me = this;
         me.datas = calcTemplates;
+        if (me.mainSpread) {
+            me.mainSpread.destroy();
+            me.mainSpread = null;
+        };
+        if (me.detailSpread) {
+            me.detailSpread.destroy();
+            me.detailSpread = null;
+        };
         me.mainSpread = sheetCommonObj.buildSheet($('#mainSpread')[0], me.mainSetting, me.datas.length);
         me.detailSpread = sheetCommonObj.buildSheet($('#detailSpread')[0], me.detailSetting, me.datas[0].calcItems.length);
 
         var fieldName = new GC.Spread.Sheets.CellTypes.ComboBox();
-        fieldName.items(["直接费","人工费","材料费","机械费","主材费","企业管理费","利润","风险费","人工价差","材料价差","机械价差","工程造价","调整人工费","调整机上人工费","甲供材料费"]);
+        fieldName.items(projectObj.project.calcProgram.calc.compiledFeeTypeNames);
+        // fieldName.items(["直接费","人工费","材料费","机械费","主材费","企业管理费","利润","风险费","人工价差","材料价差","机械价差","工程造价","调整人工费","调整机上人工费","甲供材料费"]);
         me.detailSpread.getSheet(0).getRange(-1, 5, -1, 1).cellType(fieldName);
 
         me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onMainEnterCell);

+ 20 - 1
web/building_saas/main/js/views/std_bills_lib.js

@@ -38,6 +38,14 @@ var billsLibObj = {
             this.stdBillsFeatureSpread.refresh();
         }
     },
+    clearHighLight: function (spread) {
+        if (spread) {
+            let sheet = spread.getActiveSheet();
+            sheet.suspendPaint();
+            sheet.getRange(0, -1, sheet.getRowCount(), -1, GC.Spread.Sheets.SheetArea.viewport).backColor(undefined);
+            sheet.resumePaint();
+        }
+    },
     loadStdBillsLib: function () {
         let i, select = $('#stdBillsLibSelect');
         select.empty();
@@ -163,6 +171,10 @@ var billsLibObj = {
                 stdBillsTreeController.setTreeSelected(result[0]);
                 billsLibObj.stdBillsSpread.getActiveSheet().setSelection(result[0].serialNo(), sel[0].col, 1, 1);
 
+                for (let node of result) {
+                    billsLibObj.stdBillsSpread.getActiveSheet().getRange(node.serialNo(), -1, 1, -1).backColor('lemonChiffon');
+                }
+
                 $('#nextStdBills').show();
                 $('#nextStdBills').click(function () {
                     var cur = stdBillsTree.selected, resultIndex = result.indexOf(cur), sel = billsLibObj.stdBillsSpread.getActiveSheet().getSelections();
@@ -175,6 +187,7 @@ var billsLibObj = {
                     }
                 });
             } else {
+                billsLibObj.clearHighLight(billsLibObj.stdBillsSpread);
                 $('#nextStdBills').hide();
             }
             $('#stdBillsSearchResultCount').text('搜索结果:' + result.length);
@@ -332,13 +345,19 @@ $('#stdBillsTab').bind('click', function () {
     };
 });
 $('#stdBillsLibSelect').change(function () {
+    $('#stdBillsSearchResult').hide();
+    $(".main-data-side-q").height($(window).height() - $(".header").height() - $(".toolsbar").height() -  $(".tools-bar-height-q").height() - 202);
+    billsLibObj.clearHighLight(billsLibObj.stdBillsSpread);
+
     var select = $(this);
     if (this.children.length !== 0) {
-        LoadStdBills(select.val());
+        billsLibObj.loadStdBills(select.val());
     }
 });
 
+// 关闭搜索结果
 $('#closeSearchStdBills').click(function () {
     $('#stdBillsSearchResult').hide();
     $(".main-data-side-q").height($(window).height() - $(".header").height() - $(".toolsbar").height() -  $(".tools-bar-height-q").height() - 202);
+    billsLibObj.clearHighLight(billsLibObj.stdBillsSpread);
 });

+ 6 - 6
web/building_saas/main/js/views/sub_view.js

@@ -33,7 +33,7 @@ SheetDataHelper.protectdSheet(subSpread.getSheet(3));
 
 
 $("#linkGLJ").click(function(){
-    $("#tzjnrCon").hide();//控制显示subSpread,隐藏特征及内容spread
+    $("#subItems").children().hide();//控制显示subSpread,隐藏特征及内容spread
     $("#subSpread").show();
     pageCCOprObj.active = false;
     refreshSubSpread();
@@ -45,7 +45,7 @@ $("#linkGLJ").click(function(){
 });
 
 $("#linkFZDE").click(function(){
-    $("#tzjnrCon").hide();
+    $("#subItems").children().hide();
     $("#subSpread").show();
     pageCCOprObj.active = false;
     refreshSubSpread();
@@ -55,7 +55,7 @@ $("#linkFZDE").click(function(){
   //  subSpread.getActiveSheet().setValue(0, 0, "辅助定额");
 });
 $("#linkFZTJ").click(function(){
-    $("#tzjnrCon").hide();
+    $("#subItems").children().hide();
     $("#subSpread").show();
     pageCCOprObj.active = false;
     refreshSubSpread();
@@ -66,7 +66,7 @@ $("#linkFZTJ").click(function(){
 });
 
 $("#linkGCLMX").click(function(){
-    $("#tzjnrCon").hide();
+    $("#subItems").children().hide();
     $("#subSpread").show();
     pageCCOprObj.active = false;
     refreshSubSpread();
@@ -78,7 +78,7 @@ $("#linkGCLMX").click(function(){
 });
 
 $("#linkJSCX").click(function(){        // 计算程序
-    $("#tzjnrCon").hide();
+    $("#subItems").children().hide();
     $("#subSpread").show();
     pageCCOprObj.active = false;
     refreshSubSpread();
@@ -95,7 +95,7 @@ $("#linkJSCX").click(function(){        // 计算程序
 
 //特征及内容
 $("#linkTZJNR").click(function () {
-    $("#subSpread").hide();
+    $("#subItems").children().hide();
     $("#tzjnrCon").show();
     pageCCOprObj.active = true;
     refreshSubSpread();