You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

208 lines
6.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Demo</title>
<!-- 请勿在项目正式环境中引用该 layui.css 地址 -->
<link href="../js/layui/css/layui.css" rel="stylesheet">
<style>
.woo-tool-text-delimiter {
width: 1px;
height: 12px;
background: #EEEEEE;
display: inline-block;
margin: 0 6px 0 4px;
}
.woo-theme-color {
color: #1e9fff !important;
}
.woo-tool-span {
margin: 0 3px;
position: relative;
top: -1px;
cursor: pointer;
}
.layui-card-body .layui-form {
margin-top: 0 !important;
}
.layui-form-select {
width: 300px;
}
.layui-card {
margin-bottom: 15px;
border-radius: 2px;
background-color: #fff;
box-shadow: none;
}
.layui-fixbar li {
height: 38px;
line-height: 38px;
border: 1px solid transparent;
padding: 0 18px;
background-color: #16baaa;
color: #fff;
white-space: nowrap;
text-align: center;
font-size: 14px !important;
border-radius: 2px;
cursor: pointer;
}
.fix {
position: fixed;
top: 0;
right: 10px;
background-color: white;
padding: 10px;
z-index: 1000;
}
</style>
</head>
<body class="layui-form">
<div class="layui-card" style="margin-top: 50px;">
<div class="layui-card-body">
<!-- <button type="button" class="layui-btn" id="getData">获取数据</button> -->
<div class="fix">
<button type="button" class="layui-btn" id="saveData">保存</button>
<button type="button" class="layui-btn" id="back">返回</button>
</div>
<table id="ID-table-demo-data"></table>
<script type="text/html" id="table-bar">
<span class="woo-tool-span woo-tool-text-span" lay-event="add"><a
class="woo-theme-color">向下插入</a></span>
<span class="woo-tool-span woo-tool-text-span" lay-event="delete"><a
class="woo-theme-color">删除</a></span>
</script>
</div>
</div>
<!-- 请勿在项目正式环境中引用该 layui.js 地址 -->
<script src="../js/layui/layui.js"></script>
<script>
layui.use('table', function () {
var table = layui.table;
var $ = layui.jquery;
var util = layui.util;
var id = GetQueryString("id");
// var id = "3";
var _data = [];
$.ajax({
type: "GET",
async: false,
url: '/dsBase/dataease/getDataSetContent?id=' + id,
dataType: "json",
success: function (res) {
_data = res.data;
}
});
var _emptyData = {};
var _cols = [];
let keys = Object.keys(_data[0]);
keys.forEach((item, index) => {
_emptyData[item] = "";
var _obj = {field: item, title: item, edit: 'text', align: 'center', expandedMode: 'tips'}
_cols.push(_obj);
});
_cols.push({title: '操作', align: 'center', toolbar: '#table-bar'});
table.render({
elem: '#ID-table-demo-data',
id: 'ID-table-demo-data',
page: true //开启分页
, limit: 10 //每页显示的条数
, limits: [10, 20, 30]
, request: {
pageName: 'pageNumber' //页码的参数名称默认page
, limitName: 'pageSize' //每页数据量的参数名默认limit
},
cols: [_cols],
data: _data
});
table.on('tool(ID-table-demo-data)', function (obj) {
if (obj.event === 'add') {
_data.splice(obj.index + 1, 0, _emptyData);
table.cache['ID-table-demo-data'] = _data;
table.renderData('ID-table-demo-data');
} else {
layer.confirm('确定删除吗?', {icon: 0}, function (index) {
var cacheData = table.cache['ID-table-demo-data'];
cacheData.splice(obj.index, 1)
table.renderData('ID-table-demo-data');
layer.close(index);
});
}
});
$("#saveData").click(function () {
const cleanedData = table.cache['ID-table-demo-data'].map(item => {
const {LAY_NUM, LAY_INDEX, ...rest} = item;
return rest;
});
$.ajax({
type: "POST",
dataType: "json",
async: false,
url: '/dsBase/dataease/saveDataSet',
data: {
"id": id,
"data": JSON.stringify(cleanedData)
},
success: function (res) {
if (res.success) {
layer.msg("保存成功!", {
icon: 1,
time: 1300
});
} else {
layer.msg(res.message, {
icon: 2,
time: 2000
});
}
}
});
});
$("#back").click(function () {
history.back();
});
function GetQueryString(name, istop) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (typeof (istop) != "undefined") r = top.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}
});
</script>
</body>
</html>