Browse Source

fix:都是

super-yimizi 2 months ago
parent
commit
6d530929ae

+ 4 - 4
addons/wwh/config.php

@@ -170,10 +170,10 @@ return [
         'type' => 'array',
         'type' => 'array',
         'content' => [],
         'content' => [],
         'value' => [
         'value' => [
-            'index/index' => '/wwh/$',
-            'search/index' => '/wwh/search/$',
-            'column/index' => '/wwh/[:diyname]$',
-            'archives/index' => '/wwh/[:diyname]/[:id]$',
+            'index/index' => '/$',
+            'search/index' => '/search/$',
+            'column/index' => '/[:diyname]$',
+            'archives/index' => '/[:diyname]/[:id]$',
         ],
         ],
         'rule' => 'required',
         'rule' => 'required',
         'msg' => '',
         'msg' => '',

+ 1 - 1
addons/wwh/view/materials/index.html

@@ -36,7 +36,7 @@
             height: 100%;
             height: 100%;
             object-fit: cover;
             object-fit: cover;
             display: block;
             display: block;
-            filter: brightness(0.7);
+            /*filter: brightness(0.7);*/
         }
         }
 
 
         .swiper-slide {
         .swiper-slide {

+ 80 - 2
application/admin/view/general/config/index.html

@@ -21,6 +21,12 @@
         visibility: visible;
         visibility: visible;
     }
     }
 
 
+    .fieldlist.table-notice td {
+        min-width: 100px;
+        padding: 8px 12px;
+        word-break: break-all;
+    }
+
 </style>
 </style>
 <div class="panel panel-default panel-intro">
 <div class="panel panel-default panel-intro">
     <div class="panel-heading">
     <div class="panel-heading">
@@ -82,10 +88,58 @@
                                                     <ins>{:isset($item["setting"]["key"])&&$item["setting"]["key"]?$item["setting"]["key"]:__('Array key')}</ins>
                                                     <ins>{:isset($item["setting"]["key"])&&$item["setting"]["key"]?$item["setting"]["key"]:__('Array key')}</ins>
                                                     <ins>{:isset($item["setting"]["value"])&&$item["setting"]["value"]?$item["setting"]["value"]:__('Array value')}</ins>
                                                     <ins>{:isset($item["setting"]["value"])&&$item["setting"]["value"]?$item["setting"]["value"]:__('Array value')}</ins>
                                                 </dd>
                                                 </dd>
-                                                <dd><a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>
+                                                <dd>
+                                                    <a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>
                                                 <textarea name="row[{$item.name|htmlentities}]" class="form-control hide" cols="30" rows="5">{$item.value|htmlentities}</textarea>
                                                 <textarea name="row[{$item.name|htmlentities}]" class="form-control hide" cols="30" rows="5">{$item.value|htmlentities}</textarea>
                                             </dl>
                                             </dl>
                                             {/case}
                                             {/case}
+                                            {case fieldlist}
+                                            <dl class="fieldlist" data-name="row[{$item.name|htmlentities}]" data-template="{$item.name|htmlentities}tpl" data-tag="dd">
+                                                <dd>
+                                                    {foreach $item.setting.columns as $col}
+                                                    <ins>{$col.name}</ins>
+                                                    {/foreach}
+                                                    <ins></ins>
+                                                </dd>
+                                                <dd>
+                                                    {if !isset($item.setting.append) || $item.setting.append}
+                                                    <a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a>
+                                                    {/if}
+                                                </dd>
+                                                <textarea name="row[{$item.name|htmlentities}]" class="form-control hide" cols="30" rows="5">{$item.value|htmlentities}</textarea>
+                                            </dl>
+                                            <script type="text/html" id="{$item.name|htmlentities}tpl">
+                                                <dd class="form-inline" data-type="{:isset($group[$item['name']])?$group[$item['name']]:'other'}">
+                                                    {foreach $item.setting.columns as $col}
+                                                    <ins>
+                                                        <% if ("{$col.type}" == "string") { %>
+                                                        <input type="text" name="<%=name%>[<%=index%>][{$col.title}]" class="form-control" value="<%=row?row['{$col.title}']:''%>" />
+                                                        <% } else if ("{$col.type}" == "date") { %>
+                                                        <input type="text" name="<%=name%>[<%=index%>][{$col.title}]" class="form-control datetimepicker" value="<%=row?row['{$col.title}']:''%>" />
+                                                        <% } else if ("{$col.type}" == "number") { %>
+                                                        <input type="number" name="<%=name%>[<%=index%>][{$col.title}]" class="form-control" value="<%=row?row['{$col.title}']:''%>" />
+                                                        <% } else if ("{$col.type}" == "checkbox") { %>
+                                                        <input type="checkbox" name="<%=name%>[<%=index%>][{$col.title}]" value="1" <%=row&&row['{$col.title}']?'checked':''%> />
+                                                        <% } else if ("{$col.type}" == "image") { %>
+                                                        <input type="text" name="<%=name%>[<%=index%>][{$col.title}]" class="form-control" value="<%=row?row['{$col.title}']:''%>" />
+                                                        <button type="button" class="btn btn-upload">上传</button>
+                                                        <% } else if ("{$col.type}" == "radio") { %>
+                                                        <input type="radio" name="<%=name%>[<%=index%>][{$col.title}]" value="1" <%=row&&row['{$col.title}']==1?'checked':''%> />是
+                                                        <input type="radio" name="<%=name%>[<%=index%>][{$col.title}]" value="0" <%=row&&row['{$col.title}']==0?'checked':''%> />否
+                                                        <% } %>
+                                                    </ins>
+                                                    {/foreach}
+                                                    <ins>
+                                                        {if !isset($item.setting.remove) || $item.setting.remove}
+                                                        <a href="javascript:;" class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></a>
+                                                        {/if}
+                                                        {if !isset($item.setting.dragsort) || $item.setting.dragsort}
+                                                        <a href="javascript:;" class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></a>
+                                                        {/if}
+                                                    </ins>
+                                                </dd>
+                                            </script>
+                                            {/case}
                                             {case date}
                                             {case date}
                                             <input {$item.extend_html|htmlentities} type="text" name="row[{$item.name|htmlentities}]" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-tip="{$item.tip|htmlentities}" data-rule="{$item.rule|htmlentities}"/>
                                             <input {$item.extend_html|htmlentities} type="text" name="row[{$item.name|htmlentities}]" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-tip="{$item.tip|htmlentities}" data-rule="{$item.rule|htmlentities}"/>
                                             {/case}
                                             {/case}
@@ -326,6 +380,30 @@ value2|title2</textarea>
                             <textarea name="row[extend]" id="extend" cols="30" rows="5" class="form-control" data-tip="{:__('Extend tips')}" data-rule="required(extend)" data-msg-extend="当类型为自定义时,扩展属性不能为空"></textarea>
                             <textarea name="row[extend]" id="extend" cols="30" rows="5" class="form-control" data-tip="{:__('Extend tips')}" data-rule="required(extend)" data-msg-extend="当类型为自定义时,扩展属性不能为空"></textarea>
                         </div>
                         </div>
                     </div>
                     </div>
+                    <div class="form-group fieldlist-setting-group" style="display:none;">
+                        <label class="control-label col-xs-12 col-sm-2">字段设置:</label>
+                        <div class="col-xs-12 col-sm-8">
+                            <table class="table table-bordered" id="fieldlist-columns-table">
+                                <thead>
+                                    <tr>
+                                        <th>name</th>
+                                        <th>title</th>
+                                        <th>type</th>
+                                        <th>操作</th>
+                                    </tr>
+                                </thead>
+                                <tbody>
+                                </tbody>
+                            </table>
+                            <button type="button" class="btn btn-sm btn-success" id="add-fieldlist-column">添加列</button>
+                            <div style="margin-top:10px;">
+                                <label><input type="checkbox" id="fieldlist-append"> 允许添加</label>
+                                <label><input type="checkbox" id="fieldlist-remove"> 允许删除</label>
+                                <label><input type="checkbox" id="fieldlist-dragsort"> 允许拖拽排序</label>
+                            </div>
+                            <input type="hidden" name="row[setting]" id="fieldlist-setting-json">
+                        </div>
+                    </div>
                     <div class="form-group">
                     <div class="form-group">
                         <label class="control-label col-xs-12 col-sm-2"></label>
                         <label class="control-label col-xs-12 col-sm-2"></label>
                         <div class="col-xs-12 col-sm-4">
                         <div class="col-xs-12 col-sm-4">
@@ -344,4 +422,4 @@ value2|title2</textarea>
             <!--@formatter:on-->
             <!--@formatter:on-->
         </div>
         </div>
     </div>
     </div>
-</div>
+</div>

+ 1 - 0
application/common/model/Config.php

@@ -54,6 +54,7 @@ class Config extends Model
             'selectpage'    => __('Selectpage'),
             'selectpage'    => __('Selectpage'),
             'selectpages'   => __('Selectpages'),
             'selectpages'   => __('Selectpages'),
             'array'         => __('Array'),
             'array'         => __('Array'),
+            'fieldlist'         => __('fieldlist'),
             'custom'        => __('Custom'),
             'custom'        => __('Custom'),
         ];
         ];
         return $typeList;
         return $typeList;

+ 31 - 12
application/extra/site.php

@@ -15,18 +15,13 @@ return array (
   'fixedpage' => 'dashboard',
   'fixedpage' => 'dashboard',
   'categorytype' => 
   'categorytype' => 
   array (
   array (
-    'default' => 'Default',
-    'page' => 'Page',
-    'article' => 'Article',
-    'test' => 'Test',
   ),
   ),
   'configgroup' => 
   'configgroup' => 
   array (
   array (
-    'basic' => 'Basic',
-    'email' => 'Email',
-    'dictionary' => 'Dictionary',
-    'user' => 'User',
-    'example' => 'Example',
+    'basic' => '基础配置',
+    'email' => '邮件配置',
+    'dictionary' => '字典配置',
+    'site' => '网站',
   ),
   ),
   'mail_type' => '1',
   'mail_type' => '1',
   'mail_smtp_host' => 'smtp.qq.com',
   'mail_smtp_host' => 'smtp.qq.com',
@@ -37,8 +32,32 @@ return array (
   'mail_from' => '',
   'mail_from' => '',
   'attachmentcategory' => 
   'attachmentcategory' => 
   array (
   array (
-    'category1' => 'Category1',
-    'category2' => 'Category2',
-    'custom' => 'Custom',
+    '图片' => '图片',
+    '音频' => 'audio',
+    '视频' => 'video',
   ),
   ),
+  'site_name' => '',
+  'keywords' => '',
+  'description' => '',
+  'logo' => '',
+  'logo1' => '',
+  'footer_logo' => '',
+  'tel' => '',
+  'facsimile' => '',
+  'address' => '',
+  'public_security_registration' => 
+  array (
+    '浙公网安备XXXXXXXXXXXXXX号' => 'http://www.beian.gov.cn/',
+  ),
+  'icp' => 
+  array (
+    '浙公网安备XXXXXXXXXXXXXX号' => 'http://www.beian.gov.cn/',
+  ),
+  'copyright' => '',
+  'tencent_map_key' => '',
+  'wechat' => '',
+  '公司简介' => 
+  array (
+  ),
+  'test' => '[{"title":"浙公网安备XXXXXXXXXXXXXX号","link":"http://www.beian.gov.cn/"}]',
 );
 );

+ 60 - 0
public/assets/js/backend/general/config.js

@@ -123,8 +123,68 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 });
                 });
 
 
             });
             });
+
+             // 类型切换时显示/隐藏字段设置
+             $(document).on('change changed.bs.select', "#c-type", function(){
+                if($(this).val() === 'fieldlist'){
+                    $('.fieldlist-setting-group').show();
+                }else{
+                    $('.fieldlist-setting-group').hide();
+                }
+            });
+            // 初始化时触发一次
+            $("#c-type").trigger('change');
+
+            // 添加列
+            $(document).on('click', '#add-fieldlist-column', function(){
+                var html = '<tr>' +
+                    '<td><input type="text" class="form-control col-name" placeholder="如:备案号"></td>' +
+                    '<td><input type="text" class="form-control col-title" placeholder="如:title"></td>' +
+                    '<td><select class="form-control col-type">' +
+                        '<option value="string">文本</option>' +
+                        '<option value="number">数字</option>' +
+                        '<option value="date">日期</option>' +
+                        '<option value="checkbox">多选</option>' +
+                        '<option value="radio">单选</option>' +
+                        '<option value="image">图片</option>' +
+                    '</select></td>' +
+                    '<td><a href="javascript:;" class="btn btn-danger btn-del-col">删除</a></td>' +
+                '</tr>';
+                $('#fieldlist-columns-table tbody').append(html);
+            });
+
+            // 删除列
+            $(document).on('click', '.btn-del-col', function(){
+                $(this).closest('tr').remove();
+            });
+
+            // 表单提交前组装setting
+            $(document).on('submit', '#add-form', function(){
+                if($('#c-type').val() === 'fieldlist'){
+                    var columns = [];
+                    $('#fieldlist-columns-table tbody tr').each(function(){
+                        var name = $(this).find('.col-name').val();
+                        var title = $(this).find('.col-title').val();
+                        var type = $(this).find('.col-type').val();
+                        if(name && title && type){
+                            columns.push({name: name, title: title, type: type});
+                        }
+                    });
+                    var setting = {
+                        append: $('#fieldlist-append').is(':checked'),
+                        remove: $('#fieldlist-remove').is(':checked'),
+                        dragsort: $('#fieldlist-dragsort').is(':checked'),
+                        columns: columns
+                    };
+                    $('#fieldlist-setting-json').val(JSON.stringify(setting));
+                }
+                return true;
+            });
+
         },
         },
         add: function () {
         add: function () {
+           
+            // 绑定表单验证
             Controller.api.bindevent();
             Controller.api.bindevent();
         },
         },
         edit: function () {
         edit: function () {