bri-components 1.4.78 → 1.4.80

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bri-components",
3
- "version": "1.4.78",
3
+ "version": "1.4.80",
4
4
  "author": "dengshanghui",
5
5
  "description": "a component lib for vue project",
6
6
  "main": "src/index.js",
@@ -13,21 +13,15 @@
13
13
  ></dsh-render>
14
14
 
15
15
  <!-- 表格 -->
16
- <div class="DshCasTable-main">
17
- <div
18
- class="DshCasTable-main-center"
19
- :style="{
20
- maxHeight: `${contentHeight}px`,
21
- height: `${contentHeight}px`
22
- }"
23
- >
24
- <!-- 表头 -->
25
- <dsh-render :render="tableHeadRender"></dsh-render>
26
-
27
- <!-- 数据行 -->
28
- <dsh-render :render="tableBodyRender"></dsh-render>
29
- </div>
30
- </div>
16
+ <bri-table
17
+ class="DshCasTable-main"
18
+ :isLoading="isLoading"
19
+ :columns="showColumns"
20
+ :data="isLoading ? [] : showListData"
21
+ :propsObj="tablePropsObj"
22
+ @changeSelect="changeSelect"
23
+ @selectAll="changeSelect"
24
+ ></bri-table>
31
25
 
32
26
  <!-- 添加行 -->
33
27
  <dsh-render :render="createBtnRender"></dsh-render>
@@ -53,15 +47,16 @@
53
47
  <!-- 搜索条件 -->
54
48
  <dsh-render :render="topSearchRender"></dsh-render>
55
49
 
56
- <div class="DshCasTable-fullscreen-inner-main DshCasTable-main">
57
- <div class="DshCasTable-main-center">
58
- <!-- 表头 -->
59
- <dsh-render :render="tableHeadRender"></dsh-render>
60
-
61
- <!-- 数据行 -->
62
- <dsh-render :render="tableBodyRender"></dsh-render>
63
- </div>
64
- </div>
50
+ <!-- 表格 -->
51
+ <bri-table
52
+ class="DshCasTable-fullscreen-inner-main"
53
+ :isLoading="isLoading"
54
+ :columns="showColumns"
55
+ :data="isLoading ? [] : showListData"
56
+ :propsObj="tablePropsObj"
57
+ @changeSelect="changeSelect"
58
+ @selectAll="changeSelect"
59
+ ></bri-table>
65
60
 
66
61
  <!-- 添加行 -->
67
62
  <dsh-render :render="createBtnRender"></dsh-render>
@@ -99,48 +94,7 @@
99
94
 
100
95
  &-main {
101
96
  width: 100%;
102
-
103
- &-center {
104
- width: 100%;
105
- height: 100%;
106
- margin-left: 0px;
107
- margin-right: 0px;
108
- display: flex;
109
- flex-direction: column;
110
-
111
- .table {
112
- border-spacing: 0;
113
- border-collapse: collapse;
114
- border-color: #E5E5E5;
115
- line-height: 18px;
116
- }
117
-
118
- // 头部
119
- &-top {
120
- width: 100%;
121
- z-index: 99;
122
- overflow: hidden;
123
-
124
- &-inner {
125
- display: block;
126
- float: left;
127
- width: 10000px;
128
- }
129
- }
130
-
131
- // 主体
132
- &-list {
133
- width: 100%;
134
- flex: 1;
135
- min-height: 0px;
136
- margin-top: -1px;
137
- overflow: auto;
138
-
139
- &-inner {
140
-
141
- }
142
- }
143
- }
97
+ height: auto;
144
98
  }
145
99
 
146
100
  &-fullscreen {
@@ -10,9 +10,7 @@ export default {
10
10
  }
11
11
  },
12
12
  data () {
13
- return {
14
- boxWidth: 0
15
- };
13
+ return {};
16
14
  },
17
15
  computed: {
18
16
  selfBasePropsObj () {
@@ -28,14 +26,20 @@ export default {
28
26
  oldReadonlyTreeColKeys () {
29
27
  return this.isDftSet ? [] : this.selfPropsObj._oldReadonlyTreeColKeys || []; // 配置端有问题,高级依赖时值成undefined了
30
28
  },
29
+
31
30
  // 替换tableBaseMixin里的
31
+ noborderColKeys () {
32
+ return [
33
+ ...this.treeColumns.map(colItem => colItem._key),
34
+ ...this.selfPropsObj._noborderColKeys
35
+ ];
36
+ },
32
37
  showCreateBtnColKeys () {
33
38
  return [
34
39
  ...this.treeFormKeys,
35
40
  ...(this.selfPropsObj._showCreateBtnColKeys || [])
36
41
  ];
37
42
  },
38
- // 顶替tableBaseMixin里的
39
43
  searchTitle () {
40
44
  return `${this.isSearching ? "筛选" : "全部"}数据,共 ${this.selfTotal} 条;`;
41
45
  },
@@ -52,23 +56,12 @@ export default {
52
56
 
53
57
  showColumns () {
54
58
  return this.mergeColumns(this.treeColumns);
55
- },
56
- // 供表格渲染行使用的columns的数组集合, 每一行columns不一样,组成二重数组
57
- rowColumnsArr () {
58
- return this.transformRowColumnsArr(this.allTreeData, this.treeColumns);
59
59
  }
60
60
  },
61
61
  created () {
62
62
  this.init();
63
63
  },
64
- mounted () {
65
- setTimeout(() => {
66
- this.$el.querySelector(".DshCasTable-main-center-list").addEventListener("scroll", (e) => {
67
- this.$el.querySelector(".DshCasTable-main-center-top").scrollLeft = e.srcElement.scrollLeft;
68
- }, false);
69
- this.boxWidth = this.$refs.DshCascaderTable.clientWidth;
70
- }, 0);
71
- },
64
+ mounted () { },
72
65
  methods: {
73
66
  // 初始化
74
67
  init () {
@@ -77,292 +70,7 @@ export default {
77
70
  // this.$set(treeFormItem, "canDelete", true);
78
71
  });
79
72
  },
80
- // 点开模态框后处理 -表头跟着内容行滚动
81
- dealingOpenModal () {
82
- if (this.isEnlargeFlag) {
83
- setTimeout(() => {
84
- document.querySelector(".DshCasTable-fullscreen-inner-main .DshCasTable-main-center-list").addEventListener("scroll", (e) => {
85
- document.querySelector(".DshCasTable-fullscreen-inner-main .DshCasTable-main-center-top").scrollLeft = e.srcElement.scrollLeft;
86
- }, false);
87
- }, 0);
88
- }
89
- },
90
-
91
- /* ----------- 渲染函数(声明:为了代码更加规范清晰,return的是h相关的函数,则函数名get开头;return的是h的直接调用,函数名不要get开头)---------- */
92
- // 表格表头渲染函数
93
- tableHeadRender (h) {
94
- return h("div", {
95
- class: "DshCasTable-main-center-top"
96
- }, [
97
- h("div", {
98
- class: "DshCasTable-main-center-top-inner"
99
- }, [
100
- h("table", {
101
- class: "table",
102
- attrs: {
103
- border: "1",
104
- cellspacin: "0",
105
- bordercolor: "#E7EDF8"
106
- }
107
- }, [
108
- h("tbody", {
109
- class: ""
110
- }, [
111
- h(
112
- "tr",
113
- {},
114
- this.showColumns.map((column, colIndex) => {
115
- return this.thRender(h, { column, colIndex });
116
- // return h("dsh-render", {
117
- // props: {
118
- // render: this.thRender(h, { column, colIndex })
119
- // }
120
- // })
121
- })
122
- )
123
- ])
124
- ])
125
- ])
126
- ]);
127
- },
128
- // 表格内容渲染函数
129
- tableBodyRender (h) {
130
- return h("div", {
131
- class: "DshCasTable-main-center-list"
132
- }, [
133
- this.isLoading
134
- ? h("bri-loading")
135
- : h("div", {
136
- class: "DshCasTable-main-center-list-inner"
137
- }, [
138
- h("table", {
139
- class: "table",
140
- attrs: {
141
- border: "1",
142
- cellspacin: "0",
143
- bordercolor: "#E7EDF8"
144
- }
145
- }, [
146
- h("tbody", {
147
- class: ""
148
- }, [
149
- this.showListData.length
150
- ? this.showListData.map((mixedRow, rowIndex) => {
151
- return h(
152
- "tr",
153
- {
154
- key: mixedRow._id,
155
- class: ""
156
- },
157
- this.rowColumnsArr[rowIndex].map(column => {
158
- return this.tdRender(h, { row: mixedRow[column.nodeKey || column._key], rowIndex, column });
159
- })
160
- );
161
- })
162
- // 无数据
163
- : h(
164
- "tr",
165
- {
166
- class: "bri-table-nodata"
167
- },
168
- [
169
- this.emptyTdRender(h, {})
170
- ]
171
- )
172
- ])
173
- ])
174
- ])
175
- ]);
176
- },
177
- // 表头单元格渲染函数 (无法共用contentColumns的renderHeaderCell,因为级联老版表头的无renderHeaderCell)
178
- thRender (h, { column, colIndex }) {
179
- return h(
180
- "th",
181
- {
182
- key: column._id,
183
- class: "bri-table-th",
184
- style: this.getThStyle({ column, colIndex })
185
- },
186
- [
187
- this.contentThCellRender(h, { column, colIndex })
188
- ]);
189
- },
190
- emptyTdRender (h, { row, rowIndex, column }) {
191
- return h("td", {
192
- style: {
193
- width: `${this.boxWidth}px`,
194
- minWidth: `${this.boxWidth}px`,
195
- maxWidth: `${this.boxWidth}px`
196
- },
197
- attrs: {
198
- rowspan: 1,
199
- colspan: this.showColumns.length
200
- }
201
- }, "暂无数据…");
202
- },
203
- // 内容单元格渲染函数
204
- tdRender (h, { row, rowIndex, column }) {
205
- return h(
206
- "td",
207
- {
208
- class: this.bodyCellClass({ row, rowIndex, column }),
209
- style: this.getTdStyle({ row, rowIndex, column }),
210
- attrs: {
211
- rowspan: this.getTdRowSpan({ row, rowIndex, column }),
212
- colspan: this.getTdColSpan({ row, rowIndex, column })
213
- },
214
- on: {
215
- mouseenter: (event) => {
216
- this.$set(this.hoverRecordMap, `${row._id}`, true);
217
- },
218
- mouseleave: (event) => {
219
- this.$set(this.hoverRecordMap, `${row._id}`, false);
220
- }
221
- }
222
- },
223
- column.colType === "summary"
224
- ? this.getSummaryTdVal({ row, rowIndex, column })
225
- : column.colType === "operation"
226
- ? this.operationTdCellRender(h, { row, rowIndex, column })
227
- : this.contentTdCellRender(h, { row, rowIndex, column })
228
- );
229
- },
230
73
 
231
- /* ----------- 方法 ---------- */
232
- selfBodyCellClass ({ row, rowIndex, column }) {
233
- return `${["tree"].includes(column.colType)
234
- ? " bri-table-td-noborder"
235
- : ""
236
- }`;
237
- },
238
- // 表头 -获取样式
239
- getThStyle ({ column, colIndex }) {
240
- const typeData = this.$modFieldMap[column._type] || {};
241
- const boxColWidth = this.boxWidth / this.showColumns.length;
242
- const calcWidth = (column._name ? column._name.length * 12 : 48) + (column._type === "reference" ? 200 : 32);
243
- const dftWidth = Math.max(boxColWidth, this.widthMap[column._type], calcWidth);
244
- const width = column._width || dftWidth;
245
-
246
- return {
247
- width: `${width}px`,
248
- minWidth: `${width}px`,
249
- maxWidth: `${width}px`,
250
- paddingTop: !this.headHeightAuto ? "10px" : undefined,
251
- paddingBottom: !this.headHeightAuto ? "10px" : undefined,
252
- textAlign: column._align || typeData.align,
253
- "word-break": "break-all",
254
- cursor: "pointer"
255
- };
256
- },
257
-
258
- // 单元格 -获取样式
259
- getTdStyle ({ row, rowIndex, column }) {
260
- return {
261
- ...this.getThStyle({ column }),
262
- paddingTop: undefined,
263
- paddingBottom: undefined
264
- };
265
- },
266
- // 单元格 -获取行合并数
267
- getTdRowSpan ({ row, rowIndex, column }) {
268
- return row.total || 1;
269
- },
270
- // 单元格 -获取列合并数
271
- getTdColSpan ({ row, rowIndex, column }) {
272
- return 1;
273
- },
274
- // 单元格 -汇总节点单元格-获取值
275
- getSummaryTdVal ({ row, rowIndex, column }) {
276
- if (column._calField && column._operator) {
277
- const calFieldFormItem = this.selfColumns.find(item => item._key === column._calField);
278
-
279
- if (calFieldFormItem) {
280
- let loop = (nodes, arr) => {
281
- return nodes.reduce((arr, node) => {
282
- if (node.children.length) {
283
- return loop(node.children, arr);
284
- } else {
285
- arr.push(node[column._calField] || 0);
286
- return arr;
287
- }
288
- }, arr);
289
- };
290
- let list = loop(row.children, []);
291
-
292
- return this.$calNumList(list, column._operator, calFieldFormItem);
293
- } else {
294
- return `来源列${column._calField}被删除`;
295
- }
296
- } else {
297
- return !column._calField && !column._operator
298
- ? "未选择来源列和算法"
299
- : !column._calField
300
- ? "未选择来源列"
301
- : "未选择算法";
302
- }
303
- },
304
- // 加工单元格对应的配置
305
- getSelfResetCol ({ row, rowIndex, column }) {
306
- return column.colType === "tree"
307
- ? {
308
- _heightAuto: true,
309
- _placeholder: " "
310
- }
311
- : {};
312
- },
313
- // 单元格本身是否可编辑性 -针对表头列
314
- getSelfColCanEdit ({ row, rowIndex, column }) {
315
- return (this.getIsDftRow(row) ? !this.dftReadonlyTreeColKeys.includes(column._key) : true) && // 默认行的某列是否可编辑
316
- (row.__old__ === true ? !this.oldReadonlyTreeColKeys.includes(column._key) : true); // 老数据行里某些列不可编辑
317
- },
318
- // getNewRowData时,额外补充的行相关的数据(针对层级属性的列)
319
- getSelfNewRowData (level, list = []) {
320
- const column = this.treeForm[level - 1];
321
- const dftVal = column._default;
322
- const initDftVal = this.initDftValMap[column._type];
323
-
324
- return {
325
- name: this.$isEmptyData(dftVal)
326
- ? initDftVal
327
- : dftVal
328
- };
329
- },
330
-
331
- /* ----------- 工具方法 ---------- */
332
- // 合并表头
333
- mergeColumns (treeForm = [], subForm = this.showContentColumns) {
334
- return [
335
- ...treeForm.reduce((arr, treeFormItem) => {
336
- return arr.concat(
337
- {
338
- ...treeFormItem,
339
- colType: "tree"
340
- },
341
- treeFormItem._treeSubForm.map(treeSubFormItem => (
342
- {
343
- ...treeSubFormItem,
344
- nodeKey: treeFormItem._key,
345
- colType: "summary"
346
- }
347
- ))
348
- );
349
- }, []),
350
- ...subForm.map(subFormItem => ({
351
- ...subFormItem,
352
- nodeKey: treeForm[treeForm.length - 1]._key,
353
- colType: "data"
354
- })),
355
- ...(
356
- !this.isSearching && this.rowOperationList.length
357
- ? [{
358
- ...this.operationColumn,
359
- nodeKey: treeForm[treeForm.length - 1]._key,
360
- colType: "operation"
361
- }]
362
- : []
363
- )
364
- ];
365
- },
366
74
  // 转化树数据
367
75
  getCalcuedTree (nodes = [], treeForm = [], subForm = []) {
368
76
  treeForm.forEach((treeFormItem, treeFormIndex) => {
@@ -425,28 +133,6 @@ export default {
425
133
  this.initFlag = false;
426
134
  return nodes;
427
135
  },
428
- // 转化渲染使用的columns数组
429
- transformRowColumnsArr (nodes = [], treeForm = []) {
430
- const loop = (nodes = [], rowColumnsArr = []) => {
431
- nodes = this.getFilteredNodes(nodes);
432
-
433
- return nodes.reduce((rowColumnsArr, node, nodeIndex) => {
434
- if (nodeIndex !== 0 || rowColumnsArr.length === 0) {
435
- rowColumnsArr.push(
436
- this.mergeColumns(treeForm.slice(node.level - 1))
437
- );
438
- }
439
-
440
- if (node.children && node.children.length) {
441
- return loop(node.children, rowColumnsArr);
442
- } else {
443
- return rowColumnsArr;
444
- }
445
- }, rowColumnsArr);
446
- };
447
-
448
- return loop(nodes);
449
- },
450
136
  // 转化表格数据
451
137
  transformRows (nodes = [], treeForm = []) {
452
138
  const loop = (nodes = [], rows = []) => {
@@ -455,7 +141,14 @@ export default {
455
141
  return nodes.reduce((rows, node, nodeIndex) => {
456
142
  // 创建行,并把节点数据(对象类型)注入到行对象内
457
143
  if (nodeIndex !== 0 || rows.length === 0) {
458
- rows.push({ _id: this.$ObjectID().str });
144
+ rows.push({
145
+ _id: this.$ObjectID().str,
146
+ __isRendered__: true,
147
+ __isShow__: true,
148
+ __isTmpShow__: true
149
+ // __isSearchShow__: false,
150
+ // __isExpand__: false,
151
+ });
459
152
  }
460
153
  const curCol = treeForm[node.level - 1];
461
154
  const curRow = rows[rows.length - 1];
@@ -474,6 +167,53 @@ export default {
474
167
  };
475
168
  return loop(nodes);
476
169
  },
170
+ // 合并表头
171
+ mergeColumns (treeForm = [], subForm = this.showContentColumns) {
172
+ return this.$transformToColumns(
173
+ [
174
+ ...treeForm.reduce((arr, treeFormItem) => ([
175
+ ...arr,
176
+ {
177
+ ...treeFormItem,
178
+ colType: "tree"
179
+ },
180
+ ...treeFormItem._treeSubForm.map(treeSubFormItem => ({
181
+ ...treeSubFormItem,
182
+ nodeKey: treeFormItem._key,
183
+ colType: "summary"
184
+ }))
185
+ ]), []),
186
+ ...subForm.map(subFormItem => ({
187
+ ...subFormItem,
188
+ nodeKey: treeForm[treeForm.length - 1]._key,
189
+ colType: "data"
190
+ })),
191
+ ...(
192
+ !this.isSearching && this.rowOperationList.length
193
+ ? [{
194
+ ...this.operationColumn,
195
+ nodeKey: treeForm[treeForm.length - 1]._key,
196
+ colType: "operation"
197
+ }]
198
+ : []
199
+ )
200
+ ].map(colItem => ({
201
+ ...colItem,
202
+ renderHeaderCell: ({ column }, h) => {
203
+ return this.contentThCellRender(h, { column });
204
+ },
205
+ renderBodyCell: ({ row, rowIndex, column }, h) => {
206
+ row = row[column.nodeKey || column._key];
207
+
208
+ return column.colType === "summary"
209
+ ? this.getSummaryTdVal({ row, rowIndex, column })
210
+ : column.colType === "operation"
211
+ ? this.operationTdCellRender(h, { row, rowIndex, column })
212
+ : this.contentTdCellRender(h, { row, rowIndex, column });
213
+ }
214
+ }))
215
+ );
216
+ },
477
217
  getFilteredNodes (nodes = []) {
478
218
  const loop = (nodes = []) => {
479
219
  return nodes.filter(rowItem => {
@@ -491,6 +231,73 @@ export default {
491
231
  };
492
232
 
493
233
  return loop(nodes);
234
+ },
235
+
236
+
237
+ bodyCellSpan ({ row, rowIndex, column }) {
238
+ row = row[column.nodeKey || column._key];
239
+ return {
240
+ rowspan: row
241
+ ? row.total || 1
242
+ : 0,
243
+ colspan: 1
244
+ };
245
+ },
246
+ // 单元格 -汇总节点单元格-获取值
247
+ getSummaryTdVal ({ row, rowIndex, column }) {
248
+ if (column._calField && column._operator) {
249
+ const calFieldFormItem = this.selfColumns.find(item => item._key === column._calField);
250
+
251
+ if (calFieldFormItem) {
252
+ let loop = (nodes, arr) => {
253
+ return nodes.reduce((arr, node) => {
254
+ if (node.children.length) {
255
+ return loop(node.children, arr);
256
+ } else {
257
+ arr.push(node[column._calField] || 0);
258
+ return arr;
259
+ }
260
+ }, arr);
261
+ };
262
+ let list = loop(row.children, []);
263
+
264
+ return this.$calNumList(list, column._operator, calFieldFormItem);
265
+ } else {
266
+ return `来源列${column._calField}被删除`;
267
+ }
268
+ } else {
269
+ return !column._calField && !column._operator
270
+ ? "未选择来源列和算法"
271
+ : !column._calField
272
+ ? "未选择来源列"
273
+ : "未选择算法";
274
+ }
275
+ },
276
+ // 加工单元格对应的配置
277
+ getSelfResetCol ({ row, rowIndex, column }) {
278
+ return column.colType === "tree"
279
+ ? {
280
+ _heightAuto: true,
281
+ _placeholder: " "
282
+ }
283
+ : {};
284
+ },
285
+ // 单元格本身是否可编辑性 -针对表头列
286
+ getSelfColCanEdit ({ row, rowIndex, column }) {
287
+ return (this.getIsDftRow(row) ? !this.dftReadonlyTreeColKeys.includes(column._key) : true) && // 默认行的某列是否可编辑
288
+ (row.__old__ === true ? !this.oldReadonlyTreeColKeys.includes(column._key) : true); // 老数据行里某些列不可编辑
289
+ },
290
+ // getNewRowData时,额外补充的行相关的数据(针对层级属性的列)
291
+ getSelfNewRowData (level, list = []) {
292
+ const column = this.treeForm[level - 1];
293
+ const dftVal = column._default;
294
+ const initDftVal = this.initDftValMap[column._type];
295
+
296
+ return {
297
+ name: this.$isEmptyData(dftVal)
298
+ ? initDftVal
299
+ : dftVal
300
+ };
494
301
  }
495
302
  }
496
303
  };
@@ -83,10 +83,11 @@ export default {
83
83
  curPageShowListData () {
84
84
  return this.pagePropsObj.page >= 1
85
85
  ? (this.pagePropsObj.page - 1) * this.pagePropsObj.pagesize >= this.showListData.length
86
- ? this.showListData.slice(
87
- (this.pagePropsObj.page - 2) * this.pagePropsObj.pagesize,
88
- (this.pagePropsObj.page - 1) * this.pagePropsObj.pagesize
89
- )
86
+ ? this.showListData.slice(-(
87
+ this.showListData.length % this.pagePropsObj.pagesize === 0
88
+ ? this.pagePropsObj.pagesize
89
+ : this.showListData.length % this.pagePropsObj.pagesize
90
+ ))
90
91
  : this.showListData.slice(
91
92
  (this.pagePropsObj.page - 1) * this.pagePropsObj.pagesize,
92
93
  this.pagePropsObj.page * this.pagePropsObj.pagesize
@@ -786,7 +786,7 @@ export default {
786
786
  isEnlarge (bool) {
787
787
  setTimeout(() => {
788
788
  this.isEnlargeFlag = bool;
789
- this.dealingOpenModal && this.dealingOpenModal();
789
+ // this.dealingOpenModal && this.dealingOpenModal();
790
790
  }, 0);
791
791
  }
792
792
  },
@@ -826,8 +826,8 @@ export default {
826
826
  conditions: []
827
827
  };
828
828
  this.hideStatus = true;
829
- this.changePage(1);
830
829
 
830
+ this.changePage && this.changePage(1);
831
831
  this.selfReset && this.selfReset();
832
832
  },
833
833
  loadingFunc () {
@@ -843,7 +843,8 @@ export default {
843
843
  if (this.parentObj.__isCreate__ !== true) {
844
844
  this.isExpandAction = false;
845
845
  this.dftAdvSearch.conditions = conditions;
846
- this.changePage(1);
846
+
847
+ this.changePage && this.changePage(1);
847
848
  }
848
849
  },
849
850
  // 列表选择项改变
@@ -1423,10 +1424,6 @@ export default {
1423
1424
  `${this.bgColKeys.includes(column._key)
1424
1425
  ? " bri-table-td-bg"
1425
1426
  : ""
1426
- }` +
1427
- `${this.selfBodyCellClass
1428
- ? this.selfBodyCellClass({ row, rowIndex, column })
1429
- : ""
1430
1427
  }`;
1431
1428
  },
1432
1429
  eventCustomOption ({ row, rowIndex, column }) {