正在显示
2 个修改的文件
包含
65 行增加
和
26 行删除
@@ -6,10 +6,12 @@ use app\common\controller\Backend; | @@ -6,10 +6,12 @@ use app\common\controller\Backend; | ||
6 | use fast\Http; | 6 | use fast\Http; |
7 | use fast\Random; | 7 | use fast\Random; |
8 | use fast\Tree; | 8 | use fast\Tree; |
9 | +use RecursiveDirectoryIterator; | ||
10 | +use RecursiveIteratorIterator; | ||
11 | +use think\Cache; | ||
9 | use think\Config; | 12 | use think\Config; |
10 | use think\Db; | 13 | use think\Db; |
11 | use think\Lang; | 14 | use think\Lang; |
12 | -use think\Cache; | ||
13 | 15 | ||
14 | /** | 16 | /** |
15 | * Ajax异步请求接口 | 17 | * Ajax异步请求接口 |
@@ -353,19 +355,20 @@ class Ajax extends Backend | @@ -353,19 +355,20 @@ class Ajax extends Backend | ||
353 | $wipe_cache_type = ['TEMP_PATH', 'LOG_PATH', 'CACHE_PATH']; | 355 | $wipe_cache_type = ['TEMP_PATH', 'LOG_PATH', 'CACHE_PATH']; |
354 | foreach ($wipe_cache_type as $item) | 356 | foreach ($wipe_cache_type as $item) |
355 | { | 357 | { |
356 | - if ($item == 'LOG_PATH') | ||
357 | - { | ||
358 | - $dirs = (array) glob(constant($item) . '*'); | ||
359 | - foreach ($dirs as $dir) | ||
360 | - { | ||
361 | - array_map('unlink', (array) glob($dir . DIRECTORY_SEPARATOR . '*.*')); | ||
362 | - } | ||
363 | - array_map('rmdir', $dirs); | ||
364 | - } | ||
365 | - else | 358 | + $dir = constant($item); |
359 | + if (!is_dir($dir)) | ||
360 | + continue; | ||
361 | + $files = new RecursiveIteratorIterator( | ||
362 | + new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST | ||
363 | + ); | ||
364 | + | ||
365 | + foreach ($files as $fileinfo) | ||
366 | { | 366 | { |
367 | - array_map('unlink', (array) glob(constant($item) . DIRECTORY_SEPARATOR . '*.*')); | 367 | + $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink'); |
368 | + $todo($fileinfo->getRealPath()); | ||
368 | } | 369 | } |
370 | + | ||
371 | + //rmdir($dir); | ||
369 | } | 372 | } |
370 | Cache::clear(); | 373 | Cache::clear(); |
371 | $this->code = 1; | 374 | $this->code = 1; |
@@ -7001,8 +7001,24 @@ define("bootstrap-table-export", ["bootstrap-table","tableexport"], (function (g | @@ -7001,8 +7001,24 @@ define("bootstrap-table-export", ["bootstrap-table","tableexport"], (function (g | ||
7001 | htmlForm.push(sprintf('<select class="form-control" name="field-%s" data-name="%s">%s</select>', vObjCol.field, vObjCol.field, selectHtml)); | 7001 | htmlForm.push(sprintf('<select class="form-control" name="field-%s" data-name="%s">%s</select>', vObjCol.field, vObjCol.field, selectHtml)); |
7002 | htmlForm.push('</div>'); | 7002 | htmlForm.push('</div>'); |
7003 | } | 7003 | } |
7004 | + | ||
7004 | htmlForm.push('<div class="col-sm-6">'); | 7005 | htmlForm.push('<div class="col-sm-6">'); |
7005 | - htmlForm.push(sprintf('<input type="text" class="form-control input-md" name="%s" placeholder="%s" id="%s">', vObjCol.field, vObjCol.title, vObjCol.field)); | 7006 | + if (vObjCol.searchList) { |
7007 | + if (typeof vObjCol.searchList == 'function') { | ||
7008 | + htmlForm.push(vObjCol.searchList.call(this, vObjCol)); | ||
7009 | + } else { | ||
7010 | + var isArray = vObjCol.searchList.constructor === Array; | ||
7011 | + var searchList = []; | ||
7012 | + searchList.push(sprintf('<option value="">%s</option>', $.fn.bootstrapTable.locales.formatAdvancedChoose())); | ||
7013 | + $.each(vObjCol.searchList, function (key, value) { | ||
7014 | + searchList.push("<option value='" + (isArray ? value : key) + "'>" + value + "</option>"); | ||
7015 | + }); | ||
7016 | + htmlForm.push(sprintf('<select class="form-control" name="%s">%s</select>', vObjCol.field, searchList.join(''))); | ||
7017 | + } | ||
7018 | + } else { | ||
7019 | + htmlForm.push(sprintf('<input type="text" class="form-control input-md" name="%s" placeholder="%s" id="%s">', vObjCol.field, vObjCol.title, vObjCol.field)); | ||
7020 | + } | ||
7021 | + | ||
7006 | htmlForm.push('</div>'); | 7022 | htmlForm.push('</div>'); |
7007 | htmlForm.push('</div>'); | 7023 | htmlForm.push('</div>'); |
7008 | } | 7024 | } |
@@ -7060,6 +7076,9 @@ define("bootstrap-table-export", ["bootstrap-table","tableexport"], (function (g | @@ -7060,6 +7076,9 @@ define("bootstrap-table-export", ["bootstrap-table","tableexport"], (function (g | ||
7060 | }, | 7076 | }, |
7061 | formatAdvancedCloseButton: function () { | 7077 | formatAdvancedCloseButton: function () { |
7062 | return "Close"; | 7078 | return "Close"; |
7079 | + }, | ||
7080 | + formatAdvancedChoose: function () { | ||
7081 | + return "Choose"; | ||
7063 | } | 7082 | } |
7064 | }); | 7083 | }); |
7065 | 7084 | ||
@@ -7154,7 +7173,10 @@ define("bootstrap-table-export", ["bootstrap-table","tableexport"], (function (g | @@ -7154,7 +7173,10 @@ define("bootstrap-table-export", ["bootstrap-table","tableexport"], (function (g | ||
7154 | $("#avdSearchModalContent_" + this.options.idTable + " select").each(function () { | 7173 | $("#avdSearchModalContent_" + this.options.idTable + " select").each(function () { |
7155 | var name = $(this).data("name"); | 7174 | var name = $(this).data("name"); |
7156 | var sym = $(this).val(); | 7175 | var sym = $(this).val(); |
7157 | - var value = $("input[name='" + name + "']").val(); | 7176 | + var obj = $("[name='" + name + "']"); |
7177 | + if (obj.size() == 0) | ||
7178 | + return true; | ||
7179 | + var value = obj.size() > 1 ? $("[name='" + name + "']:checked").val() : obj.val(); | ||
7158 | if (value == '' && sym.indexOf("NULL") == -1) { | 7180 | if (value == '' && sym.indexOf("NULL") == -1) { |
7159 | return true; | 7181 | return true; |
7160 | } | 7182 | } |
@@ -7204,9 +7226,14 @@ define('table',['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'moment', | @@ -7204,9 +7226,14 @@ define('table',['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'moment', | ||
7204 | method: 'get', | 7226 | method: 'get', |
7205 | toolbar: "#toolbar", | 7227 | toolbar: "#toolbar", |
7206 | search: true, | 7228 | search: true, |
7229 | + cache: false, | ||
7207 | advancedSearch: true, | 7230 | advancedSearch: true, |
7208 | idTable: 'advancedTable', | 7231 | idTable: 'advancedTable', |
7209 | showExport: true, | 7232 | showExport: true, |
7233 | + exportDataType: "all", | ||
7234 | + exportTypes: ['json', 'xml', 'csv', 'txt', 'doc', 'excel'], | ||
7235 | + pageSize: 10, | ||
7236 | + pageList: [10, 25, 50, 'All'], | ||
7210 | pagination: true, | 7237 | pagination: true, |
7211 | clickToSelect: true, | 7238 | clickToSelect: true, |
7212 | showRefresh: false, | 7239 | showRefresh: false, |
@@ -7571,6 +7598,7 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | @@ -7571,6 +7598,7 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | ||
7571 | plupload: function (element, onAfterUpload) { | 7598 | plupload: function (element, onAfterUpload) { |
7572 | element = typeof element == 'undefined' ? Upload.config.classname : element; | 7599 | element = typeof element == 'undefined' ? Upload.config.classname : element; |
7573 | $(element, Upload.config.container).each(function () { | 7600 | $(element, Upload.config.container).each(function () { |
7601 | + var that = this; | ||
7574 | var id = $(this).prop("id"); | 7602 | var id = $(this).prop("id"); |
7575 | var url = $(this).data("url"); | 7603 | var url = $(this).data("url"); |
7576 | var maxsize = $(this).data("maxsize"); | 7604 | var maxsize = $(this).data("maxsize"); |
@@ -7579,6 +7607,7 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | @@ -7579,6 +7607,7 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | ||
7579 | var multiple = $(this).data("multiple"); | 7607 | var multiple = $(this).data("multiple"); |
7580 | //上传URL | 7608 | //上传URL |
7581 | url = url ? url : Config.upload.uploadurl; | 7609 | url = url ? url : Config.upload.uploadurl; |
7610 | + url = Backend.api.fixurl(url); | ||
7582 | //最大可上传 | 7611 | //最大可上传 |
7583 | maxsize = maxsize ? maxsize : Config.upload.maxsize; | 7612 | maxsize = maxsize ? maxsize : Config.upload.maxsize; |
7584 | //文件类型 | 7613 | //文件类型 |
@@ -7610,7 +7639,7 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | @@ -7610,7 +7639,7 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | ||
7610 | //这里可以改成其它的表现形式 | 7639 | //这里可以改成其它的表现形式 |
7611 | //document.getElementById('filelist').innerHTML += '<div id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></div>'; | 7640 | //document.getElementById('filelist').innerHTML += '<div id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></div>'; |
7612 | }); | 7641 | }); |
7613 | - $("#" + id).data("bakup-html", $("#" + id).html()); | 7642 | + $(that).data("bakup-html", $(that).html()); |
7614 | //添加后立即上传 | 7643 | //添加后立即上传 |
7615 | setTimeout(function () { | 7644 | setTimeout(function () { |
7616 | Upload.list[id].start(); | 7645 | Upload.list[id].start(); |
@@ -7619,11 +7648,11 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | @@ -7619,11 +7648,11 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | ||
7619 | UploadProgress: function (up, file) { | 7648 | UploadProgress: function (up, file) { |
7620 | //这里可以改成其它的表现形式 | 7649 | //这里可以改成其它的表现形式 |
7621 | //document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>"; | 7650 | //document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>"; |
7622 | - $("#" + id).prop("disabled", true).html("<i class='fa fa-upload'></i> 上传" + file.percent + "%"); | 7651 | + $(that).prop("disabled", true).html("<i class='fa fa-upload'></i> 上传" + file.percent + "%"); |
7623 | }, | 7652 | }, |
7624 | FileUploaded: function (up, file, info) { | 7653 | FileUploaded: function (up, file, info) { |
7625 | //还原按钮文字及状态 | 7654 | //还原按钮文字及状态 |
7626 | - $("#" + id).prop("disabled", false).html($("#" + id).data("bakup-html")); | 7655 | + $(that).prop("disabled", false).html($(that).data("bakup-html")); |
7627 | //这里可以改成其它的表现形式 | 7656 | //这里可以改成其它的表现形式 |
7628 | //document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML += (' [Url]: ' + '<a href="' + url + '" target="_blank">' + url + '</a>'); | 7657 | //document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML += (' [Url]: ' + '<a href="' + url + '" target="_blank">' + url + '</a>'); |
7629 | //这里建议不修改 | 7658 | //这里建议不修改 |
@@ -7634,13 +7663,20 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | @@ -7634,13 +7663,20 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | ||
7634 | ret.code = ret.code == 200 ? 1 : ret.code; | 7663 | ret.code = ret.code == 200 ? 1 : ret.code; |
7635 | var data = ret.hasOwnProperty("data") && ret.data != "" ? ret.data : null; | 7664 | var data = ret.hasOwnProperty("data") && ret.data != "" ? ret.data : null; |
7636 | var msg = ret.hasOwnProperty("msg") && ret.msg != "" ? ret.msg : ""; | 7665 | var msg = ret.hasOwnProperty("msg") && ret.msg != "" ? ret.msg : ""; |
7637 | - $("input[data-plupload-id='" + id + "-text']").val(data.url); | ||
7638 | - var afterUpload = $("#" + id).data("after-upload"); | ||
7639 | - if (afterUpload && typeof Upload.api.custom[afterUpload] == 'function') { | ||
7640 | - Upload.api.custom[afterUpload].call(info, id, data); | ||
7641 | - } | ||
7642 | - if (typeof onAfterUpload == 'function') { | ||
7643 | - onAfterUpload.call(info, id, data); | 7666 | + if (ret.code === 1) { |
7667 | + //$("input[data-plupload-id='" + id + "-text']").val(data.url); | ||
7668 | + if ($(that).data("input-id")) { | ||
7669 | + $("input#" + $(that).data("input-id")).val(data.url); | ||
7670 | + } | ||
7671 | + var afterUpload = $("#" + id).data("after-upload"); | ||
7672 | + if (afterUpload && typeof Upload.api.custom[afterUpload] == 'function') { | ||
7673 | + Upload.api.custom[afterUpload].call(that, data); | ||
7674 | + } | ||
7675 | + if (typeof onAfterUpload == 'function') { | ||
7676 | + onAfterUpload.call(that, data); | ||
7677 | + } | ||
7678 | + } else { | ||
7679 | + Toastr.error(msg ? msg : __('Operation failed')); | ||
7644 | } | 7680 | } |
7645 | } else { | 7681 | } else { |
7646 | Toastr.error(e.message + "(code:-2)"); | 7682 | Toastr.error(e.message + "(code:-2)"); |
@@ -7698,8 +7734,8 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | @@ -7698,8 +7734,8 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi | ||
7698 | }, | 7734 | }, |
7699 | custom: { | 7735 | custom: { |
7700 | //自定义上传完成回调 | 7736 | //自定义上传完成回调 |
7701 | - afteruploadcallback: function (id, response) { | ||
7702 | - console.log(this, id, response); | 7737 | + afteruploadcallback: function (response) { |
7738 | + console.log(this, response); | ||
7703 | alert("Custom Callback,Response URL:" + response.url); | 7739 | alert("Custom Callback,Response URL:" + response.url); |
7704 | }, | 7740 | }, |
7705 | }, | 7741 | }, |
-
请 注册 或 登录 后发表评论