305 lines
8.3 KiB
HTML
305 lines
8.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>图片上传</title>
|
|
{% include 'common/header.html' %}
|
|
</head>
|
|
<body class="pear-container">
|
|
<div class="layui-card">
|
|
<div class="layui-card-body">
|
|
<table id="photo_table" lay-filter="photo_table"></table>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
{#添加文件内容#}
|
|
<div id="add_view" class="layui-row layui-col-space15 " style="margin: 10px;display: none">
|
|
<div class="layui-col-md12">
|
|
<div class="layui-card">
|
|
<div class="layui-tab-content">
|
|
<fieldset class="layui-elem-field layui-field-title">
|
|
<legend>新增图片</legend>
|
|
</fieldset>
|
|
<form class="layui-form edit-form">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">
|
|
新增图片
|
|
</label>
|
|
<button type="button" class="layui-btn layui-btn-normal" id="logo-img">选择文件</button>
|
|
<button type="button" class="layui-btn" id="logo-upload-button">开始上传</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% include 'common/footer.html' %}
|
|
<script type="module">
|
|
import { FILE_API } from '/static/api/http.js'
|
|
|
|
layui.use(['table', 'form', 'jquery', 'element', 'form', 'upload'], function () {
|
|
let table = layui.table
|
|
let form = layui.form
|
|
let $ = layui.jquery
|
|
let upload = layui.upload
|
|
|
|
let cols = [
|
|
[
|
|
{
|
|
type: 'checkbox'
|
|
},
|
|
{
|
|
field: 'id',
|
|
title: 'ID',
|
|
sort: true,
|
|
align: 'center',
|
|
unresize: true,
|
|
width: 80
|
|
},
|
|
{
|
|
field: 'name',
|
|
title: '文件名称',
|
|
unresize: true,
|
|
align: 'center'
|
|
},
|
|
{
|
|
field: 'href',
|
|
title: '图片',
|
|
unresize: true,
|
|
align: 'center',
|
|
templet: (d) => {
|
|
return `<img class="photo" style="max-width: 100%;height: 100%;cursor: pointer;" lay-event="photo" src="${d.href}"></i>`
|
|
}
|
|
|
|
},
|
|
{
|
|
field: 'mime',
|
|
title: 'mime类型',
|
|
unresize: true,
|
|
align: 'center'
|
|
},
|
|
{
|
|
field: 'size',
|
|
title: '文件大小',
|
|
unresize: true,
|
|
align: 'center'
|
|
},
|
|
{
|
|
field: 'create_time',
|
|
title: '创建时间',
|
|
templet: (d) => `${layui.util.toDateString(d.create_time, 'yyyy-MM-dd HH:mm:ss')}`,
|
|
unresize: true,
|
|
align: 'center'
|
|
},
|
|
{
|
|
title: '操作',
|
|
toolbar: (d) => {
|
|
return `<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove">
|
|
<i class="layui-icon layui-icon-delete"></i>
|
|
</button>`
|
|
},
|
|
align: 'center',
|
|
unresize: true,
|
|
width: 200
|
|
}
|
|
]
|
|
]
|
|
|
|
table.render({
|
|
elem: '#photo_table',
|
|
url: FILE_API.PHOTOS(),
|
|
page: true,
|
|
cols: cols,
|
|
skin: 'line',
|
|
toolbar: (d) => {
|
|
return `<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="add">
|
|
<i class="layui-icon layui-icon-add-1"></i>
|
|
新增
|
|
</button>
|
|
<button class="pear-btn pear-btn-sm" lay-event="batchRemove">
|
|
<i class="layui-icon layui-icon-delete"></i>
|
|
删除
|
|
</button>`
|
|
},
|
|
defaultToolbar: [{
|
|
layEvent: 'refresh',
|
|
icon: 'layui-icon-refresh',
|
|
}, 'filter', 'print', 'exports']
|
|
})
|
|
|
|
table.on('tool(photo_table)', function (obj) {
|
|
if (obj.event === 'remove') {
|
|
window.remove(obj)
|
|
} else if (obj.event === 'photo') {
|
|
window.photo(obj)
|
|
}
|
|
})
|
|
|
|
table.on('toolbar(photo_table)', function (obj) {
|
|
if (obj.event === 'add') {
|
|
window.add()
|
|
} else if (obj.event === 'refresh') {
|
|
window.refresh()
|
|
} else if (obj.event === 'batchRemove') {
|
|
window.batchRemove(obj)
|
|
}
|
|
})
|
|
|
|
//弹出窗设置 自己设置弹出百分比
|
|
function screen () {
|
|
if (typeof width !== 'number' || width === 0) {
|
|
width = $(window).width() * 0.8
|
|
}
|
|
if (typeof height !== 'number' || height === 0) {
|
|
height = $(window).height() - 20
|
|
}
|
|
return [width + 'px', height + 'px']
|
|
}
|
|
|
|
window.add = function () {
|
|
layer.open({
|
|
type: 1,
|
|
maxmin: true,
|
|
title: '新增图片',
|
|
shade: 0.1,
|
|
area: screen(),
|
|
content: $('#add_view')
|
|
})
|
|
}
|
|
|
|
window.remove = function (obj) {
|
|
layer.confirm('确定要删除该图片', {
|
|
icon: 3,
|
|
title: '提示'
|
|
}, function (index) {
|
|
layer.close(index)
|
|
let loading = layer.load()
|
|
$.ajax({
|
|
url: FILE_API.PHOTO(obj.data['id']),
|
|
data: { id: obj.data['id'] },
|
|
dataType: 'json',
|
|
type: 'delete',
|
|
success: function (res) {
|
|
layer.close(loading)
|
|
if (res.success) {
|
|
layer.msg(res.msg, {
|
|
icon: 1,
|
|
time: 1000
|
|
}, function () {
|
|
obj.del()
|
|
})
|
|
} else {
|
|
layer.msg(res.msg, {
|
|
icon: 2,
|
|
time: 1000
|
|
})
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
window.batchRemove = function (obj) {
|
|
let data = table.checkStatus(obj.config.id).data
|
|
if (data.length === 0) {
|
|
layer.msg('未选中数据', {
|
|
icon: 3,
|
|
time: 1000
|
|
})
|
|
return false
|
|
}
|
|
var ids = []
|
|
var hasCheck = table.checkStatus('photo_table')
|
|
var hasCheckData = hasCheck.data
|
|
if (hasCheckData.length > 0) {
|
|
$.each(hasCheckData, function (index, element) {
|
|
ids.push(element.id)
|
|
})
|
|
}
|
|
layer.confirm('确定要删除这些图片', {
|
|
icon: 3,
|
|
title: '提示'
|
|
}, function (index) {
|
|
layer.close(index)
|
|
let loading = layer.load()
|
|
$.ajax({
|
|
url: FILE_API.PHOTOS(),
|
|
data: { ids: ids },
|
|
dataType: 'json',
|
|
type: 'POST',
|
|
success: function (res) {
|
|
layer.close(loading)
|
|
if (res.success) {
|
|
layer.msg(res.msg, {
|
|
icon: 1,
|
|
time: 1000
|
|
}, function () {
|
|
table.reload('photo_table')
|
|
})
|
|
} else {
|
|
layer.msg(res.msg, {
|
|
icon: 2,
|
|
time: 1000
|
|
})
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
window.refresh = function () {
|
|
table.reload('photo_table')
|
|
}
|
|
// 查看大图
|
|
window.photo = function (obj) {
|
|
if (!obj.data.href || obj.data.href === '') {
|
|
layer.msg('图片地址错误!')
|
|
return
|
|
}
|
|
var auto_img = {}
|
|
var img = new Image()
|
|
img.src = obj.data.href
|
|
img.onload = function () {
|
|
var max_height = $(window).height() - 100
|
|
var max_width = $(window).width()
|
|
var rate1 = max_height / img.height
|
|
var rate2 = max_width / img.width
|
|
var rate3 = 1
|
|
var rate = Math.min(rate1, rate2, rate3)
|
|
auto_img.height = img.height * rate
|
|
auto_img.width = img.width * rate
|
|
layer.open({
|
|
type: 1,
|
|
title: false,
|
|
area: ['auto'],
|
|
skin: 'layui-layer-nobg', //没有背景色
|
|
shadeClose: true,
|
|
content: `<img src="${obj.data['href']}" width="${auto_img.width}px" height="${auto_img.height}px">`
|
|
})
|
|
}
|
|
}
|
|
|
|
/*上次文件部分*/
|
|
// 选完文件后不自动上传
|
|
upload.render({
|
|
elem: '#logo-img'
|
|
, url: FILE_API.PHOTOS()
|
|
, auto: false
|
|
, exts: 'jpg|png|gif|bmp|jpeg'
|
|
, size: 1000
|
|
, bindAction: '#logo-upload-button'
|
|
, done: function (res) {
|
|
if (res.success) {
|
|
layer.msg(res.msg, { icon: 1, time: 500 }, function () {
|
|
layer.close(layer.index)//关闭最新的layer
|
|
location.reload()//当前页面刷新
|
|
})
|
|
} else {
|
|
layer.msg(res.msg, { icon: 2 })
|
|
}
|
|
}
|
|
})
|
|
})
|
|
</script>
|
|
</html> |