Explorar el Código

设计搜索功能

huqi hace 5 años
padre
commit
ae4b6a5178

+ 2 - 2
o2web/source/o2_core/o2/widget/$Tree/findDesigner/css.wcss

@@ -9,7 +9,7 @@
 	},
 	
 	"treeItemNode":{
-		"height": "24px"
+
 	},
 	"treeChildrenNode": {
 	},
@@ -26,7 +26,7 @@
 	"nodeTable": {},
 	"iconNode": {
 		"height": "24px",
-		"width": "20px",
+		"width": "24px",
 		"background-position": "center center"
 	},
 	"textNode": {

BIN
o2web/source/o2_core/o2/widget/$Tree/findDesigner/icon_actions.png


BIN
o2web/source/o2_core/o2/widget/$Tree/findDesigner/icon_array.png


BIN
o2web/source/o2_core/o2/widget/$Tree/findDesigner/icon_css.png


BIN
o2web/source/o2_core/o2/widget/$Tree/findDesigner/icon_duty.png


BIN
o2web/source/o2_core/o2/widget/$Tree/findDesigner/icon_events.png


BIN
o2web/source/o2_core/o2/widget/$Tree/findDesigner/icon_filter.png


BIN
o2web/source/o2_core/o2/widget/$Tree/findDesigner/icon_html.png


BIN
o2web/source/o2_core/o2/widget/$Tree/findDesigner/icon_map.png


BIN
o2web/source/o2_core/o2/widget/$Tree/findDesigner/icon_object-array.png


BIN
o2web/source/o2_core/o2/widget/$Tree/findDesigner/icon_script.png


BIN
o2web/source/o2_core/o2/widget/$Tree/findDesigner/icon_text.png


+ 401 - 46
o2web/source/x_component_FindDesigner/FindWorker.js

@@ -223,9 +223,9 @@ _worker._parseFindModule = function(moduleList){
                 });
                 this.filterOptionList.push(filterOption);
 
-                //promiseArr.push(Promise.resolve(""));
-                promiseArr = promiseArr.concat(_worker["_getDesinger_"+module.moduleType]("invoke"));
-                promiseArr = promiseArr.concat(_worker["_getDesinger_"+module.moduleType]("agent"));
+                promiseArr.push(Promise.resolve(""));
+                // promiseArr = promiseArr.concat(_worker["_getDesinger_"+module.moduleType]("invoke"));
+                // promiseArr = promiseArr.concat(_worker["_getDesinger_"+module.moduleType]("agent"));
             }else{
                 module.flagList.forEach(function(flag){
                     if (!flag.designerList || !flag.designerList.length){
@@ -243,23 +243,23 @@ _worker._parseFindModule = function(moduleList){
                 var p = _worker._listApplication(module.moduleType);
                 promiseArr.push(p.then(function(json){
 
-                    // json.data.forEach(function(app){
-                    //     var filterOption = JSON.parse(_worker.filterOptionTemplete);
-                    //     filterOption.moduleList.push({
-                    //         "moduleType": module.moduleType,
-                    //         "moduleAppList": [{"appId": app.id}]
-                    //     });
-                    //     this.filterOptionList.push(filterOption);
-                    // });
-                    // return Promise.resolve("");
+                    json.data.forEach(function(app){
+                        var filterOption = JSON.parse(_worker.filterOptionTemplete);
+                        filterOption.moduleList.push({
+                            "moduleType": module.moduleType,
+                            "moduleAppList": [{"appId": app.id}]
+                        });
+                        this.filterOptionList.push(filterOption);
+                    });
+                    return Promise.resolve("");
                     //临时处理
 
 
-                    var pArr = [];
-                    json.data.forEach(function(app){
-                        pArr = pArr.concat(_worker["_getDesinger_"+module.moduleType](app.id));
-                    });
-                    return Promise.all(pArr);
+                    // var pArr = [];
+                    // json.data.forEach(function(app){
+                    //     pArr = pArr.concat(_worker["_getDesinger_"+module.moduleType](app.id));
+                    // });
+                    // return Promise.all(pArr);
                 }, function(){}));
 
             }else{
@@ -313,10 +313,10 @@ _worker._createFindMessageReplyData = function(module, designer, aliase, pattern
 _worker._setFilterOptionRegex = function(){
     var keyword = _worker.findData.filterOption.keyword;
     if (_worker.findData.filterOption.matchRegExp){
-        var flag = (_worker.findData.filterOption.caseSensitive) ? "g" : "gi";
+        var flag = (_worker.findData.filterOption.caseSensitive) ? "gm" : "gmi";
         this.keywordRegexp =  new RegExp(keyword, flag);
     }else{
-        var flag = (_worker.findData.filterOption.caseSensitive) ? "g" : "gi";
+        var flag = (_worker.findData.filterOption.caseSensitive) ? "gm" : "gmi";
         keyword = (_worker.findData.filterOption.matchWholeWord) ? "\\b"+keyword+"\\b" : keyword;
         this.keywordRegexp = new RegExp(keyword, flag);
     }
@@ -364,11 +364,369 @@ _worker._findProcessPlatformParse_script = function(designer, option, module){
     }
 };
 
+_worker.findScriptLineValue = function(result, code, preLine, preIndex, len){
+    var lineRegexp = /\r\n|\n|\r/g;
+    var preText = code.substring(preIndex, result.index);
+    var m = preText.match(lineRegexp);
+    preLine += (m) ? m.length : 0;
+
+    var value = result[0];
+
+    var n = result.index-1;
+    var char = code.charAt(n);
+    while (!lineRegexp.test(char) && n>=0){
+        value = char+value;
+        n--;
+        char = code.charAt(n);
+    }
+    n =  this.keywordRegexp.lastIndex;
+    char = code.charAt(n);
+    while (!lineRegexp.test(char) && n<len){
+        value = value+char;
+        n++;
+        char = code.charAt(n);
+    }
+    preIndex = this.keywordRegexp.lastIndex = n;
+    return {"value": value, "preLine": preLine, "preIndex": preIndex};
+};
+
+_worker.findInDesigner_script = function(formData, key, module, designer, propertyDefinition, option){
+    var code = formData[key].code || formData[key];
+    if (code){
+        this.keywordRegexp.lastIndex = 0;
+        var len = code.length;
+
+        var preLine = 0;
+        var preIndex = 0;
+        var result;
+        while ((result = this.keywordRegexp.exec(code)) !== null){
+            var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
+            preLine = obj.preLine;
+            preIndex = obj.preIndex;
+
+            _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                "type": formData.type,
+                "propertyType": propertyDefinition.type || "text",
+                "propertyName": propertyDefinition.name,
+                "name": formData.name || formData.id,
+                "key": key,
+                "value": obj.value,
+                "line": preLine+1
+            }), option);
+        }
+    }
+};
+_worker.findInDesigner_events = function(formData, key, module, designer, propertyDefinition, option){
+    var eventObj = formData[key];
+    Object.keys(eventObj).forEach(function(evkey){
+        var code = eventObj[evkey].code;
+        this.keywordRegexp.lastIndex = 0;
+        var len = code.length;
+
+        var preLine = 0;
+        var preIndex = 0;
+        var result;
+        while ((result = this.keywordRegexp.exec(code)) !== null){
+            var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
+            preLine = obj.preLine;
+            preIndex = obj.preIndex;
+
+            _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                "type": formData.type,
+                "propertyType": propertyDefinition.type || "text",
+                "propertyName": propertyDefinition.name,
+                "name": formData.name || formData.id,
+                "key": key,
+                "evkey": evkey,
+                "value": obj.value,
+                "line": preLine+1
+            }), option);
+        }
+    });
+};
+_worker.findInDesigner_map = function(formData, key, module, designer, propertyDefinition, option){
+    var map = formData[key];
+    Object.keys(map).forEach(function(evkey) {
+        this.keywordRegexp.lastIndex = 0;
+        var text = map[evkey];
+        if (this.keywordRegexp.test(text)){
+            _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                "type": formData.type,
+                "propertyType": propertyDefinition.type || "text",
+                "propertyName": propertyDefinition.name,
+                "name": formData.name || formData.id,
+                "key": key,
+                "value": evkey+": "+text
+            }), option);
+        }
+    });
+};
+_worker.findInDesigner_array = function(formData, key, module, designer, propertyDefinition, option){
+    var arr = formData[key];
+    arr.forEach(function(v, i) {
+        this.keywordRegexp.lastIndex = 0;
+        var text = v.toString();
+        if (this.keywordRegexp.test(text)){
+            _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                "type": formData.type,
+                "propertyType": propertyDefinition.type || "text",
+                "propertyName": propertyDefinition.name,
+                "name": formData.name || formData.id,
+                "line": i+1,
+                "key": key,
+                "value": text
+            }), option);
+        }
+    });
+};
+_worker.findInDesigner_objectArray = function(formData, key, module, designer, propertyDefinition, option){
+    var arr = formData[key];
+    arr.forEach(function(map, i) {
+        Object.keys(map).forEach(function(evkey) {
+            this.keywordRegexp.lastIndex = 0;
+            var text = map[evkey];
+            if (this.keywordRegexp.test(text)){
+                _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                    "type": formData.type,
+                    "propertyType": propertyDefinition.type || "text",
+                    "propertyName": propertyDefinition.name,
+                    "name": formData.name || formData.id,
+                    "line": i+1,
+                    "key": key,
+                    "value": evkey+": "+text
+                }), option);
+            }
+        });
+    });
+};
+
+_worker.findInDesigner_duty = function(formData, key, module, designer, propertyDefinition, option){
+    var text = formData[key];
+    var json = JSON.parse(text);
+    json.forEach(function(duty, i) {
+        this.keywordRegexp.lastIndex = 0;
+        var text = duty.name;
+        if (text) if (this.keywordRegexp.test(text)){
+            _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                "type": formData.type,
+                "propertyType": propertyDefinition.type || "text",
+                "propertyName": propertyDefinition.name,
+                "name": formData.name || formData.id,
+                "key": key,
+                "line": i+1,
+                "value": "name:"+text
+            }), option);
+        }
+
+        var code = duty.code;
+        if (code){
+            this.keywordRegexp.lastIndex = 0;
+            var len = code.length;
+            var idx = i+1;
+            var preLine = 0;
+            var preIndex = 0;
+            var result;
+            while ((result = this.keywordRegexp.exec(code)) !== null){
+                var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
+                preLine = obj.preLine;
+                preIndex = obj.preIndex;
+
+
+                _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                    "type": formData.type,
+                    "propertyType": propertyDefinition.type || "text",
+                    "propertyName": propertyDefinition.name+"(code)&nbsp;"+idx+"."+duty.name,
+                    "name": formData.name || formData.id,
+                    "key": key,
+                    "value": obj.value,
+                    "line": preLine+1
+                }), option);
+            }
+        }
+    });
+};
+
+_worker.findInDesigner_actions = function(formData, key, module, designer, propertyDefinition, option){
+    var arr = formData[key];
+    arr.forEach(function(action, i) {
+        this.keywordRegexp.lastIndex = 0;
+        var text = action.text;
+        if (text) if (this.keywordRegexp.test(text)){
+            _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                "type": formData.type,
+                "propertyType": propertyDefinition.type || "text",
+                "propertyName": propertyDefinition.name,
+                "name": formData.name || formData.id,
+                "key": key,
+                "line": i+1,
+                "value": "text:"+text
+            }), option);
+        }
+
+        var code = action.actionScript;
+        if (code){
+            this.keywordRegexp.lastIndex = 0;
+            var len = code.length;
+            var idx = i+1;
+            var preLine = 0;
+            var preIndex = 0;
+            var result;
+            while ((result = this.keywordRegexp.exec(code)) !== null){
+                var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
+                preLine = obj.preLine;
+                preIndex = obj.preIndex;
+
+
+                _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                    "type": formData.type,
+                    "propertyType": propertyDefinition.type || "text",
+                    "propertyName": propertyDefinition.name+"(actionScript)&nbsp;"+action.text,
+                    "name": formData.name || formData.id,
+                    "key": key,
+                    "value": obj.value,
+                    "line": preLine+1
+                }), option);
+            }
+        }
+        code = action.condition;
+        if (code){
+            this.keywordRegexp.lastIndex = 0;
+            var len = code.length;
+            var idx = i+1;
+            var preLine = 0;
+            var preIndex = 0;
+            var result;
+            while ((result = this.keywordRegexp.exec(code)) !== null){
+                var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
+                preLine = obj.preLine;
+                preIndex = obj.preIndex;
+
+                _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                    "type": formData.type,
+                    "propertyType": propertyDefinition.type || "text",
+                    "propertyName": propertyDefinition.name+"(condition)&nbsp;"+action.text,
+                    "name": formData.name || formData.id,
+                    "key": key,
+                    "value": obj.value,
+                    "line": preLine+1
+                }), option);
+            }
+        }
+    });
+};
+
+_worker.findInDesigner_filter = function(formData, key, module, designer, propertyDefinition, option){
+    var arr = formData[key];
+    arr.forEach(function(filter, i) {
+        this.keywordRegexp.lastIndex = 0;
+        var text = filter.path;
+        if (text) if (this.keywordRegexp.test(text)){
+            _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                "type": formData.type,
+                "propertyType": propertyDefinition.type || "text",
+                "propertyName": propertyDefinition.name,
+                "name": formData.name || formData.id,
+                "key": key,
+                "line": i+1,
+                "value": "path:"+text
+            }), option);
+        }
+
+        var code = filter.code.code;
+        if (code){
+            this.keywordRegexp.lastIndex = 0;
+            var len = code.length;
+            var idx = i+1;
+            var preLine = 0;
+            var preIndex = 0;
+            var result;
+            while ((result = this.keywordRegexp.exec(code)) !== null){
+                var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
+                preLine = obj.preLine;
+                preIndex = obj.preIndex;
+
+
+                _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+                    "type": formData.type,
+                    "propertyType": propertyDefinition.type || "text",
+                    "propertyName": propertyDefinition.name+"(actionScript)&nbsp;"+filter.path,
+                    "name": formData.name || formData.id,
+                    "key": key,
+                    "value": obj.value,
+                    "line": preLine+1
+                }), option);
+            }
+        }
+    });
+};
+
+_worker.findInDesigner_text = function(formData, key, module, designer, propertyDefinition, option){
+    this.keywordRegexp.lastIndex = 0;
+    var text = formData[key];
+    if (this.keywordRegexp.test(text)){
+        _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
+            "type": formData.type,
+            "propertyType": propertyDefinition.type || "text",
+            "propertyName": propertyDefinition.name,
+            "name": formData.name || formData.id,
+            "key": key,
+            "value": text
+        }), option);
+    }
+};
+
+_worker.findInDesigner = function(formData, option, module, designer){
+    Object.keys(formData).forEach(function(key){
+        var propertyDefinition = this.formPropertysData.form[key];
+        if (propertyDefinition){
+            switch (propertyDefinition.type){
+                case "html":
+                    _worker.findInDesigner_script(formData, key, module, designer, propertyDefinition, option);
+                    break;
+                case "script":
+                case "css":
+                case "sql":
+                    _worker.findInDesigner_script(formData, key, module, designer, propertyDefinition, option);
+                    break;
+                case "events":
+                    _worker.findInDesigner_events(formData, key, module, designer, propertyDefinition, option);
+                    break;
+                case "map":
+                    _worker.findInDesigner_map(formData, key, module, designer, propertyDefinition, option);
+                    break;
+                case "array":
+                    _worker.findInDesigner_array(formData, key, module, designer, propertyDefinition, option);
+                    break;
+                case "object-array":
+                    _worker.findInDesigner_objectArray(formData, key, module, designer, propertyDefinition, option);
+                    break;
+                case "duty":
+                    _worker.findInDesigner_duty(formData, key, module, designer, propertyDefinition, option);
+                    break;
+                case "actions":
+                    _worker.findInDesigner_actions(formData, key, module, designer, propertyDefinition, option);
+                    break;
+                case "filter":
+                    _worker.findInDesigner_filter(formData, key, module, designer, propertyDefinition, option);
+                    break;
+                default:
+                    _worker.findInDesigner_text(formData, key, module, designer, propertyDefinition, option);
+            }
+        }
+    });
+};
+
+_worker.decodeJsonString = function(str){
+    var tmp = "[\""+str+"\"]";
+    var dataObj = (JSON.parse(tmp));
+    return dataObj[0];
+};
+
 _worker._findProcessPlatformParse_form = function(designer, option, module){
     if (designer.patternList && designer.patternList.length){
         var patternPropertys = designer.patternList.map(function(a){return a.property;});
 
-
+//@todo
         //designer.patternList.forEach(function(pattern){
             //if (pattern.property=="data"){
 
@@ -378,47 +736,44 @@ _worker._findProcessPlatformParse_form = function(designer, option, module){
                 else if (module=="cms") action = this.findData.actions.getCmsForm;
 
                 if (action){
-                    var p = _worker.action.sendRequest(_worker._getRequestOption({"url": action}, {"id": designer.designerId}));
-                    p.then(function(json){
-                        if (patternPropertys.indexOf("data")!=-1){
-                            var formData = JSON.decode(MWF.decodeJsonString(json.data.data));
+                    var formPromise = _worker.action.sendRequest(_worker._getRequestOption({"url": action}, {"id": designer.designerId}));
+                    if (!this.formPropertysData) this.formPropertysData = _worker.action.sendRequest(_worker._getRequestOption({"url": "../x_component_FindDesigner/propertys.json"}));
 
+                    Promise.all([formPromise, this.formPropertysData]).then(function(arr){
+                        var formJson = arr[0];
+                        this.formPropertysData = arr[1];
+                        if (patternPropertys.indexOf("data")!=-1){
+                            debugger;
+                            var formData = JSON.parse(_worker.decodeJsonString(formJson.data.data));
+                            _worker.findInDesigner(formData.json, option, module, designer);
+                            for (key in formData.json.moduleList){
+                                _worker.findInDesigner(formData.json.moduleList[key], option, module, designer);
+                            }
+
+                            // Object.keys(formData).forEach(function(key){
+                            //     var propertyDefinition = propertysData.form[key];
+                            //     if (propertyDefinition){
+                            //
+                            //     }
+                            // });
 
                         }
 
                         if (patternPropertys.indexOf("mobileData")!=-1){
+                            var formData = JSON.parse(_worker.decodeJsonString(formJson.data.mobileData));
+
 
                         }
 
+
                     }, function(){});
                 }
 
-
-
-                //var scriptLines = json.data.text.split(/\n/);
-                // pattern.lines.forEach(function(line){
-                //     var scriptText = line.lineValue;
-                //     _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
-                //         "property": pattern.property,
-                //         "value": scriptText,
-                //         "line": line.line
-                //     }), option);
-                //
-                //
-                // });
-            //}
-            // else{
-            //     _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
-            //         "property": pattern.property,
-            //         "value": pattern.propertyValue
-            //     }), option);
-            // }
-        //});
     }
 };
 
 _worker._findProcessPlatformParse_process = function(designer){
-
+    
 };
 
 _worker._findProcessPlatformParse = function(resultList, option, module){

+ 28 - 21
o2web/source/x_component_FindDesigner/Main.js

@@ -399,7 +399,7 @@ MWF.xApplication.FindDesigner.Main = new Class({
 	createResultTypeItem: function(text, title, tree){
 		var obj = {
 			"title": title,
-			"text": "<span>"+text+"</span>",
+			"text": "<span style='color: #333333'>"+text+"</span>",
 			"icon": ""
 		}
 		return tree.appendChild(obj);
@@ -408,16 +408,16 @@ MWF.xApplication.FindDesigner.Main = new Class({
 		var obj = {
 			"expand": false,
 			"title": title,
-			"text": "<span>"+text+"</span>",
+			"text": "<span style='color: #333333'>"+text+"</span>",
 			"icon": ""
 		}
 		return tree.appendChild(obj);
 	},
-	createResultPatternItem: function(text, title, tree){
+	createResultPatternItem: function(text, title, tree, icon){
 		var obj = {
 			"title": title,
 			"text": "<span style='color: #000000'>"+text+"</span>",
-			"icon": ""
+			"icon": icon||""
 		}
 		return tree.appendChild(obj);
 	},
@@ -483,16 +483,34 @@ MWF.xApplication.FindDesigner.Main = new Class({
 				this.createScriptPatternNode(data, designerNode, regexp);
 				break;
 			case "form":
-
+				this.createFormPatternNode(data, designerNode, regexp);
 				break;
 			case "process":
 
 				break;
 
 		}
+	},
 
-		//}.bind(this));
+	createFormPatternNode: function(data, node, regexp){
+		debugger;
+		var text = this.lp.elementPattern.replace("{element}", "&lt;"+data.pattern.type+"&gt;"+data.pattern.name).
+			replace("{property}", "{"+data.pattern.key+"}"+data.pattern.propertyName);
+		text = "<span style='color: #666666'>"+text+"</span>&nbsp;&nbsp;"
+
+		if (data.pattern.line){
+			if (data.pattern.evkey){
+				text += "<b>["+data.pattern.evkey+"]</b>&nbsp;"+((data.pattern.line) ? data.pattern.line+"&nbsp;&nbsp;" : "" )+this.getPatternValue(data.pattern.value, regexp);
+			}else{
+				text += ((data.pattern.line) ? data.pattern.line+"&nbsp;&nbsp;" : "" )+this.getPatternValue(data.pattern.value, regexp);
+			}
+		}else{
+			text += this.getPatternValue(data.pattern.value, regexp);
+		}
+
+		patternNode = this.createResultPatternItem(text, "", node, "icon_"+data.pattern.propertyType+".png");
 	},
+
 	getPatternValue: function(value, regexp){
 		regexp.lastIndex = 0;
 		var valueHtml = "";
@@ -505,35 +523,24 @@ MWF.xApplication.FindDesigner.Main = new Class({
 		valueHtml += o2.common.encodeHtml(value.substring(idx, value.length));
 		return valueHtml;
 	},
-	// getPatternScriptValue: function(pattern, regexp){
-	// 	regexp.lastIndex = 0;
-	// 	var valueHtml = "";
-	//
-	// 	valueHtml += pattern.value.substring(0, pattern.column);
-	// 	valueHtml += "<span style='background-color: #ffef8f'><b>"+pattern.value.substring(pattern.column, pattern.column+pattern.key.length)+"</b></span>";
-	// 	valueHtml += pattern.value.substring(pattern.column+pattern.key.length, pattern.value.length);
-	//
-	// 	return valueHtml;
-	// },
 	createScriptPatternNode: function(data, node, regexp){
-		debugger;
 		var patternNode;
 		var text;
 		if (data.pattern.property=="text"){
 			text = "<span style='color: #666666'>"+data.pattern.line+"</span>&nbsp;&nbsp;"+this.getPatternValue(data.pattern.value, regexp);
-			patternNode = this.createResultPatternItem(text, "", node);
+			patternNode = this.createResultPatternItem(text, "", node, "icon_script.png");
 		}else{
 			text = this.lp.property+":&nbsp;<b>"+data.pattern.property+"</b> "+this.lp.value+":&nbsp;"+this.getPatternValue(data.pattern.value, regexp);
-			patternNode = this.createResultPatternItem(text, "", node);
+			patternNode = this.createResultPatternItem(text, "", node, "icon_text.png");
 		}
 	},
 	getFilterOptionRegex: function(option){
 		var keyword = option.keyword;
 		if (option.matchRegExp){
-			var flag = (option.caseSensitive) ? "g" : "gi";
+			var flag = (option.caseSensitive) ? "gm" : "gmi";
 			return new RegExp(keyword, flag);
 		}else{
-			var flag = (option.caseSensitive) ? "g" : "gi";
+			var flag = (option.caseSensitive) ? "gm" : "gmi";
 			keyword = (option.matchWholeWord) ? "\\b"+keyword+"\\b" : keyword;
 			return new RegExp(keyword, flag);
 		}

+ 3 - 1
o2web/source/x_component_FindDesigner/lp/zh-cn.js

@@ -36,5 +36,7 @@ MWF.xApplication.FindDesigner.LP = {
 
 	"receiveToFind": "正在准备查询数据 ...",
 	"readyToFind": "设计元素准备完毕(共{n}个) ...",
-	"findPatternCount": "已找到{n}项匹配"
+	"findPatternCount": "已找到{n}项匹配",
+
+	"elementPattern": "<b>元素:</b> {element}, <b>属性:</b> {property}: "
 };

+ 197 - 0
o2web/source/x_component_FindDesigner/propertys.json

@@ -0,0 +1,197 @@
+{
+  "form": {
+    "id": {"name": "标识"},
+    "name": {"name": "名称"},
+    "description": {"name": "描述"},
+    "category": {"name": "分类"},
+    "formStyleType": {"name": "表单样式"},
+    "includeScripts": {"name": "预加载脚本", "type": "object-array"},
+    "styles": {"name": "样式", "type":"map"},
+    "properties": {"name": "属性", "type":"map"},
+    "css": {"name": "CSS样式", "type": "css"},
+    "submitFormScript": {"name": "提交表单脚本", "type": "script"},
+    "submitScript": {"name": "提交操作脚本", "type": "script"},
+    "afterProcessRedirectScript": {"name": "提交后重定向脚本", "type": "script"},
+    "validationOpinion": {"name": "校验意见脚本", "type": "script"},
+    "validationRoute": {"name": "校验路由脚本", "type": "script"},
+    "validationFormCustom": {"name": "流转校验脚本", "type": "script"},
+    "events": {"name": "事件", "type": "events"},
+
+    "text": {"name": "文本值"},
+    "script": {"name": "脚本", "type": "script"},
+
+    "inputStyles": {"name": "输入框样式", "type":"map"},
+    "defaultValue": {"name": "默认值脚本", "type":"script"},
+    "validation": {"name": "校验脚本", "type":"script"},
+    "sectionByScript": {"name": "区段依据脚本", "type":"script"},
+
+    "identityValue": {"name": "身份默认值", "type": "object-array"},
+    "unitValue": {"name": "组织默认值", "type": "object-array"},
+    "dutyValue": {"name": "职务默认值", "type": "duty"},
+    "displayTextScript": {"name": "组织数据显示脚本", "type":"script"},
+    "rangeDutyKey": {"name": "身份选择职务范围脚本", "type":"script"},
+    "unitRangeKey": {"name": "组织选择职务范围脚本", "type":"script"},
+    "groupRangeKey": {"name": "群组选择职务范围脚本", "type":"script"},
+    "identityIncludeKey": {"name": "增加身份选择脚本", "type":"script"},
+    "exclude": {"name": "排除选择脚本", "type":"script"},
+
+    "itemValues": {"name": "可选值", "type":"array"},
+    "itemScript": {"name": "可选值脚本", "type":"script"},
+
+    "buttonStyles": {"name": "按钮样式", "type":"map"},
+
+    "itemDynamic": {"name": "可选值动态脚本", "type":"map"},
+
+    "multiTools": {"name": "操作按钮", "type":"actions"},
+
+    "tools": {"name": "操作按钮", "type":"actions"},
+
+    "site": {"name": "附件site"},
+
+    "titleTdStyles": {"name": "标题单元格样式", "type":"map"},
+    "contentTdStyles": {"name": "内容单元格样式", "type":"map"},
+    "layoutTdStyles": {"name": "布局单元格样式", "type":"map"},
+
+    "tableStyles": {"name": "表格样式", "type":"map"},
+    "defaultData": {"name": "默认数据脚本", "type":"script"},
+    "editableScript": {"name": "允许编辑脚本", "type":"script"},
+    "titleStyles": {"name": "标题样式", "type":"map"},
+    "contentStyles": {"name": "内容单元格样式", "type":"map"},
+    "actionStyles": {"name": "操作单元格样式", "type":"map"},
+    "editStyles": {"name": "编辑单元格样式", "type":"map"},
+    "amountStyles": {"name": "总计单元格样式", "type":"map"},
+    "itemTitleStyles": {"name": "条目标题样式(仅移动端)", "type":"map"},
+
+    "subformScript": {"name": "计算子表单脚本", "type":"script"},
+
+    "itemStyles": {"name": "条目样式", "type":"map"},
+    "selectedSetValues": {"name": "选择结果赋值", "type":"map"},
+    "selectedScript": {"name": "选择结果处理脚本", "type":"script"},
+    "defaultSelectedScript": {"name": "默认选择脚本", "type":"script"},
+    "selectedAbleScript": {"name": "允许选择脚本", "type":"script"},
+    "filterList": {"name": "视图过滤脚本", "type":"filter"},
+
+    "innerHTML": {"name": "内置HTML", "type":"html"},
+
+    "tabNodeContainer": {"name": "Tab容器样式", "type":"map"},
+    "contentNodeContainer": {"name": "内容容器样式", "type":"map"},
+    "tabStyles": {"name": "基本Tab样式", "type":"map"},
+    "tabTextStyles": {"name": "基本Tab字体样式", "type":"map"},
+    "tabCurrentStyles": {"name": "当前Tab样式", "type":"map"},
+    "tabTextCurrentStyles": {"name": "当前Tab字体样式", "type":"map"},
+
+    "dataScript": {"name": "数据脚本", "type":"script"},
+    "areaNodeStyle": {"name": "tree区域样式", "type":"map"},
+    "treeItemNodeStyle": {"name": "tree节点样式", "type":"map"},
+    "textDivNodeStyle": {"name": "tree节点字体样式", "type":"map"},
+    "textDivNodeSelectedStyle": {"name": "当前tree节点字体样式", "type":"map"},
+
+    "textStyle": {"name": "流程意见格式"},
+    "textStyleScript": {"name": "流程意见格式脚本", "type":"script"},
+    "filterActivitye": {"name": "活动过滤"},
+    "filterActivityAliase": {"name": "活动别名过滤"},
+    "filterPersone": {"name": "处理人过滤"},
+    "filterRoutee": {"name": "路由过滤"},
+    "filterScript": {"name": "过滤脚本", "type":"script"},
+
+    "src": {"name": "src"},
+
+    "toWordFilename": {"name": "转换文件名"},
+    "toWordSite": {"name": "转换文件site"},
+    "toWordConditionScript": {"name": "文件转换条件脚本", "type":"script"},
+
+    "copiesSecretPriorityShowScript": {"name": "份数密级紧急度显示脚本", "type":"script"},
+    "copiesShowScript": {"name": "份数显示脚本", "type":"script"},
+    "copiesValueData": {"name": "份数绑定表单数据"},
+    "copiesValueScript": {"name": "份数绑定值脚本", "type":"script"},
+
+    "secretShowScript": {"name": "密级显示脚本", "type":"script"},
+    "secretValueData": {"name": "密级绑定表单数据"},
+    "secretValueScript": {"name": "密级绑定值脚本", "type":"script"},
+
+    "priorityShowScript": {"name": "紧急度显示脚本", "type":"script"},
+    "priorityValueData": {"name": "紧急度绑定表单数据"},
+    "priorityValueScript": {"name": "紧急度绑定值脚本", "type":"script"},
+
+    "redHeaderShowScript": {"name": "红头显示脚本", "type":"script"},
+    "redHeaderValueData": {"name": "红头绑定表单数据"},
+    "redHeaderValueScript": {"name": "红头绑定值脚本", "type":"script"},
+
+    "redLineShowScript": {"name": "红线显示脚本", "type":"script"},
+
+    "filenoShowScript": {"name": "文号显示脚本", "type":"script"},
+    "filenoValueData": {"name": "文号绑定表单数据"},
+    "filenoValueScript": {"name": "文号绑定值脚本", "type":"script"},
+
+    "signerShowScript": {"name": "签发人显示脚本", "type":"script"},
+    "signerValueData": {"name": "签发人绑定表单数据"},
+    "signerValueScript": {"name": "签发人绑定值脚本", "type":"script"},
+
+    "subjectShowScript": {"name": "标题显示脚本", "type":"script"},
+    "subjectValueData": {"name": "标题绑定表单数据"},
+    "subjectEditScript": {"name": "标题编辑脚本", "type":"script"},
+    "subjectValueScript": {"name": "标题绑定值脚本", "type":"script"},
+
+    "mainSendShowScript": {"name": "主送显示脚本", "type":"script"},
+    "mainSendValueData": {"name": "主送绑定表单数据"},
+    "mainSendValueScript": {"name": "主送绑定值脚本", "type":"script"},
+
+    "attachmentShowScript": {"name": "附件显示脚本", "type":"script"},
+    "attachmentValueData": {"name": "附件绑定表单数据"},
+    "attachmentValueScript": {"name": "附件绑定值脚本", "type":"script"},
+
+    "issuanceUnitShowScript": {"name": "成文单位显示脚本", "type":"script"},
+    "issuanceUnitEditScript": {"name": "成文单位编辑脚本", "type":"script"},
+    "issuanceUnitValueData": {"name": "成文单位绑定表单数据"},
+    "issuanceUnitValueScript": {"name": "成文单位绑定值脚本", "type":"script"},
+
+    "issuanceDateShowScript": {"name": "成文日期显示脚本", "type":"script"},
+    "issuanceDateValueData": {"name": "成文日期绑定表单数据"},
+    "issuanceDateValueScript": {"name": "成文日期绑定值脚本", "type":"script"},
+
+    "annotationShowScript": {"name": "附注显示脚本", "type":"script"},
+    "annotationValueData": {"name": "附注绑定表单数据"},
+    "annotationValueScript": {"name": "附注绑定值脚本", "type":"script"},
+
+    "copytoShowScript": {"name": "抄送显示脚本", "type":"script"},
+    "copytoValueData": {"name": "抄送绑定表单数据"},
+    "copytoValueScript": {"name": "抄送绑定值脚本", "type":"script"},
+
+    "copyto2ShowScript": {"name": "发送显示脚本", "type":"script"},
+    "copyto2ValueData": {"name": "发送绑定表单数据"},
+    "copyto2ValueScript": {"name": "发送绑定值脚本", "type":"script"},
+
+    "editionUnitShowScript": {"name": "印发单位显示脚本", "type":"script"},
+    "editionUnitValueData": {"name": "印发单位绑定表单数据"},
+    "editionUnitValueScript": {"name": "印发单位绑定值脚本", "type":"script"},
+
+    "editionDateShowScript": {"name": "印发日期显示脚本", "type":"script"},
+    "editionDateValueData": {"name": "印发日期绑定表单数据"},
+    "editionDateValueScript": {"name": "印发日期绑定值脚本", "type":"script"},
+
+    "meetingAttendShowScript": {"name": "会议出席显示脚本", "type":"script"},
+    "meetingAttendValueData": {"name": "会议出席绑定表单数据"},
+    "meetingAttendValueScript": {"name": "会议出席绑定值脚本", "type":"script"},
+
+    "meetingLeaveShowScript": {"name": "会议请假显示脚本", "type":"script"},
+    "meetingLeaveValueData": {"name": "会议请假绑定表单数据"},
+    "meetingLeaveValueScript": {"name": "会议请假绑定值脚本", "type":"script"},
+
+    "meetingSitShowScript": {"name": "会议列席显示脚本", "type":"script"},
+    "meetingSitValueData": {"name": "会议列席绑定表单数据"},
+    "meetingSitValueScript": {"name": "会议列席绑定值脚本", "type":"script"},
+
+    "meetingRecordShowScript": {"name": "会议记录显示脚本", "type":"script"},
+    "meetingRecordValueData": {"name": "会议记录绑定表单数据"},
+    "meetingRecordValueScript": {"name": "会议记录绑定值脚本", "type":"script"},
+
+    "customFields": {"name": "自定义元素配置", "type":"map"},
+
+    "templateCode": {"name": "默认值", "type":"script"},
+    "config": {"name": "配置脚本", "type":"script"},
+
+    "template": {"name": "文件模板"},
+    "readScript": {"name": "只读脚本", "type":"script"},
+    "fileSite": {"name": "读取文件的site脚本", "type":"script"}
+  }
+}

+ 1 - 1
o2web/source/x_component_process_FormDesigner/Module/Documenteditor/documenteditor.html

@@ -217,7 +217,7 @@
 					</td>
 				</tr>
 			</table>
-			<div id="text{$.pid}copiesSecretPriorityShowScriptArea" style="display: text{($.redHeaderShow=='s')?'block':'none'}" class="MWFFormulaArea" name="redLineShowScript" title="红线显示脚本 (S)"></div>
+			<div id="text{$.pid}copiesSecretPriorityShowScriptArea" style="display: text{($.redHeaderShow=='s')?'block':'none'}" class="MWFFormulaArea" name="copiesSecretPriorityShowScript" title="份数密级紧急度显示脚本 (S)"></div>
 		</div>
 <!-----------------------------------------------份数密级紧急度------------------------------------------------------------------->