From d74b495736f0c04522ec54274b70fed0ded2878d Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 27 Jun 2023 11:30:06 +0800
Subject: [PATCH] 任务新增导出
---
public/map/widgets/realTimePolice/LayUIDataTable.js | 95 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/public/map/widgets/realTimePolice/LayUIDataTable.js b/public/map/widgets/realTimePolice/LayUIDataTable.js
new file mode 100644
index 0000000..c0b8d0c
--- /dev/null
+++ b/public/map/widgets/realTimePolice/LayUIDataTable.js
@@ -0,0 +1,95 @@
+var LayUIDataTable = (function () {
+ var rowData = {};
+ var $;
+
+ function checkJquery () {
+ if (!$) {
+ console.log("未获取jquery对象,请检查是否在调用ConvertDataTable方法之前调用SetJqueryObj进行设置!")
+ return false;
+ } else return true;
+ }
+
+ /**
+ * 转换数据表格。
+ * @param callback 双击行的回调函数,该回调函数返回三个参数,分别为:当前点击行的索引值、当前点击单元格的值、当前行数据
+ * @returns {Array} 返回当前数据表当前页的所有行数据。数据结构:<br/>
+ * [
+ * {字段名称1:{value:"当前字段值",cell:"当前字段所在单元格td对象",row:"当前字段所在行tr对象"}}
+ * ,{字段名称2:{value:"",cell:"",row:""}}
+ * ]
+ * @constructor
+ */
+ function ConvertDataTable (callback) {
+ if (!checkJquery()) return;
+ var dataList = [];
+ var rowData = {};
+ var trArr = $(".layui-table-body.layui-table-main tr");// 行数据
+ if (!trArr || trArr.length == 0) {
+ console.log("未获取到相关行数据,请检查数据表格是否渲染完毕!");
+ return;
+ }
+ $.each(trArr, function (index, trObj) {
+ var currentClickRowIndex;
+ var currentClickCellValue;
+
+ $(trObj).dblclick(function (e) {
+ var returnData = {};
+ var currentClickRow = $(e.currentTarget);
+ currentClickRowIndex = currentClickRow.data("index");
+ currentClickCellValue = e.target.innerHTML
+ $.each(dataList[currentClickRowIndex], function (key, obj) {
+ returnData[key] = obj.value;
+ });
+ callback(currentClickRowIndex, currentClickCellValue, returnData);
+ });
+ var tdArrObj = $(trObj).find('td');
+ rowData = {};
+ // 每行的单元格数据
+ $.each(tdArrObj, function (index_1, tdObj) {
+ var td_field = $(tdObj).data("field");
+ rowData[td_field] = {};
+ rowData[td_field]["value"] = $($(tdObj).html()).html();
+ rowData[td_field]["cell"] = $(tdObj);
+ rowData[td_field]["row"] = $(trObj);
+
+ })
+ dataList.push(rowData);
+ })
+ return dataList;
+ }
+
+ return {
+ /**
+ * 设置JQuery对象,第一步操作。如果你没有在head标签里面引入jquery且未执行该方法的话,ParseDataTable方法、HideField方法会无法执行,出现找不到 $ 的错误。如果你是使用LayUI内置的Jquery,可以
+ * var $ = layui.jquery 然后把 $ 传入该方法
+ * @param jqueryObj
+ * @constructor
+ */
+ SetJqueryObj: function (jqueryObj) {
+ $ = jqueryObj;
+ }
+
+ /**
+ * 转换数据表格
+ */
+ , ParseDataTable: ConvertDataTable
+
+ /**
+ * 隐藏字段
+ * @param fieldName 要隐藏的字段名(field名称)参数可为字符串(隐藏单列)或者数组(隐藏多列)
+ * @constructor
+ */
+ , HideField: function (fieldName) {
+ if (!checkJquery()) return;
+ if (fieldName instanceof Array) {
+ $.each(fieldName, function (index, field) {
+ $("[data-field='" + field + "']").css('display', 'none');
+ })
+ } else if (typeof fieldName === 'string') {
+ $("[data-field='" + fieldName + "']").css('display', 'none');
+ } else {
+
+ }
+ }
+ }
+})();
\ No newline at end of file
--
Gitblit v1.9.3