<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link href="{{asset('js/plugins/mricode-pagination-master/mricode.pagination.css?v=1')}}" rel="stylesheet"/> <link href="{{asset('css/bootstrap.min14ed.css?v=3.3.6')}}" rel="stylesheet"> <style> .my-ul { list-style-type: none; padding: 0; margin: 10px 0 5px 10px; } .my-ul li { float: left; } .my-ul::after { content: ''; display: block; clear: both; } .nav-li { padding: 5px 10px; border-radius: 5px; cursor: pointer; } .active { background-color: #404650; color: white; } .tool { background-color: #F0F0F0; padding: 10px; } .search-input { width: 200px; padding: 5px; border: 1px solid #999c9e; } .btn { padding: 5px 10px; border-radius: 5px; background-color: #0d8ddb; border: none; color: white; cursor: pointer; } .section-ul { list-style-type: none; margin: 0; padding: 0; } .section-li { display: none; } .sectionActive { display: block; } .image-ul { list-style-type: none; margin: 0; } .image-ul::after { content: ''; display: block; clear: both; } .image-li { cursor: pointer; float: left; width: 16.6%; padding: 5px 5px; } .imageDiv { border: 2px solid #F0F0F0; border-radius: 5px; } .image-li img { width: 100%; max-height: 100%; } .page { margin-left: 10px; } .imageActive { border-color: green !important; } button { cursor: pointer; } .image-div { justify-content: center; align-items: center; flex-direction: column; overflow: hidden; margin: auto; } .image-font { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 10px; } </style> </head> <body> <main> <nav> <ul class="my-ul"> <li class="nav-li active" data-type="now">当前版块</li> <li class="nav-li" data-type="all">全部图片</li> </ul> </nav> <input type="hidden" id="pageId" value="1"> <div class="tool"> <div style="float: left"> <input type="text" class="search-input" placeholder="请输入图片名称" id="title"> <button type="button" class="btn" onclick="utils.search()" style="background: #009688;">搜索</button> </div> <div style="float: left;margin-top: 2px;margin-left: 5px"> <button type="button" class="btn" name="file_upload" style="background: #009688;">本地上传</button> (alt多选) <input type="file" value="" style="display: none" name="uploadFile" multiple> </div> <button type="button" class="btn" onclick="utils.save('{{$type}}')" style="background: #009688;">确定 </button> <div style="clear: both"></div> </div> <input type="hidden" id="type-index" value="{{$type}}"> <section> <ul class="section-ul"> <li class="section-li sectionActive"> <div class="img-list" id="now"> </div> <div class="page"> <div id="page" class="m-pagination"></div> </div> </li> <li class="section-li"> <div class="img-list" id="all"> </div> <div class="page"> <div id="page1" class="m-pagination"></div> </div> </li> </ul> <input type="hidden" id="type" value="{{$type}}"> </section> </main> <script src="{{asset('js/jquery.min.js?v=2.1.4')}}"></script> <script src="{{asset('js/bootstrap.min.js?v=3.3.6')}}"></script> <script src="{{asset('js/plugins/layer-v3.1.1/layer/layer.js')}}"></script> <script src="{{asset('js/tools/tips.js')}}"></script> <script src="{{asset('js/plugins/mricode-pagination-master/mricode.pagination.js')}}"></script> <script> function getPage(object) { var list = 'all'; if (object === 'page') { list = 'now'; } $("#" + object).pagination({ showInfo: true, showJump: true, pageSize: 12, pageElementSort: ['$page', '$size', '$jump', '$info'], remote: { url: '/admin/stencil/images/{{$siteId}}/{{$type}}', pageParams: function (data) { return { page: data.pageIndex + 1, pageSize: data.pageSize, title: $("#title").val() }; }, success: function (result) { var len = result.rows.length; if (len > 0) { var content = '<ul class="image-ul">'; $(result.rows).each(function (key, value) { content += '<li class="image-li">' + '<div class="imageDiv">' + '<div style="height: 150px;display: flex;justify-content: center;align-items: center;flex-direction: column;overflow: hidden;">' + '<img src="' + value.src + '" alt="' + value.name + '" data-id="' + value.id + '">' + '</div>' + '<div style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;padding: 10px;">' + value.name + '</div>' + '</div>' + '</li>'; }); content += '</ul>'; } else { content = '<div style="padding:10px;">无数据</div>'; } $("#" + list).html(content); } } }); } $(document).on('click', '.my-ul li', function () { $(this).addClass('active').siblings().removeClass('active'); $(".section-li").eq($(this).index()).addClass('sectionActive').siblings().removeClass('sectionActive'); }); $(document).on('click', '[name=file_upload]', function () { $(this).next().trigger('click'); }); $(document).on('change', '[name=uploadFile]', function () { if (!$(this)[0].files[0]) { return; } var siteId = 0; $(".nav-li").each(function () { if ($(this).hasClass('active')) { if ($(this).index() === 0) { siteId = "{{$siteId}}"; } } }); var formData = new FormData(); if ($(this)[0].files.length > 10) { layer.alert("最多只能选择10张图片哦", {icon: 5}); return; } var maxSize = 3072;//文件上传大小限制 for (var i = 0; i < $(this)[0].files.length; i++) { var size = $(this)[0].files[i].size; var fileSize = (size / 1024).toFixed(2); if (fileSize > maxSize) { layer.alert("上传文件不许超过3MB", {icon: 5}); return; } formData.append('files[]', $(this)[0].files[i]); } formData.append('siteId', '{{$siteId}}'); var ln; $.ajax({ url: '/admin/stencil/uploadImages/{{$siteId}}', type: 'POST', cache: false, data: formData, processData: false, contentType: false, beforeSend: function () { ln = layer.load(); }, complete: function () { layer.close(ln); }, success: function () { $("#page").pagination('remote'); $("#page1").pagination('remote'); }, error: function (XMLHttpRequest) { if (XMLHttpRequest.status === 500) { layer.alert("异步请求失败", {icon: 5}); return; } layer.alert(JSON.parse(XMLHttpRequest.responseText).message, {icon: 0}); } }); }); var utils = { search: function () { $(".nav-li").each(function () { if ($(this).hasClass('active')) { var type = $(this).attr('data-type'); if (type === 'now') { $("#page").pagination('remote'); } else { $("#page1").pagination('remote'); } } }); }, save: function (type) { var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 if (type === 'advertise') { parent.$('#images').empty(); $(".imageActive").each(function () { var img = $(this).find('img').attr('src'); var name = $(this).find('div').text(); var str = '<div class="col-sm-2 control-label">' + '</div>' + '<li class="image-li">' + '<div class="imageDiv">' + '<div class="image-div">' + '<img src="' + img + '" alt="' + img + '">' + '</div>' + '<div class="image-font" >' + name + '</div>' + '<a href="javascript:;" class="js-del-item">' + '<i class="fa fa-remove"></i>移除' + '</a>' + '</div>' + '</li>'; parent.$('#images').append(str); }); }else if (type === 'alone') { parent.$('#images').empty(); $(".imageActive").each(function () { var img = $(this).find('img').attr('src'); var name = $(this).find('div').text(); var str = '<li class="image-li">' + '<div class="imageDiv">' + '<div class="image-div">' + '<img src="' + img + '" alt="' + img + '">' + '</div>' + '<div class="image-font" >' + name + '</div>' + '<a href="javascript:;" class="js-del-item-alone">' + '<i class="fa fa-remove"></i>移除' + '</a>' + '</div>' + '</li>'; parent.$('#images').append(str); }); }else { $(".imageActive").each(function () { var img = $(this).find('img').attr('src'); var alt = $(this).find('img').attr('alt'); var id = $(this).find('img').attr('data-id'); var str = '<div class="js-item img-item images-list {{$type}}" style="cursor:pointer">' + '<div class="box">' + '<a class="thumb">' + '<img class="image-result" src="' + img + '" alt="' + alt + '">' + '</a>' + '<div class="title cutstr">' + img + '</div>' + '<div class="summary" data-id="' + id + '">alt<input type="text" class="form-control image-alt" value="' + alt + '"></div>' + '<div class="operate">' + '<a href="javascript:;" class="js-del-item">' + '<i class="fa fa-remove"></i>移除' + '</a>' + '</div>' + '</div>' + '</div>'; parent.$('#{{$type}}').append(str); }); } parent.layer.close(index); } }; var typeIndex = $('#type-index').val(); if (typeIndex === 'advertise' || typeIndex === 'alone') { $(document).on('click', '.imageDiv', function () { if ($(this).hasClass('imageActive')){ $(this).removeClass('imageActive') } else { $(".imageDiv").removeClass('imageActive'); $(this).addClass('imageActive'); } }); } else { $(document).on('click', '.imageDiv', function () { $(this).addClass('imageActive'); }); $(document).on('click', '.imageActive', function () { $(this).removeClass('imageActive'); }); } $(function () { getPage('page'); getPage('page1'); }) </script> </body> </html>