فهرست منبع

核销单放大镜增则校验逻辑

zhuth 7 سال پیش
والد
کامیت
2d593c6388
1فایلهای تغییر یافته به همراه31 افزوده شده و 11 حذف شده
  1. 31 11
      frontend/saas-web/app/view/money/verification/FormPanelController.js

+ 31 - 11
frontend/saas-web/app/view/money/verification/FormPanelController.js

@@ -200,19 +200,39 @@ Ext.define('saas.view.money.verification.FormPanelController', {
         defaultConditions = etc.defaultConditions,
         defaultConditionMode = defaultConditions[acitveType][idx];
 
-        var reg = /(.*){(.*)}(.*)/g;
-        var fieldName = defaultConditionMode.match(/(.*){(.*)}(.*)/)[2];
-        var fieldLabel = Ext.Array.findBy(formItems, function(f) {
-            return f.name == fieldName;
-        }).fieldLabel;
-        var fieldValue = viewModel.get(fieldName);
-        if(!fieldValue) {
-            saas.util.BaseUtil.showErrorToast('请先选择【' + '<span style="color: red;">' + fieldLabel + '</span>】');
+
+        var reg = /{.+?}/g;
+        var arr = defaultConditionMode.match(reg) || [];
+        var fields = {};
+        var nullFields = [];
+        var defaultCondition = defaultConditionMode;
+
+        // TODO arr未去重
+
+        arr.map(function(a) {
+            var fieldName = a.replace(/[{|}]/g, '');
+            var fieldLabel = Ext.Array.findBy(formItems, function(f) {
+                return f.name == fieldName;
+            }).fieldLabel;
+            var fieldValue = viewModel.get(fieldName);
+            fields[fieldName] = fieldValue;
+            
+            if(!fieldValue && nullFields.indexOf(fieldLabel) == -1) {
+                nullFields.push(fieldLabel);
+            }
+        });
+
+        if(nullFields.length == 0) {
+            var keys = Ext.Object.getAllKeys(fields);
+            keys.map(function(k) {
+                var v = fields[k];
+                defaultCondition = defaultCondition.replace(new RegExp('{' + k + '}', 'g'), v);
+            });
+            return defaultCondition;
+        }else {
+            saas.util.BaseUtil.showErrorToast('请先选择【' + '<span style="color: red;">' + nullFields.join(',') + '</span>】');
             return null;
         }
-        var defaultCondition = defaultConditionMode.replace(reg, '$1' + fieldValue + '$3');
-
-        return defaultCondition;
     },
 
     /**