فهرست منبع

优化插件管理&优化前台弹窗

Karson 3 سال پیش
والد
کامیت
c00584a5b5

+ 1 - 1
application/admin/command/Install.php

@@ -263,7 +263,7 @@ class Install extends Command
             $configList = $instance->name("config")->select();
             foreach ($configList as $k => $value) {
                 if (in_array($value['type'], ['selects', 'checkbox', 'images', 'files'])) {
-                    $value['value'] = explode(',', $value['value']);
+                    $value['value'] = is_array($value['value']) ? $value['value'] : explode(',', $value['value']);
                 }
                 if ($value['type'] == 'array') {
                     $value['value'] = (array)json_decode($value['value'], true);

+ 1 - 16
application/admin/controller/Addon.php

@@ -41,19 +41,7 @@ class Addon extends Backend
             $v['config'] = $config ? 1 : 0;
             $v['url'] = str_replace($this->request->server('SCRIPT_NAME'), '', $v['url']);
         }
-        if ($this->request->isAjax()) {
-            $result = [];
-            debug('begin');
-            try {
-                $result = Service::addons($this->request->get());
-            } catch (\Exception $e) {
-                $this->error($e->getMessage());
-            }
-            debug('end');
-            \think\Log::record("tx:" . debug('begin', 'end', 6) . 's');
-            return json($result);
-        }
-        $this->assignconfig(['addons' => $addons, 'api_url' => config('fastadmin.api_url'), 'faversion' => config('fastadmin.version')]);
+        $this->assignconfig(['addons' => $addons, 'api_url' => config('fastadmin.api_url'), 'faversion' => config('fastadmin.version'), 'domain' => request()->host(true)]);
         return $this->view->fetch();
     }
 
@@ -227,9 +215,6 @@ class Addon extends Backend
     {
         Config::set('default_return_type', 'json');
 
-        if (!config('app_debug')) {
-            $this->error(__('Only work at debug mode'));
-        }
         $info = [];
         $file = $this->request->file('file');
         try {

+ 1 - 4
application/admin/view/addon/index.html

@@ -81,11 +81,9 @@
                     <div id="toolbar" class="toolbar">
                         <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" data-force-refresh="false"><i class="fa fa-refresh"></i> </a>
                         {if $Think.config.fastadmin.api_url}
-                        {if $Think.config.app_debug}
                         <button type="button" id="faupload-addon" class="btn btn-danger faupload btn-mini-xs" data-url="addon/local" data-chunking="false" data-mimetype="zip,fastaddon" data-multiple="false"><i class="fa fa-upload"></i>
                             {:__('Local install')}
                         </button>
-                        {/if}
                         <div class="btn-group">
                             <a href="#" class="btn btn-info btn-switch active btn-mini-xs" data-type="all"><i class="fa fa-list"></i> {:__('All')}</a>
                             <a href="#" class="btn btn-info btn-switch btn-mini-xs" data-type="free"><i class="fa fa-gift"></i> {:__('Free')}</a>
@@ -93,7 +91,6 @@
                             <a href="#" class="btn btn-info btn-switch btn-mini-xs" data-type="local" data-url="addon/downloaded"><i class="fa fa-laptop"></i> {:__('Local addon')}</a>
                         </div>
                         <a class="btn btn-primary btn-userinfo btn-mini-xs" href="javascript:;"><i class="fa fa-user"></i> {:__('Userinfo')}</a>
-                        <a class="btn btn-warning btn-authorization btn-mini-xs" href="javascript:;"><i class="fa fa-cloud"></i> {:__('Reload authorization')}</a>
                         {/if}
                     </div>
                     <table id="table" class="table table-striped table-bordered table-hover" width="100%">
@@ -189,7 +186,7 @@
     <div>
         <form class="form-horizontal form-userinfo">
             <fieldset>
-                <div class="alert alert-dismissable alert-success">
+                <div class="alert alert-dismissable alert-info-light">
                     <button type="button" class="close" data-dismiss="alert">×</button>
                     <strong>{:__('Warning')}</strong><br/>{:__('Logined tips', '<%=username%>')}
                 </div>

+ 1 - 1
application/config.php

@@ -292,7 +292,7 @@ return [
         //允许跨域的域名,多个以,分隔
         'cors_request_domain'   => 'localhost,127.0.0.1',
         //版本号
-        'version'               => '1.3.0.20220101',
+        'version'               => '1.3.1.20220112',
         //API接口地址
         'api_url'               => 'https://api.fastadmin.net',
     ],

+ 1 - 1
composer.json

@@ -21,7 +21,7 @@
         "topthink/think-installer": "^1.0.14",
         "topthink/think-queue": "1.1.6",
         "topthink/think-helper": "^1.0.7",
-        "karsonzhang/fastadmin-addons": "~1.3.0",
+        "karsonzhang/fastadmin-addons": "~1.3.1",
         "overtrue/pinyin": "^3.0",
         "phpoffice/phpspreadsheet": "1.12",
         "overtrue/wechat": "4.2.11",

+ 0 - 1
public/assets/css/backend.css

@@ -614,7 +614,6 @@ form.form-horizontal .control-label {
 /*顶栏addtabs*/
 .nav-addtabs {
   height: 100%;
-  overflow-y: hidden;
   border: none;
 }
 .nav-addtabs.disable-top-badge > li > a > .pull-right-container {

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 1
public/assets/css/backend.min.css


+ 26 - 0
public/assets/css/frontend.css

@@ -431,6 +431,32 @@ a:focus {
 .layui-layer-content {
   clear: both;
 }
+.layui-layer-fast .layui-layer-content > table.table {
+  margin-bottom: 0;
+}
+.layui-layer-fast .layui-layer-confirm {
+  display: none;
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  left: 0;
+  bottom: 0;
+  border: 1px solid transparent;
+  background: transparent;
+  color: transparent;
+}
+.layui-layer-fast .layui-layer-confirm:focus {
+  border: 1px solid #444c69;
+  -webkit-border-radius: 2px;
+  -webkit-background-clip: padding-box;
+  -moz-border-radius: 2px;
+  -moz-background-clip: padding;
+  border-radius: 2px;
+  background-clip: padding-box;
+}
+.layui-layer-fast .layui-layer-confirm:focus-visible {
+  outline: 0;
+}
 .layui-layer-fast-msg {
   min-width: 100px;
   border-radius: 2px;

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 1
public/assets/css/frontend.min.css


+ 8 - 2
public/assets/js/backend/addon.js

@@ -4,7 +4,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
             // 初始化表格参数配置
             Table.api.init({
                 extend: {
-                    index_url: Config.api_url ? 'addon/index' : "addon/downloaded",
+                    index_url: Config.api_url ? Config.api_url + '/addon/index' : "addon/downloaded",
                     add_url: '',
                     edit_url: '',
                     del_url: '',
@@ -45,6 +45,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
                 }
             });
             table.on('load-error.bs.table', function (e, status, res) {
+                console.log(e, status, res);
                 switch_local();
             });
             table.on('post-body.bs.table', function (e, settings, json, xhr) {
@@ -94,6 +95,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
                     $.extend(params, {
                         uid: userinfo ? userinfo.id : '',
                         token: userinfo ? userinfo.token : '',
+                        domain: Config.domain,
                         version: Config.faversion
                     });
                     return params;
@@ -168,6 +170,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
                     });
                     return res;
                 },
+                dataType: 'jsonp',
                 templateView: false,
                 clickToSelect: false,
                 search: true,
@@ -350,7 +353,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
                             area: area,
                             title: __('Userinfo'),
                             resize: false,
-                            btn: [__('Logout'), __('Cancel')],
+                            btn: [__('Logout'), __('Close')],
                             yes: function () {
                                 Fast.api.ajax({
                                     url: Config.api_url + '/user/logout',
@@ -680,6 +683,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
         api: {
             formatter: {
                 title: function (value, row, index) {
+                    if ($(".btn-switch.active").data("type") == "local") {
+                        // return value;
+                    }
                     var title = '<a class="title" href="' + row.url + '" data-toggle="tooltip" title="' + __('View addon home page') + '" target="_blank">' + value + '</a>';
                     if (row.screenshots && row.screenshots.length > 0) {
                         title += ' <a href="javascript:;" data-index="' + index + '" class="view-screenshots text-success" title="' + __('View addon screenshots') + '" data-toggle="tooltip"><i class="fa fa-image"></i></a>';

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 44 - 21
public/assets/js/require-backend.min.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 44 - 21
public/assets/js/require-frontend.min.js


+ 1 - 1
public/assets/less/backend.less

@@ -454,7 +454,7 @@ form.form-horizontal .control-label {
 /*顶栏addtabs*/
 .nav-addtabs {
     height: 100%;
-    overflow-y: hidden;
+    //overflow-y: hidden;
 
     &.disable-top-badge {
         > li > a > .pull-right-container {

+ 29 - 0
public/assets/less/frontend.less

@@ -225,6 +225,35 @@ a {
     clear: both;
 }
 
+.layui-layer-fast {
+    .layui-layer-content {
+        > table.table {
+            margin-bottom: 0;
+        }
+    }
+
+    .layui-layer-confirm {
+        display: none;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        left: 0;
+        bottom: 0;
+        border: 1px solid transparent;
+        background: transparent;
+        color: transparent;
+
+        &:focus {
+            border: 1px solid #444c69;
+            .border-radius(2px);
+        }
+
+        &:focus-visible {
+            outline: 0;
+        }
+    }
+}
+
 .layui-layer-fast-msg {
     min-width: 100px;
     border-radius: 2px;