From e4131eb2e676a4c284ea3c0b381cb6b5c978e147 Mon Sep 17 00:00:00 2001 From: Karson <karsonzhang@163.com> Date: Sun, 7 May 2017 19:14:05 +0800 Subject: [PATCH] 修复无法清除缓存的BUG --- application/admin/controller/Ajax.php | 27 +++++++++++++++------------ public/assets/js/require-backend.min.js | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 65 insertions(+), 26 deletions(-) diff --git a/application/admin/controller/Ajax.php b/application/admin/controller/Ajax.php index ecbd462..b92838a 100644 --- a/application/admin/controller/Ajax.php +++ b/application/admin/controller/Ajax.php @@ -6,10 +6,12 @@ use app\common\controller\Backend; use fast\Http; use fast\Random; use fast\Tree; +use RecursiveDirectoryIterator; +use RecursiveIteratorIterator; +use think\Cache; use think\Config; use think\Db; use think\Lang; -use think\Cache; /** * Ajax异步请求接口 @@ -353,19 +355,20 @@ class Ajax extends Backend $wipe_cache_type = ['TEMP_PATH', 'LOG_PATH', 'CACHE_PATH']; foreach ($wipe_cache_type as $item) { - if ($item == 'LOG_PATH') - { - $dirs = (array) glob(constant($item) . '*'); - foreach ($dirs as $dir) - { - array_map('unlink', (array) glob($dir . DIRECTORY_SEPARATOR . '*.*')); - } - array_map('rmdir', $dirs); - } - else + $dir = constant($item); + if (!is_dir($dir)) + continue; + $files = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST + ); + + foreach ($files as $fileinfo) { - array_map('unlink', (array) glob(constant($item) . DIRECTORY_SEPARATOR . '*.*')); + $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink'); + $todo($fileinfo->getRealPath()); } + + //rmdir($dir); } Cache::clear(); $this->code = 1; diff --git a/public/assets/js/require-backend.min.js b/public/assets/js/require-backend.min.js index ad5a715..186de16 100644 --- a/public/assets/js/require-backend.min.js +++ b/public/assets/js/require-backend.min.js @@ -7001,8 +7001,24 @@ define("bootstrap-table-export", ["bootstrap-table","tableexport"], (function (g htmlForm.push(sprintf('<select class="form-control" name="field-%s" data-name="%s">%s</select>', vObjCol.field, vObjCol.field, selectHtml)); htmlForm.push('</div>'); } + htmlForm.push('<div class="col-sm-6">'); - htmlForm.push(sprintf('<input type="text" class="form-control input-md" name="%s" placeholder="%s" id="%s">', vObjCol.field, vObjCol.title, vObjCol.field)); + if (vObjCol.searchList) { + if (typeof vObjCol.searchList == 'function') { + htmlForm.push(vObjCol.searchList.call(this, vObjCol)); + } else { + var isArray = vObjCol.searchList.constructor === Array; + var searchList = []; + searchList.push(sprintf('<option value="">%s</option>', $.fn.bootstrapTable.locales.formatAdvancedChoose())); + $.each(vObjCol.searchList, function (key, value) { + searchList.push("<option value='" + (isArray ? value : key) + "'>" + value + "</option>"); + }); + htmlForm.push(sprintf('<select class="form-control" name="%s">%s</select>', vObjCol.field, searchList.join(''))); + } + } else { + htmlForm.push(sprintf('<input type="text" class="form-control input-md" name="%s" placeholder="%s" id="%s">', vObjCol.field, vObjCol.title, vObjCol.field)); + } + htmlForm.push('</div>'); htmlForm.push('</div>'); } @@ -7060,6 +7076,9 @@ define("bootstrap-table-export", ["bootstrap-table","tableexport"], (function (g }, formatAdvancedCloseButton: function () { return "Close"; + }, + formatAdvancedChoose: function () { + return "Choose"; } }); @@ -7154,7 +7173,10 @@ define("bootstrap-table-export", ["bootstrap-table","tableexport"], (function (g $("#avdSearchModalContent_" + this.options.idTable + " select").each(function () { var name = $(this).data("name"); var sym = $(this).val(); - var value = $("input[name='" + name + "']").val(); + var obj = $("[name='" + name + "']"); + if (obj.size() == 0) + return true; + var value = obj.size() > 1 ? $("[name='" + name + "']:checked").val() : obj.val(); if (value == '' && sym.indexOf("NULL") == -1) { return true; } @@ -7204,9 +7226,14 @@ define('table',['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'moment', method: 'get', toolbar: "#toolbar", search: true, + cache: false, advancedSearch: true, idTable: 'advancedTable', showExport: true, + exportDataType: "all", + exportTypes: ['json', 'xml', 'csv', 'txt', 'doc', 'excel'], + pageSize: 10, + pageList: [10, 25, 50, 'All'], pagination: true, clickToSelect: true, showRefresh: false, @@ -7571,6 +7598,7 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi plupload: function (element, onAfterUpload) { element = typeof element == 'undefined' ? Upload.config.classname : element; $(element, Upload.config.container).each(function () { + var that = this; var id = $(this).prop("id"); var url = $(this).data("url"); var maxsize = $(this).data("maxsize"); @@ -7579,6 +7607,7 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi var multiple = $(this).data("multiple"); //上传URL url = url ? url : Config.upload.uploadurl; + url = Backend.api.fixurl(url); //最大可上传 maxsize = maxsize ? maxsize : Config.upload.maxsize; //文件类型 @@ -7610,7 +7639,7 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi //这里可以改成其它的表现形式 //document.getElementById('filelist').innerHTML += '<div id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></div>'; }); - $("#" + id).data("bakup-html", $("#" + id).html()); + $(that).data("bakup-html", $(that).html()); //添加后立即上传 setTimeout(function () { Upload.list[id].start(); @@ -7619,11 +7648,11 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi UploadProgress: function (up, file) { //这里可以改成其它的表现形式 //document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>"; - $("#" + id).prop("disabled", true).html("<i class='fa fa-upload'></i> 上传" + file.percent + "%"); + $(that).prop("disabled", true).html("<i class='fa fa-upload'></i> 上传" + file.percent + "%"); }, FileUploaded: function (up, file, info) { //还原按钮文字及状态 - $("#" + id).prop("disabled", false).html($("#" + id).data("bakup-html")); + $(that).prop("disabled", false).html($(that).data("bakup-html")); //这里可以改成其它的表现形式 //document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML += (' [Url]: ' + '<a href="' + url + '" target="_blank">' + url + '</a>'); //这里建议不修改 @@ -7634,13 +7663,20 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi ret.code = ret.code == 200 ? 1 : ret.code; var data = ret.hasOwnProperty("data") && ret.data != "" ? ret.data : null; var msg = ret.hasOwnProperty("msg") && ret.msg != "" ? ret.msg : ""; - $("input[data-plupload-id='" + id + "-text']").val(data.url); - var afterUpload = $("#" + id).data("after-upload"); - if (afterUpload && typeof Upload.api.custom[afterUpload] == 'function') { - Upload.api.custom[afterUpload].call(info, id, data); - } - if (typeof onAfterUpload == 'function') { - onAfterUpload.call(info, id, data); + if (ret.code === 1) { + //$("input[data-plupload-id='" + id + "-text']").val(data.url); + if ($(that).data("input-id")) { + $("input#" + $(that).data("input-id")).val(data.url); + } + var afterUpload = $("#" + id).data("after-upload"); + if (afterUpload && typeof Upload.api.custom[afterUpload] == 'function') { + Upload.api.custom[afterUpload].call(that, data); + } + if (typeof onAfterUpload == 'function') { + onAfterUpload.call(that, data); + } + } else { + Toastr.error(msg ? msg : __('Operation failed')); } } else { Toastr.error(e.message + "(code:-2)"); @@ -7698,8 +7734,8 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi }, custom: { //自定义上传完成回调 - afteruploadcallback: function (id, response) { - console.log(this, id, response); + afteruploadcallback: function (response) { + console.log(this, response); alert("Custom Callback,Response URL:" + response.url); }, }, -- libgit2 0.24.0