zhongzewei 7 lat temu
rodzic
commit
db70a1e9c3

+ 2 - 1
modules/all_models/stdRation_ration.js

@@ -43,7 +43,8 @@ const rationItemSchema = new Schema({
     rationGljList: [rationGljItemSchema],
     rationCoeList: Array,
     rationAssList: [rationAssItemSchema],
-    rationInstList: [rationInstSchema]
+    rationInstList: [rationInstSchema],
+    isDeleted: {type: Boolean, default: false}
 });
 
 mongoose.model('std_ration_lib_ration_items', rationItemSchema, 'std_ration_lib_ration_items');

+ 1 - 1
modules/ration_repository/models/ration_item.js

@@ -459,7 +459,7 @@ rationItemDAO.prototype.getRationGljIds = function (data, callback) {
 
 rationItemDAO.prototype.getRationsCodes = function (data, callback) {
     let repId = data.repId;
-    rationItemModel.find({rationRepId: repId}, function (err, result) {
+    rationItemModel.find({rationRepId: repId, isDeleted: false}, function (err, result) {
         if(err){
             callback(err, 'Error', null);
         }

+ 14 - 1
modules/ration_repository/models/ration_section_tree.js

@@ -7,6 +7,7 @@ let moment = require('moment');
 let counter = require('../../../public/counter/counter');
 let rationRepositoryDao = require('./repository_map');
 const rationChapterTreeModel = mongoose.model('std_ration_lib_ration_chapter_trees');
+const rationModel = mongoose.model('std_ration_lib_ration_items');
 var rationChapterTreeDAO = function(){};
 
 rationChapterTreeDAO.prototype.getRationChapterTree = function(rationLibId,callback){
@@ -175,7 +176,19 @@ rationChapterTreeDAO.prototype.updateNodes = function(lastOpr, updateData,callba
                             cb(err);
                         }
                         else {
-                            cb(null);
+                            if(doc.updateData.isDeleted){
+                                rationModel.update({sectionId: doc.updateData.ID}, {$set: {isDeleted: true}}, {multi: true}, function(err){
+                                    if(err){
+                                        cb(err);
+                                    }
+                                    else {
+                                        cb(null);
+                                    }
+                                });
+                            }
+                            else {
+                                cb(null);
+                            }
                         }
                     });
                 }

+ 2 - 1
modules/ration_repository/models/repository_map.js

@@ -9,7 +9,7 @@ let counter = require('../../../public/counter/counter');
 const gljMapModel = mongoose.model('std_glj_lib_map');
 const rationRepository = mongoose.model('std_ration_lib_map');
 const rationChapterTreeModel = mongoose.model('std_ration_lib_ration_chapter_trees');
-const rationItemModel = mongoose.model('complementary_ration_items');
+const rationItemModel = mongoose.model('std_ration_lib_ration_items');
 
 function createNewLibModel(rationLibObj){
     var rst = {};
@@ -222,6 +222,7 @@ rationRepositoryDao.prototype.deleteRationLib = function(oprtor, libId, callback
                                },
                                //删除库下定额
                                function (cb) {
+                                        console.log('enterD==================================');
                                    rationItemModel.update({rationRepId: libId}, {$set: {isDeleted: true}}, {upsert: true, multi: true}, function (err) {
                                        if(err)cb(err);
                                        else cb(null);

+ 8 - 7
package.json

@@ -3,22 +3,23 @@
   "version": "0.2.0",
   "description": "Smart Soft - Construct Cost",
   "devDependencies": {
-    "body-parser": "^1.13.2",
+    "async": "^2.1.5",
     "babel-preset-es2015": "^6.24.1",
     "babel-preset-stage-2": "^6.24.1",
-    "express": "^4.13.1",
-    "express-partials": "^0.3.0",
-    "mongoose": "~4.13.12",
-    "async": "^2.1.5",
+    "body-parser": "^1.13.2",
     "connect-mongo": "^1.3.2",
     "cookie-parser": "~1.4.3",
     "debug": "~2.6.0",
     "ejs": "~2.5.5",
+    "express": "^4.13.1",
+    "express-partials": "^0.3.0",
     "express-session": "^1.15.1",
+    "glob": "~4.0.5",
+    "lodash": "^3.10.1",
     "moment": "^2.18.1",
+    "mongoose": "~4.13.12",
     "request": "^2.79.0",
-    "tape": "^4.6.3",
-    "glob": "~4.0.5"
+    "tape": "^4.6.3"
   },
   "dependencies": {
     "babel-core": "^6.26.0",

+ 1 - 1
public/web/common_ajax.js

@@ -19,7 +19,7 @@ var CommonAjax = {
                 } else {
                     alert('error: ' + result.message);
                     if (errorCallback) {
-                        errorCallback();
+                        errorCallback(result.message);
                     }
                 }
             },

+ 49 - 0
public/web/ration_glj_units.js

@@ -0,0 +1,49 @@
+'use strict';
+
+/**
+ *
+ *
+ * @author Zhong
+ * @date 2018/6/4
+ * @version
+ */
+//定额与工料机公用单位
+const rationAndGljUnits =[
+    'm',
+    'm2',
+    'm3',
+    '台班',
+    '工日',
+    't',
+    'kg',
+    '座',
+    '组',
+    '宗',
+    '元',
+    '套',
+    '台',
+    '千米',
+    '千克',
+    '辆',
+    '块',
+    '公斤',
+    '付',
+    '部',
+    '10t',
+    '10m',
+    '10 m2',
+    '10 m3',
+    '100m',
+    '100 m2',
+    '100 m3',
+    '1000m',
+    '1000 m2',
+    '1000 m3',
+    '10000块',
+    '立方米',
+    '平方米',
+    '株',
+    '棵',
+    '项',
+    '樘'
+];

+ 1 - 1
public/web/tree_sheet/tree_sheet_controller.js

@@ -67,7 +67,7 @@ var TREE_SHEET_CONTROLLER = {
                 if (this.tree.delete(this.tree.selected)) {
                     TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {
                         that.sheet.deleteRows(sels[0].row, that.tree.selected.posterityCount() + 1);
-                        that.setTreeSelected(that.tree.items[sels[0].row]);
+                        that.setTreeSelected(that.tree.items[sels[0].row] ? that.tree.items[sels[0].row] : that.tree.items[that.tree.items.length - 1]);
                     });
                 }
             }

+ 1 - 1
web/maintain/ration_repository/anzhuang.html

@@ -28,7 +28,7 @@
                       <a class="nav-link px-3" id="gongliao" href="gongliao.html">人材机</a>
                   </li>
                   <li class="nav-item">
-                      <a class="nav-link px-3" id="fuzhu" href="fuzhu.html">附注条件</a>
+                      <a class="nav-link px-3" id="fuzhu" href="fuzhu.html">子目换算</a>
                   </li>
                   <li class="nav-item">
                       <a class="nav-link active px-3" >安装增加费</a>

+ 1 - 1
web/maintain/ration_repository/dinge.html

@@ -457,7 +457,7 @@
         <script type="text/javascript" src="/public/web/ztree_common.js"></script>
         <script type="text/javascript" src="/public/web/sheet/sheet_common.js"></script>
         <script type="text/javascript" src="/web/maintain/ration_repository/js/sheetsOpr.js"></script>
-        <script type="text/javascript" src="/web/maintain/ration_repository/js/rationUnits.js"></script>
+        <script type="text/javascript" src="/public/web/ration_glj_units.js"></script>
         <script type="text/javascript" src="/web/maintain/ration_repository/js/ration.js"></script>
         <script type="text/javascript" src="/web/maintain/ration_repository/js/ration_glj.js"></script>
         <script type="text/javascript" src="/web/maintain/ration_repository/js/ration_installation.js"></script>

+ 1 - 1
web/maintain/ration_repository/fuzhu.html

@@ -29,7 +29,7 @@
                       <a class="nav-link px-3" id="gongliao" href="javascript:void(0);">人材机</a>
                   </li>
                   <li class="nav-item">
-                      <a class="nav-link active px-3">附注条件</a>
+                      <a class="nav-link active px-3">子目换算</a>
                   </li>
                   <li class="nav-item">
                       <a class="nav-link px-3" id="anzhuang" href="javascript:void(0);">安装增加费</a>

+ 1 - 1
web/maintain/ration_repository/gongliao.html

@@ -32,7 +32,7 @@
                       <a class="nav-link active px-3">人材机</a>
                   </li>
                   <li class="nav-item">
-                      <a class="nav-link px-3" id="fuzhu" href="javascript:void(0);">附注条件</a>
+                      <a class="nav-link px-3" id="fuzhu" href="javascript:void(0);">子目换算</a>
                   </li>
                   <li class="nav-item">
                       <a class="nav-link px-3" id="anzhuang" href="javascript:void(0);">安装增加费</a>

+ 6 - 0
web/maintain/ration_repository/js/main.js

@@ -312,6 +312,7 @@ function renameRationLib(renameObj, dispNames){
     })
 }
 function removeRationLib(delObj, dispNames){
+    $.bootstrapLoading.start();
     $.ajax({
         type: 'post',
         url: 'api/deleteRationLibs',
@@ -325,6 +326,11 @@ function removeRationLib(delObj, dispNames){
                 dispNames.splice(index, 1);
                 $('#delCancelBtn').click();
             }
+            $.bootstrapLoading.end();
+        },
+        error: function () {
+            alert('删除失败');
+            $.bootstrapLoading.end();
         }
     })
 }

+ 16 - 15
web/maintain/ration_repository/js/ration.js

@@ -70,7 +70,7 @@ let rationOprObj = {
         sheet.suspendEvent();
         if(combo){
             combo = sheetCommonObj.getDynamicCombo();
-            combo.items(rationUnits).itemHeight(10).editable(true);
+            combo.items(rationAndGljUnits).itemHeight(10).editable(true);
         }
         sheet.getRange(-1, me.setting.view.comboBox[0].col, -1, 1).cellType(combo);
         sheet.resumePaint();
@@ -173,7 +173,7 @@ let rationOprObj = {
                             for(let i = 0; i < sels[sel].rowCount; i++){
                                 if(sels[sel].row + i < cacheSection.length){
                                     removeArr.push(cacheSection[sels[sel].row + i].ID);
-                                    me.rationsCodes.splice(me.rationsCodes.indexOf(cacheSection[sels[sel].row + i].code), 1);
+                                    me.rationsCodes.splice(me.rationsCodes.indexOf(cacheSection[sels[sel].row + i].code.toString()), 1);
                                 }
                             }
                         }
@@ -259,6 +259,7 @@ let rationOprObj = {
     onCellEditStart: function(sender, args) {
         let me = rationOprObj;
         if(!me.canRations || me.setting.view.lockColumns.indexOf(args.col) !== -1){
+            console.log('enter');
             args.cancel = true;
         }
         else{
@@ -289,9 +290,9 @@ let rationOprObj = {
                 if(me.currentEditingRation[dataCode] !== rObj[dataCode]){
                     me.addRationItem = rObj;
                     if(dataCode === 'code'){
-                        if(me.rationsCodes.indexOf(rObj.code) === -1){
-                            me.rationsCodes.splice(me.rationsCodes.indexOf(rObj.code), 1);
-                            me.rationsCodes.push(rObj.code);
+                        if(me.rationsCodes.indexOf(rObj.code.toString()) === -1){
+                            me.rationsCodes.splice(me.rationsCodes.indexOf(rObj.code.toString()), 1);
+                            me.rationsCodes.push(rObj.code.toString());
                             updateArr.push(rObj);
                         }
                         else{
@@ -320,7 +321,7 @@ let rationOprObj = {
                 //addArr.push(rObj);
                 me.addRationItem = rObj;
                 if(rObj.code && rObj.code.toString().trim().length > 0){
-                    if(me.rationsCodes.indexOf(rObj.code) === -1){
+                    if(me.rationsCodes.indexOf(rObj.code.toString()) === -1){
                         //jobContent
                         if(jobContentOprObj && jobContentOprObj.currentSituation === jobContentOprObj.situations.ALL){
                             rObj.jobContent = jobContentOprObj.currentJobContent ? jobContentOprObj.currentJobContent : '';
@@ -330,7 +331,7 @@ let rationOprObj = {
                         }
                         me.setInitPrc(rObj);
                         addArr.push(rObj);
-                        me.rationsCodes.push(rObj.code);
+                        me.rationsCodes.push(rObj.code.toString());
                         me.addRationItem = null;
                     }
                     else{
@@ -372,11 +373,11 @@ let rationOprObj = {
         for (let i = 0; i < items.length; i++) {
             let rowIdx = info.cellRange.row + i;
             if (cacheSection) {
-                if(!me.isValidUnit(items[i], rationUnits)){//无效单位
+              /*  if(!me.isValidUnit(items[i], rationUnits)){//无效单位
                     items[i].unit = rowIdx < cacheSection.length  && typeof cacheSection[rowIdx].unit !== 'undefined' ? cacheSection[rowIdx].unit : '';
-                }
+                }*/
                 if(!cacheSection[rowIdx] && info.cellRange.col === 0 ){
-                    if(me.rationsCodes.indexOf(items[i].code) === -1){
+                    if(me.rationsCodes.indexOf(items[i].code.toString()) === -1){
                         //jobConten
                         if(jobContentOprObj && jobContentOprObj.currentSituation === jobContentOprObj.situations.ALL){
                             items[i].jobContent = jobContentOprObj.currentJobContent ? jobContentOprObj.currentJobContent : '';
@@ -386,7 +387,7 @@ let rationOprObj = {
                         }
                         me.setInitPrc(items[i]);
                         addArr.push(items[i]);
-                        me.rationsCodes.push(items[i].code);
+                        me.rationsCodes.push(items[i].code.toString());
                     }
                     else{
                         me.workBook.getSheet(0).setValue(rowIdx, 0, '');
@@ -403,7 +404,7 @@ let rationOprObj = {
                         me.workBook.getSheet(0).setValue(rowIdx, 8, '');
                     }
                     if(info.cellRange.col === 0){
-                        if(me.rationsCodes.indexOf(items[i].code) === -1){
+                        if(me.rationsCodes.indexOf(items[i].code.toString()) === -1){
                             items[i].ID = cacheSection[rowIdx].ID;
                             updateArr.push(items[i]);
                         }
@@ -418,13 +419,13 @@ let rationOprObj = {
                 }
 
             } else {
-                if(!me.isValidUnit(items[i], rationUnits)){//无效单位
+               /* if(!me.isValidUnit(items[i], rationUnits)){//无效单位
                     items[i].unit = '';
-                }
+                }*/
                 //add
                 if(info.cellRange.col === 0){
                     //是否含有已存在的编号
-                        if(me.rationsCodes.indexOf(items[i].code) === -1){
+                        if(me.rationsCodes.indexOf(items[i].code.toString()) === -1){
                             //jobConten
                             if(jobContentOprObj && jobContentOprObj.currentSituation === jobContentOprObj.situations.ALL){
                                 items[i].jobContent = jobContentOprObj.currentJobContent ? jobContentOprObj.currentJobContent : '';

+ 0 - 49
web/maintain/ration_repository/js/rationUnits.js

@@ -1,49 +0,0 @@
-/**
- * Created by Zhong on 2017/9/8.
- * 定额列表单位下拉表
- */
-let rationUnits =[
-    'm',
-    'km',
-    'm2',
-    'm3',
-    'kg',
-    't',
-    '10m',
-    '10m2',
-    '10m3',
-    '100m',
-    '100m2',
-    '100m3',
-    '1000m2',
-    '1000m3',
-    'à·km',
-    '总额',
-    '月',
-    '项',
-    '处',
-    '个',
-    '根',
-    '棵',
-    '块',
-    '每一试桩',
-    '桥长米',
-    '公路公里',
-    '株',
-    '组',
-    '座',
-    '元',
-    '工日',
-    '套',
-    '台班',
-    '艘班',
-    'm/处',
-    'm/道',
-    'm/座',
-    'm2/m',
-    'm3/m',
-    'm3/处',
-    '根/米',
-    '亩',
-    'm3/m2'
-];

+ 14 - 0
web/maintain/ration_repository/js/section_tree.js

@@ -314,6 +314,7 @@ let sectionTreeObj = {
                     //fresh tools
                     me.initTools(me.tree.selected);
                     me.workBook.focus();
+                    me.initSelection(me.tree.selected);
                 });
             }
         });
@@ -349,13 +350,20 @@ let sectionTreeObj = {
         if(postData.length > 0){
             //ajax
             me.sectionTreeAjax(postData, function (rstData) {
+                me.removeRationsCodes(rationOprObj.currentRations["_SEC_ID_" + selected.data.ID]);
                 me.controller.delete();
                 me.refreshBtn(me.tree.selected);
                 me.initTools(me.tree.selected);
+                me.initSelection(me.tree.selected);
                 me.workBook.focus();
             });
         }
     },
+    removeRationsCodes: function (rations) {
+        for(let ration of rations){
+            rationOprObj.rationsCodes.splice(rationOprObj.rationsCodes.indexOf(ration.code), 1);
+        }
+    },
     getSameDepthNodes: function(){
         let rst = [];
         let sel = this.sheet.getSelections()[0];
@@ -552,8 +560,14 @@ let sectionTreeObj = {
     initSelection: function (node) {
         let me = this;
         if(!me.isDef(node)){
+            sheetCommonObj.cleanSheet(rationOprObj.workBook.getActiveSheet(), rationOprObj.setting, -1);
+            sheetCommonObj.cleanSheet(rationGLJOprObj.sheet, rationGLJOprObj.setting, -1);
+            sheetCommonObj.cleanSheet(rationAssistOprObj.sheet, rationAssistOprObj.setting, -1);
+            sheetCommonObj.cleanSheet(rationCoeOprObj.sheet, rationCoeOprObj.setting, -1);
+            sheetCommonObj.cleanSheet(rationInstObj.sheet, rationInstObj.setting, -1);
             return;
         }
+        me.workBook.getActiveSheet().setActiveCell(node.serialNo(), 0);
         me.initTools(node);
         me.refreshBtn(node);
         if(!me.isDef(node.children) || node.children.length === 0){

+ 1 - 0
web/maintain/ration_repository/main.html

@@ -214,6 +214,7 @@
     <script src="/lib/jquery/jquery.min.js"></script>
     <script src="/lib/tether/tether.min.js"></script>
     <script src="/lib/bootstrap/bootstrap.min.js"></script>
+    <script src="/public/web/PerfectLoad.js"></script>
     <script src="/web/maintain/ration_repository/js/global.js"></script>
     <!-- zTree -->
     <script type="text/javascript" src="/public/web/date_util.js"></script>

+ 1 - 0
web/maintain/std_glj_lib/html/gongliao.html

@@ -162,6 +162,7 @@
     <script type="text/javascript" src="/public/web/id_tree.js"></script>
     <script type="text/javascript" src="/public/web/tree_sheet/tree_sheet_controller.js"></script>
     <script type="text/javascript" src="/public/web/tree_sheet/tree_sheet_helper.js"></script>
+    <script type="text/javascript" src="/public/web/ration_glj_units.js"></script>
     <script type="text/javascript" src="/web/maintain/std_glj_lib/js/glj.js"></script>
     <script type="text/javascript" src="/web/maintain/std_glj_lib/js/gljClassTree.js"></script>
     <script type="text/javascript" src="/web/maintain/std_glj_lib/js/gljComponent.js"></script>

+ 29 - 5
web/maintain/std_glj_lib/js/glj.js

@@ -52,7 +52,7 @@ let repositoryGljObj = {
             {headerName:"编码",headerWidth:80,dataCode:"code", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"},
             {headerName:"名称",headerWidth:160,dataCode:"name", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"},
             {headerName:"规格型号",headerWidth:120,dataCode:"specs", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"},
-            {headerName:"单位",headerWidth:45,dataCode:"unit", dataType: "String", hAlign: "center", vAlign: "center"},
+            {headerName:"单位",headerWidth:60,dataCode:"unit", dataType: "String", hAlign: "center", vAlign: "center"},
             {headerName:"定额价",headerWidth:80,dataCode:"basePrice", dataType: "Number", formatter: "0.00", hAlign: "right", vAlign: "center"},
             {headerName:"类型",headerWidth:90,dataCode:"gljType", dataType: "String", hAlign: "center", vAlign: "center"},
             {headerName:"调整系数",headerWidth:60,dataCode:"adjCoe", dataType: "Number", hAlign: "center", vAlign: "center"},
@@ -67,6 +67,21 @@ let repositoryGljObj = {
             ]
         }
     },
+    setUnitCombo: function (sheet, headers) {
+        let me = this;
+        sheet.suspendPaint();
+        sheet.suspendEvent();
+        let combo = sheetCommonObj.getDynamicCombo();
+        combo.items(rationAndGljUnits).itemHeight(10).editable(true);
+        for(let i = 0; i < headers.length; i++){
+            if(headers[i].dataCode === 'unit'){
+                sheet.getRange(-1, i, -1, 1).cellType(combo);
+                break;
+            }
+        }
+        sheet.resumePaint();
+        sheet.resumeEvent();
+    },
     getComboData: function (gljDistType) {
         let me = this;
         let distType;
@@ -203,6 +218,7 @@ let repositoryGljObj = {
         let me = repositoryGljObj;
         me.workBook = sheetCommonObj.buildSheet(container, me.setting, 30, me);
         me.repositoryGljDelOpr();
+        me.setUnitCombo(me.workBook.getActiveSheet(), me.setting.header);
         me.workBook.bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
         me.workBook.bind(GC.Spread.Sheets.Events.ClipboardPasted, me.onClipboardPasted);
         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.EditStarting, me.onCellEditStart);
@@ -333,15 +349,23 @@ let repositoryGljObj = {
     },
     onLeaveCell: function (sender, args) {
         let me = repositoryGljObj;
-        me.lastCol = args.col
+        me.lastCell = {row: args.row, col: args.col};
     },
     onEnterCell: function (sender, args) {
         let me = repositoryGljObj;
         let thisDataCode = me.setting.header[args.col].dataCode,
-            lastDataCode = me.setting.header[me.lastCol].dataCode;
-        if(thisDataCode === 'gljType' || lastDataCode === 'gljType'
+            lastDataCode = me.setting.header[me.lastCell.col].dataCode;
+        if(thisDataCode === 'unit'|| lastDataCode === 'unit' || thisDataCode === 'gljType' || lastDataCode === 'gljType'
             || thisDataCode === 'materialType' || lastDataCode === 'materialType'){
-            args.sheet.repaint();
+            let rects = [];
+            rects.push(args.sheet.getCellRect(args.row, args.col));
+            if(me.lastCell){
+                rects.push(args.sheet.getCellRect(me.lastCell.row, me.lastCell.col));
+            }
+            for(let rect of rects){
+                args.sheet.repaint(rect);
+            }
+            //args.sheet.repaint();
         }
         me.cellRowIdx = args.row;
         let isHasData = false;