Browse Source

查询关联列表模式定义

zhuth 7 years ago
parent
commit
d0687081bc

+ 27 - 28
frontend/saas-web/app/view/core/query/QueryPanel.js

@@ -55,9 +55,7 @@ Ext.define('saas.view.core.query.QueryPanel', {
             var bind = item.bind,
             name = item.name,
             ignore = item.ignore,
-            defaultValue = item.defaultValue,
-            showDetail = item.showDetail,
-            shwoDetailFunc = item.shwoDetailFunc;
+            defaultValue = item.defaultValue;
 
             // 设置model绑定
             if(!ignore) {
@@ -79,12 +77,6 @@ Ext.define('saas.view.core.query.QueryPanel', {
                 if(defaultValue) {
                     viewModel.set('form.' + bind, defaultValue);
                 }
-                // 设置关联列表
-                if(showDetail) {
-                    var fields = viewModel.get('showDetailFields');
-                    fields.push(bind);
-                    viewModel.set('showDetailFields', fields);
-                }
             }
         });
 
@@ -210,28 +202,35 @@ Ext.define('saas.view.core.query.QueryPanel', {
         viewModel = me.getViewModel(),
         viewModelData = viewModel.getData(),
         formData = viewModelData['form'],
-        showDetailFields = viewModelData['showDetailFields'],
-        detailModel;
+        detailModel = false;
 
-        detailModel = !!Ext.Array.findBy(showDetailFields, function(name) {
-            var item = Ext.Array.findBy(formItems, function(i) {
-                var b = i.bind, bname;
-                if(!Ext.isString(b)) {
-                    bname = b.value.replace(/[{|}]/g, '').split('.')[1];
-                }else {
-                    bname = b.replace(/[{|}]/g, '').split('.')[1];
-                }
-                return bname == name;
-            });
-            if(!item) {
-                return false;
+        for(var i = 0; i < formItems.length; i++) {
+            var item = formItems[i],
+            showDetail = item.showDetail,
+            isShowDetail = item.isShowDetail,
+            b = item.bind, bname;
+
+            if(!Ext.isString(b)) {
+                bname = b.value.replace(/[{|}]/g, '').split('.')[1];
+            }else {
+                bname = b.replace(/[{|}]/g, '').split('.')[1];
             }
-            var isShowDetail = item.isShowDetail || function(value) {
-                return !!value;
+
+            var value = formData[bname];
+
+            if(showDetail) {
+                isShowDetail = isShowDetail || function(value) {
+                    return !!value;
+                };
+                if(!Ext.isFunction(isShowDetail)) {
+                    console.warn('field ' + item.name + '\'s property \'isShowDetail\' must been a function.');
+                }
+                if(isShowDetail(value)) {
+                    detailModel = true
+                    break;
+                }
             }
-            var value = formData[name];
-            return isShowDetail(value);
-        });
+        }
 
         return detailModel ? 'DETAIL' : 'MAIN';
     }

+ 0 - 1
frontend/saas-web/app/view/core/query/QueryPanelModel.js

@@ -4,6 +4,5 @@ Ext.define('saas.view.core.query.QueryPanelModel', {
 
     data: {
         form: {}, // 查询字段记录
-        showDetailFields: [], // 关联列表切换字段
     }
 });