refactor(rest-api):调整文件接口数据
This commit is contained in:
+27
-30
@@ -15,8 +15,18 @@ from applications.models import Photo
|
|||||||
file_api = Api(api_bp, prefix='/file')
|
file_api = Api(api_bp, prefix='/file')
|
||||||
|
|
||||||
|
|
||||||
@file_api.resource('/upload')
|
@file_api.resource('/photos')
|
||||||
class Upload(Resource):
|
class FilePhotos(Resource):
|
||||||
|
|
||||||
|
@authorize("admin:file:main", log=True)
|
||||||
|
def get(self):
|
||||||
|
page = request.args.get('page', type=int)
|
||||||
|
limit = request.args.get('limit', type=int)
|
||||||
|
photo_paginate = Photo.query.order_by(desc(Photo.create_time)).paginate(page=page, per_page=limit,
|
||||||
|
error_out=False)
|
||||||
|
data = marshal(photo_paginate.items, photo_fields)
|
||||||
|
return table_api(data=data, count=photo_paginate.total, code=0)
|
||||||
|
|
||||||
@authorize("admin:file:add", log=True)
|
@authorize("admin:file:add", log=True)
|
||||||
def post(self):
|
def post(self):
|
||||||
if 'file' in request.files:
|
if 'file' in request.files:
|
||||||
@@ -36,34 +46,8 @@ class Upload(Resource):
|
|||||||
|
|
||||||
@authorize("admin:file:delete", log=True)
|
@authorize("admin:file:delete", log=True)
|
||||||
def delete(self):
|
def delete(self):
|
||||||
_id = request.form.get('id')
|
"""图片批量删除"""
|
||||||
res = delete_photo_by_id(_id)
|
# TODO bugs 图片删除失败
|
||||||
if res:
|
|
||||||
return success_api(msg="删除成功")
|
|
||||||
else:
|
|
||||||
return fail_api(msg="删除失败")
|
|
||||||
|
|
||||||
|
|
||||||
@file_api.resource('/table')
|
|
||||||
class FileTable(Resource):
|
|
||||||
"""图片数据"""
|
|
||||||
|
|
||||||
@authorize("admin:file:main", log=True)
|
|
||||||
def get(self):
|
|
||||||
page = request.args.get('page', type=int)
|
|
||||||
limit = request.args.get('limit', type=int)
|
|
||||||
photo_paginate = Photo.query.order_by(desc(Photo.create_time)).paginate(page=page, per_page=limit,
|
|
||||||
error_out=False)
|
|
||||||
data = marshal(photo_paginate.items, photo_fields)
|
|
||||||
return table_api(data=data, count=photo_paginate.total, code=0)
|
|
||||||
|
|
||||||
|
|
||||||
@file_api.resource('/batch_remove')
|
|
||||||
class FileBatchRemove(Resource):
|
|
||||||
"""图片批量删除"""
|
|
||||||
|
|
||||||
@authorize("admin:file:delete", log=True)
|
|
||||||
def post(self):
|
|
||||||
ids = request.form.getlist('ids[]')
|
ids = request.form.getlist('ids[]')
|
||||||
photo_name = Photo.query.filter(Photo.id.in_(ids)).all()
|
photo_name = Photo.query.filter(Photo.id.in_(ids)).all()
|
||||||
upload_url = current_app.config.get("UPLOADED_PHOTOS_DEST")
|
upload_url = current_app.config.get("UPLOADED_PHOTOS_DEST")
|
||||||
@@ -75,3 +59,16 @@ class FileBatchRemove(Resource):
|
|||||||
return success_api(msg="删除成功")
|
return success_api(msg="删除成功")
|
||||||
else:
|
else:
|
||||||
return fail_api(msg="删除失败")
|
return fail_api(msg="删除失败")
|
||||||
|
|
||||||
|
|
||||||
|
@file_api.resource('/photo/<int:photo_id>')
|
||||||
|
class FileTable(Resource):
|
||||||
|
"""图片数据"""
|
||||||
|
|
||||||
|
@authorize("admin:file:delete", log=True)
|
||||||
|
def delete(self, photo_id):
|
||||||
|
res = delete_photo_by_id(photo_id)
|
||||||
|
if res:
|
||||||
|
return success_api(msg="删除成功")
|
||||||
|
else:
|
||||||
|
return fail_api(msg="删除失败")
|
||||||
|
|||||||
@@ -35,26 +35,20 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/html" id="toolbar">
|
<script type="text/html" id="toolbar">
|
||||||
{% if authorize("admin:file:add") %}
|
<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="add">
|
||||||
<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="add">
|
<i class="layui-icon layui-icon-add-1"></i>
|
||||||
<i class="layui-icon layui-icon-add-1"></i>
|
新增
|
||||||
新增
|
</button>
|
||||||
</button>
|
<button class="pear-btn pear-btn-sm" lay-event="batchRemove">
|
||||||
{% endif %}
|
<i class="layui-icon layui-icon-delete"></i>
|
||||||
{% if authorize("admin:file:delete") %}
|
删除
|
||||||
<button class="pear-btn pear-btn-sm" lay-event="batchRemove">
|
</button>
|
||||||
<i class="layui-icon layui-icon-delete"></i>
|
|
||||||
删除
|
|
||||||
</button>
|
|
||||||
{% endif %}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script type="text/html" id="user-bar">
|
<script type="text/html" id="user-bar">
|
||||||
{% if authorize("admin:file:delete") %}
|
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove">
|
||||||
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove">
|
<i class="layui-icon layui-icon-delete"></i>
|
||||||
<i class="layui-icon layui-icon-delete"></i>
|
</button>
|
||||||
</button>
|
|
||||||
{% endif %}
|
|
||||||
</script>
|
</script>
|
||||||
<script type="text/html" id="file-uploadTime">
|
<script type="text/html" id="file-uploadTime">
|
||||||
{{ ' {{layui.util.toDateString(d.create_time, "yyyy-MM-dd HH:mm:ss")}' |safe }}}
|
{{ ' {{layui.util.toDateString(d.create_time, "yyyy-MM-dd HH:mm:ss")}' |safe }}}
|
||||||
@@ -67,8 +61,12 @@
|
|||||||
let form = layui.form
|
let form = layui.form
|
||||||
let $ = layui.jquery
|
let $ = layui.jquery
|
||||||
let upload = layui.upload
|
let upload = layui.upload
|
||||||
|
|
||||||
let MODULE_PATH = '/api/v1/file/'
|
let MODULE_PATH = '/api/v1/file'
|
||||||
|
let FILE_API = {
|
||||||
|
'PHOTOS': () => `${MODULE_PATH}/photos`,
|
||||||
|
'PHOTO': (photo_id) => `${MODULE_PATH}/photo/${photo_id}`,
|
||||||
|
}
|
||||||
|
|
||||||
let cols = [
|
let cols = [
|
||||||
[
|
[
|
||||||
@@ -130,7 +128,7 @@
|
|||||||
|
|
||||||
table.render({
|
table.render({
|
||||||
elem: '#photo_table',
|
elem: '#photo_table',
|
||||||
url: MODULE_PATH + 'table',
|
url: FILE_API.PHOTOS(),
|
||||||
page: true,
|
page: true,
|
||||||
cols: cols,
|
cols: cols,
|
||||||
skin: 'line',
|
skin: 'line',
|
||||||
@@ -189,7 +187,7 @@
|
|||||||
layer.close(index)
|
layer.close(index)
|
||||||
let loading = layer.load()
|
let loading = layer.load()
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: MODULE_PATH + 'upload',
|
url: FILE_API.PHOTO(obj.data['id']),
|
||||||
data: { id: obj.data['id'] },
|
data: { id: obj.data['id'] },
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
type: 'delete',
|
type: 'delete',
|
||||||
@@ -237,7 +235,7 @@
|
|||||||
layer.close(index)
|
layer.close(index)
|
||||||
let loading = layer.load()
|
let loading = layer.load()
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: MODULE_PATH + "batch_remove",
|
url: FILE_API.PHOTOS(),
|
||||||
data: { ids: ids },
|
data: { ids: ids },
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
@@ -297,7 +295,7 @@
|
|||||||
// 选完文件后不自动上传
|
// 选完文件后不自动上传
|
||||||
upload.render({
|
upload.render({
|
||||||
elem: '#logo-img'
|
elem: '#logo-img'
|
||||||
, url: MODULE_PATH + "upload"
|
, url: FILE_API.PHOTOS()
|
||||||
, auto: false
|
, auto: false
|
||||||
, exts: 'jpg|png|gif|bmp|jpeg'
|
, exts: 'jpg|png|gif|bmp|jpeg'
|
||||||
, size: 1000
|
, size: 1000
|
||||||
|
|||||||
Reference in New Issue
Block a user