Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 29 additions & 2 deletions src/plugin/admin/app/view/table/create.html
Original file line number Diff line number Diff line change
Expand Up @@ -216,15 +216,17 @@
<script src="/app/admin/component/layui/layui.js?v=2.8.12"></script>
<script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script>
<script src="/app/admin/admin/js/soulTable.js"></script>
<script>

const CREATE_API = "/app/admin/table/create";

// 字段设置
layui.use(["table", "common", "popup"], function () {
layui.use(["table", "common", "popup","soulTable"], function () {

let table = layui.table;
let common = layui.common;
let soulTable = layui.soulTable;
let cols = [
{
type: "checkbox",
Expand Down Expand Up @@ -340,6 +342,32 @@
page: false,
toolbar: "#column-toolbar",
defaultToolbar: [],
rowDrag: {done: function(obj) {
syncTableData();
const row_id = obj.row._field_id; // 当前id
const row_sort = obj.newIndex + 1; // 拖动后的排序
const cache = obj.cache; // 拖动后的排序
window._key_i = 0;
let options = table.getData("column-table");
if (row_id==options[row_id]['_field_id']){
cache[obj.newIndex]=options[row_id];
}
layui.each(cache, function (index, item) {
if (item.default==null){
item.default=""
}
item._field_id = _key_i
_key_i ++
delete item['LAY_NUM']
delete item['LAY_INDEX']
});
table.reloadData("column-table", {data:cache});
syncTableData()
}},
done: function () {
//layer.photos({photos: 'div[lay-id="data-table"]', anim: 5});
soulTable.render(this);
}
});

table.on("toolbar(column-table)", function(obj) {
Expand Down Expand Up @@ -658,7 +686,6 @@
layui.each(columnTableData, function (_, item) {
if (!item.field) return;
let _field_id = item._field_id;
console.log(item.type);
if (!formTableOldDataMap[_field_id]) {
formTableData.push({
_field_id: _field_id,
Expand Down
31 changes: 30 additions & 1 deletion src/plugin/admin/app/view/table/modify.html
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,7 @@
<script src="/app/admin/component/layui/layui.js?v=2.8.12"></script>
<script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script>
<script src="/app/admin/admin/js/soulTable.js"></script>
<script>

const MODIFY_API = "/app/admin/table/modify";
Expand Down Expand Up @@ -269,10 +270,11 @@
});

// 字段设置
layui.use(["table", "common", "popup"], function () {
layui.use(["table", "common", "popup","soulTable"], function () {

let table = layui.table;
let common = layui.common;
let soulTable = layui.soulTable;
let cols = [
{
type: "checkbox",
Expand Down Expand Up @@ -345,6 +347,33 @@
page: false,
toolbar: "#column-toolbar",
defaultToolbar: [],
rowDrag: {done: function(obj) {
syncTableData();
const row_id = obj.row._field_id; // 当前id
const row_sort = obj.newIndex + 1; // 拖动后的排序
const cache = obj.cache; // 拖动后的排序
window._key_i = 0;
let options = table.getData("column-table");
console.log(row_id,row_sort,options)
if (row_id==options[row_id]['_field_id']){
cache[obj.newIndex]=options[row_id];
}
layui.each(cache, function (index, item) {
if (item.default==null){
item.default=""
}
item._field_id = _key_i
_key_i ++
delete item['LAY_NUM']
delete item['LAY_INDEX']
});
table.reloadData("column-table", {data:cache});
syncTableData()
}},
done: function () {
//layer.photos({photos: 'div[lay-id="data-table"]', anim: 5});
soulTable.render(this);
}
});

table.on("toolbar(column-table)", function(obj) {
Expand Down
39 changes: 39 additions & 0 deletions src/plugin/admin/public/admin/js/soulTable.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// 使用 extend 将 刚刚下载的插件 加载进来
layui.extend({
soulTable:'soulTable/soulTable.slim',// 模块
})

/**
* 拖拽表格 进行排序
* @param obj 当前拖拽对象
* @param tableId 表的主键ID
* @param updateUrl 更新数据的接口
* @param weightField 排序字段
*/
function rowDragDoneFunc(obj,tableId,updateUrl,weightField){
weightField = weightField || 'weight';
console.log(obj.row,'--obj.row')
// 获取最新位置 前后数据的id
var beforId = afterId = 0;
if(obj.newIndex > 0){
beforId = obj.cache[obj.newIndex-1][tableId]
}
if(obj.newIndex < obj.cache.length-1){
afterId = obj.cache[obj.newIndex+1][tableId]
}
var data = {
dragDone:1,// 增加数据标识 方便后台接口进行判断
id:obj.row[tableId],
field:weightField,
beforId,afterId
}
// 提交数据进行排序更新
layui.$.post(updateUrl,data,function(res){
if(res.code){
layui.layer.msg(res.msg,{icon:5});
}else{
obj.row[weightField] =res.data;
refreshTable();
}
})
}
Loading