| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224 |
- {extend name="base"/}
- {block name="resources"}
- <link rel="stylesheet" type="text/css" href="SHOP_CSS/picture_manager.css" />
- <style>
- .layui-layout-admin.admin-style-1 .type-tab{ margin-left: -15px!important;width: calc(100% - 253px)!important;}
- </style>
- {/block}
- {block name="main"}
- <!-- 清理网站缓存 start -->
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="Cache-Control" content="no-cache, no-store">
- <meta http-equiv="expires" content="0">
- <!-- 清理网站缓存 end -->
- <div class="fourstage-nav layui-tab layui-tab-brief type-tab" lay-filter="edit_user_tab">
- <ul class="layui-tab-title">
- {foreach $type_list as $k => $v}
- <li class="{$k == $type ? 'layui-this' : ''}" lay-id="{$k}"><a href="{:url('shop/album/lists', ['type' => $k])}">{$v}</a></li>
- {/foreach}
- </ul>
- </div>
- <!-- 搜索框 -->
- <div class="single-filter-box top">
- {if $type == 'img'}
- <button class="layui-btn" onclick="uploadImg()">上传{$type_list[$type]}</button>
- {else if $type == 'video'}
- <button class="layui-btn" onclick="uploadVideo()">上传{$type_list[$type]}</button>
- {/if}
- <button class="layui-btn layui-btn-primary text-color border-color" onclick="addGrouping()">添加分组</button>
- <div class="layui-form">
- <div class="layui-input-inline">
- <input type="text" name="search_keys" placeholder="请输入{$type_list[$type]}名称" autocomplete="off" class="layui-input album-img-sreach">
- <button type="button" class="layui-btn layui-btn-primary" lay-filter="search" lay-submit>
- <i class="layui-icon"></i>
- </button>
- </div>
- </div>
- </div>
- <div class="album-box">
- <div class="album-list">
- <ul class="bg-color-light-gray layui-nav layui-nav-tree layui-inline" lay-filter="albumList">
- <div id="albumList" class="demo-tree-more"></div>
- </ul>
- </div>
- <div class="album-content">
- <div class="album-content-title">
- <span id="album_name">默认分组</span>
- <span>|</span>
- <a href="javascript:;" class="text-color edit" data-status="0">编辑</a>
- <a href="javascript:;" class="text-color album-action layui-hide" onclick="modifyGrouping()">编辑分组</a>
- <a href="javascript:;" onclick="deleteGrouping()" class="text-color album-action layui-hide">删除分组</a>
- </div>
- <ul class="album-img-box"></ul>
-
- <div class="album-foot-operation ">
- <div class="album-content-bar layui-form bg-color-light-gray album-action layui-hide" >
- <input type="checkbox" name="album-select" lay-filter="allChoose" lay-skin="primary" title="全选">
- </div>
- <button class="layui-btn album-action layui-hide" onclick="modifyImgGroup()">修改分组</button>
- <!-- <button class="layui-btn" onclick="thumbBatch()">生成缩略图</button> -->
- <button class="layui-btn album-action layui-hide" onclick="deleteImg()">删除</button>
- <div id="paged" class="page"></div>
- </div>
- </div>
- <!-- 存储图片路径 -->
- <input type="hidden" id="hidden_image_path">
- </div>
- {/block}
- {block name="script"}
- <!-- 分组列表 -->
- <script type="text/html" id="album_list">
- <div class="layui-tree">
- {{# for(let key in d){ }}
- <div class="layui-tree-set layui-tree-checkedFirst layui-tree-setHide ">
- <div class="layui-tree-entry">
- <div class="layui-tree-main">
- {{# if(d[key].child_list && d[key].child_list.length > 0){ }}
- <span class="layui-tree-iconClick" onclick="childSwitch(this)"><i class="layui-tree-iconArrow"></i></span>
- {{# }else{ }}
- <span class="layui-tree-iconClick"><i class="layui-tree-iconArrow layui-hide"></i></span>
- {{# } }}
- <div class="layui-tree-txt {{key == 0 ? 'selected text-color' : ''}}" onclick="switchGroup(this)" data-id="{{ d[key].album_id }}" data-album="{{ d[key].child ? d[key].child.toString() : d[key].album_id}}" data-name="{{d[key].album_name}}">
- <span>{{d[key].album_name}}</span>
- <span class="num">{{d[key].num}}</span>
- </div>
- </div>
- </div>
- {{# if(d[key].child_list && d[key].child_list.length > 0){ }}
- <div class="layui-tree-pack layui-tree-child">
- {{# for(let i in d[key].child_list){ }}
- <div class="layui-tree-set">
- <div class="layui-tree-entry">
- <div class="layui-tree-main">
- <span class="layui-tree-iconClick"><i class="layui-tree-iconArrow layui-hide"></i></span>
- <div class="layui-tree-txt" onclick="switchGroup(this)" data-id="{{d[key].child_list[i]['album_id']}}" data-album="{{d[key].child_list[i]['album_id']}}" data-name="{{d[key].child_list[i]['album_name']}}">
- <span>{{d[key].child_list[i]['album_name']}}</span>
- <span class="num">{{d[key].child_list[i]['num']}}</span>
- </div>
- </div>
- </div>
- </div>
- {{# } }}
- </div>
- {{# } }}
- </div>
- {{# } }}
- </div>
- </script>
- <!-- 多图上传 -->
- <script type="text/html" id="multuple_html">
- <div class="layui-form multuple-list-box">
- <div class="layui-form-item">
- <label class="layui-form-label sm">本地图片</label>
- <ul class="layui-input-block multuple-list">
- <li class="multuple-list-img" id="ImgUpload">
- <span class="bg-color">+</span>
- <span>点击添加图片</span>
- </li>
- </ul>
- </div>
- <div class="form-row sm">
- <button class="layui-btn layui-btn-disabled" disabled="disabled" onclick="submitOne()" id="chooseListAction">提交</button>
- <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
- </div>
- </div>
- </script>
- <!-- 视频上传 -->
- <script type="text/html" id="video_html">
- <div class="layui-form multuple-list-box">
- <div class="layui-form-item">
- <label class="layui-form-label sm">视频</label>
- <ul class="layui-input-block multuple-list">
- <li class="multuple-list-img" id="VideoUpload">
- <span class="bg-color">+</span>
- <span>点击添加</span>
- </li>
- </ul>
- </div>
- <div class="form-row sm">
- <button class="layui-btn layui-btn-disabled" disabled="disabled" onclick="submitVideoLimit()" id="chooseVideoAction">提交</button>
- <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
- </div>
- </div>
- </script>
- <!-- 替换图片 -->
- <script type="text/html" id="modify_file_html">
- <div class="layui-form multuple-list-box">
- <div class="layui-form-item">
- <label class="layui-form-label sm">本地图片</label>
- <ul class="layui-input-block multuple-list">
- <li class="multuple-list-img" id="modifyFile">
- <span class="bg-color">+</span>
- <span>点击添加图片</span>
- </li>
- </ul>
- </div>
- <div class="form-row sm">
- <button class="layui-btn layui-btn-disabled" disabled="disabled" id="modifyFileAction">提交</button>
- <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
- </div>
- </div>
- </script>
- <!-- 相册展示 -->
- <script type="text/html" id="list_html">
- {{# layui.each(d.list,function(index, item){ }}
- <li class="{$type}">
- <div class="album-pic">
- {if $type == 'img'}
- {{# if(item.is_thumb == 0){ }}
- <img layer-src="" src="{{ ns.img(item.pic_path + '?time=' + parseInt(new Date().getTime()/1000)) }}" alt="{{item.pic_name}}">
- {{# }else{ }}
- <img layer-src="{{ ns.img(item.pic_path + '?time=' + parseInt(new Date().getTime()/1000), 'big') }}" src="{{ ns.img(item.pic_path + '?time=' + parseInt(new Date().getTime()/1000), 'small') }}" alt="{{item.pic_name}}">
- {{# } }}
- {else if($type == 'video')}
- <video src="{{ ns.img(item.pic_path) }}" controls></video>
- {/if}
- </div>
- <div class="layui-form album-img-select">
- <div class="pic-name">{{item.pic_name ? item.pic_name : '未命名'}}</div>
- <div class="pic-spec">{{item.pic_spec}}</div>
- </div>
- <div class="album-img-operation {{ d.status == 0 ? 'layui-hide' : ''}}">
- <a href="javascript:;" class="text-color" data-pic-name="{{item.pic_name}}" data-id="{{item.pic_id}}" onclick="modifyImgName(this)">改名</a>|
- <a href="javascript:;" class="text-color" data-path="{{ns.img(item.pic_path)}}" onclick="copyLink(this)">链接</a>|
- <a href="javascript:;" class="text-color" data-id="{{item.pic_id}}" onclick="modifyImgGroup(this)">分组</a>|
- <a href="javascript:;" class="text-color" data-id="{{item.pic_id}}" onclick="modifyFile(this)">替换</a>|
- <a href="javascript:;" class="text-color delete-pic" data-id="{{item.pic_id}}" onclick="deleteImg(this)">删除</a>
- </div>
- <i class="iconfont iconxuanzhong"></i>
- </li>
- {{# }) }}
- </script>
- <!-- 图片分组 -->
- <script type="text/html" id="pic_group">
- <div class="layui-form img-group">
- {foreach $album_list_tree as $album_list_k => $album_list_v}
- {if !isset($album_list_v['child_list'])}
- <div class="layui-input-block one-group">
- {{# if(d.album_id == {$album_list_v.album_id} ){ }}
- <input type="radio" name="group" checked value="{$album_list_v.album_id}" title="{$album_list_v.album_name}">
- {{# }else{ }}
- <input type="radio" name="group" value="{$album_list_v.album_id}" title="{$album_list_v.album_name}">
- {{# } }}
- </div>
- {else /}
- <input type="radio" name="group" value="{$album_list_v.album_id}" title="{$album_list_v.album_name}">
- <!-- <div class="layui-input-block one-group">{$album_list_v['album_name']}</div>-->
- {foreach $album_list_v['child_list'] as $k => $v}
- <div class="layui-input-block two-group">
- {{# if(d.album_id == {$v.album_id} ){ }}
- <input type="radio" name="group" checked value="{$v.album_id}" title="{$v.album_name}">
- {{# }else{ }}
- <input type="radio" name="group" value="{$v.album_id}" title="{$v.album_name}">
- {{# } }}
- </div>
- {/foreach}
- {/if}
- {/foreach}
- </div>
- </script>
- <!-- 复制链接 -->
- <script type="text/html" id="copy_path">
- <div class="layui-form">
- <div class="layui-input-block">
- <input type="text" class="len-long layui-input link-input" name="" id="path_file" value="{{d}}" readonly >
- <button class="layui-btn layui-btn-primary" onclick="JScopy()">复制</button>
- </div>
- </div>
- </script>
- <!-- 添加分组 -->
- <script type="text/html" id="addGroup">
- <div class="layui-form">
- <div class="layui-form-item">
- <label class="layui-form-label mid">上级分组</label>
- <div class="layui-input-block len-mid">
- <select name="pid">
- <option value="0">顶级分组</option>
- {foreach $album_list as $k => $v}
- {if $v['level'] == 1 && $v['type'] == $type}
- <option value="{$v['album_id']}" >{$v['album_name']}</option>
- {/if}
- {/foreach}
- </select>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label mid"><span class="required">*</span>分组名称:</label>
- <div class="layui-input-block">
- <input name="album_name" type="text" placeholder="请输入分组名称" lay-verify="required" class="layui-input len-mid">
- </div>
- </div>
- <div class="form-row mid">
- <button class="layui-btn" lay-submit lay-filter="add_group">保存</button>
- <button class="layui-btn layui-btn-primary" onclick="closeLayer()">返回</button>
- </div>
- </div>
- </script>
- <script>
- var form, upload, laytpl, layer, laypage, layer_one,element,tree,
- picture_arr = [],
- uploadListIns,
- initIdent= true;
- limit = 14,
- album_list_count = 0,
- album_id = 0;
- var repeat_flag = false;
- $(function() {
- layui.use(['form', 'laytpl', 'laypage', 'layer', 'upload','element','tree'], function() {
- form = layui.form;
- laytpl = layui.laytpl;
- laypage = layui.laypage;
- element = layui.element;
- layer = layui.layer;
- upload = layui.upload;
- tree = layui.tree;
- init(); //初始化数据
- form.render();
- element.init();
- //监听图片搜索
- form.on('submit(search)', function() {
- getFileAlbumList(1, limit); //图片加载
- });
- /**
- * 全选
- */
- form.on("checkbox(allChoose)", function(data) {
- if (data.elem.checked) {
- $('.album-img-box li').addClass('selected');
- } else {
- $('.album-img-box li').removeClass('selected');
- }
- });
- /**
- * 添加分组
- */
- form.on('submit(add_group)', function(data) {
- if (repeat_flag) return false;
- repeat_flag = true;
- data.field.type = "{$type}";
- $.ajax({
- url: ns.url("shop/Album/addAlbum"),
- data: data.field,
- type: "POST",
- dataType: "JSON",
- success: function(res) {
- layer.msg(res.message);
- flag_add_group = false;
- if (res.code == 0) {
- location.reload();
- }
- }
- })
- return false;
- });
- element.on('event(albumList)', function (data){
- console.log(data)
- });
- });
- });
- /**
- * 初始化数据
- */
- function init() {
- albumList(); //相册分组
- // getFileAlbumList(1, limit); //图片加载
- }
-
- /**
- * 多图上传
- */
- function uploadImg() {
- var imageArray=1;
- laytpl($("#multuple_html").html()).render({}, function(html) {
- layer_one = layer.open({
- type: 1,
- area: ['580px', '430px'],
- title: '本地上传',
- content: html,
- cancel: function() {
- $("#chooseListAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
- },
- success: function(res) {
- //上传图片
- upload.render({
- elem: '#ImgUpload',
- url: ns.url("shop/upload/album"),
- data: {
- album_id: album_id,
- is_thumb:1,
- },
- exts:'jpg|jpeg|png|gjf|webp|bmp|tif',
- multiple: true,
- auto: false,
- bindAction: '#chooseListAction',
- choose: function(obj) {
- imageArray=1;
- //将每次选择的文件追加到文件队列
- var files = this.files = obj.pushFile();
- //预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
- obj.preview(function(index, file, result) {
- this.num=index;
- //追加预览图片
- var html = '';
- html += '<li class="multuple-list-img upload-wrap" index="' + index + '">';
- html += '<img layer-src class="multuple-list-image" src="' + result + '" alt="' + file.name + '">';
- html += '<span class="upload-close-modal" id="upload_img_' + index + '">×</span>';
- html += '<div class="upload-image-curtain">50%</div>';
- html += '<div class="tips"></div>';
- html += '</li>';
- $(".multuple-list").prepend(html);
- //删除预览图片
- $("#upload_img_" + index).bind("click", function() {
- delete files[index];
- delete picture_arr[index]; //删除所选队列
- $(this).parent('.upload-wrap').remove();
- // uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
- //禁止点击
- if ($(".multuple-list li").length <= 1) {
- $("#chooseListAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
- }
- });
- //开启点击
- if ($(".multuple-list li").length > 1) {
- $("#chooseListAction").addClass("bg-color").removeClass("layui-btn-disabled").removeAttr("disabled");
- }
- loadImgMagnify();
- });
- },
- done: function(res,index) {
- let data=$('.multuple-list-image');
- // 禁止点击
- picture_arr.push(res.data);
- var image_box = $(".upload-wrap[index='" + index + "']").parent().find(".upload-image-curtain");
- var image_tips = $(".upload-wrap[index='" + index + "']").parent().find(".tips");
- image_box.text("上传汇总");
- image_box.text("50%");
- image_box.show();
- if (res.code >= 0) {
- setTimeout(function() {
- image_box.text("100%");
- }, 500);
- setTimeout(function() {
- getFileAlbumList(1, limit);
- updateAlbumNum(album_id);
- layer.close(layer_one)
- }, 1000);
- return delete this.files[index]; //删除文件队列已经上传成功的文件
- } else {
- setTimeout(function() {
- image_box.text("上传失败");
- image_tips.text(res.message);
- layer.msg(res.message);
- }, 500);
- }
- if(imageArray==data.length){
- $("#chooseListAction").addClass("bg-color").removeClass("layui-btn-disabled").removeAttr("disabled");
- imageArray=1;
- return false
- }
- imageArray++
- }
- });
- }
- })
- });
- }
- /**
- * 视频上传
- */
- function uploadVideo() {
- var imageArray = 1;
- laytpl($("#video_html").html()).render({}, function (html) {
- layer_one = layer.open({
- type: 1,
- area: ['580px', '430px'],
- title: '本地上传',
- content: html,
- cancel: function () {
- $("#chooseVideoAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
- },
- success: function (res) {
- //上传视频
- upload.render({
- elem: '#VideoUpload',
- url: ns.url("shop/upload/videoToAlbum"),
- data: {
- album_id: album_id,
- is_thumb: 1,
- },
- multiple: true,
- auto: false,
- accept: 'video',
- size: 50 * 1024,
- bindAction: '#chooseVideoAction',
- choose: function (obj) {
- imageArray = 1;
- //将每次选择的文件追加到文件队列
- var files = this.files = obj.pushFile();
- //预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
- obj.preview(function (index, file, result) {
- this.num = index;
- //追加预览图片
- var html = '';
- html += '<li class="multuple-list-img upload-wrap" index="' + index + '">';
- html += '<video class="multuple-list-image" src="' + result + '" alt="' + file.name + '"></video>';
- html += '<span class="upload-close-modal" id="upload_img_' + index + '">×</span>';
- html += '<div class="upload-image-curtain">50%</div>';
- html += '<div class="tips"></div>';
- html += '</li>';
- $(".multuple-list").prepend(html);
- //删除预览图片
- $("#upload_img_" + index).bind("click", function () {
- delete files[index];
- delete picture_arr[index]; //删除所选队列
- $(this).parent('.upload-wrap').remove();
- // uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
- //禁止点击
- if ($(".multuple-list li").length <= 1) {
- $("#chooseListAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
- }
- });
- //开启点击
- if ($(".multuple-list li").length > 1) {
- $("#chooseVideoAction").addClass("bg-color").removeClass("layui-btn-disabled").removeAttr("disabled");
- }
- });
- },
- done: function (res, index) {
- let data = $('.multuple-list-image');
- // 禁止点击
- picture_arr.push(res.data);
- var image_box = $(".upload-wrap[index='" + index + "']").parent().find(".upload-image-curtain");
- var image_tips = $(".upload-wrap[index='" + index + "']").parent().find(".tips");
- image_box.text("上传汇总");
- image_box.text("50%");
- image_box.show();
- if (res.code >= 0) {
- setTimeout(function () {
- image_box.text("100%");
- }, 500);
- setTimeout(function () {
- getFileAlbumList(1, limit);
- updateAlbumNum(album_id);
- layer.close(layer_one)
- }, 1000);
- return delete this.files[index]; //删除文件队列已经上传成功的文件
- } else {
- setTimeout(function () {
- image_box.text("上传失败");
- image_tips.text(res.message);
- layer.msg(res.message);
- }, 500);
- }
- if (imageArray == data.length) {
- $("#chooseVideoAction").addClass("bg-color").removeClass("layui-btn-disabled").removeAttr("disabled");
- imageArray = 1;
- return false
- }
- imageArray++
- }
- });
- }
- })
- });
- }
- // 上传图片是禁止操作
- function submitOne(){
- $("#chooseListAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled","disabled");
- $(".upload-image-curtain").css('display','block').text('等待中')
- // var image_box = $(".upload-wrap").parent().find(".upload-image-curtain");
- }
- // 上传视频是禁止操作
- function submitVideoLimit(){
- $("#chooseVideoAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled","disabled");
- $(".upload-image-curtain").css('display','block').text('等待中')
- // var image_box = $(".upload-wrap").parent().find(".upload-image-curtain");
- }
- function modifyFile(data) {
- if('{$type}' == 'img'){
- laytpl($("#modify_file_html").html()).render({}, function(html) {
- layer_one = layer.open({
- type: 1,
- area: ['580px', '430px'],
- title: '替换照片',
- content: html,
- cancel: function() {
- $("#modifyFileAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
- },
- success: function(res) {
- //上传图片
- upload.render({
- elem: '#modifyFile',
- url: ns.url("shop/upload/modifyFile"),
- data: {
- album_id: album_id,
- pic_id: $(data).attr('data-id')
- },
- multiple: false,
- auto: false,
- bindAction: '#modifyFileAction',
- choose: function(obj) {
- //将每次选择的文件追加到文件队列
- var files = this.files = obj.pushFile();
- //预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
- obj.preview(function(index, file, result) {
- //追加预览图片
- var html = '';
- html += '<li class="multuple-list-img upload-wrap" index="' + index + '">';
- html += '<img src="' + result + '" alt="' + file.name + '">';
- html += '<span class="upload-close-modal" id="upload_img_' + index + '">×</span>';
- html += '<div class="upload-image-curtain">50%</div>';
- html += '<div class="tips"></div>';
- html += '</li>';
- $(".multuple-list").prepend(html);
- //删除预览图片
- $("#upload_img_" + index).bind("click", function() {
- delete files[index];
- delete picture_arr[index]; //删除所选队列
- $(this).parent('.upload-wrap').remove();
- // uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
- //禁止点击
- if ($(".multuple-list li").length <= 1) {
- $("#modifyFileAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
- //未选择图片时,显示添加按钮
- $("#modifyFile").show();
- }
- });
- //禁止点击
- if ($(".multuple-list li").length > 1) {
- $("#modifyFileAction").addClass("bg-color").removeClass("layui-btn-disabled").removeAttr("disabled");
- //隐藏添加按钮,仅替换一张图片
- $("#modifyFile").hide();
- }
- });
- },
- before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
- $("#modifyFileAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled","disabled");
- },
- done: function(res, index) {
- picture_arr.push(res.data);
- var image_box = $(".upload-wrap[index='" + index + "']").parent().find(".upload-image-curtain");
- var image_tips = $(".upload-wrap[index='" + index + "']").parent().find(".tips");
- image_box.text("50%");
- image_box.show();
- if (res.code >= 0) {
- setTimeout(function() {
- image_box.text("100%");
- }, 500);
- setTimeout(function() {
- getFileAlbumList(1, limit);
- layer.close(layer_one);
- }, 1000);
- return delete this.files[index]; //删除文件队列已经上传成功的文件
- } else {
- setTimeout(function() {
- image_box.text("上传失败");
- image_tips.text(res.message);
- layer.close(layer_one);
- }, 500);
- }
- },
- allDone: function(obj){ //当文件全部被提交后,才触发
- $("#modifyFileAction").addClass("bg-color").removeClass("layui-btn-disabled").removeAttr("disabled");
- }
- });
- }
- })
- });
- }else{
- modifyVideoFile(data);
- }
- }
- function modifyVideoFile(data) {
- laytpl($("#video_html").html()).render({}, function(html) {
- layer_one = layer.open({
- type: 1,
- area: ['580px', '430px'],
- title: '替换视频',
- content: html,
- cancel: function() {
- $("#chooseVideoAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
- },
- success: function(res) {
- //上传图片
- upload.render({
- elem: '#VideoUpload',
- url: ns.url("shop/upload/modifyVideoFile"),
- data: {
- album_id: album_id,
- pic_id: $(data).attr('data-id')
- },
- multiple: false,
- auto: false,
- accept: 'video',
- size: 50 * 1024,
- bindAction: '#chooseVideoAction',
- choose: function(obj) {
- //将每次选择的文件追加到文件队列
- var files = this.files = obj.pushFile();
- //预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
- obj.preview(function(index, file, result) {
- //追加预览图片
- var html = '';
- html += '<li class="multuple-list-img upload-wrap" index="' + index + '">';
- html += '<video class="multuple-list-image" src="' + result + '" alt="' + file.name + '"></video>';
- html += '<span class="upload-close-modal" id="upload_img_' + index + '">×</span>';
- html += '<div class="upload-image-curtain">50%</div>';
- html += '<div class="tips"></div>';
- html += '</li>';
- $(".multuple-list").prepend(html);
- //删除预览图片
- $("#upload_img_" + index).bind("click", function() {
- delete files[index];
- delete picture_arr[index]; //删除所选队列
- $(this).parent('.upload-wrap').remove();
- // uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
- //禁止点击
- if ($(".multuple-list li").length <= 1) {
- $("#chooseVideoAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
- //未选择图片时,显示添加按钮
- $("#modifyFile").show();
- }
- });
- //禁止点击
- if ($(".multuple-list li").length > 1) {
- $("#chooseVideoAction").addClass("bg-color").removeClass("layui-btn-disabled").removeAttr("disabled");
- //隐藏添加按钮,仅替换一张图片
- $("#modifyFile").hide();
- }
- });
- },
- done: function(res, index) {
- picture_arr.push(res.data);
- var image_box = $(".upload-wrap[index='" + index + "']").parent().find(".upload-image-curtain");
- var image_tips = $(".upload-wrap[index='" + index + "']").parent().find(".tips");
- image_box.text("50%");
- image_box.show();
- if (res.code >= 0) {
- setTimeout(function() {
- image_box.text("100%");
- }, 500);
- setTimeout(function() {
- getFileAlbumList(1, limit);
- layer.close(layer_one);
- }, 1000);
- return delete this.files[index]; //删除文件队列已经上传成功的文件
- } else {
- setTimeout(function() {
- image_box.text("上传失败");
- image_tips.text(res.message);
- layer.close(layer_one);
- }, 500);
- }
- }
- });
- }
- })
- });
- }
- /**
- * 图片加载
- */
- function getFileAlbumList(page, limit) {
- $.ajax({
- url: ns.url("shop/Album/lists"),
- type: "POST",
- dataType: "JSON",
- async: false,
- data: {
- album_id: $('.album-list .layui-tree-txt.selected').attr('data-album'),
- pic_name: $(".album-img-sreach").val(),
- limit,
- page
- },
- success: function(res) {
- res.data.status = $('.album-content-title .edit').attr('data-status');
- laytpl($("#list_html").html()).render(res.data, function(html) {
- $(".album-img-box").html(html);
- loadImgMagnify();
- });
- if(initIdent){
- album_list_count = res.data.list.length;
- $(".default-group .num").text(album_list_count);
- initIdent = false;
- }
- $("#paged").empty();
- if (res.data.count > 0) {
- //调用分页
- laypage.render({
- elem: "paged",
- count: res.data.count,
- curr: page, //当前页
- limit: limit,
- jump: function(obj, first) {
- if (!first) {
- getFileAlbumList(obj.curr, obj.limit);
- }
- form.render('checkbox');
- }
- })
- }
- }
- })
- }
- function switchGroup(obj){
- $('.album-list .selected').removeClass('selected text-color');
- $(obj).addClass('selected text-color');
- album_id = $(obj).data('id');
- album_name = $(obj).data('name');
- $("#album_name").empty().html(album_name);
- getFileAlbumList(1, limit);
- }
- /**
- * 相册分组
- */
- function albumList(num = '') {
- $.ajax({
- url: ns.url("shop/Album/getAlbumList"),
- type: 'POST',
- async: false,
- dataType: 'JSON',
- data:{'type' : "{$type}"},
- success: function(res) {
- var albumList = res.data;
- laytpl($("#album_list").html()).render(albumList, function(html) {
- $(".album-list ul").html(html);
- });
- if(albumList.length) {
- album_id = albumList[0].child ? albumList[0].child.toString() : albumList[0]['album_id'];
- album_name = albumList[0]['album_name'];
- getFileAlbumList(1, limit); //图片加载
- }
- }
- });
- }
- /**
- * 添加分组
- */
- var flag_add_group = false;
- function addGrouping() {
- if (flag_add_group) return;
- flag_add_group = true;
- var add_attr = $("#addGroup").html();
- laytpl(add_attr).render({}, function(html) {
- add_attr_index = layer.open({
- title: '添加分组',
- skin: 'layer-tips-class add-group',
- type: 1,
- area: ['500px', '250px'],
- content: html,
- success: function () {
- flag_add_group = false;
- form.render();
- },
- error: function () {
- flag_add_group = false;
- }
- });
- });
- }
- function closeLayer() {
- layer.closeAll();
- }
- /**
- * 修改分组
- */
- var flag_modify_group = false;
- function modifyGrouping() {
- layer.prompt({
- formType: 3,
- title: '修改分组名称',
- area: ["350px"]
- }, function(value) {
- if (flag_modify_group) return;
- flag_modify_group = true;
- $.ajax({
- url: ns.url("shop/Album/editAlbum"),
- data: {
- "album_name": value,
- album_id
- },
- type: "POST",
- dataType: "JSON",
- success: function(res) {
- layer.msg(res.message);
- flag_modify_group = false;
- if (res.code == 0) {
- location.reload();
- }
- }
- })
- })
- }
- /**
- * 更新分组图片数量
- */
- function updateAlbumNum(album_id){
- $.ajax({
- type: "POST",
- async: true,
- url: ns.url("shop/Album/albumInfo"),
- data: {
- album_id
- },
- dataType: "JSON",
- success: function(res) {
- if (res.code == 0 && res.data) {
- $('[data-id="'+album_id+'"]').find('.num').text(res.data.num);
- }
- }
- });
- }
- /**
- * 删除分组
- */
- var flag_delete_group = false;
- function deleteGrouping() {
- layer.confirm('仅删除分组,不删除图片,组内图片将自动归入默认分组', {
- btn: ['确定', '取消']
- }, function() {
- if (flag_delete_group) return;
- flag_delete_group = true;
- $.ajax({
- type: "POST",
- async: true,
- url: ns.url("shop/Album/deleteAlbum"),
- data: {
- album_id
- },
- dataType: "JSON",
- success: function(data) {
- flag_delete_group = false;
- layer.msg(data.message);
- if (data.code == 0) {
- location.reload();
- }
- }
- });
- }, function() {
- layer.close();
- });
- }
-
- /**
- * 修改图片名字
- */
- var flag_modify_pic;
- function modifyImgName(data) {
- var type = '{$type}' == 'img' ? '图片' : '视频';
- layer.prompt({
- formType: 3,
- title: '修改' + type + '名称',
- area: ["640px"],
- value: $(data).attr('data-pic-name'),
- }, function(value) {
- if (flag_modify_pic) return;
- flag_modify_pic = true;
- $.ajax({
- url: ns.url("shop/Album/modifyPicName"),
- data: {
- pic_name: value,
- pic_id: $(data).attr('data-id'),
- album_id,
- },
- type: "POST",
- dataType: "JSON",
- success: function(res) {
- layer.msg(res.message);
- flag_modify_pic = false;
- if (res.code == 0) {
- getFileAlbumList(1, limit);
- layer.closeAll('page');
- }
- }
- })
- })
- }
- /**
- * 生成缩略图
- */
- function thumbBatch(data){
- var pic_ids = [],
- url = '';
- if (!data) {
- $("input[data-is_thumb='0'][name='check[]']:checked").each(function(index, item) {
- pic_ids.push($(item).val());
- });
- }else{
- pic_ids.push($(data).attr("data-id"));
- }
- pic_ids = pic_ids.toString();
- if(pic_ids==''){
- layer.msg("请选择未裁剪图片再进行操作");
- return false;
- }
- layer.confirm('是否需要生成缩略图', {
- btn: ['确定', '取消']
- },function () {
- $.ajax({
- url:ns.url("shop/Album/thumbBatch"),
- data:{
- pic_id: pic_ids,
- },
- type:"POST",
- dataType: "JSON",
- success: function(data) {
- flag_delete_group = false;
- layer.msg(data.message);
- if (data.code == 0) {
- location.reload();
- }
- }
- });
- }, function() {
- layer.close();
- });
- }
-
- /**
- * 修改图片分组
- */
- function modifyImgGroup(data) {
- var pic_ids = [],
- url = '',
- type = '{$type}' == 'img' ? '图片' : '视频';
- if (!data) {
- $('.album-img-box li.selected').each(function () {
- pic_ids.push($(this).find('.delete-pic').attr("data-id"));
- })
- }else{
- pic_ids.push($(data).attr("data-id"));
- }
- url = ns.url("shop/Album/modifyFileAlbum");
- if(pic_ids==''){
- layer.msg("请选择"+ type +"再进行操作");
- return false;
- }
- laytpl($("#pic_group").html()).render({album_id}, function(html) {
- layer.open({
- type: 1,
- title: '修改'+ type +'分组',
- area: ["350px"],
- btn: ['保存', '取消'],
- content: html,
- yes: function(index, layero) {
- $.ajax({
- url: url,
- type: 'POST',
- async: false,
- dataType: 'JSON',
- data: {
- pic_id: pic_ids.toString(),
- album_id: $(".img-group input[name='group']:checked").val(),
- },
- success: function(res) {
- layer.msg(res.message);
- if (res.code == 0) {
- getFileAlbumList(1, limit);
- updateAlbumNum(album_id);
- updateAlbumNum($(".img-group input[name='group']:checked").val());
- layer.closeAll('page');
- }
- }
- })
- }
- });
- form.render();
- })
- }
- /**
- * 删除图片
- */
- var flag_delete_img = false;
- function deleteImg(data) {
- var pic_ids = [],
- url = '',
- type = '{$type}' == 'img' ? '图片' : '视频';
- if (!data) {
- $('.album-img-box li.selected').each(function () {
- pic_ids.push($(this).find('.delete-pic').attr("data-id"));
- })
- }else{
- pic_ids.push($(data).attr("data-id"));
- }
- pic_ids = pic_ids.toString();
- url = ns.url("shop/Album/deleteFile");
- if(pic_ids==''){
- layer.msg("请选择"+ type +"再进行操作");
- return false;
- }
- layer.confirm('删除'+ type +'会连本地存储或云存储的'+ type +'也删掉,请谨慎操作!', {
- btn: ['确定', '取消']
- }, function() {
- if (flag_delete_img) return;
- flag_delete_img = true;
- $.ajax({
- type: "POST",
- async: true,
- url,
- data: {
- pic_id: pic_ids,
- album_id: album_id
- },
- dataType: "JSON",
- success: function(data) {
- flag_delete_img = false;
- layer.msg(data.message);
- if (data.code == 0) {
- getFileAlbumList(1, limit);
- updateAlbumNum(album_id);
- layer.closeAll('page');
- }
- }
- });
- }, function() {
- layer.close();
- });
- }
- /**
- * 链接
- */
- function copyLink(data) {
- laytpl($("#copy_path").html()).render($(data).attr("data-path"), function(html) {
- layer.open({
- type: 1,
- area: ["800px"],
- title: '复制链接',
- content: html,
- })
- })
- }
- $('body').on(' mouseenter','.upload-image-curtain',function(){
- $(this).siblings(".tips").show();
- });
- $('body').on(' mouseleave','.upload-image-curtain',function(){
- $(this).siblings(".tips").hide();
- });
- function JScopy() {
- ns.copy("path_file", function(res) {
- $("#hidden_image_path").val(res.url);
- });
- }
- $('body').on('click', '.album-img-box li .album-pic', function () {
- if ($('.album-content-title .edit').attr('data-status') == 0) return;
- if ($(this).parents('li').hasClass('selected')) {
- $(this).parents('li').removeClass('selected')
- } else {
- $(this).parents('li').addClass('selected')
- }
- });
- $('.album-content-title .edit').click(function () {
- if ($(this).attr('data-status') == 1) {
- $(this).attr('data-status', 0);
- $(this).text('编辑');
- $('.album-img-operation,.album-action').addClass('layui-hide');
- $('.album-img-box li').removeClass('selected')
- } else {
- $(this).attr('data-status', 1);
- $(this).text('完成');
- $('.album-img-operation,.album-action').removeClass('layui-hide')
- }
- });
- function childSwitch(obj){
- $(obj).parents('.layui-tree-checkedFirst').find('.layui-tree-child').toggle(0,'linear',function (res){
- if($(obj).parents('.layui-tree-checkedFirst').hasClass('layui-tree-spread')){
- $(obj).parents('.layui-tree-checkedFirst').removeClass('layui-tree-spread');
- }else{
- $(obj).parents('.layui-tree-checkedFirst').addClass('layui-tree-spread');
- }
- });
- }
- </script>
- {/block}
|