zeweizhong 6 лет назад
Родитель
Сommit
6aa9d43b90

+ 29 - 0
web/building_saas/css/custom.css

@@ -323,4 +323,33 @@ input.text-right{
 /*占位底色*/
 .occupied {
     background: #f1f1f1;
+}
+/*书签批注*/
+.annotate-color-1::before{
+    color: #E2F2C5 !important;
+    -webkit-text-stroke:.5px #ced4da;
+}
+.annotate-color-2::before{
+    color: #F9E2CF !important;
+    -webkit-text-stroke:.5px #ced4da;
+}
+.annotate-color-3::before{
+    color:#F2EFD9 !important;
+    -webkit-text-stroke:.5px #ced4da;
+}
+.annotate-color-4::before{
+    color:#F5D1DA !important;
+    -webkit-text-stroke:.5px #ced4da;
+}
+.annotate-color-5::before{
+    color:#E3E3E3 !important;
+    -webkit-text-stroke:.5px #ced4da;
+}
+.annotate-color-6::before{
+    color:#B6F3F2 !important;
+    -webkit-text-stroke:.5px #ced4da;
+}
+.annotate-color-7::before{
+    color:#ECE0F5 !important;
+    -webkit-text-stroke:.5px #ced4da;
 }

+ 17 - 9
web/building_saas/main/js/views/locate_view.js

@@ -67,6 +67,11 @@ let locateObject={
         ],
         selected:"E2F2C5"
     },
+    getDescribeByColor: function (color) {
+        const setting = projectObj.project.property.bookmarkSetting ? projectObj.project.property.bookmarkSetting : locateObject.bookmarkPropertySetting;
+        const item = setting.settingList.find(item => item.background === color);
+        return item && item.describe ? item.describe : '描述';
+    },
     initMainSpread:function(){
         if(!this.mainSpread){
             this.mainSpread = SheetDataHelper.createNewSpread($("#locate_result")[0],3);
@@ -174,10 +179,11 @@ let locateObject={
             focus = true;
         }
         sel.row = selectedID?_.findIndex(this.bookmarkDatas,{'ID':selectedID}):0;
-        sheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
+        const locatedRow = sel.row === -1 ? 0 : sel.row;
+        sheet.setSelection(locatedRow,sel.col,sel.rowCount,sel.colCount);
         sheet.setRowCount(this.bookmarkDatas.length);
-        if(sel.row!=-1) sheet.showRow(sel.row, GC.Spread.Sheets.VerticalPosition.bottom);
-        this.showAnnotation(sel.row,focus);
+        sheet.showRow(locatedRow, GC.Spread.Sheets.VerticalPosition.bottom)
+        this.showAnnotation(locatedRow,focus);
     },
     getBookmarkDatas:function(){
         let datas = [];
@@ -435,6 +441,8 @@ let locateObject={
             $("#bookmarkNodeID").val(recode.ID);
             $("#bookmarkNodeType").val(recode.type);
             if(focus) $("#annotationTextarea").focus();
+        } else {
+            $('#annotationTextarea').val('');
         }
     },
     locateNode:function (ID) {
@@ -462,13 +470,13 @@ let locateObject={
         setting.selected = $("#bookmarkSelected").val();
         this.updateProjectProperty("bookmarkSetting",setting);
     },
-    setOrCancelBookmark:function(node){
+    // background为null则为取消书签批注
+    setOrCancelBookmark:function(node, background){
         $("#bookmark").prop("checked", true);
-        let setting = projectObj.project.property.bookmarkSetting?projectObj.project.property.bookmarkSetting:locateObject.bookmarkPropertySetting;
-        let background = null;
-        if(_.isEmpty(node.data.bookmarkBackground)) background = setting.selected;
-        let updateData = {type:node.sourceType,data:{'ID' : node.data.ID,bookmarkBackground:background}};
-        if(background == null) updateData.data.bookmarkAnnotation = null;
+        const updateData = {type: node.sourceType, data: {ID: node.data.ID, bookmarkBackground: background}};
+        if(!background) {
+            updateData.data.bookmarkAnnotation = null;
+        }
         $.bootstrapLoading.start();
         projectObj.project.updateNodes([updateData],function () {
             $.bootstrapLoading.end();

+ 77 - 5
web/building_saas/main/js/views/project_view.js

@@ -1411,18 +1411,90 @@ var projectObj = {
                     },
                 },
                 "setBookMark": {
-                    name: '设置/取消书签批注',
+                    name: '设置书签批注',
                     icon: 'fa-flag',
                     disabled: function () {
-                        if (projectReadOnly || project.mainTree.selected.sourceType == ModuleNames.ration_glj) {
+                        if (projectReadOnly || !project.mainTree.selected || project.mainTree.selected.sourceType == ModuleNames.ration_glj) {
                             return true;
                         }
                         return false
                     },
-                    callback: function () {
-                        locateObject.setOrCancelBookmark(project.mainTree.selected)
+                    items: {
+                        cancelMark: {
+                            name: '取消书签批注',
+                            icon: 'fa-remove',
+                            disabled: function () {
+                                const selected = project.mainTree.selected;
+                                return !(selected && selected.data.bookmarkBackground);
+                            },
+                            callback: function () {
+                                locateObject.setOrCancelBookmark(project.mainTree.selected, null);
+                            }
+                        },
+                        markE2F2C5: {
+                            name: function () {
+                                return locateObject.getDescribeByColor('E2F2C5');
+                            },
+                            icon: 'fa-square annotate-color-1',
+                            callback: function () {
+                                locateObject.setOrCancelBookmark(project.mainTree.selected, 'E2F2C5');
+                            }
+                        },
+                        markF9E2CF: {
+                            name: function () {
+                                return locateObject.getDescribeByColor('F9E2CF');
+                            },
+                            icon: 'fa-square annotate-color-2',
+                            callback: function () {
+                                locateObject.setOrCancelBookmark(project.mainTree.selected, 'F9E2CF');
+                            }
+                        },
+                        markF2EFD9: {
+                            name: function () {
+                                return locateObject.getDescribeByColor('F2EFD9');
+                            },
+                            icon: 'fa-square annotate-color-3',
+                            callback: function () {
+                                locateObject.setOrCancelBookmark(project.mainTree.selected, 'F2EFD9');
+                            }
+                        },
+                        markF5D1DA: {
+                            name: function () {
+                                return locateObject.getDescribeByColor('F5D1DA');
+                            },
+                            icon: 'fa-square annotate-color-4',
+                            callback: function () {
+                                locateObject.setOrCancelBookmark(project.mainTree.selected, 'F5D1DA');
+                            }
+                        },
+                        markE3E3E3: {
+                            name: function () {
+                                return locateObject.getDescribeByColor('E3E3E3');
+                            },
+                            icon: 'fa-square annotate-color-5',
+                            callback: function () {
+                                locateObject.setOrCancelBookmark(project.mainTree.selected, 'E3E3E3');
+                            }
+                        },
+                        markB6F3F2: {
+                            name: function () {
+                                return locateObject.getDescribeByColor('B6F3F2');
+                            },
+                            icon: 'fa-square annotate-color-6',
+                            callback: function () {
+                                locateObject.setOrCancelBookmark(project.mainTree.selected, 'B6F3F2');
+                            }
+                        },
+                        markECE0F5: {
+                            name: function () {
+                                return locateObject.getDescribeByColor('ECE0F5');
+                            },
+                            icon: 'fa-square annotate-color-7',
+                            callback: function () {
+                                locateObject.setOrCancelBookmark(project.mainTree.selected, 'ECE0F5');
+                            }
+                        },
                     }
-
                 },
                 "delete": {
                     name: '删除',