ソースを参照

支持组件全局配置

xaboy 5 年 前
コミット
61faff382a
4 ファイル変更38 行追加23 行削除
  1. 17 0
      src/Form.php
  2. 1 1
      src/Template/createScript.min.php
  3. 19 21
      src/Template/createScript.php
  4. 1 1
      src/UI/Elm/Config.php

+ 17 - 0
src/Form.php

@@ -288,6 +288,23 @@ class Form
         return $this;
     }
 
+    /**
+     * 设置组件全局配置
+     * @param string $componentName
+     * @param array $config
+     * @return $this
+     */
+    public function componentGlobalConfig($componentName, array $config)
+    {
+        if ($this->config instanceof ConfigInterface)
+            $this->config->componentGlobalConfig($componentName, $config);
+        else {
+            if (!isset($this->config['global'])) $this->config['global'] = [];
+            $this->config['global'][$componentName] = $config;
+        }
+        return $this;
+    }
+
     protected function parseFormComponent($rule)
     {
         if (Util::isComponent($rule)) {

ファイルの差分が大きいため隠しています
+ 1 - 1
src/Template/createScript.min.php


+ 19 - 21
src/Template/createScript.php

@@ -60,29 +60,27 @@
                 }
             });
         };
-
-        config.global = {
-            upload: {
-                props: {
-                    onExceededSize: function (file) {
-                        vm.$Message.error(file.name + '超出指定大小限制');
-                    },
-                    onFormatError: function () {
-                        vm.$Message.error(file.name + '格式验证失败');
-                    },
-                    onError: function (error) {
-                        vm.$Message.error(file.name + '上传失败,(' + error + ')');
-                    },
-                    onSuccess: function (res, file) {
-                        if (res.code === 200) {
-                            file.url = res.data.filePath;
-                        } else {
-                            vm.$Message.error(res.msg);
-                        }
-                    }
-                }
+        if(!config.global) config.global = {};
+        if(!config.global.upload) config.global.upload = {};
+        if(!config.global.upload.props) config.global.upload.props = {};
+        var uploadProps = config.global.upload.props;
+        uploadProps.onExceededSize=function (file) {
+            vm.$Message.error(file.name + '超出指定大小限制');
+        };
+        uploadProps.onFormatError=function (file) {
+            vm.$Message.error(file.name + '格式验证失败');
+        };
+        uploadProps.onError=function (error,file) {
+            vm.$Message.error(file.name + '上传失败,(' + error + ')');
+        };
+        uploadProps.onSuccess=function (res, file) {
+            if (res.code === 200) {
+                file.url = res.data.filePath;
+            } else {
+                vm.$Message.error(res.msg);
             }
         };
+
         var $f = formCreate.create(rule, config);
         return $f;
     };

+ 1 - 1
src/UI/Elm/Config.php

@@ -197,7 +197,7 @@ class Config implements ConfigInterface
     /**
      * @param string $componentName
      * @param array $config
-     * @return mixed
+     * @return $this
      */
     public function componentGlobalConfig($componentName, array $config)
     {