TaoLer/app/admin/view/addon/addons/index.html
2023-05-05 12:06:07 +08:00

203 lines
6.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>插件管理</title>
<link rel="stylesheet" href="/static/component/pear/css/pear.css" />
</head>
<body class="pear-container">
<div class="layui-card">
<div class="layui-card-body">
<table id="addons-list" lay-filter="addons-list"></table>
</div>
</div>
<script type="text/html" id="toolbar">
<div class="layui-btn-group">
<button class="layui-btn layui-btn-sm" lay-event="allAddons">全部</button>
<button class="layui-btn layui-btn-sm" lay-event="freeAddons">免费</button>
<button class="layui-btn layui-btn-sm" lay-event="payAddons">付费</button>
<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="installed">已安装</button>
<button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="add">离线安装</button>
</div>
</script>
<script type="text/html" id="addons-bar">
{{# if(d.have_newversion === 1){ }}
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="install" data-url="{:url('addon.addons/upgrade')}" data-userlogin="{:url('addon.addons/userLogin')}" data-ispay="{:url('addon.addons/isPay')}"><i class="layui-icon layui-icon-upload-circle"></i></a>
{{# } else { }}
{{# if(d.isInstall === 1) { }}
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="config" data-url="{:url('addon.addons/config')}"><i class="layui-icon layui-icon-set"></i></a>
{{# } else { }}
<a class="layui-btn layui-btn-xs" lay-event="install" data-url="{:url('addon.addons/install')}" data-userlogin="{:url('addon.addons/userLogin')}" data-ispay="{:url('addon.addons/isPay')}"><i class="layui-icon layui-icon-edit"></i></a>
<select id="vers{{d.name}}" name="sss" class="layui-border" lay-ignore lay-filter="versSelect">
{{# d.vers.forEach(function(item, index){ }}
<option value="{{ item }}">{{ item }}</option>
{{# }); }}
</select>
{{# } }}
{{# } }}
</script>
<script type="text/html" id="buttonStatus">
<input type="checkbox" name="{{d.name}}" lay-skin="switch" lay-filter="addonsStatus" lay-text="启动|禁用" {{# if(d.status == 1){ }} checked {{# } }} data-url="{:url('addon.addons/check')}">
</script>
<script type="text/html" id="addons-installed-tool">
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="config" data-url="{:url('addon.addons/config')}"><i class="layui-icon layui-icon-set"></i></a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="uninstall" data-url="{:url('addon.addons/uninstall')}"><i class="layui-icon layui-icon-delete"></i></a>
</script>
{include file="public/user_login" /}
<script src="/static/component/layui/layui.js"></script>
<script src="/static/component/pear/pear.js"></script>
<script>
var addonList = "{:url('addon.addons/getList')}";
layui.use(['addons','table','form','upload','toast'], function(){
var $ = layui.jquery
,table = layui.table
,form = layui.form
,upload = layui.upload;
var toast = layui.toast;
let LIST_URL = "{:url('addon.addons/list')}";
let cols = [[
{type: 'checkbox'},
{title: '序号', type: 'numbers'},
{field: 'title', title: '插件', width: 200},
{field: 'description', title: '简介', minWidth: 200},
{field: 'author', title: '作者', width: 100},
{field: 'price', title: '价格(元)', width: 85},
{field: 'downloads', title: '下载', width: 70},
{field: 'version', title: '版本', templet: '<div>{{d.version}} {{# if(d.have_newversion == 1){ }}<span class="layui-badge-dot"></span>{{# } }}</div>', width: 75},
{field: 'status', title: '在线', width: 70},
{title: '操作', width: 165, align: 'center', toolbar: '#addons-bar'}
]];
let col = [[
{type: 'numbers'},
{field: 'name', title: '插件', width: 120},
{field: 'title',title: '标题', width: 100},
{field: 'version', title: '版本'},
{field: 'author', title: '作者', width: 80},
{field: 'description', title: '简介', minWidth: 200},
{field: 'install', title: '安装', width: 100},
{field: 'ctime', title: '到期时间', width: 100},
{field: 'status', title: '状态', width: 95, templet: '#buttonStatus'},
{title: '操作', width: 160, 'align': 'center', toolbar: '#addons-installed-tool'}
]];
//渲染表格
var addonTable = table.render({
elem: "#addons-list",
toolbar: "#toolbar",
defaultToolbar: [],
url: LIST_URL,
cols: cols,
page: true,
limit: 15,
text: "对不起,加载出现异常!",
});
// table.on('tool(addons-list)',function(obj){
// console.log(obj)
// if (obj.event === 'remove') {
// window.remove(obj);
// } else if (obj.event === 'edit') {
// window.edit(obj);
// }
// })
table.on('toolbar(addons-list)', function(obj){
if(obj.event === 'installed'){
window.installed(obj.event);
} else if(obj.event === 'add'){
//window.add();
} else {
// all,free,pay
window.all(obj.event);
}
});
window.all = function (type) {
$.post(LIST_URL,{type: type}, function (res){
if(res.code === 0) {
// 重新渲染
table.reload('addons-list',{
url: LIST_URL,
where: {
type : type
},
cols: cols,
page: {
curr: 1 //重新从第 1 页开始
}
});
}
})
}
window.installed = function (type) {
$.get(LIST_URL,{type: type}, function (res){
if(res.code === 0) {
// 重新渲染
table.reload('addons-list',{
url: LIST_URL,
where: {
type : type
},
cols: col,
page: {
curr: 1 //重新从第 1 页开始
}
});
}
})
}
window.add = function(){
layer.open({
type: 2
,title: '添加插件'
,content: 'add.html'
,area: ['400px', '300px']
});
}
form.render('select'); // 渲染所在容器内的 select 元素
//监听版本选择
form.on('select(versSelect)', function(obj){
layer.tips(this.value + ' ' + this.name + ''+ obj.elem.checked, obj.othis);
});
// 启动禁用
form.on('switch(addonsStatus)', function(data){
var data = data.elem;
var url = $(this).data('url');
//执行帖子审核
$.post(url,{ name: data.name },function(res){
if(res.code === 0){
toast.success({title:"成功消息",message:res.msg,position: 'topRight'});
} else {
toast.error({title:"失败消息",message:res.msg,position: 'topRight'});
}
table.reloadData("addons-list",{},'deep');
});
return false;
});
});
</script>
</body>
</html>