first commit
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
<form class="layui-form page-content p-4">
|
||||
<h3 class="h3-title">添加Demo</h3>
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">项目名称<font>*</font>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="name" lay-verify="required" lay-reqText="请输入项目名称" placeholder="请输入项目名称"
|
||||
class="layui-input" value="" />
|
||||
</td>
|
||||
<td class="layui-td-gray-2">网址<font>*</font>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="url" lay-verify="required" lay-reqText="请输入网址"
|
||||
placeholder="例如:api.meteteme.top" class="layui-input" value="" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">网址类型
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="url_cate" lay-verify="required" lay-reqText="请输入网址类型" placeholder="例如:API"
|
||||
class="layui-input" value="" />
|
||||
</td>
|
||||
<td class="layui-td-gray-2">项目类型
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="cate" lay-verify="required" lay-reqText="请输入项目类型" placeholder="例如:电子商城"
|
||||
class="layui-input" value="" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">项目语言
|
||||
</td>
|
||||
<td>
|
||||
<select name="language" lay-verify="" lay-reqText="请选择项目语言" class="layui-select" lay-search=""
|
||||
lay-filter="language"></select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">备注
|
||||
</td>
|
||||
<td colspan="4">
|
||||
<textarea name="schedule" lay-verify="" lay-reqText="请输入" placeholder="请输入备注" class="layui-textarea"
|
||||
value=""></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="pt-1">
|
||||
<input type="hidden" name="id" value="0" />
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">
|
||||
立即提交
|
||||
</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
layui.use(["form", "layer"], function () {
|
||||
var laydate = layui.laydate;
|
||||
var form = layui.form,
|
||||
layer = layui.layer;
|
||||
|
||||
fetch("/project/demo/getLanguage")
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
var select = document.querySelector('select[name="language"]');
|
||||
select.innerHTML = '<option value="">请选择项目语言</option>';
|
||||
data.forEach((language) => {
|
||||
var option = document.createElement("option");
|
||||
option.value = language.id;
|
||||
option.innerText = language.language;
|
||||
select.appendChild(option);
|
||||
});
|
||||
form.render("select");
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("Error:", error);
|
||||
});
|
||||
|
||||
// 监听提交事件
|
||||
form.on("submit(webform)", function (data) {
|
||||
// 发送请求并处理响应
|
||||
fetch("/project/demo/add", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(data.field),
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((response) => response.json())
|
||||
.then((result) => {
|
||||
layer.msg(result.msg);
|
||||
if (result.code === 2) {
|
||||
setTimeout(function () {
|
||||
document.querySelector("form").reset(); // Reset the form
|
||||
location.reload(); // 刷新页面
|
||||
}, 1000);
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,108 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title></title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<link rel="stylesheet" href="/static/assets/gougu/css/gougu.css">
|
||||
<!-- <link rel="stylesheet" href="/static/assets/gougu/css/layout.css"> -->
|
||||
<style>
|
||||
.close {
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="page-content">
|
||||
<div class="p-4 border-b">
|
||||
<h3 class="h3-title hover">
|
||||
<span id="name">DEMO详情 - {$detail.name}</span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="layui-row border-b">
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">项目名称
|
||||
</td>
|
||||
<td>
|
||||
{$detail.name}
|
||||
</td>
|
||||
<td class="layui-td-gray-2">网址
|
||||
</td>
|
||||
<td>
|
||||
<a href="{$detail.url}" target="_blank" rel="">{$detail.url}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">网址类型
|
||||
</td>
|
||||
<td>
|
||||
{$detail.url_cate}
|
||||
</td>
|
||||
<td class="layui-td-gray-2">项目类型
|
||||
</td>
|
||||
<td colspan="3">
|
||||
{$detail.cate}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">项目语言
|
||||
</td>
|
||||
<td>
|
||||
{$detail.language}
|
||||
</td>
|
||||
<td class="layui-td-gray-2">创建时间
|
||||
</td>
|
||||
<td colspan="3">
|
||||
{$detail.create_time}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">备注
|
||||
</td>
|
||||
<td colspan="4">
|
||||
{$detail.remark}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="close">
|
||||
<button class="layui-btn layui-btn-normal" lay-event="close">关闭页面</button>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
|
||||
</script>
|
||||
<script>
|
||||
const moduleInit = ["tool", "gouguEdit", "gouguComment"];
|
||||
|
||||
function gouguInit() {
|
||||
var table = layui.table;
|
||||
var tool = layui.tool;
|
||||
var dropdown = layui.dropdown;
|
||||
var $ = layui.jquery;
|
||||
var layer = layui.layer;
|
||||
|
||||
$('[lay-event="close"]').on('click', function () {
|
||||
// 直接使用layer.close方法关闭最顶层的弹出层
|
||||
var index = parent.layer.getFrameIndex(window.name); // 获取iframe层的索引
|
||||
parent.layer.close(index); // 关闭弹出层
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
<script src="/static/assets/layui/layui.js"></script>
|
||||
<script src="/static/assets/gougu/gouguInit.js"></script>
|
||||
@@ -0,0 +1,219 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="breadcrumb"}
|
||||
<span class="layui-breadcrumb">
|
||||
<a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
|
||||
<a><cite>Demo管理</cite></a>
|
||||
</span>
|
||||
{/block}
|
||||
{block name="body"}
|
||||
<div class="table-content p-3">
|
||||
<div class="layui-form-bar border-t border-x">
|
||||
<button class="layui-btn layui-btn-sm " id="add-demo">+ 添加Demo</button>
|
||||
<button class="layui-btn layui-btn-sm" id="refresh-btn">刷新</button>
|
||||
<button class="layui-btn layui-btn-sm" id="batch_delete">批量删除</button>
|
||||
</div>
|
||||
<table class="layui-hide" id="demoList" lay-filter="demoList"></table>
|
||||
</div>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool', 'gouguEdit', 'gouguComment', 'gouguSchedule', 'employeepicker', 'editormd'];
|
||||
function gouguInit() {
|
||||
var table = layui.table, tool = layui.tool;
|
||||
var $ = layui.jquery;
|
||||
|
||||
// 刷新按钮
|
||||
$("#refresh-btn").on("click", function () {
|
||||
location.reload();
|
||||
});
|
||||
|
||||
//新增计划按钮
|
||||
$("#add-demo").on("click", function () {
|
||||
tool.open("/project/demo/add");
|
||||
});
|
||||
|
||||
|
||||
// 合并删除和编辑操作的监听函数
|
||||
table.on('tool(demoList)', function (obj) {
|
||||
var data = obj.data; // 获取当前行的数据
|
||||
var id = data.id; // 获取当前行数据的id
|
||||
|
||||
if (obj.event === 'view') {
|
||||
// 查看详情
|
||||
layui.layer.open({
|
||||
type: 2, // iframe层
|
||||
title: 'DEMO详情',
|
||||
shadeClose: true,
|
||||
shade: 0.8,
|
||||
area: ['70%', '90%'], // 宽高
|
||||
content: '/project/demo/view/id/' + id,
|
||||
});
|
||||
} else if (obj.event === 'edit') {
|
||||
// 编辑
|
||||
layui.layer.open({
|
||||
type: 2, // iframe层
|
||||
title: '编辑DEMO',
|
||||
shadeClose: true,
|
||||
shade: 0.8,
|
||||
area: ['70%', '90%'], // 宽高
|
||||
content: '/project/demo/edit/id/' + id,
|
||||
});
|
||||
} else if (obj.event === 'delete') {
|
||||
// 删除
|
||||
layui.layer.confirm(
|
||||
"确定删除该内容吗?",
|
||||
{ icon: 3, title: "提示" },
|
||||
function (index) {
|
||||
$.post(
|
||||
"/project/demo/delete",
|
||||
{ id: data.id },
|
||||
function (res) {
|
||||
if (res.code === 0) {
|
||||
layui.layer.msg(res.msg);
|
||||
obj.del(); // 删除表格中的对应行数据
|
||||
} else {
|
||||
layui.layer.msg(res.msg);
|
||||
}
|
||||
}
|
||||
);
|
||||
layui.layer.close(index);
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
//批量删除数据
|
||||
$("#batch_delete").on("click", function () {
|
||||
var checkStatus = table.checkStatus('demoList');
|
||||
var data = checkStatus.data;
|
||||
var ids = data.map(item => item.id);
|
||||
|
||||
if (ids.length === 0) {
|
||||
layui.layer.msg("请选择要删除的数据");
|
||||
return;
|
||||
}
|
||||
|
||||
layui.layer.confirm(
|
||||
"确定删除选中的内容吗?",
|
||||
{ icon: 3, title: "提示" },
|
||||
function (index) {
|
||||
$.post(
|
||||
"/project/demo/batch_delete",
|
||||
{ ids: ids },
|
||||
function (res) {
|
||||
if (res.code === 0) {
|
||||
layui.layer.msg("批量删除成功");
|
||||
location.reload(); // 重新加载表格数据
|
||||
} else {
|
||||
layui.layer.msg(res.msg);
|
||||
}
|
||||
}
|
||||
);
|
||||
layui.layer.close(index);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
//渲染表格
|
||||
layui.pageTable = table.render({
|
||||
elem: '#demoList',
|
||||
title: 'Demo列表',
|
||||
cellMinWidth: 80,
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
height: 'full-130',
|
||||
url: "/project/demo/index", //数据接口
|
||||
toolbar: '#toolbarDemo',
|
||||
defaultToolbar: ['filter', 'exports', 'print', {
|
||||
title: 'Demo列表',
|
||||
layEvent: 'LAYTABLE_TIPS',
|
||||
icon: 'layui-icon-tips'
|
||||
}],
|
||||
cols: [[
|
||||
{ type: 'checkbox', fixed: 'left' },
|
||||
{
|
||||
field: 'name', title: '项目名称', align: 'center', width: 250, sort: true, rowspan: 2, templet: function (d) {
|
||||
var html = '<span>' + d.name + '</span>';
|
||||
return html;
|
||||
}
|
||||
}, {
|
||||
field: 'url', title: '网址(点击复制)', align: 'center', width: 350, rowspan: 2, sort: true, templet: function (d) {
|
||||
var html = '<span style="cursor: pointer; color: #01AAED;" onclick="copyToClipboard(\'' + d.url + '\')">' + d.url + '</span>';
|
||||
return html;
|
||||
}
|
||||
}
|
||||
, {
|
||||
field: 'url_cate', title: '网址类型', align: 'center', width: 120, sort: true, rowspan: 2, templet: function (d) {
|
||||
var html = '<span>' + d.url_cate + '</span>';
|
||||
return html;
|
||||
}
|
||||
}, {
|
||||
field: 'cate', title: '项目类型', align: 'center', width: 120, sort: true, rowspan: 2, templet: function (d) {
|
||||
var html = '<span>' + d.cate + '</span>';
|
||||
return html;
|
||||
}
|
||||
}, {
|
||||
field: "language",
|
||||
title: "项目语言",
|
||||
align: "center",
|
||||
rowspan: 2,
|
||||
templet: function (d) {
|
||||
if (d.language) {
|
||||
var html = '<span class="a1-' + d.language + '">' + d.language + "</span>";
|
||||
return html;
|
||||
} else {
|
||||
return "未填写";
|
||||
}
|
||||
}
|
||||
}, {
|
||||
field: "remark",
|
||||
title: "备注",
|
||||
align: "center",
|
||||
rowspan: 2,
|
||||
templet: function (d) {
|
||||
if (d.remark) {
|
||||
var html = '<span class="a1-' + d.remark + '">' + d.remark + "</span>";
|
||||
return html;
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
},
|
||||
}, {
|
||||
fixed: 'right',
|
||||
title: "操作",
|
||||
align: "center",
|
||||
width: 220,
|
||||
minWidth: 220,
|
||||
toolbar: "#barDemo",
|
||||
},
|
||||
|
||||
]]
|
||||
});
|
||||
|
||||
$('.layui-form-bar').on('click', '.add-project', function () {
|
||||
tool.open('/project/index/add');
|
||||
});
|
||||
}
|
||||
|
||||
// 添加复制到剪切板的函数
|
||||
function copyToClipboard(text) {
|
||||
navigator.clipboard.writeText(text).then(function () {
|
||||
// 复制成功后,使用Layui的layer.msg显示提示
|
||||
layer.msg('复制成功', { icon: 1, time: 1000 });
|
||||
}, function (err) {
|
||||
// 复制失败处理
|
||||
layer.msg('复制失败', { icon: 2 });
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<script type="text/html" id="barDemo">
|
||||
<a class="layui-btn layui-btn-xs" lay-event="view">查看详情</a>
|
||||
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
|
||||
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete">删除</a>
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,108 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title></title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<link rel="stylesheet" href="/static/assets/gougu/css/gougu.css">
|
||||
<!-- <link rel="stylesheet" href="/static/assets/gougu/css/layout.css"> -->
|
||||
<style>
|
||||
.close {
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="page-content">
|
||||
<div class="p-4 border-b">
|
||||
<h3 class="h3-title hover">
|
||||
<span id="name">DEMO详情 - {$detail.name}</span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="layui-row border-b">
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">项目名称
|
||||
</td>
|
||||
<td>
|
||||
{$detail.name}
|
||||
</td>
|
||||
<td class="layui-td-gray-2">网址
|
||||
</td>
|
||||
<td>
|
||||
<a href="{$detail.url}" target="_blank" rel="">{$detail.url}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">网址类型
|
||||
</td>
|
||||
<td>
|
||||
{$detail.url_cate}
|
||||
</td>
|
||||
<td class="layui-td-gray-2">项目类型
|
||||
</td>
|
||||
<td colspan="3">
|
||||
{$detail.cate}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">项目语言
|
||||
</td>
|
||||
<td>
|
||||
{$detail.language}
|
||||
</td>
|
||||
<td class="layui-td-gray-2">创建时间
|
||||
</td>
|
||||
<td colspan="3">
|
||||
{$detail.create_time}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">备注
|
||||
</td>
|
||||
<td colspan="4">
|
||||
{$detail.remark}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="close">
|
||||
<button class="layui-btn layui-btn-normal" lay-event="close">关闭页面</button>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
|
||||
</script>
|
||||
<script>
|
||||
const moduleInit = ["tool", "gouguEdit", "gouguComment"];
|
||||
|
||||
function gouguInit() {
|
||||
var table = layui.table;
|
||||
var tool = layui.tool;
|
||||
var dropdown = layui.dropdown;
|
||||
var $ = layui.jquery;
|
||||
var layer = layui.layer;
|
||||
|
||||
$('[lay-event="close"]').on('click', function () {
|
||||
// 直接使用layer.close方法关闭最顶层的弹出层
|
||||
var index = parent.layer.getFrameIndex(window.name); // 获取iframe层的索引
|
||||
parent.layer.close(index); // 关闭弹出层
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
<script src="/static/assets/layui/layui.js"></script>
|
||||
<script src="/static/assets/gougu/gouguInit.js"></script>
|
||||
Reference in New Issue
Block a user