优化上传组件

This commit is contained in:
2020-04-11 22:29:27 +08:00
parent b03606abd7
commit 456d63a231
4 changed files with 37 additions and 66 deletions
+14 -1
View File
@@ -115,7 +115,20 @@ class Upload extends Base {
} }
public function filemanage(){ public function filemanage(){
return []; $pageConfig = [
'list_rows' => $this->request->param('list_rows', 20),
'page' => $this->request->param('page', 1),
'query' => $this->request->param()
];
$map[] = ['type', '=', 'image'];
$data = Db::where($map)->name('Attach')->paginate($pageConfig)->each(function($item, $key){
$item['thumbURL'] = $item['url'];
$item['oriURL'] = $item['url'];
return $item;
})->toArray();
$data['code'] = "000";
return $data;
} }
public function ueditor(){ public function ueditor(){
+19 -16
View File
@@ -15,12 +15,12 @@ var baseRoot = (function () {
// 配置参数 // 配置参数
require.config({ require.config({
waitSeconds: 60, waitSeconds: 60,
packages: [{ packages: [{
name: 'moment', name: 'moment',
location: 'plugins/moment', location: 'plugins/moment',
main: 'moment' main: 'moment'
} }
], ],
baseUrl: baseRoot, baseUrl: baseRoot,
map: {'*': {css: baseRoot + 'plugins/require/require.css.js'}}, map: {'*': {css: baseRoot + 'plugins/require/require.css.js'}},
paths: { paths: {
@@ -36,6 +36,7 @@ require.config({
'board': ['plugins/board/board.min'], 'board': ['plugins/board/board.min'],
'droppable': ['plugins/droppable/droppable'], 'droppable': ['plugins/droppable/droppable'],
'tagsinput': ['plugins/tagsinput/bootstrap-tagsinput'], 'tagsinput': ['plugins/tagsinput/bootstrap-tagsinput'],
'icheck': ['plugins/iCheck/icheck.min'],
'select2': ['plugins/select2/select2.full'], 'select2': ['plugins/select2/select2.full'],
'iconpicker': ['plugins/bootstrap-iconpicker/dist/js/bootstrap-iconpicker.bundle.min'], 'iconpicker': ['plugins/bootstrap-iconpicker/dist/js/bootstrap-iconpicker.bundle.min'],
@@ -54,8 +55,8 @@ require.config({
'bootstrap.typeahead': ['plugins/bootstrap/js/bootstrap3-typeahead.min'], 'bootstrap.typeahead': ['plugins/bootstrap/js/bootstrap3-typeahead.min'],
'bootstrap.multiselect': ['plugins/bootstrap-multiselect/bootstrap-multiselect'], 'bootstrap.multiselect': ['plugins/bootstrap-multiselect/bootstrap-multiselect'],
'bootstrap-editable': 'plugins/bootstrap-editable/js/bootstrap-editable.min', 'bootstrap-editable': 'plugins/bootstrap-editable/js/bootstrap-editable.min',
'bootstrap-datetimepicker': 'plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min', 'bootstrap-datetimepicker': 'plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min',
'bootstrap-daterangepicker': 'plugins/bootstrap-daterangepicker/daterangepicker', 'bootstrap-daterangepicker': 'plugins/bootstrap-daterangepicker/daterangepicker',
'validator-core': 'plugins/nice-validator/jquery.validator', 'validator-core': 'plugins/nice-validator/jquery.validator',
'validator-lang': 'plugins/nice-validator/local/zh-CN', 'validator-lang': 'plugins/nice-validator/local/zh-CN',
@@ -81,14 +82,15 @@ require.config({
'bootstrap.multiselect': {deps: ['bootstrap', 'css!' + baseRoot + 'plugins/bootstrap-multiselect/bootstrap-multiselect.css']}, 'bootstrap.multiselect': {deps: ['bootstrap', 'css!' + baseRoot + 'plugins/bootstrap-multiselect/bootstrap-multiselect.css']},
'bootstrap-editable': {deps:['bootstrap', 'css!'+baseRoot+'plugins/bootstrap-editable/css/bootstrap-editable.css'], exports:'$.fn.editable'}, 'bootstrap-editable': {deps:['bootstrap', 'css!'+baseRoot+'plugins/bootstrap-editable/css/bootstrap-editable.css'], exports:'$.fn.editable'},
'distpicker': {deps: [baseRoot + 'plugins/distpicker/distpicker.data.js']}, 'distpicker': {deps: [baseRoot + 'plugins/distpicker/distpicker.data.js']},
'bootstrap-daterangepicker': ['moment/locale/zh-cn'], 'bootstrap-daterangepicker': ['moment/locale/zh-cn'],
'bootstrap-datetimepicker': ['moment/locale/zh-cn','css!'+baseRoot+'plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css'], 'bootstrap-datetimepicker': ['moment/locale/zh-cn','css!'+baseRoot+'plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css'],
'select2': {deps: ['jquery', 'bootstrap', 'css!'+baseRoot+'plugins/select2/select2.css', 'css!'+baseRoot+'plugins/select2/sent_diy.css']}, 'select2': {deps: ['jquery', 'bootstrap', 'css!'+baseRoot+'plugins/select2/select2.css', 'css!'+baseRoot+'plugins/select2/sent_diy.css']},
'board': {deps:['jquery', 'droppable', 'css!'+baseRoot+'plugins/board/board.min.css'], exports: '$.fn.board'}, 'board': {deps:['jquery', 'droppable', 'css!'+baseRoot+'plugins/board/board.min.css'], exports: '$.fn.board'},
'droppable': {deps:['jquery'], exports: '$.fn.droppable'}, 'droppable': {deps:['jquery'], exports: '$.fn.droppable'},
'tagsinput':{deps: ['jquery', 'bootstrap', 'css!'+baseRoot+'plugins/tagsinput/bootstrap-tagsinput.css'], exports: '$.fn.tagsinput'}, 'tagsinput':{deps: ['jquery', 'bootstrap', 'css!'+baseRoot+'plugins/tagsinput/bootstrap-tagsinput.css'], exports: '$.fn.tagsinput'},
'iconpicker':{deps: ['jquery', 'bootstrap', 'css!'+baseRoot+'plugins/bootstrap-iconpicker/dist/css/bootstrap-iconpicker.min.css'], exports: '$.fn.iconpicker'}, 'icheck': {deps: ['jquery', 'css!'+baseRoot+'plugins/iCheck/all.css']},
'iconpicker':{deps: ['jquery', 'bootstrap', 'css!'+baseRoot+'plugins/bootstrap-iconpicker/dist/css/bootstrap-iconpicker.min.css'], exports: '$.fn.iconpicker'},
'validator-lang': ['validator-core'], 'validator-lang': ['validator-core'],
@@ -119,9 +121,10 @@ require(['jquery', 'bootstrap', 'message', 'adminlte'], function ($) {
$(function(){ $(function(){
require(['sent'], function(sent){ require(['sent'], function(sent){
require(['admin/js/backend'], function(backend){ require(['admin/js/backend'], function(backend){
var controller = (Config.jsname && Config.jsname !== 'upload') ? 'admin/js/module/'+Config.jsname : Config.jsname;
//加载相应模块 //加载相应模块
if (Config.jsname) { if (Config.jsname) {
require(['admin/js/module/'+Config.jsname], function (Controller) { require([controller], function (Controller) {
if (Controller.hasOwnProperty(Config.actionname)) { if (Controller.hasOwnProperty(Config.actionname)) {
Controller[Config.actionname](); Controller[Config.actionname]();
} else { } else {
+2 -46
View File
@@ -107,8 +107,8 @@ define(['jquery', 'bootstrap', 'validator'], function ($, undefined, Validator)
require(['NKeditor'], function(){ require(['NKeditor'], function(){
KindEditor.create('.form-editor', { KindEditor.create('.form-editor', {
items: Form.config.editor[items], items: Form.config.editor[items],
uploadJson: "/admin/upload/editor'", uploadJson: "/"+Config.module+"/upload/editor'",
fileManagerJson: "/admin/upload/filemanage" fileManagerJson: "/"+Config.module+"/upload/filemanage"
}) })
}) })
} }
@@ -318,49 +318,6 @@ define(['jquery', 'bootstrap', 'validator'], function ($, undefined, Validator)
}) })
} }
}, },
faselect: function (form) {
//绑定fachoose选择附件事件
if ($(".fachoose", form).size() > 0) {
$(".fachoose", form).on('click', function () {
var that = this;
var multiple = $(this).data("multiple") ? $(this).data("multiple") : false;
var mimetype = $(this).data("mimetype") ? $(this).data("mimetype") : '';
var admin_id = $(this).data("admin-id") ? $(this).data("admin-id") : '';
var user_id = $(this).data("user-id") ? $(this).data("user-id") : '';
sent.api.open("general/attachment/select?element_id=" + $(this).attr("id") + "&multiple=" + multiple + "&mimetype=" + mimetype + "&admin_id=" + admin_id + "&user_id=" + user_id, __('Choose'), {
callback: function (data) {
var button = $("#" + $(that).attr("id"));
var maxcount = $(button).data("maxcount");
var input_id = $(button).data("input-id") ? $(button).data("input-id") : "";
maxcount = typeof maxcount !== "undefined" ? maxcount : 0;
if (input_id && data.multiple) {
var urlArr = [];
var inputObj = $("#" + input_id);
var value = $.trim(inputObj.val());
if (value !== "") {
urlArr.push(inputObj.val());
}
urlArr.push(data.url)
var result = urlArr.join(",");
if (maxcount > 0) {
var nums = value === '' ? 0 : value.split(/\,/).length;
var files = data.url !== "" ? data.url.split(/\,/) : [];
var remains = maxcount - nums;
if (files.length > remains) {
Toastr.error(__('You can choose up to %d file%s', remains));
return false;
}
}
inputObj.val(result).trigger("change").trigger("validate");
} else {
$("#" + input_id).val(data.url).trigger("change").trigger("validate");
}
}
});
return false;
});
}
},
fieldlist: function (form) { fieldlist: function (form) {
//绑定fieldlist //绑定fieldlist
if ($(".fieldlist", form).size() > 0) { if ($(".fieldlist", form).size() > 0) {
@@ -580,7 +537,6 @@ define(['jquery', 'bootstrap', 'validator'], function ($, undefined, Validator)
events.citypicker(form); events.citypicker(form);
events.datetimepicker(form); events.datetimepicker(form);
events.plupload(form); events.plupload(form);
events.faselect(form);
events.fieldlist(form); events.fieldlist(form);
events.slider(form); events.slider(form);
events.switcher(form); events.switcher(form);
+2 -3
View File
@@ -22,9 +22,8 @@
<td class="col-lg-10 text-left"> <td class="col-lg-10 text-left">
{if isset($list[$group['key']])} {if isset($list[$group['key']])}
{volist name="list[$group['key']]" id="item"} {volist name="list[$group['key']]" id="item"}
<div class="radio radio-nice radio-inline"> <div class="radio radio-inline">
<input type="radio" name="{$item['module']}" value="{$item['id']}" id="{$item['module']}-{$item['id']}" {if condition="in_array($item['id'],$auth_list)"}checked{/if} /> <label for="{$item['module']}-{$item['id']}"><input type="radio" name="{$item['module']}" value="{$item['id']}" id="{$item['module']}-{$item['id']}" {if condition="in_array($item['id'],$auth_list)"}checked{/if} /> {$item['title']}</label>
<label for="{$item['module']}-{$item['id']}">{$item['title']}</label>
</div> </div>
{/volist} {/volist}
{/if} {/if}