优化上传组件

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

View File

@@ -115,7 +115,20 @@ class Upload extends Base {
}
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(){

View File

@@ -15,12 +15,12 @@ var baseRoot = (function () {
// 配置参数
require.config({
waitSeconds: 60,
packages: [{
name: 'moment',
location: 'plugins/moment',
main: 'moment'
}
],
packages: [{
name: 'moment',
location: 'plugins/moment',
main: 'moment'
}
],
baseUrl: baseRoot,
map: {'*': {css: baseRoot + 'plugins/require/require.css.js'}},
paths: {
@@ -36,6 +36,7 @@ require.config({
'board': ['plugins/board/board.min'],
'droppable': ['plugins/droppable/droppable'],
'tagsinput': ['plugins/tagsinput/bootstrap-tagsinput'],
'icheck': ['plugins/iCheck/icheck.min'],
'select2': ['plugins/select2/select2.full'],
'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.multiselect': ['plugins/bootstrap-multiselect/bootstrap-multiselect'],
'bootstrap-editable': 'plugins/bootstrap-editable/js/bootstrap-editable.min',
'bootstrap-datetimepicker': 'plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min',
'bootstrap-daterangepicker': 'plugins/bootstrap-daterangepicker/daterangepicker',
'bootstrap-datetimepicker': 'plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min',
'bootstrap-daterangepicker': 'plugins/bootstrap-daterangepicker/daterangepicker',
'validator-core': 'plugins/nice-validator/jquery.validator',
'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-editable': {deps:['bootstrap', 'css!'+baseRoot+'plugins/bootstrap-editable/css/bootstrap-editable.css'], exports:'$.fn.editable'},
'distpicker': {deps: [baseRoot + 'plugins/distpicker/distpicker.data.js']},
'bootstrap-daterangepicker': ['moment/locale/zh-cn'],
'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']},
'bootstrap-daterangepicker': ['moment/locale/zh-cn'],
'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']},
'board': {deps:['jquery', 'droppable', 'css!'+baseRoot+'plugins/board/board.min.css'], exports: '$.fn.board'},
'droppable': {deps:['jquery'], exports: '$.fn.droppable'},
'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'},
'board': {deps:['jquery', 'droppable', 'css!'+baseRoot+'plugins/board/board.min.css'], exports: '$.fn.board'},
'droppable': {deps:['jquery'], exports: '$.fn.droppable'},
'tagsinput':{deps: ['jquery', 'bootstrap', 'css!'+baseRoot+'plugins/tagsinput/bootstrap-tagsinput.css'], exports: '$.fn.tagsinput'},
'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'],
@@ -119,9 +121,10 @@ require(['jquery', 'bootstrap', 'message', 'adminlte'], function ($) {
$(function(){
require(['sent'], function(sent){
require(['admin/js/backend'], function(backend){
var controller = (Config.jsname && Config.jsname !== 'upload') ? 'admin/js/module/'+Config.jsname : Config.jsname;
//加载相应模块
if (Config.jsname) {
require(['admin/js/module/'+Config.jsname], function (Controller) {
require([controller], function (Controller) {
if (Controller.hasOwnProperty(Config.actionname)) {
Controller[Config.actionname]();
} else {

View File

@@ -107,8 +107,8 @@ define(['jquery', 'bootstrap', 'validator'], function ($, undefined, Validator)
require(['NKeditor'], function(){
KindEditor.create('.form-editor', {
items: Form.config.editor[items],
uploadJson: "/admin/upload/editor'",
fileManagerJson: "/admin/upload/filemanage"
uploadJson: "/"+Config.module+"/upload/editor'",
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
if ($(".fieldlist", form).size() > 0) {
@@ -580,7 +537,6 @@ define(['jquery', 'bootstrap', 'validator'], function ($, undefined, Validator)
events.citypicker(form);
events.datetimepicker(form);
events.plupload(form);
events.faselect(form);
events.fieldlist(form);
events.slider(form);
events.switcher(form);

View File

@@ -22,9 +22,8 @@
<td class="col-lg-10 text-left">
{if isset($list[$group['key']])}
{volist name="list[$group['key']]" id="item"}
<div class="radio radio-nice 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']}">{$item['title']}</label>
<div class="radio radio-inline">
<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>
</div>
{/volist}
{/if}