浏览代码

优化CRUD生成

Karson 2 年之前
父节点
当前提交
b0387e668b
共有 1 个文件被更改,包括 9 次插入5 次删除
  1. 9 5
      application/admin/command/Crud.php

+ 9 - 5
application/admin/command/Crud.php

@@ -931,7 +931,6 @@ class Crud extends Command
                                     }
                                     }
                                 }
                                 }
                             } catch (\Exception $e) {
                             } catch (\Exception $e) {
-
                             }
                             }
                             if (!$selectpageField) {
                             if (!$selectpageField) {
                                 foreach ($this->fieldSelectpageMap as $m => $n) {
                                 foreach ($this->fieldSelectpageMap as $m => $n) {
@@ -993,7 +992,7 @@ class Crud extends Command
                     }
                     }
                     if (!$fields || in_array($field, explode(',', $fields))) {
                     if (!$fields || in_array($field, explode(',', $fields))) {
                         //构造JS列信息
                         //构造JS列信息
-                        $javascriptList[] = $this->getJsColumn($field, $v['DATA_TYPE'], $inputType && in_array($inputType, ['select', 'checkbox', 'radio']) ? '_text' : '', $itemArr);
+                        $javascriptList[] = $this->getJsColumn($field, $v['DATA_TYPE'], $inputType && in_array($inputType, ['select', 'checkbox', 'radio']) ? '_text' : '', $itemArr, $v);
                     }
                     }
                     if ($this->headingFilterField && $this->headingFilterField == $field && $itemArr) {
                     if ($this->headingFilterField && $this->headingFilterField == $field && $itemArr) {
                         $headingHtml = $this->getReplacedStub('html/heading-html', ['field' => $field, 'fieldName' => Loader::parseName($field, 1, false)]);
                         $headingHtml = $this->getReplacedStub('html/heading-html', ['field' => $field, 'fieldName' => Loader::parseName($field, 1, false)]);
@@ -1048,7 +1047,7 @@ class Crud extends Command
                     //过滤text类型字段
                     //过滤text类型字段
                     if ($v['DATA_TYPE'] != 'text') {
                     if ($v['DATA_TYPE'] != 'text') {
                         //构造JS列信息
                         //构造JS列信息
-                        $javascriptList[] = $this->getJsColumn($relationField, $v['DATA_TYPE']);
+                        $javascriptList[] = $this->getJsColumn($relationField, $v['DATA_TYPE'], '', [], $v);
                     }
                     }
                 }
                 }
             }
             }
@@ -1699,9 +1698,10 @@ EOD;
      * @param string $datatype
      * @param string $datatype
      * @param string $extend
      * @param string $extend
      * @param array  $itemArr
      * @param array  $itemArr
+     * @param array  $fieldConfig
      * @return string
      * @return string
      */
      */
-    protected function getJsColumn($field, $datatype = '', $extend = '', $itemArr = [])
+    protected function getJsColumn($field, $datatype = '', $extend = '', $itemArr = [], $fieldConfig)
     {
     {
         $lang = mb_ucfirst($field);
         $lang = mb_ucfirst($field);
         $formatter = '';
         $formatter = '';
@@ -1739,7 +1739,7 @@ EOD;
         $noSearchFiles = ['file$', 'files$', 'image$', 'images$', '^weigh$'];
         $noSearchFiles = ['file$', 'files$', 'image$', 'images$', '^weigh$'];
         if (preg_match("/" . implode('|', $noSearchFiles) . "/i", $field)) {
         if (preg_match("/" . implode('|', $noSearchFiles) . "/i", $field)) {
             $html .= ", operate: false";
             $html .= ", operate: false";
-        } else if (in_array($datatype, ['varchar'])) {
+        } elseif (in_array($datatype, ['varchar'])) {
             $html .= ", operate: 'LIKE'";
             $html .= ", operate: 'LIKE'";
         }
         }
 
 
@@ -1751,6 +1751,10 @@ EOD;
         if (in_array($datatype, ['set'])) {
         if (in_array($datatype, ['set'])) {
             $html .= ", operate:'FIND_IN_SET'";
             $html .= ", operate:'FIND_IN_SET'";
         }
         }
+        if (isset($fieldConfig['CHARACTER_MAXIMUM_LENGTH']) && $fieldConfig['CHARACTER_MAXIMUM_LENGTH'] >= 255 && in_array($datatype, ['varchar']) && !$formatter) {
+            $formatter = 'content';
+            $html .= ", table: table, class: 'autocontent'";
+        }
         if (in_array($formatter, ['image', 'images'])) {
         if (in_array($formatter, ['image', 'images'])) {
             $html .= ", events: Table.api.events.image";
             $html .= ", events: Table.api.events.image";
         }
         }