var pageCurr; layui.config({ base: baseUrl + "/static/layui/lay/modules/" }).use(['table','laydate', 'form', 'admin','upload',"element", 'xmSelect'], function(){ var table = layui.table; var $ = layui.jquery; var layer = layui.layer; var layDate = layui.laydate; var form = layui.form; var admin = layui.admin; var upload = layui.upload; var element = layui.element; // 数据渲染 tableIns = table.render({ elem: '#appVersion', headers: {token: localStorage.getItem('token')}, url: baseUrl+'/appVersion/list/auth', page: true, limit: 15, limits: [15, 30, 50, 100, 200, 500], toolbar: '#toolbar', cellMinWidth: 50, height: 'full-120', cols: [[ // {type: 'checkbox'}, {field: 'id', align: 'center',title: '',hide :true} ,{field: 'version', align: 'center',title: '版本号',hide :false} ,{field: 'path', align: 'center',title: 'app名称',hide :false} ,{field: 'latest$', align: 'center',title: '是否为最新版本',hide :false, templet:function (d){ if(d.latest == 0){ return ''; }else{ return '' } }} ,{field: 'type$', align: 'center',title: 'app类型',hide :false} ,{field: 'userName', align: 'center',title: '创建人员',hide :true} ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:400} ]], request: { pageName: 'curr', pageSize: 'limit' }, parseData: function (res) { return { 'code': res.code, 'msg': res.msg, 'count': res.data.total, 'data': res.data.records } }, response: { statusCode: 200 }, done: function(res, curr, count) { if (res.code === 403) { top.location.href = baseUrl+"/"; } pageCurr=curr; limit(); } }); $("#data-btn-file2").on("click", (e) => { $("#data-btn-upload").click() }); var _uploadFile = null //响应上传 $("#data-btn-upload").on("change",(evt) => { var files = evt.target.files; if(files==null || files.length==0){ alert("No files wait for import"); return; } var file = files[0] var tr = $(['' ,'' + file.name +'' ,''+ (file.size/1014).toFixed(1) +'kb' ,'' +'' ,'
' ,'' ,'' ,'' ,'' ,'' ,''].join('')); //删除 tr.find('.demo-delete').on('click', function(){ tr.remove(); $("#data-btn-upload").val("") _uploadFile = null }); $('#data-btn-file3').append(tr) element.progress('progress-demo-'+ file.lastModified, '0%'); //执行进度条。 element.init(); _uploadFile = file }) //开始上传 $("#testListAction").on("click", async (e) => { if (_uploadFile == null) { return false; } var index = layer.load(1, { shadeClose: false, title: '上传中..', shade: [0.5,'#000'] }); var file = _uploadFile putObject(file,(p) => { element.progress('progress-demo-'+ file.lastModified, (Math.round(p * 100)) + "%"); //执行进度条。 }).then((result) => { var filename = result.name layer.msg('上传成功', {icon: 1}); $("#upload-file-id-" + file.lastModified).html("上传成功") $("#upload-filename-id-" + file.lastModified).html(filename) let token = localStorage.getItem("token"); $.ajax({ url: baseUrl+"/appVersion/downloadApp/url/insert/file/auth", headers: {'token': localStorage.getItem('token')}, data: { 'appId': $('.layui-layer-title').text(), 'filename': filename, 'filesize': file.size }, method: 'POST', success: function (res) { if (res.code === 200){ layer.close(index) // console.log(res) } else if (res.code === 403){ top.location.href = baseUrl+"/"; } else { layer.msg(res.msg) } } }); }).catch((e) => { // console.log(e) layer.msg('上传失败', {icon: 2}); $("#upload-file-id-" + file.lastModified).html("上传失败") }) //清空file $("#data-btn-upload").val("") _uploadFile = null }); // 监听排序事件 table.on('sort(appVersion)', function (obj) { var searchData = {}; $.each($('#search-box [name]').serializeArray(), function() { searchData[this.name] = this.value; }); searchData['orderByField'] = obj.field; searchData['orderByType'] = obj.type; tableIns.reload({ where: searchData, page: {curr: 1} }); }); // 监听头工具栏事件 table.on('toolbar(appVersion)', function (obj) { var checkStatus = table.checkStatus(obj.config.id).data; switch(obj.event) { case 'addData': showEditModel(); break; case 'deleteData': if (checkStatus.length === 0) { layer.msg('请选择要删除的数据', {icon: 2}); return; } del(checkStatus.map(function (d) { return d.id; })); break; case 'exportData': admin.confirm('确定导出Excel吗', {shadeClose: true}, function(){ var titles=[]; var fields=[]; obj.config.cols[0].map(function (col) { if (col.type === 'normal' && col.hide === false && col.toolbar == null) { titles.push(col.title); fields.push(col.field); } }); var exportData = {}; $.each($('#search-box [name]').serializeArray(), function() { exportData[this.name] = this.value; }); var param = { 'appVersion': exportData, 'fields': fields }; $.ajax({ url: baseUrl+"/appVersion/export/auth", headers: {'token': localStorage.getItem('token')}, data: JSON.stringify(param), dataType:'json', contentType:'application/json;charset=UTF-8', method: 'POST', success: function (res) { layer.closeAll(); if (res.code === 200) { table.exportFile(titles,res.data,'xls'); } else if (res.code === 403) { top.location.href = baseUrl+"/"; } else { layer.msg(res.msg, {icon: 2}) } } }); }); break; } }); // 监听行工具事件 table.on('tool(appVersion)', function(obj){ var data = obj.data; switch (obj.event) { case "uploadLink": // 打开弹窗 // 构建带参数的内容 layer.open({ type: 1, title: '上传文件-'+data.id, content: $('#myModal') }); // 获取路径下的文件列表,使用 jQuery 的 ajax 方法 $.ajax({ url: '/appVersion/downloadApp/url/view/file/auth', headers: {'token': localStorage.getItem('token')}, data:{ appId:data.id, }, success: function(response) { if (response.code==200){ var targetTable = document.getElementById("data-btn-file3"); // var targetTable1 = document.getElementById("layui-layer2"); // // 获取文本内容 // var text = targetTable1.textContent.trim(); // console.log(text); // 输出 '上传文件-20' targetTable.innerHTML = ''; // 将获取到的文件列表添加到文件队列中进行显示 response.data.forEach(function(file,index) { // 创建tr元素 var tr = document.createElement("tr"); tr.id = "upload-"+index; tr.innerHTML = '' + file.name + '' + '' + (file.size / 1024).toFixed(1) + 'kb' + '' + file.userName + '' // + '
' + ''+'已完成'+'' + '' + '' // + '' + '下载' + ''; // 将tr元素添加到目标table中 targetTable.appendChild(tr); }); }else { console.log('Failed to get file list error.'); } }, error: function() { console.log('Failed to get file list.'); } }); break; case 'edit': showEditModel(data); break; case "del": del([data.id]); break; case "upload": $("#appFile").click() $("#uploadFile").on("change",(evt) => { var files = evt.target.files; let formData = new FormData($("#uploadFile")[0]); formData.append("id", data.id); $.ajax({ url: baseUrl+"/appVersion/uploadApp/auth", headers: {'token': localStorage.getItem('token')}, data: formData, method: 'POST', cache: false, processData: false, contentType: false, success: function (res) { if (res.code == 200) { layer.msg('上传成功',{time:1000},() => { parent.location.reload() }) }else{ layer.msg(res.msg,{time:1000},() => { parent.location.reload() }) } } }) }) break; case "download": if (data.path == "" || data.path == null) { layer.msg('请先上传app文件',{time:1000},() => { parent.location.reload() }) }else{ window.open(baseUrl + "/appVersion/downloadApp/" + data.path); } break; } }); // 点击下载按钮时触发文件下载 $('#data-btn-file3').on('click', 'a', function() { var downloadUrl = $(this).attr('href'); let url = getObjectUrl(downloadUrl) layer.msg("准备下载中", {icon: 1}); // location.href = url window.open(url) return false; // 阻止默认的链接跳转行为 }); /* 弹窗 - 新增、修改 */ function showEditModel(mData) { admin.open({ type: 1, area: '600px', title: (mData ? '修改' : '添加') + '订单状态', content: $('#editDialog').html(), success: function (layero, dIndex) { layDateRender(mData); form.val('detail', mData); form.on('submit(editSubmit)', function (data) { var loadIndex = layer.load(2); $.ajax({ url: baseUrl+"/appVersion/"+(mData?'update':'add')+"/auth", headers: {'token': localStorage.getItem('token')}, data: data.field, method: 'POST', success: function (res) { layer.close(loadIndex); if (res.code === 200){ layer.close(dIndex); layer.msg(res.msg, {icon: 1}); tableReload(); } else if (res.code === 403){ top.location.href = baseUrl+"/"; }else { layer.msg(res.msg, {icon: 2}); } } }) return false; }); $(layero).children('.layui-layer-content').css('overflow', 'visible'); layui.form.render('select'); } }); } /* 删除 */ function del(ids) { layer.confirm('确定要删除选中数据吗?', { skin: 'layui-layer-admin', shade: .1 }, function (i) { layer.close(i); var loadIndex = layer.load(2); $.ajax({ url: baseUrl+"/appVersion/delete/auth", headers: {'token': localStorage.getItem('token')}, data: {ids: ids}, method: 'POST', success: function (res) { layer.close(loadIndex); if (res.code === 200){ layer.msg(res.msg, {icon: 1}); tableReload(); } else if (res.code === 403){ top.location.href = baseUrl+"/"; } else { layer.msg(res.msg, {icon: 2}); } } }) }); } // 搜索 form.on('submit(search)', function (data) { pageCurr = 1; tableReload(false); }); // 重置 form.on('submit(reset)', function (data) { pageCurr = 1; clearFormVal($('#search-box')); tableReload(false); }); // 时间选择器 function layDateRender(data) { setTimeout(function () { layDate.render({ elem: '.layui-laydate-range' ,type: 'datetime' ,range: true }); }, 300); } layDateRender(); }); // 关闭动作 $(document).on('click','#data-detail-close', function () { parent.layer.closeAll(); }); function tableReload(child) { var searchData = {}; $.each($('#search-box [name]').serializeArray(), function() { searchData[this.name] = this.value; }); tableIns.reload({ where: searchData, page: {curr: pageCurr} }); }