فهرست منبع

优化CRUD生成

(cherry picked from commit a40420b8cd122a79f597462797de30859950a3d8)
Karson 1 سال پیش
والد
کامیت
20dea7cb5b

+ 8 - 2
application/admin/command/Crud.php

@@ -712,6 +712,7 @@ class Crud extends Command
             $headingHtml = '{:build_heading()}';
             $controllerImport = '';
             $importHtml = '';
+            $multipleHtml = '';
             $recyclebinHtml = '';
 
             if ($import) {
@@ -996,6 +997,7 @@ class Crud extends Command
                     }
                     if ($this->headingFilterField && $this->headingFilterField == $field && $itemArr) {
                         $headingHtml = $this->getReplacedStub('html/heading-html', ['field' => $field, 'fieldName' => Loader::parseName($field, 1, false)]);
+                        $multipleHtml = $this->getReplacedStub('html/multiple-html', ['field' => $field, 'fieldName' => Loader::parseName($field, 1, false), 'controllerUrl' => $controllerUrl]);
                     }
                     //排序方式,如果有指定排序字段,否则按主键排序
                     $order = $field == $this->sortField ? $this->sortField : $order;
@@ -1119,6 +1121,7 @@ class Crud extends Command
                 'controllerIndex'         => '',
                 'recyclebinJs'            => '',
                 'headingHtml'             => $headingHtml,
+                'multipleHtml'            => $multipleHtml,
                 'importHtml'              => $importHtml,
                 'recyclebinHtml'          => $recyclebinHtml,
                 'visibleFieldList'        => $fields ? "\$row->visible(['" . implode("','", array_filter(in_array($priKey, explode(',', $fields)) ? explode(',', $fields) : explode(',', $priKey . ',' . $fields))) . "']);" : '',
@@ -1466,7 +1469,7 @@ EOD;
         if ($content || !Lang::has($field)) {
             $this->fieldMaxLen = strlen($field) > $this->fieldMaxLen ? strlen($field) : $this->fieldMaxLen;
             $content = str_replace(',', ',', $content);
-            if (stripos($content, ':') !== false && stripos($content, ',') && stripos($content, '=') !== false) {
+            if (stripos($content, ':') !== false && stripos($content, '=') !== false) {
                 list($fieldLang, $item) = explode(':', $content);
                 $itemArr = [$field => $fieldLang];
                 foreach (explode(',', $item) as $k => $v) {
@@ -1474,6 +1477,9 @@ EOD;
                     if (count($valArr) == 2) {
                         list($key, $value) = $valArr;
                         $itemArr[$field . ' ' . $key] = $value;
+                        if ($this->headingFilterField == $field) {
+                            $itemArr['Set ' . $field . ' to ' . $key] = '设为' . $value;
+                        }
                         $this->fieldMaxLen = strlen($field . ' ' . $key) > $this->fieldMaxLen ? strlen($field . ' ' . $key) : $this->fieldMaxLen;
                     }
                 }
@@ -1549,7 +1555,7 @@ EOD;
         return $itemArr;
     }
 
-    protected function getFieldType(& $v)
+    protected function getFieldType(&$v)
     {
         $inputType = 'text';
         switch ($v['DATA_TYPE']) {

+ 8 - 0
application/admin/command/Crud/stubs/html/multiple-html.stub

@@ -0,0 +1,8 @@
+<div class="dropdown btn-group {:$auth->check('{%controllerUrl%}/multi')?'':'hide'}">
+                            <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
+                            <ul class="dropdown-menu text-left" role="menu">
+                                {foreach name="{%fieldName%}List" item="vo"}
+                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="{%field%}={$key}">{:__('Set {%field%} to ' . $key)}</a></li>
+                                {/foreach}
+                            </ul>
+                        </div>

+ 1 - 7
application/admin/command/Crud/stubs/index.stub

@@ -12,13 +12,7 @@
                         <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('{%controllerUrl%}/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
                         {%importHtml%}
 
-                        <div class="dropdown btn-group {:$auth->check('{%controllerUrl%}/multi')?'':'hide'}">
-                            <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
-                            <ul class="dropdown-menu text-left" role="menu">
-                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
-                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
-                            </ul>
-                        </div>
+                        {%multipleHtml%}
 
                         {%recyclebinHtml%}
                     </div>

+ 2 - 0
application/admin/lang/zh-cn.php

@@ -124,6 +124,8 @@ return [
     '%d year%s after'                                       => '%d年后',
     'Set to normal'                                         => '设为正常',
     'Set to hidden'                                         => '设为隐藏',
+    'Set status to normal'                                  => '设为正常',
+    'Set status to hidden'                                  => '设为隐藏',
     'Recycle bin'                                           => '回收站',
     'Restore'                                               => '还原',
     'Restore all'                                           => '还原全部',