@zgfe/modules-settings 2.0.0-zhongyuan.33 → 2.0.0-zhongyuan.35

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.
@@ -0,0 +1,521 @@
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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
8
+ 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."); }
9
+ 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; } }
10
+ 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; }
11
+ 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; } }
12
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
13
+ import React, { useState, useEffect, useContext } from 'react';
14
+ import { IconFont, BizGlobalDataContext } from '@zgfe/business-lib';
15
+ import { Select, Table, Tooltip, Popover } from 'antd';
16
+ import request from '../../utils/ajax';
17
+ import apis from '../../constants/api';
18
+ import './styles/pageInfo.less';
19
+ var classPrefix = 'setting-point-map';
20
+ var record = function record(props) {
21
+ var _useContext = useContext(BizGlobalDataContext),
22
+ currentApp = _useContext.currentApp;
23
+ var _useState = useState(0),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ tabIndex = _useState2[0],
26
+ setTabIndex = _useState2[1];
27
+ var _useState3 = useState(0),
28
+ _useState4 = _slicedToArray(_useState3, 2),
29
+ propType = _useState4[0],
30
+ setPropType = _useState4[1];
31
+ var _useState5 = useState(-1),
32
+ _useState6 = _slicedToArray(_useState5, 2),
33
+ hidden = _useState6[0],
34
+ setHidden = _useState6[1];
35
+ var _useState7 = useState(-1),
36
+ _useState8 = _slicedToArray(_useState7, 2),
37
+ encryptionType = _useState8[0],
38
+ setEncryptionType = _useState8[1];
39
+ var _useState9 = useState(''),
40
+ _useState10 = _slicedToArray(_useState9, 2),
41
+ owner = _useState10[0],
42
+ setOwner = _useState10[1];
43
+ var _useState11 = useState(false),
44
+ _useState12 = _slicedToArray(_useState11, 2),
45
+ loading = _useState12[0],
46
+ setLoading = _useState12[1];
47
+ var _useState13 = useState(props.eventName),
48
+ _useState14 = _slicedToArray(_useState13, 1),
49
+ eventName = _useState14[0];
50
+ var _useState15 = useState([{
51
+ iconColor: '#fda043',
52
+ children: ['']
53
+ }, {
54
+ iconColor: '#165dff',
55
+ children: ['']
56
+ }, {
57
+ iconColor: '#2bbe54',
58
+ children: ['']
59
+ }]),
60
+ _useState16 = _slicedToArray(_useState15, 2),
61
+ timeList = _useState16[0],
62
+ setTimeList = _useState16[1];
63
+ //修改前
64
+ var _useState17 = useState([]),
65
+ _useState18 = _slicedToArray(_useState17, 2),
66
+ startEdit = _useState18[0],
67
+ setStartEdit = _useState18[1];
68
+ //修改后
69
+ var _useState19 = useState([]),
70
+ _useState20 = _slicedToArray(_useState19, 2),
71
+ endEdit = _useState20[0],
72
+ setEndEdit = _useState20[1];
73
+ //是否查看修改记录
74
+ var _useState21 = useState(false),
75
+ _useState22 = _slicedToArray(_useState21, 2),
76
+ isShowEdit = _useState22[0],
77
+ setIsShowEdit = _useState22[1];
78
+ //修改人
79
+ var _useState23 = useState(''),
80
+ _useState24 = _slicedToArray(_useState23, 2),
81
+ creatorName = _useState24[0],
82
+ setCreatorName = _useState24[1];
83
+ // 表格列
84
+ var columns = [{
85
+ title: '属性名称',
86
+ dataIndex: 'attrName',
87
+ fixed: 'left',
88
+ width: 200,
89
+ render: function render(text) {
90
+ return /*#__PURE__*/React.createElement(Tooltip, {
91
+ title: text || '',
92
+ placement: "top"
93
+ }, /*#__PURE__*/React.createElement("div", {
94
+ className: "".concat(classPrefix, "-record-update-text")
95
+ }, text));
96
+ }
97
+ }, {
98
+ title: '别名',
99
+ dataIndex: 'aliasName',
100
+ width: 150,
101
+ render: function render(text) {
102
+ return /*#__PURE__*/React.createElement(Tooltip, {
103
+ title: text || '',
104
+ placement: "top"
105
+ }, /*#__PURE__*/React.createElement("div", {
106
+ className: "".concat(classPrefix, "-record-update-text")
107
+ }, text));
108
+ }
109
+ }, {
110
+ title: '实行值别名',
111
+ dataIndex: 'execValue',
112
+ width: 150,
113
+ render: function render(text) {
114
+ return /*#__PURE__*/React.createElement(Tooltip, {
115
+ title: text || '',
116
+ placement: "top"
117
+ }, /*#__PURE__*/React.createElement("div", {
118
+ className: "".concat(classPrefix, "-record-update-text"),
119
+ style: {
120
+ color: '#1454e5'
121
+ }
122
+ }, text));
123
+ }
124
+ }, {
125
+ title: (/*#__PURE__*/React.createElement(Select, {
126
+ defaultValue: 0,
127
+ style: {
128
+ width: 100
129
+ },
130
+ onChange: function onChange(e) {
131
+ return setPropType(e);
132
+ },
133
+ options: [{
134
+ value: 0,
135
+ label: '属性类型'
136
+ }, {
137
+ value: 1,
138
+ label: '字符串'
139
+ }, {
140
+ value: 2,
141
+ label: '数值'
142
+ }, {
143
+ value: 3,
144
+ label: '日期'
145
+ }],
146
+ suffixIcon: /*#__PURE__*/React.createElement(IconFont, {
147
+ type: "xiangxia",
148
+ style: {
149
+ color: '#021429'
150
+ }
151
+ })
152
+ })),
153
+ dataIndex: 'propType',
154
+ width: 120,
155
+ render: function render(text, record, index) {
156
+ var json = {
157
+ 1: '字符串',
158
+ 2: '数值',
159
+ 3: '日期'
160
+ };
161
+ return /*#__PURE__*/React.createElement(React.Fragment, null, " ", text && /*#__PURE__*/React.createElement("div", null, json[text] || '-'));
162
+ }
163
+ }, {
164
+ title: (/*#__PURE__*/React.createElement(Select, {
165
+ defaultValue: -1,
166
+ style: {
167
+ width: 100
168
+ },
169
+ onChange: function onChange(e) {
170
+ return setHidden(e);
171
+ },
172
+ options: [{
173
+ value: -1,
174
+ label: '显示状态'
175
+ }, {
176
+ value: 1,
177
+ label: '隐藏'
178
+ }, {
179
+ value: 0,
180
+ label: '显示'
181
+ }],
182
+ suffixIcon: /*#__PURE__*/React.createElement(IconFont, {
183
+ type: "xiangxia",
184
+ style: {
185
+ color: '#021429'
186
+ }
187
+ })
188
+ })),
189
+ dataIndex: 'hidden',
190
+ width: 120,
191
+ render: function render(text, record, index) {
192
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, record.hidden == 1 ? '隐藏' : '显示'));
193
+ }
194
+ }, {
195
+ title: (/*#__PURE__*/React.createElement(Select, {
196
+ defaultValue: -1,
197
+ style: {
198
+ width: 100
199
+ },
200
+ onChange: function onChange(e) {
201
+ return setEncryptionType(e);
202
+ },
203
+ options: [{
204
+ value: -1,
205
+ label: '加密方式'
206
+ }, {
207
+ value: 0,
208
+ label: '不加密'
209
+ }, {
210
+ value: 1,
211
+ label: '半加密'
212
+ }, {
213
+ value: 2,
214
+ label: '全加密'
215
+ }],
216
+ suffixIcon: /*#__PURE__*/React.createElement(IconFont, {
217
+ type: "xiangxia",
218
+ style: {
219
+ color: '#021429'
220
+ }
221
+ })
222
+ })),
223
+ dataIndex: 'encryptionType',
224
+ width: 120,
225
+ render: function render(text) {
226
+ var json = {
227
+ 0: '不加密',
228
+ 1: '半加密',
229
+ 2: '全加密'
230
+ };
231
+ return /*#__PURE__*/React.createElement(React.Fragment, null, text && /*#__PURE__*/React.createElement("div", null, json[text]));
232
+ }
233
+ }, {
234
+ title: (/*#__PURE__*/React.createElement(Select, {
235
+ defaultValue: '',
236
+ style: {
237
+ width: 100
238
+ },
239
+ onChange: function onChange(e) {
240
+ return setOwner(e);
241
+ },
242
+ options: [{
243
+ value: '',
244
+ label: '来源'
245
+ }, {
246
+ value: 'zg_abp',
247
+ label: '内置'
248
+ }, {
249
+ value: 'zg',
250
+ label: '自定义'
251
+ }],
252
+ suffixIcon: /*#__PURE__*/React.createElement(IconFont, {
253
+ type: "xiangxia",
254
+ style: {
255
+ color: '#021429'
256
+ }
257
+ })
258
+ })),
259
+ dataIndex: 'owner',
260
+ width: 120,
261
+ render: function render(owner) {
262
+ var json = {
263
+ zg_abp: '内置',
264
+ zg: '自定义'
265
+ };
266
+ return /*#__PURE__*/React.createElement("div", null, json[owner]);
267
+ }
268
+ }];
269
+ // 用户属性列表
270
+ var _useState25 = useState([]),
271
+ _useState26 = _slicedToArray(_useState25, 2),
272
+ userAttrData = _useState26[0],
273
+ setUserAttrData = _useState26[1];
274
+ var _useState27 = useState(''),
275
+ _useState28 = _slicedToArray(_useState27, 2),
276
+ scrollY = _useState28[0],
277
+ setScrollY = _useState28[1];
278
+ //页面加载完成后才能获取到对应的元素及其位置
279
+ useEffect(function () {
280
+ var _Y = getTableScroll(60, 'dataManageAttrTable');
281
+ setScrollY(_Y);
282
+ }, []);
283
+ var getTableScroll = function getTableScroll(extraHeight, id) {
284
+ if (typeof extraHeight == 'undefined') {
285
+ // 默认底部分页64 + 边距10
286
+ extraHeight = 74;
287
+ }
288
+ var tHeader = null;
289
+ if (id) {
290
+ var _document$getElementB;
291
+ tHeader = document.getElementById(id) ? (_document$getElementB = document.getElementById(id)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.getElementsByClassName('ant-table-thead')[0] : null;
292
+ } else {
293
+ tHeader = document.getElementsByClassName('ant-table-thead')[0];
294
+ }
295
+ //表格内容距离顶部的距离
296
+ var tHeaderBottom = 0;
297
+ if (tHeader) {
298
+ tHeaderBottom = tHeader.getBoundingClientRect().bottom;
299
+ }
300
+ //窗体高度-表格内容顶部的高度-表格内容底部的高度
301
+ // let height = document.body.clientHeight - tHeaderBottom - extraHeight
302
+ var height = "calc(100vh - ".concat(tHeaderBottom + extraHeight, "px)");
303
+ return height;
304
+ };
305
+ useEffect(function () {
306
+ getEventLog();
307
+ }, [props.eventId]);
308
+ //埋点日志查询
309
+ var getEventLog = function getEventLog() {
310
+ request(apis.getEventLog, {
311
+ method: 'post',
312
+ data: {
313
+ appId: currentApp === null || currentApp === void 0 ? void 0 : currentApp.appId,
314
+ id: props.eventId
315
+ }
316
+ }).then(function (res) {
317
+ if (res && res.code === '100000') {
318
+ var nameList = [{
319
+ name: '初次上报',
320
+ iconColor: '#fda043'
321
+ }, {
322
+ name: '审批通过',
323
+ iconColor: '#2bbe54'
324
+ }, {
325
+ name: '埋点上线',
326
+ iconColor: '#2bbe54'
327
+ }, {
328
+ name: '埋点下线',
329
+ iconColor: '#717484'
330
+ }, {
331
+ name: '属性修改',
332
+ iconColor: '#165dff'
333
+ }];
334
+ var dataList = [];
335
+ nameList.map(function (nameItem) {
336
+ var list = [];
337
+ res.data.map(function (item) {
338
+ if (nameItem.name == item.logDesc) {
339
+ if (nameItem.name == '属性修改') {
340
+ var valueList = [];
341
+ for (var key in item.logDetail) {
342
+ valueList.push({
343
+ label: key,
344
+ value: item.logDetail[key]
345
+ });
346
+ }
347
+ list.push(_objectSpread(_objectSpread({}, item), {}, {
348
+ valueList: valueList
349
+ }));
350
+ } else {
351
+ list.push(item);
352
+ }
353
+ }
354
+ });
355
+ dataList.push({
356
+ name: nameItem.name,
357
+ children: list,
358
+ iconColor: nameItem.iconColor
359
+ });
360
+ });
361
+ dataList = dataList.filter(function (res) {
362
+ var _res$children;
363
+ return (_res$children = res.children) === null || _res$children === void 0 ? void 0 : _res$children.length;
364
+ });
365
+ setTimeList(dataList);
366
+ }
367
+ });
368
+ // let data: any = [
369
+ // {
370
+ // appId: 5,
371
+ // createTime: '2025-07-16 09:44:43',
372
+ // creatorId: 1,
373
+ // creatorName: '初始用户1',
374
+ // del: 0,
375
+ // demandId: null,
376
+ // id: 5,
377
+ // logDesc: '初次上报',
378
+ // logDetail: {
379
+ // 首次上报时间: '2025-07-16 09:44:43',
380
+ // },
381
+ // },
382
+ // {
383
+ // appId: 5,
384
+ // createTime: '2025-07-16 09:44:43',
385
+ // creatorId: 1,
386
+ // creatorName: '初始用户1',
387
+ // del: 0,
388
+ // demandId: null,
389
+ // id: 5,
390
+ // logDesc: '审批通过',
391
+ // logDetail: {
392
+ // 需求名称: '761-1',
393
+ // 需求描述: '1111',
394
+ // },
395
+ // },
396
+ // {
397
+ // appId: 5,
398
+ // createTime: '2025-07-16 09:44:43',
399
+ // creatorId: 1,
400
+ // creatorName: '初始用户1',
401
+ // del: 0,
402
+ // demandId: null,
403
+ // id: 5,
404
+ // logDesc: '属性修改',
405
+ // logDetail: {
406
+ // "修改前":[{"insertTime":1749458284022,"owner":'zg',aliasName:'222',eventId: 1002462,attrId:1221992,hidden: 0,isStop: 0,isDelete: false,encryptionType: 1,propType: 1,attrName:"funcmodule",columnName: "cus?"}],
407
+ // "修改后":[{"insertTime":1749458284022,"owner":'zg_abp',aliasName:'111',eventId: 1002462,attrId:1221992,hidden: 0,isStop: 0,isDelete: false,encryptionType: 1,propType: 1,attrName:"funcmodule1",columnName: "cus?1"}]
408
+ // },
409
+ // },
410
+ // ];
411
+ };
412
+ var onGetEdit = function onGetEdit(data) {
413
+ setCreatorName(data.creatorName);
414
+ setStartEdit(data.logDetail['修改前']);
415
+ setEndEdit(data.logDetail['修改后']);
416
+ setIsShowEdit(true);
417
+ };
418
+ var content = function content(list) {
419
+ return list && list.map(function (res) {
420
+ return /*#__PURE__*/React.createElement("div", {
421
+ className: "".concat(classPrefix, "-record-content-timeList-popoverList")
422
+ }, /*#__PURE__*/React.createElement("div", {
423
+ className: "".concat(classPrefix, "-record-content-timeList-popoverList-label")
424
+ }, res.label, ":"), /*#__PURE__*/React.createElement("div", {
425
+ className: "".concat(classPrefix, "-record-content-timeList-popoverList-value")
426
+ }, res.value));
427
+ });
428
+ };
429
+ return /*#__PURE__*/React.createElement("div", {
430
+ className: "".concat(classPrefix, "-record")
431
+ }, /*#__PURE__*/React.createElement("div", {
432
+ className: "".concat(classPrefix, "-record-content")
433
+ }, /*#__PURE__*/React.createElement("div", {
434
+ className: "".concat(classPrefix, "-record-content-timeList")
435
+ }, timeList.map(function (res, index) {
436
+ return /*#__PURE__*/React.createElement("div", {
437
+ className: "".concat(classPrefix, "-record-content-timeList-box"),
438
+ key: index
439
+ }, /*#__PURE__*/React.createElement("div", {
440
+ className: "".concat(classPrefix, "-record-content-timeList-nav")
441
+ }, /*#__PURE__*/React.createElement("div", {
442
+ className: "".concat(classPrefix, "-record-content-timeList-nav-icon"),
443
+ style: {
444
+ backgroundColor: res.iconColor,
445
+ outlineColor: res.iconColor + '50'
446
+ }
447
+ }), /*#__PURE__*/React.createElement("div", {
448
+ className: "".concat(classPrefix, "-record-content-timeList-nav-name")
449
+ }, res.name)), /*#__PURE__*/React.createElement("div", {
450
+ className: "".concat(classPrefix, "-record-content-timeList-list")
451
+ }, res.children.map(function (dren) {
452
+ return /*#__PURE__*/React.createElement("div", {
453
+ className: "".concat(classPrefix, "-record-content-timeList-list-item")
454
+ }, /*#__PURE__*/React.createElement("div", {
455
+ className: "".concat(classPrefix, "-record-content-timeList-list-item-icon"),
456
+ style: {
457
+ backgroundColor: res.iconColor
458
+ }
459
+ }), res.name == '属性修改' ? (/*#__PURE__*/React.createElement(Popover, {
460
+ placement: "top",
461
+ content: '单击查看属性修改',
462
+ trigger: "hover"
463
+ }, /*#__PURE__*/React.createElement("div", {
464
+ className: "".concat(classPrefix, "-record-content-timeList-list-item-text"),
465
+ onClick: function onClick() {
466
+ onGetEdit(dren);
467
+ }
468
+ }, ' ', dren.createTime ? dren.createTime.slice(0, 10) : '', ' ', dren.creatorName))) : (/*#__PURE__*/React.createElement(Popover, {
469
+ placement: "top",
470
+ content: content(dren.valueList),
471
+ trigger: "hover"
472
+ }, /*#__PURE__*/React.createElement("div", {
473
+ className: "".concat(classPrefix, "-record-content-timeList-list-item-text")
474
+ }, ' ', dren.createTime ? dren.createTime.slice(0, 10) : '', ' ', dren.creatorName))));
475
+ })));
476
+ })), /*#__PURE__*/React.createElement("div", {
477
+ className: "".concat(classPrefix, "-record-content-name")
478
+ }, eventName)), isShowEdit && (/*#__PURE__*/React.createElement("div", {
479
+ className: "".concat(classPrefix, "-record-update")
480
+ }, /*#__PURE__*/React.createElement("div", {
481
+ className: "".concat(classPrefix, "-record-update-nav")
482
+ }, /*#__PURE__*/React.createElement("div", {
483
+ className: "".concat(classPrefix, "-record-update-nav-icon")
484
+ }), /*#__PURE__*/React.createElement("div", {
485
+ className: "".concat(classPrefix, "-record-update-nav-title")
486
+ }, "\u5C5E\u6027\u4FEE\u6539"), /*#__PURE__*/React.createElement("div", {
487
+ className: "".concat(classPrefix, "-record-update-nav-name")
488
+ }, "\u64CD\u4F5C\u4EBA:", creatorName)), /*#__PURE__*/React.createElement("div", {
489
+ className: "".concat(classPrefix, "-record-update-tabList")
490
+ }, /*#__PURE__*/React.createElement("div", {
491
+ className: "".concat(classPrefix, "-record-update-tabList-item ").concat(tabIndex == 0 && "".concat(classPrefix, "-record-update-tabList-active")),
492
+ onClick: function onClick() {
493
+ setTabIndex(0);
494
+ }
495
+ }, "\u4FEE\u6539\u524D"), /*#__PURE__*/React.createElement("div", {
496
+ className: "".concat(classPrefix, "-record-update-tabList-item ").concat(tabIndex == 1 && "".concat(classPrefix, "-record-update-tabList-active")),
497
+ onClick: function onClick() {
498
+ setTabIndex(1);
499
+ }
500
+ }, "\u4FEE\u6539\u540E")), /*#__PURE__*/React.createElement(Table, {
501
+ className: "".concat(classPrefix, "-record-table"),
502
+ columns: columns,
503
+ id: 'dataManageAttrTable',
504
+ rowKey: "name",
505
+ loading: loading,
506
+ scroll: {
507
+ y: scrollY
508
+ },
509
+ dataSource: (tabIndex == 0 ? startEdit : endEdit).filter(function (item) {
510
+ return propType < 1 || item.propType === propType;
511
+ }).filter(function (item) {
512
+ return hidden < 0 || item.hidden === hidden;
513
+ }).filter(function (item) {
514
+ return encryptionType < 0 || item.encryptionType === encryptionType;
515
+ }).filter(function (item) {
516
+ return owner == '' || item.owner === owner;
517
+ }),
518
+ pagination: false
519
+ }))));
520
+ };
521
+ export default record;