zhongzewei 7 лет назад
Родитель
Сommit
6fcecbec1b
2 измененных файлов с 71 добавлено и 20 удалено
  1. 41 5
      web/building_saas/pm/js/pm_gc.js
  2. 30 15
      web/building_saas/pm/js/pm_newMain.js

+ 41 - 5
web/building_saas/pm/js/pm_gc.js

@@ -178,6 +178,11 @@ const gcTreeObj = {
             {name: '单价文件', dataCode: 'unitPriceFile', width: 170, vAlign: 'center', hAlign: 'left'},
             {name: '费率文件', dataCode: 'feeRateFile', width: 170, vAlign: 'center', hAlign: 'left'}
         ],
+        //选中行颜色
+        style: {
+            defalutBackColor: 'White',
+            selectedColor: '#BBFFFF'
+        },
         options: {
             tabStripVisible:  false,
             allowCopyPasteExcelStyle : false,
@@ -230,10 +235,40 @@ const gcTreeObj = {
             this.bindEvent(this.workBook);
         }
     },
-    initSelection: function (row) {
+    getSelStyle: function (backColor) {
+        let style = new GC.Spread.Sheets.Style();
+        style.backColor = backColor;
+        style.borderLeft = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
+        style.borderTop = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
+        style.borderRight = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
+        style.borderBottom = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
+        return style;
+    },
+    //设置选中行底色
+    setSelStyle: function (sel, backColor) {
         let me = this;
-        let node = me.tree.items[row];
+        let sheet = me.workBook.getSheet(0);
+        me.renderSheetFuc(sheet, function () {
+            let style = me.getSelStyle(backColor);
+            /*sel.row = sel.row === -1 ? 0 : sel.row;*/
+            for(let i = 0; i < sel.rowCount; i++){
+                let row = i + sel.row;
+                sheet.setStyle(row, -1, style);
+            }
+        });
+    },
+    initSelection: function (newSel, oldSel = null) {
+        let me = this;
+        let node = me.tree.items[newSel.row];
         me.tree.selected = node;
+        //恢复底色
+        if(oldSel){
+            me.setSelStyle(oldSel, me.setting.style.defalutBackColor);
+        }
+        //设置选中行底色
+        if(newSel){
+            me.setSelStyle(newSel, me.setting.style.selectedColor);
+        }
         $(".tools-btn > a").not(".disabled").addClass("disabled");
         $("#add-engineering-btn").addClass("disabled");
         $('#add-tender-btn').removeClass('disabled');
@@ -266,7 +301,7 @@ const gcTreeObj = {
     },
     onSelectionChanging: function (sender, args) {
         let me = gcTreeObj;
-        me.initSelection(args.newSelections[0].row);
+        me.initSelection(args.newSelections[0], args.oldSelections[0]);
     },
     //点击恢复列,弹出恢复项目窗口
     recoveryProj: function (node) {
@@ -592,7 +627,7 @@ const gcTreeObj = {
         me.renderSheetFuc(sheet, function () {
             sheet.deleteRows(rIdx, count);
             sheet.setRowCount(me.tree.items.length);
-            me.initSelection(sheet.getActiveRowIndex());
+            me.initSelection({row: sheet.getActiveRowIndex(), rowCount: 1});
         });
     },
     move: function (orgRow, newRow) {
@@ -622,7 +657,8 @@ function gc_init(){
         gcTreeObj.buildSheet();
         gcTreeObj.showTreeData(gcTreeObj.tree.items, gcTreeObj.setting.header);
         //初始选择
-        gcTreeObj.initSelection(0);
+        let initSel = gcTreeObj.workBook.getSheet(0).getSelections()[0] ? gcTreeObj.workBook.getSheet(0).getSelections()[0] : {row: 0, rowCount: 1};
+        gcTreeObj.initSelection(initSel);
         $.bootstrapLoading.end();
     });
 }

+ 30 - 15
web/building_saas/pm/js/pm_newMain.js

@@ -28,6 +28,7 @@ const projTreeObj = {
     tree: null,
     workBook: null,
     preSelected: null,
+    preSelection: null,
     setting: {
         tree: {
             id: 'ID',
@@ -100,25 +101,40 @@ const projTreeObj = {
             this.bindEvent(this.workBook);
         }
     },
-    getNodeStyle: function (node) {
+    getSelStyle: function (backColor) {
         let style = new GC.Spread.Sheets.Style();
-        style.backColor = this.tree.selected == node ? this.setting.style.selectedColor : this.setting.style.defalutBackColor;
+        style.backColor = backColor;
         style.borderLeft = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
         style.borderTop = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
         style.borderRight = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
         style.borderBottom = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
         return style;
     },
-    initSelection: function (row) {
+    //设置选中行底色
+    setSelStyle: function (sel, backColor) {
         let me = this;
-        let node = me.tree.items[row];
-        me.tree.selected = node;
-        //设置当前选中节点底色
-        me.workBook.getSheet(0).setStyle(row, -1, me.getNodeStyle(node));
-        //恢复上一个选中节点底色
-        if(me.preSelected){
-            me.workBook.getSheet(0).setStyle(me.preSelected.serialNo(), -1, me.getNodeStyle(me.preSelected));
+        let sheet = me.workBook.getSheet(0);
+        me.renderSheetFuc(sheet, function () {
+            let style = me.getSelStyle(backColor);
+            /*sel.row = sel.row === -1 ? 0 : sel.row;*/
+            for(let i = 0; i < sel.rowCount; i++){
+                let row = i + sel.row;
+                sheet.setStyle(row, -1, style);
+            }
+        });
+    },
+    initSelection: function (newSel, oldSel = null) {
+        let me = this;
+        let node = me.tree.items[newSel.row];
+        //恢复底色
+        if(oldSel){
+            me.setSelStyle(oldSel, me.setting.style.defalutBackColor);
         }
+        //设置选中行底色
+        if(newSel){
+            me.setSelStyle(newSel, me.setting.style.selectedColor);
+        }
+        me.tree.selected = node;
         me.preSelected = node;
         $(".tools-btn > a").not(".disabled").addClass("disabled");
         $("#add-engineering-btn").addClass("disabled");
@@ -152,7 +168,7 @@ const projTreeObj = {
     },
     onSelectionChanging: function (sender, args) {
         let me = projTreeObj;
-        me.initSelection(args.newSelections[0].row);
+        me.initSelection(args.newSelections[0], args.oldSelections[0]);
     },
     getShowData: function (datas) {
         for(let data of datas){
@@ -486,7 +502,7 @@ const projTreeObj = {
         me.renderSheetFuc(sheet, function () {
             sheet.deleteRows(rIdx, count);
             sheet.setRowCount(me.tree.items.length);
-            me.initSelection(sheet.getActiveRowIndex());
+            me.initSelection({row: sheet.getActiveRowIndex(), rowCount: 1});
         });
     },
     move: function (orgRow, newRow) {
@@ -935,7 +951,6 @@ $(document).ready(function() {
                     updateData['updateData'][projTreeObj.tree.setting.tree.id] = pre.id();
                     updateData['updateData'][projTreeObj.tree.setting.tree.nid] = projTreeObj.tree.maxNodeId() + 1;
                 }
-                console.log(updateData);
                 projTreeObj.tree.maxNodeId(IDs.lowID - 1);
                 CommonAjax.post('/pm/api/copyProjects', {updateData: updateData, user_id: userID}, function (data) {
                     dialog.modal('hide');
@@ -995,7 +1010,8 @@ function init() {
         projTreeObj.buildSheet();
         projTreeObj.showTreeData(projTreeObj.tree.items, projTreeObj.setting.header);
         //初始选择
-        projTreeObj.initSelection(0);
+        let initSel = projTreeObj.workBook.getSheet(0).getSelections()[0] ? projTreeObj.workBook.getSheet(0).getSelections()[0] : {row: 0, rowCount: 1};
+        projTreeObj.initSelection(initSel);
         $.bootstrapLoading.end();
     });
     engineering = engineeringList !== null && engineeringList !== undefined ? JSON.parse(engineeringList) : [];
@@ -2179,7 +2195,6 @@ function bindEvents_file_table(jqS, usedObj, targetBody, type){
         $(jqS + ' .btn-success').on('click', function () {
             let attrId = $(jqS).attr('id');
             let id = attrId.slice(5, attrId.length);
-            console.log(id);
             let newName = $(jqS + ' input').val().trim();
             if(newName !== orgName){
                 if(hasThisFileName(fileObjs, newName)){