@zgfe/modules-dm 1.0.42-alpha.9 → 1.0.56-zhongyuan.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/demo.js +1 -1
- package/es/constants/api.d.ts +37 -0
- package/es/constants/api.js +62 -1
- package/es/index.d.ts +3 -1
- package/es/index.js +3 -1
- package/es/modules/CutsModal.d.ts +66 -0
- package/es/modules/CutsModal.js +52 -0
- package/es/modules/dataManage/collectionAttributeList.d.ts +3 -0
- package/es/modules/dataManage/collectionAttributeList.js +524 -80
- package/es/modules/dataManage/collectionEventList.d.ts +6 -0
- package/es/modules/dataManage/collectionEventList.js +482 -62
- package/es/modules/dataManage/components/createAttrDrawer.d.ts +4 -0
- package/es/modules/dataManage/components/createAttrDrawer.js +264 -0
- package/es/modules/dataManage/components/createMetaDrawer.d.ts +4 -0
- package/es/modules/dataManage/components/createMetaDrawer.js +618 -0
- package/es/modules/dataManage/components/createVirtualDrawer.js +19 -19
- package/es/modules/dataManage/components/creditPop/imgs/link.png +0 -0
- package/es/modules/dataManage/components/creditPop/imgs/png01.png +0 -0
- package/es/modules/dataManage/components/creditPop/imgs/png02.png +0 -0
- package/es/modules/dataManage/components/creditPop/imgs/png03.png +0 -0
- package/es/modules/dataManage/components/creditPop/imgs/png04.png +0 -0
- package/es/modules/dataManage/components/creditPop/index.d.ts +6 -0
- package/es/modules/dataManage/components/creditPop/index.js +89 -0
- package/es/modules/dataManage/components/creditPop/index.less +121 -0
- package/es/modules/dataManage/components/deleteConfirm.d.ts +9 -0
- package/es/modules/dataManage/components/deleteConfirm.js +36 -0
- package/es/modules/dataManage/components/deleteUserAttrConfirm.d.ts +9 -0
- package/es/modules/dataManage/components/deleteUserAttrConfirm.js +57 -0
- package/es/modules/dataManage/components/depositPop/imgs/link.png +0 -0
- package/es/modules/dataManage/components/depositPop/imgs/png01.png +0 -0
- package/es/modules/dataManage/components/depositPop/imgs/png02.png +0 -0
- package/es/modules/dataManage/components/depositPop/index.d.ts +6 -0
- package/es/modules/dataManage/components/depositPop/index.js +89 -0
- package/es/modules/dataManage/components/depositPop/index.less +115 -0
- package/es/modules/dataManage/components/developModal/index.css +36 -0
- package/es/modules/dataManage/components/developModal/index.d.ts +6 -0
- package/es/modules/dataManage/components/developModal/index.js +224 -0
- package/es/modules/dataManage/components/developModal/index.less +36 -0
- package/es/modules/dataManage/components/editTxt/index.d.ts +3 -0
- package/es/modules/dataManage/components/editTxt/index.js +123 -0
- package/es/modules/dataManage/components/editTxt/index.less +44 -0
- package/es/modules/dataManage/components/editTxt/types.d.ts +48 -0
- package/es/modules/dataManage/components/editTxt/types.js +1 -0
- package/es/modules/dataManage/components/eventFilter/index.js +13 -13
- package/es/modules/dataManage/components/eventFilter/styles/index.less +72 -72
- package/es/modules/dataManage/components/eventGroupingDrawer.js +41 -44
- package/es/modules/dataManage/components/importAttrDialog/demo/index.d.ts +3 -0
- package/es/modules/dataManage/components/importAttrDialog/demo/index.js +28 -0
- package/es/modules/dataManage/components/importAttrDialog/index.d.ts +7 -0
- package/es/modules/dataManage/components/importAttrDialog/index.js +159 -0
- package/es/modules/dataManage/components/importAttrDialog/styles/index.less +90 -0
- package/es/modules/dataManage/components/importMetaDialog/demo/index.d.ts +3 -0
- package/es/modules/dataManage/components/importMetaDialog/demo/index.js +28 -0
- package/es/modules/dataManage/components/importMetaDialog/index.d.ts +7 -0
- package/es/modules/dataManage/components/importMetaDialog/index.js +159 -0
- package/es/modules/dataManage/components/importMetaDialog/styles/index.less +91 -0
- package/es/modules/dataManage/components/selectAttributes.js +10 -10
- package/es/modules/dataManage/components/tablePlus.d.ts +4 -0
- package/es/modules/dataManage/components/tablePlus.js +625 -94
- package/es/modules/dataManage/components/virtualTablePlus.js +7 -7
- package/es/modules/dataManage/demo/index.d.ts +2 -1
- package/es/modules/dataManage/demo/index.js +79 -16
- package/es/modules/dataManage/detailedData/DetailedDataForm.d.ts +5 -0
- package/es/modules/dataManage/detailedData/DetailedDataForm.js +216 -0
- package/es/modules/dataManage/detailedData/index.d.ts +24 -0
- package/es/modules/dataManage/detailedData/index.js +403 -0
- package/es/modules/dataManage/detailedData/useColumns.d.ts +34 -0
- package/es/modules/dataManage/detailedData/useColumns.js +135 -0
- package/es/modules/dataManage/index.d.ts +9 -4
- package/es/modules/dataManage/index.js +142 -50
- package/es/modules/dataManage/styles/detailed.less +74 -0
- package/es/modules/dataManage/styles/index.less +1195 -841
- package/es/modules/dataManage/types.d.ts +8 -0
- package/es/modules/dataManage/virtualEventList.js +13 -13
- package/es/modules/dataMap/component/data.d.ts +7 -0
- package/es/modules/dataMap/component/data.js +257 -0
- package/es/modules/dataMap/component/drawerAdd.d.ts +6 -0
- package/es/modules/dataMap/component/drawerAdd.js +379 -0
- package/es/modules/dataMap/component/leftTree.d.ts +6 -0
- package/es/modules/dataMap/component/leftTree.js +232 -0
- package/es/modules/dataMap/component/rightDetail.d.ts +7 -0
- package/es/modules/dataMap/component/rightDetail.js +694 -0
- package/es/modules/dataMap/component/selectAttr.d.ts +7 -0
- package/es/modules/dataMap/component/selectAttr.js +92 -0
- package/es/modules/dataMap/css/index.css +163 -0
- package/es/modules/dataMap/css/index.less +177 -0
- package/es/modules/dataMap/demo/index.d.ts +3 -0
- package/es/modules/dataMap/demo/index.js +6 -0
- package/es/modules/dataMap/img/empty-data.png +0 -0
- package/es/modules/dataMap/index.d.ts +3 -0
- package/es/modules/dataMap/index.js +80 -0
- package/es/modules/dataMap/mapDetail.d.ts +3 -0
- package/es/modules/dataMap/mapDetail.js +44 -0
- package/es/modules/dataMap/mapSetting.d.ts +6 -0
- package/es/modules/dataMap/mapSetting.js +156 -0
- package/es/modules/dataPlan/addEventOrUser.js +31 -30
- package/es/modules/dataPlan/addPlan.js +29 -27
- package/es/modules/dataPlan/eventList.js +2 -2
- package/es/modules/dataPlan/index.js +10 -10
- package/es/modules/dataPlan/search.js +6 -5
- package/es/modules/dataPlan/styles/index.less +316 -316
- package/es/modules/dataPlan/tablePlus.js +3 -3
- package/es/modules/dataPlan/userAttributeList.js +5 -5
- package/es/modules/dataReal/css/index.css +48 -0
- package/es/modules/dataReal/css/index.less +51 -0
- package/es/modules/dataReal/demo/index.d.ts +3 -0
- package/es/modules/dataReal/demo/index.js +6 -0
- package/es/modules/dataReal/index1.d.ts +28 -0
- package/es/modules/dataReal/index1.js +247 -0
- package/es/modules/dataReal/table.d.ts +5 -0
- package/es/modules/dataReal/table.js +260 -0
- package/es/store/index.js +11 -11
- package/es/utils/index.d.ts +1 -0
- package/es/utils/index.js +9 -1
- package/package.json +64 -58
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
.dataReal {
|
|
2
|
+
height: 100%;
|
|
3
|
+
padding: 24px;
|
|
4
|
+
background: #fff;
|
|
5
|
+
border-radius: 8px;
|
|
6
|
+
}
|
|
7
|
+
.dataReal_search {
|
|
8
|
+
display: grid;
|
|
9
|
+
grid-template-columns: 1fr 100px;
|
|
10
|
+
padding: 0px 0px 16px;
|
|
11
|
+
border-bottom: 1px solid #f2f3f4;
|
|
12
|
+
}
|
|
13
|
+
.dataReal_table {
|
|
14
|
+
margin: 16px 0px;
|
|
15
|
+
}
|
|
16
|
+
.dataReal_table_tip {
|
|
17
|
+
margin: 0px 0px 16px;
|
|
18
|
+
color: #021429;
|
|
19
|
+
}
|
|
20
|
+
.dataReal_table_tip span {
|
|
21
|
+
margin: 0px 0px 0px 6px;
|
|
22
|
+
color: #67727f;
|
|
23
|
+
}
|
|
24
|
+
.dataReal-infoData {
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-wrap: wrap;
|
|
27
|
+
line-height: 26px;
|
|
28
|
+
white-space: normal;
|
|
29
|
+
/* 保留空白符序列,但是正常换行 */
|
|
30
|
+
word-break: break-all;
|
|
31
|
+
/* 允许在单词内换行 */
|
|
32
|
+
}
|
|
33
|
+
.dataReal-infoData-title {
|
|
34
|
+
display: inline-block;
|
|
35
|
+
color: #007eff;
|
|
36
|
+
}
|
|
37
|
+
.dataReal-infoData-item {
|
|
38
|
+
margin-right: 8px;
|
|
39
|
+
}
|
|
40
|
+
.dataReal-infoData-value {
|
|
41
|
+
color: #1baf3b;
|
|
42
|
+
}
|
|
43
|
+
.dataReal-canvasEmpty {
|
|
44
|
+
position: absolute;
|
|
45
|
+
bottom: 260px;
|
|
46
|
+
left: 50%;
|
|
47
|
+
transform: translateX(-50%);
|
|
48
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
.dataReal {
|
|
2
|
+
height: 100%;
|
|
3
|
+
padding: 24px;
|
|
4
|
+
background: #fff;
|
|
5
|
+
border-radius: 8px;
|
|
6
|
+
border-radius: 8px;
|
|
7
|
+
&_search {
|
|
8
|
+
display: grid;
|
|
9
|
+
grid-template-columns: 1fr 100px;
|
|
10
|
+
padding: 0px 0px 16px;
|
|
11
|
+
border-bottom: 1px solid #f2f3f4;
|
|
12
|
+
}
|
|
13
|
+
&_table {
|
|
14
|
+
margin: 16px 0px;
|
|
15
|
+
&_tip {
|
|
16
|
+
margin: 0px 0px 16px;
|
|
17
|
+
color: #021429;
|
|
18
|
+
span {
|
|
19
|
+
margin: 0px 0px 0px 6px;
|
|
20
|
+
color: #67727f;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
.dataReal-infoData {
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-wrap: wrap;
|
|
28
|
+
line-height: 26px;
|
|
29
|
+
white-space: normal; /* 保留空白符序列,但是正常换行 */
|
|
30
|
+
word-break: break-all; /* 允许在单词内换行 */
|
|
31
|
+
}
|
|
32
|
+
.dataReal-infoData-title {
|
|
33
|
+
display: inline-block;
|
|
34
|
+
color: #007eff;
|
|
35
|
+
}
|
|
36
|
+
.dataReal-infoData-item {
|
|
37
|
+
margin-right: 8px;
|
|
38
|
+
}
|
|
39
|
+
.dataReal-infoData-value {
|
|
40
|
+
color: #1baf3b;
|
|
41
|
+
}
|
|
42
|
+
.dataReal-canvasEmpty {
|
|
43
|
+
position: absolute;
|
|
44
|
+
bottom: 260px;
|
|
45
|
+
left: 50%;
|
|
46
|
+
transform: translateX(-50%);
|
|
47
|
+
}
|
|
48
|
+
// .defineTooltip{
|
|
49
|
+
// color: #1baf3b;
|
|
50
|
+
// background-color: white;
|
|
51
|
+
// }
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { DataRealView } from '@zgfe/modules-dm';
|
|
3
|
+
import DemoWrapper2 from '../../../components/demo';
|
|
4
|
+
export default (function () {
|
|
5
|
+
return /*#__PURE__*/React.createElement(DemoWrapper2, null, /*#__PURE__*/React.createElement(DataRealView, null));
|
|
6
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './css/index.less';
|
|
3
|
+
export interface tableListType {
|
|
4
|
+
time: string;
|
|
5
|
+
eventName: string;
|
|
6
|
+
userId: string;
|
|
7
|
+
data: listItemType;
|
|
8
|
+
}
|
|
9
|
+
interface listItemType {
|
|
10
|
+
base: baseType | any;
|
|
11
|
+
detail: listItemTypeItem[];
|
|
12
|
+
paramAppId: number;
|
|
13
|
+
paramUserId: number;
|
|
14
|
+
}
|
|
15
|
+
interface baseType {
|
|
16
|
+
appkey: string;
|
|
17
|
+
ip: string;
|
|
18
|
+
sdk: string;
|
|
19
|
+
sdkv: string;
|
|
20
|
+
did: string;
|
|
21
|
+
}
|
|
22
|
+
interface listItemTypeItem {
|
|
23
|
+
cuid: string;
|
|
24
|
+
msg: string;
|
|
25
|
+
pr: any;
|
|
26
|
+
}
|
|
27
|
+
declare const DataRealView: React.FC;
|
|
28
|
+
export default DataRealView;
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
3
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
4
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
5
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
6
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
7
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
8
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
9
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
10
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
11
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
12
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
13
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
14
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
15
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
16
|
+
import { BizGlobalDataContext, IconFont } from '@zgfe/business-lib';
|
|
17
|
+
import { Button, Form, Input } from 'antd';
|
|
18
|
+
import React, { useContext, useEffect, useState } from 'react';
|
|
19
|
+
import moment from 'moment';
|
|
20
|
+
import { getAppID } from '../../utils';
|
|
21
|
+
import './css/index.less';
|
|
22
|
+
import DataRealViewTable from './table';
|
|
23
|
+
import * as _ from 'lodash';
|
|
24
|
+
var classNameBase = 'dataReal';
|
|
25
|
+
var webSocketUrl = "".concat(location.protocol == 'http:' ? 'ws' : 'wss', "://").concat(location.host, "/eventtracking/ws?type=realTime");
|
|
26
|
+
// const webSocketUrl = 'ws://172.31.31.50:19898/eventtracking/ws?type=realTime';
|
|
27
|
+
// 点击单元格 添加悬浮框 2。看宽度是否可自适应,可能需要适应大屏
|
|
28
|
+
var DataRealView = function DataRealView() {
|
|
29
|
+
var _useContext = useContext(BizGlobalDataContext),
|
|
30
|
+
currentApp = _useContext.currentApp,
|
|
31
|
+
currentUser = _useContext.currentUser;
|
|
32
|
+
var _useState = useState(false),
|
|
33
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
34
|
+
textStatus = _useState2[0],
|
|
35
|
+
setTextStatus = _useState2[1];
|
|
36
|
+
var _useState3 = useState([]),
|
|
37
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
38
|
+
oldList = _useState4[0],
|
|
39
|
+
setOldList = _useState4[1]; // 未筛选的数据
|
|
40
|
+
var _useState5 = useState([]),
|
|
41
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
42
|
+
list = _useState6[0],
|
|
43
|
+
setList = _useState6[1]; // 表格筛选完成的数据
|
|
44
|
+
var _useState7 = useState(null),
|
|
45
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
46
|
+
ws = _useState8[0],
|
|
47
|
+
setWs = _useState8[1];
|
|
48
|
+
var _Form$useForm = Form.useForm(),
|
|
49
|
+
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
|
|
50
|
+
form = _Form$useForm2[0];
|
|
51
|
+
// 监听搜索
|
|
52
|
+
var eventName = Form.useWatch('eventName', form);
|
|
53
|
+
var searchUserId = Form.useWatch('searchUserId', form);
|
|
54
|
+
var filterData = Form.useWatch('filterData', form);
|
|
55
|
+
var initWebsocket = function initWebsocket(params) {
|
|
56
|
+
// 创建 WebSocket 连接
|
|
57
|
+
var socket = new WebSocket(webSocketUrl);
|
|
58
|
+
// 连接成功时发送参数
|
|
59
|
+
socket.onopen = function () {
|
|
60
|
+
console.log('WebSocket connected');
|
|
61
|
+
// // 假设你要传递的参数
|
|
62
|
+
// const params = { appId: getAppID(currentApp), userId:currentUser?.userId, searchUserId: null, eventName: null };
|
|
63
|
+
socket.send(JSON.stringify(params)); // 发送参数作为字符串
|
|
64
|
+
};
|
|
65
|
+
// 监听消息事件
|
|
66
|
+
socket.onmessage = function (event) {
|
|
67
|
+
var _message$detail, _message$detail$0$pr, _message$detail2, _message$detail2$, _message$detail2$$pr;
|
|
68
|
+
var message = JSON.parse(event.data);
|
|
69
|
+
var obj = {
|
|
70
|
+
time: moment(message === null || message === void 0 ? void 0 : (_message$detail = message.detail) === null || _message$detail === void 0 ? void 0 : (_message$detail$0$pr = _message$detail[0].pr) === null || _message$detail$0$pr === void 0 ? void 0 : _message$detail$0$pr.$ct).format('YYYY-MM-DD HH:mm:ss') || filterPro('$ct', event),
|
|
71
|
+
eventName: filterPro('$eid', event),
|
|
72
|
+
userId: (message === null || message === void 0 ? void 0 : (_message$detail2 = message.detail) === null || _message$detail2 === void 0 ? void 0 : (_message$detail2$ = _message$detail2[0]) === null || _message$detail2$ === void 0 ? void 0 : (_message$detail2$$pr = _message$detail2$.pr) === null || _message$detail2$$pr === void 0 ? void 0 : _message$detail2$$pr.$cuid) || filterPro('$cuid', event),
|
|
73
|
+
data: event.data
|
|
74
|
+
};
|
|
75
|
+
// 最多为500条 超出去掉第一条
|
|
76
|
+
// setOldList((prev: any) => {
|
|
77
|
+
// if (prev.length <= 49) {
|
|
78
|
+
// return [obj, ...prev];
|
|
79
|
+
// }
|
|
80
|
+
// prev.pop();
|
|
81
|
+
// return [obj, ...prev];
|
|
82
|
+
// });
|
|
83
|
+
// 最多1000条数据
|
|
84
|
+
setOldList(function (prev) {
|
|
85
|
+
if (prev.length <= 200) {
|
|
86
|
+
return [obj].concat(_toConsumableArray(prev));
|
|
87
|
+
}
|
|
88
|
+
prev.pop();
|
|
89
|
+
return [obj].concat(_toConsumableArray(prev));
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
// 监听错误事件
|
|
93
|
+
socket.onerror = function (error) {
|
|
94
|
+
console.error('WebSocket Error:', error);
|
|
95
|
+
};
|
|
96
|
+
// 监听连接关闭事件
|
|
97
|
+
socket.onclose = function (event) {
|
|
98
|
+
console.log('WebSocket disconnected:', event.reason);
|
|
99
|
+
};
|
|
100
|
+
// 设置 WebSocket
|
|
101
|
+
setWs(socket);
|
|
102
|
+
};
|
|
103
|
+
var filterPro = function filterPro(str, event) {
|
|
104
|
+
// 定义正则表达式,匹配"$eid":"具体值"这种格式中的具体值部分
|
|
105
|
+
var pattern;
|
|
106
|
+
if (str == '$eid') {
|
|
107
|
+
pattern = /"\$eid":"([^"]+)"/g;
|
|
108
|
+
}
|
|
109
|
+
if (str == '$cuid') {
|
|
110
|
+
pattern = /"\$cuid":"([^"]+)"/g;
|
|
111
|
+
}
|
|
112
|
+
if (str == '$ct') {
|
|
113
|
+
pattern = /"\$ct":"([^"]+)"/g;
|
|
114
|
+
}
|
|
115
|
+
// 使用match方法进行匹配
|
|
116
|
+
var matches = event.data.matchAll(pattern);
|
|
117
|
+
var eidValues = [];
|
|
118
|
+
var _iterator = _createForOfIteratorHelper(matches),
|
|
119
|
+
_step;
|
|
120
|
+
try {
|
|
121
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
122
|
+
var match = _step.value;
|
|
123
|
+
if (match && match[1]) {
|
|
124
|
+
eidValues.push(match[1]);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
} catch (err) {
|
|
128
|
+
_iterator.e(err);
|
|
129
|
+
} finally {
|
|
130
|
+
_iterator.f();
|
|
131
|
+
}
|
|
132
|
+
return str == '$ct' ? moment(eidValues[0]).format('YYYY-MM-DD HH:mm:ss') : eidValues.join();
|
|
133
|
+
};
|
|
134
|
+
var handleRefresh = /*#__PURE__*/function () {
|
|
135
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
136
|
+
var params;
|
|
137
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
138
|
+
while (1) switch (_context.prev = _context.next) {
|
|
139
|
+
case 0:
|
|
140
|
+
setTextStatus(!textStatus);
|
|
141
|
+
if (!textStatus) {
|
|
142
|
+
_context.next = 5;
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
ws === null || ws === void 0 ? void 0 : ws.close(); // 停止刷新 关闭链接
|
|
146
|
+
setWs(null);
|
|
147
|
+
return _context.abrupt("return");
|
|
148
|
+
case 5:
|
|
149
|
+
// const data = form.getFieldsValue(true); // 表单数据
|
|
150
|
+
// 假设你要传递的参数 现在不需要参数了searchUserId
|
|
151
|
+
params = {
|
|
152
|
+
appId: getAppID(currentApp),
|
|
153
|
+
userId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId,
|
|
154
|
+
appKey: currentApp === null || currentApp === void 0 ? void 0 : currentApp.appKey
|
|
155
|
+
};
|
|
156
|
+
initWebsocket(params);
|
|
157
|
+
case 7:
|
|
158
|
+
case "end":
|
|
159
|
+
return _context.stop();
|
|
160
|
+
}
|
|
161
|
+
}, _callee);
|
|
162
|
+
}));
|
|
163
|
+
return function handleRefresh() {
|
|
164
|
+
return _ref.apply(this, arguments);
|
|
165
|
+
};
|
|
166
|
+
}();
|
|
167
|
+
// 只取前50条
|
|
168
|
+
useEffect(function () {
|
|
169
|
+
function matchesFilterData(o, filterData) {
|
|
170
|
+
return new RegExp(_.escapeRegExp(filterData), 'i').test(JSON.stringify(o === null || o === void 0 ? void 0 : o.data));
|
|
171
|
+
}
|
|
172
|
+
function matchesSearchCriteria(oldList, eventName, searchUserId, filterData) {
|
|
173
|
+
return oldList.filter(function (o) {
|
|
174
|
+
var _o$eventName, _o$userId, _o$userId$toString;
|
|
175
|
+
var hasEventName = !eventName || (o === null || o === void 0 ? void 0 : (_o$eventName = o.eventName) === null || _o$eventName === void 0 ? void 0 : _o$eventName.includes(eventName));
|
|
176
|
+
var hasUserId = !searchUserId || (o === null || o === void 0 ? void 0 : (_o$userId = o.userId) === null || _o$userId === void 0 ? void 0 : (_o$userId$toString = _o$userId.toString()) === null || _o$userId$toString === void 0 ? void 0 : _o$userId$toString.includes(searchUserId));
|
|
177
|
+
var hasFilterData = !filterData || matchesFilterData(o, filterData);
|
|
178
|
+
return hasEventName && hasUserId && hasFilterData;
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
var newList = matchesSearchCriteria(oldList, eventName, searchUserId, filterData);
|
|
182
|
+
var aa = newList === null || newList === void 0 ? void 0 : newList.slice(0, 50);
|
|
183
|
+
setList(aa);
|
|
184
|
+
}, [eventName, searchUserId, oldList, filterData]);
|
|
185
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
186
|
+
className: classNameBase
|
|
187
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
188
|
+
className: "".concat(classNameBase, "_search")
|
|
189
|
+
}, /*#__PURE__*/React.createElement(Form, {
|
|
190
|
+
form: form,
|
|
191
|
+
layout: "inline",
|
|
192
|
+
initialValues: {
|
|
193
|
+
eventName: '',
|
|
194
|
+
searchUserId: null,
|
|
195
|
+
filterData: ''
|
|
196
|
+
}
|
|
197
|
+
}, /*#__PURE__*/React.createElement(Form.Item, {
|
|
198
|
+
name: "eventName",
|
|
199
|
+
label: "\u4E8B\u4EF6\u540D\u79F0",
|
|
200
|
+
labelAlign: "left",
|
|
201
|
+
labelCol: {
|
|
202
|
+
span: 6
|
|
203
|
+
},
|
|
204
|
+
wrapperCol: {
|
|
205
|
+
span: 18
|
|
206
|
+
}
|
|
207
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
|
208
|
+
placeholder: "\u8BF7\u8F93\u5165\u4E8B\u4EF6\u540D\u79F0"
|
|
209
|
+
})), /*#__PURE__*/React.createElement(Form.Item, {
|
|
210
|
+
name: "searchUserId",
|
|
211
|
+
label: "\u7528\u6237ID",
|
|
212
|
+
labelCol: {
|
|
213
|
+
span: 6
|
|
214
|
+
},
|
|
215
|
+
wrapperCol: {
|
|
216
|
+
span: 18
|
|
217
|
+
}
|
|
218
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
|
219
|
+
placeholder: "\u8BF7\u8F93\u5165\u7528\u6237ID"
|
|
220
|
+
})), /*#__PURE__*/React.createElement(Form.Item, {
|
|
221
|
+
name: "filterData",
|
|
222
|
+
label: "\u8FC7\u6EE4\u6570\u636E",
|
|
223
|
+
labelCol: {
|
|
224
|
+
span: 6
|
|
225
|
+
},
|
|
226
|
+
wrapperCol: {
|
|
227
|
+
span: 18
|
|
228
|
+
}
|
|
229
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
|
230
|
+
placeholder: "\u8BF7\u8F93\u5165\u9700\u8981\u8FC7\u6EE4\u7684\u6570\u636E"
|
|
231
|
+
}))), /*#__PURE__*/React.createElement(Button, {
|
|
232
|
+
type: "primary",
|
|
233
|
+
onClick: handleRefresh,
|
|
234
|
+
icon: textStatus ? /*#__PURE__*/React.createElement(IconFont, {
|
|
235
|
+
type: "zanting"
|
|
236
|
+
}) : /*#__PURE__*/React.createElement(IconFont, {
|
|
237
|
+
type: "bofang"
|
|
238
|
+
})
|
|
239
|
+
}, textStatus ? '停止刷新' : '开始刷新')), /*#__PURE__*/React.createElement("div", {
|
|
240
|
+
className: "".concat(classNameBase, "_table")
|
|
241
|
+
}, /*#__PURE__*/React.createElement("h4", {
|
|
242
|
+
className: "".concat(classNameBase, "_table_tip")
|
|
243
|
+
}, "\u5B9E\u65F6\u6570\u636E ", /*#__PURE__*/React.createElement("span", null, "\u6700\u591A\u5C55\u793A50\u6761")), /*#__PURE__*/React.createElement(DataRealViewTable, {
|
|
244
|
+
dataRecords: list
|
|
245
|
+
}))));
|
|
246
|
+
};
|
|
247
|
+
export default DataRealView;
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
|
+
import React, { useEffect, useState } from 'react';
|
|
8
|
+
import { ListTable } from '@visactor/vtable';
|
|
9
|
+
import * as VTable from '@visactor/vtable';
|
|
10
|
+
var DataRealViewTable = function DataRealViewTable(_ref) {
|
|
11
|
+
var dataRecords = _ref.dataRecords;
|
|
12
|
+
var columns = [{
|
|
13
|
+
title: '触发时间',
|
|
14
|
+
field: 'time',
|
|
15
|
+
width: 160,
|
|
16
|
+
sort: true
|
|
17
|
+
}, {
|
|
18
|
+
title: '事件名',
|
|
19
|
+
field: 'eventName',
|
|
20
|
+
width: 160
|
|
21
|
+
}, {
|
|
22
|
+
title: '用户ID',
|
|
23
|
+
field: 'userId',
|
|
24
|
+
width: 160
|
|
25
|
+
}, {
|
|
26
|
+
title: '数据',
|
|
27
|
+
field: 'data',
|
|
28
|
+
width: 800,
|
|
29
|
+
style: {
|
|
30
|
+
autoWrapText: true,
|
|
31
|
+
lineHeight: 30
|
|
32
|
+
}
|
|
33
|
+
// customRender(args: any) {
|
|
34
|
+
// const { dataValue } = args;
|
|
35
|
+
// const elements: {}[] = [];
|
|
36
|
+
// let top = 30;
|
|
37
|
+
// const left = 15;
|
|
38
|
+
// elements.push({
|
|
39
|
+
// type: 'text',
|
|
40
|
+
// fill: '#007eff',
|
|
41
|
+
// x: left + 10,
|
|
42
|
+
// y: top - 10,
|
|
43
|
+
// text: '基本信息',
|
|
44
|
+
// });
|
|
45
|
+
// elements.push({
|
|
46
|
+
// type: 'text',
|
|
47
|
+
// fill: '#333',
|
|
48
|
+
// fontSize: 13,
|
|
49
|
+
// fontWeight: 400,
|
|
50
|
+
// textBaseline: 'middle',
|
|
51
|
+
// text: `(${JSON.stringify(dataValue['base'])})`,
|
|
52
|
+
// x: left + 10,
|
|
53
|
+
// y: top + 10,
|
|
54
|
+
// width: 300,
|
|
55
|
+
// textAlign: 'left',
|
|
56
|
+
// autoWrapText: true,
|
|
57
|
+
// maxLineWidth:500,
|
|
58
|
+
// style: {
|
|
59
|
+
// autoWrapText: true,
|
|
60
|
+
// },
|
|
61
|
+
// });
|
|
62
|
+
// elements.push({
|
|
63
|
+
// type: 'text',
|
|
64
|
+
// fill: '#007eff',
|
|
65
|
+
// x: left + 10,
|
|
66
|
+
// y: top + 50,
|
|
67
|
+
// text: '其他信息',
|
|
68
|
+
// });
|
|
69
|
+
// elements.push({
|
|
70
|
+
// type: 'text',
|
|
71
|
+
// fill: '#333',
|
|
72
|
+
// fontSize: 13,
|
|
73
|
+
// fontWeight: 400,
|
|
74
|
+
// textBaseline: 'middle',
|
|
75
|
+
// text: `(${JSON.stringify(dataValue['detail'])})`,
|
|
76
|
+
// x: left + 10,
|
|
77
|
+
// y: top + 70,
|
|
78
|
+
// width: 1000,
|
|
79
|
+
// textAlign: 'left',
|
|
80
|
+
// });
|
|
81
|
+
// return {
|
|
82
|
+
// elements,
|
|
83
|
+
// expectedWidth: 400,
|
|
84
|
+
// expectedHeight: 120,
|
|
85
|
+
// };
|
|
86
|
+
// },
|
|
87
|
+
// customLayout(args) {
|
|
88
|
+
// console.log(args, '收到了');
|
|
89
|
+
// const { table, row, col, rect, dataValue } = args;
|
|
90
|
+
// const { height, width } = rect || table.getCellRect(col, row);
|
|
91
|
+
// const container = (
|
|
92
|
+
// <VGroup
|
|
93
|
+
// attribute={{
|
|
94
|
+
// width,
|
|
95
|
+
// height,
|
|
96
|
+
// display: 'flex',
|
|
97
|
+
// flexWrap: 'wrap',
|
|
98
|
+
// justifyContent: 'flex-start',
|
|
99
|
+
// alignContent: 'center'
|
|
100
|
+
// }}
|
|
101
|
+
// >
|
|
102
|
+
// <VText
|
|
103
|
+
// attribute={{
|
|
104
|
+
// text:JSON.stringify(dataValue['base']),
|
|
105
|
+
// fontSize: 13,
|
|
106
|
+
// fontFamily: 'sans-serif',
|
|
107
|
+
// fill: 'black',
|
|
108
|
+
// }}
|
|
109
|
+
// ></VText>
|
|
110
|
+
// {/* <VText
|
|
111
|
+
// attribute={{
|
|
112
|
+
// text: JSON.stringify(dataValue['detail']),
|
|
113
|
+
// fontSize: 11,
|
|
114
|
+
// fontFamily: 'sans-serif',
|
|
115
|
+
// fill: 'black',
|
|
116
|
+
// textAlign: 'left',
|
|
117
|
+
// wordBreak: 'break-word',
|
|
118
|
+
// textBaseline: 'top',
|
|
119
|
+
// boundsPadding: [0, 0, 0, 10],
|
|
120
|
+
// }}
|
|
121
|
+
// ></VText> */}
|
|
122
|
+
// </VGroup>
|
|
123
|
+
// );
|
|
124
|
+
// return {
|
|
125
|
+
// rootContainer: container,
|
|
126
|
+
// renderDefault: false,
|
|
127
|
+
// };
|
|
128
|
+
// },
|
|
129
|
+
}];
|
|
130
|
+
var option = {
|
|
131
|
+
records: dataRecords,
|
|
132
|
+
columns: columns,
|
|
133
|
+
SortState: {
|
|
134
|
+
/** 排序依据字段 */
|
|
135
|
+
field: 'time',
|
|
136
|
+
/** 排序规则 */
|
|
137
|
+
order: 'asc'
|
|
138
|
+
},
|
|
139
|
+
maxCharactersNumber: 1000000,
|
|
140
|
+
autoWrapText: true,
|
|
141
|
+
defaultHeaderRowHeight: 70,
|
|
142
|
+
defaultRowHeight: 470,
|
|
143
|
+
enableLineBreak: true,
|
|
144
|
+
rowSeriesNumber: {
|
|
145
|
+
title: '序号'
|
|
146
|
+
},
|
|
147
|
+
keyboardOptions: {
|
|
148
|
+
// 快捷键配置
|
|
149
|
+
moveEditCellOnArrowKeys: true,
|
|
150
|
+
copySelected: true,
|
|
151
|
+
pasteValueToCell: true
|
|
152
|
+
},
|
|
153
|
+
editor: '',
|
|
154
|
+
autoFillWidth: true,
|
|
155
|
+
emptyTip: {
|
|
156
|
+
// 空数据提示
|
|
157
|
+
text: '暂无数据'
|
|
158
|
+
},
|
|
159
|
+
tooltip: {
|
|
160
|
+
isShowOverflowTextTooltip: true
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
var _useState = useState(),
|
|
164
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
165
|
+
vtable = _useState2[0],
|
|
166
|
+
setVtable = _useState2[1];
|
|
167
|
+
var popup = document.createElement('div');
|
|
168
|
+
Object.assign(popup.style, {
|
|
169
|
+
position: 'fixed',
|
|
170
|
+
width: '300px',
|
|
171
|
+
height: '400px',
|
|
172
|
+
overflowY: 'scroll',
|
|
173
|
+
wordBreak: 'break-all',
|
|
174
|
+
backgroundColor: '#f1f1f1',
|
|
175
|
+
border: '1px solid #ccc',
|
|
176
|
+
padding: '20px',
|
|
177
|
+
textAlign: 'left'
|
|
178
|
+
});
|
|
179
|
+
function showTooltip(data, x, y) {
|
|
180
|
+
popup.innerHTML = '';
|
|
181
|
+
popup.id = 'popup';
|
|
182
|
+
popup.style.left = x + 'px';
|
|
183
|
+
popup.style.top = y + 'px';
|
|
184
|
+
var heading = document.createElement('h4');
|
|
185
|
+
heading.textContent = '数据信息';
|
|
186
|
+
heading.style.margin = '10px 0px';
|
|
187
|
+
popup.appendChild(heading);
|
|
188
|
+
var info1 = document.createElement('p');
|
|
189
|
+
info1.textContent = data; // 点击的单元格文本信息
|
|
190
|
+
popup.appendChild(info1);
|
|
191
|
+
// 将弹出框添加到文档主体中
|
|
192
|
+
document.body.appendChild(popup);
|
|
193
|
+
}
|
|
194
|
+
function hideTooltip() {
|
|
195
|
+
if (document.body.contains(popup)) {
|
|
196
|
+
document.body.removeChild(popup);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
useEffect(function () {
|
|
200
|
+
// 初始化表格
|
|
201
|
+
var initVtable = new ListTable(document.getElementById('tableContainer'), option);
|
|
202
|
+
initVtable.on('mouseenter_cell', function (args) {
|
|
203
|
+
var col = args.col,
|
|
204
|
+
row = args.row,
|
|
205
|
+
targetIcon = args.targetIcon;
|
|
206
|
+
if (col == 4 && row != 0) {
|
|
207
|
+
var rect = initVtable.getVisibleCellRangeRelativeRect({
|
|
208
|
+
col: col,
|
|
209
|
+
row: row
|
|
210
|
+
});
|
|
211
|
+
initVtable.showTooltip(col, row, {
|
|
212
|
+
content: '数据' + initVtable.getCellValue(col, row),
|
|
213
|
+
referencePosition: {
|
|
214
|
+
rect: rect,
|
|
215
|
+
placement: VTable.TYPES.Placement.right
|
|
216
|
+
},
|
|
217
|
+
className: 'defineTooltip',
|
|
218
|
+
disappearDelay: 100,
|
|
219
|
+
style: {
|
|
220
|
+
bgColor: 'black',
|
|
221
|
+
color: 'white',
|
|
222
|
+
font: 'normal bold normal 14px/1 STKaiti',
|
|
223
|
+
arrowMark: true,
|
|
224
|
+
maxHeight: '400px',
|
|
225
|
+
overflowY: 'scroll'
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
// initVtable.on('click_cell', (args: any) => {
|
|
231
|
+
// console.log('监听到了', args);
|
|
232
|
+
// if (args.field == 'data') {
|
|
233
|
+
// showTooltip(args.dataValue, args.event.x, args.event.y);
|
|
234
|
+
// }
|
|
235
|
+
// });
|
|
236
|
+
// initVtable.on('mouseleave_cell', (args) => {
|
|
237
|
+
// hideTooltip();
|
|
238
|
+
// });
|
|
239
|
+
setVtable(initVtable);
|
|
240
|
+
}, []);
|
|
241
|
+
// 创建 VTable 实例
|
|
242
|
+
useEffect(function () {
|
|
243
|
+
vtable === null || vtable === void 0 ? void 0 : vtable.setRecords(dataRecords);
|
|
244
|
+
}, [dataRecords]);
|
|
245
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
246
|
+
style: {
|
|
247
|
+
width: '100%',
|
|
248
|
+
height: '500px',
|
|
249
|
+
position: 'relative'
|
|
250
|
+
}
|
|
251
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
252
|
+
id: "tableContainer",
|
|
253
|
+
style: {
|
|
254
|
+
position: 'absolute',
|
|
255
|
+
width: '100%',
|
|
256
|
+
height: '500px'
|
|
257
|
+
}
|
|
258
|
+
})));
|
|
259
|
+
};
|
|
260
|
+
export default DataRealViewTable;
|