cloud-web-corejs 1.0.54-dev.735 → 1.0.54-dev.737

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.
Files changed (48) hide show
  1. package/package.json +1 -1
  2. package/src/components/excelExport/exportFieldDialog.vue +40 -18
  3. package/src/components/excelExport/index.js +17 -3
  4. package/src/components/excelExport/index.vue +2 -1
  5. package/src/components/excelExport/mixins.js +113 -32
  6. package/src/components/fileLibrary/mixins/indexMixins.js +10 -0
  7. package/src/components/table/config.js +74 -1
  8. package/src/components/table/index.js +7 -22
  9. package/src/components/table/tableFormMixin.js +285 -1
  10. package/src/components/table/util/index.js +38 -40
  11. package/src/components/table/vxeFilter/index.js +153 -2
  12. package/src/components/table/vxeFilter/mixin.js +305 -3
  13. package/src/components/wf/mixins/setCandidateDialog.js +2 -2
  14. package/src/components/wf/mixins/setCandidateDialog2.js +2 -2
  15. package/src/components/xform/docs/2026-07 table/344/270/216excelExport/344/277/256/345/244/215/345/217/212/345/257/274/345/207/272/344/274/230/345/214/226.md" +57 -0
  16. package/src/components/xform/docs/2026-07 /346/216/222/346/237/245/344/277/256/345/244/215/350/256/260/345/275/225.md" +73 -0
  17. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +108 -1
  18. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +288 -6
  19. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +0 -1
  20. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +0 -1
  21. package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +0 -1
  22. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +0 -1
  23. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +1 -0
  24. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +3 -12
  25. package/src/components/xform/form-designer/form-widget/indexMixin.js +184 -2
  26. package/src/components/xform/form-designer/indexMixin.js +0 -1
  27. package/src/components/xform/form-designer/refMixinDesign.js +27 -1
  28. package/src/components/xform/form-designer/setting-panel/indexMixin.js +357 -9
  29. package/src/components/xform/form-designer/setting-panel/property-editor/showViewButton-editor.vue +29 -0
  30. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +1 -0
  31. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +639 -15
  32. package/src/components/xform/form-designer/widget-panel/indexMixin.js +290 -1
  33. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +1 -0
  34. package/src/components/xform/form-render/container-item/containerItemMixin.js +282 -1115
  35. package/src/components/xform/form-render/container-item/data-table-mixin.js +29 -7
  36. package/src/components/xform/form-render/dynamicDialogRender.js +238 -3
  37. package/src/components/xform/form-render/dynamicDrawerRender.js +229 -0
  38. package/src/components/xform/form-render/indexMixin.js +21 -431
  39. package/src/components/xform/form-render/refMixin.js +32 -1
  40. package/src/components/xform/mixins/defaultHandle.js +2 -2
  41. package/src/components/xform/utils/dynamicSchemaUtil.js +46 -0
  42. package/src/components/xform/utils/validators.js +186 -2
  43. package/src/utils/componentDialog.js +322 -0
  44. package/src/views/user/form/vform/render.vue +4 -21
  45. package/src/views/user/form/view/list.vue +13 -9
  46. package/src/components/xform/form-designer/form-widget/dialog/baseFormulaDialog copy.vue +0 -971
  47. package/src/components/xform/form-designer/form-widget/dialog/vabSearchDialog.vue +0 -408
  48. package/src/components/xform/utils/formHttp.js +0 -162
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloud-web-corejs",
3
3
  "private": false,
4
- "version": "1.0.54-dev.735",
4
+ "version": "1.0.54-dev.737",
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
7
7
  "lint": "eslint --ext .js,.vue src",
@@ -72,9 +72,9 @@ export default {
72
72
  });
73
73
  },
74
74
  generateId() {
75
- return Math.floor(
76
- Math.random() * 100000 + Math.random() * 20000 + Math.random() * 5000
77
- );
75
+ // 自增序号保证唯一:随机数范围小,列多时会碰撞导致树勾选(node-key)错乱
76
+ this.idSeed = (this.idSeed || 0) + 1;
77
+ return "expcol_" + Date.now() + "_" + this.idSeed;
78
78
  },
79
79
  filterExportVisible(items) {
80
80
  if (!Array.isArray(items)) return [];
@@ -92,6 +92,20 @@ export default {
92
92
  return item;
93
93
  });
94
94
  },
95
+ filterNonDataExportColumns(items) {
96
+ if (!Array.isArray(items)) return [];
97
+ return items.reduce((result, item) => {
98
+ if (item.params?.exportDisabled) return result;
99
+ if (Array.isArray(item.children) && item.children.length) {
100
+ let children = this.filterNonDataExportColumns(item.children);
101
+ if (!children.length) return result;
102
+ result.push({ ...item, children });
103
+ } else {
104
+ result.push(item);
105
+ }
106
+ return result;
107
+ }, []);
108
+ },
95
109
  init() {
96
110
  let target = this.getGrid();
97
111
  let { fullColumn, collectColumn: column1s } = target.getTableColumn();
@@ -143,6 +157,7 @@ export default {
143
157
  } else {
144
158
  columns = column1s;
145
159
  }
160
+ columns = this.filterNonDataExportColumns(columns);
146
161
 
147
162
  let exportItem = this.param.type === "exportItem";
148
163
 
@@ -170,7 +185,7 @@ export default {
170
185
  //导出主表数据
171
186
 
172
187
  fullColumn.forEach((column) => {
173
- if (column.field) {
188
+ if (column.field && !column.params?.exportDisabled) {
174
189
  if (yesFields.includes(column.field)) {
175
190
  defaultCheckedKeys.push(column.id);
176
191
  } else if (!noFields.includes(column.field) && column.visible) {
@@ -284,33 +299,40 @@ export default {
284
299
  let collectColumn = !exportItem
285
300
  ? target.getTableColumn().collectColumn
286
301
  : originOption.exportItemConfig?.columns;
302
+ // 按勾选后的实际层级算表头总行数(item.level 在导出明细列上不存在,不可依赖)
287
303
  let maxRowspan = 1;
288
- leafColumns.forEach((item) => {
289
- maxRowspan = Math.max(maxRowspan, item.level);
290
- });
304
+ let depthDo = (items, depth) => {
305
+ (items || []).forEach((item) => {
306
+ if (!checkIds.includes(item.id)) return;
307
+ if (item.children && item.children.length > 0) {
308
+ depthDo(item.children, depth + 1);
309
+ } else if (depth > maxRowspan) {
310
+ maxRowspan = depth;
311
+ }
312
+ });
313
+ };
314
+ depthDo(collectColumn, 1);
291
315
 
292
- let loopDo = (items, parent) => {
316
+ let loopDo = (items, depth) => {
293
317
  let datas = [];
294
318
  items.forEach((item) => {
295
- if (checkIds.includes(item.id)) {
319
+ if (checkIds.includes(item.id) && !item.params?.exportDisabled) {
296
320
  let column = this.$baseLodash.cloneDeep(item);
297
321
  if (item.children && item.children.length > 0) {
298
- let children = this.$baseLodash.cloneDeep(loopDo(item.children));
322
+ let children = loopDo(item.children, depth + 1);
299
323
  column.children = children;
300
- if (children.length) {
301
- column.colSpan = children.length;
302
- } else {
303
- column.colSpan = 1;
304
- }
305
- } else if (!column.parentId) {
306
- column.rowSpan = maxRowspan;
324
+ column.colSpan = children.length ? children.length : 1;
325
+ column.rowSpan = 1;
326
+ } else {
327
+ // 任意层级的叶子列都要跨到表头底行,否则多层分组表头导出错位
328
+ column.rowSpan = maxRowspan - depth + 1;
307
329
  }
308
330
  datas.push(column);
309
331
  }
310
332
  });
311
333
  return datas;
312
334
  };
313
- let columns = loopDo(collectColumn, null);
335
+ let columns = loopDo(collectColumn, 1);
314
336
  this.$emit("confirm", { columns, leafColumns });
315
337
  this.addTableExportColumns();
316
338
  this.dialogClose();
@@ -5,6 +5,16 @@ const moudule = {};
5
5
  const ExcelExportInstance = vue.extend(excelExport);
6
6
  let instance = null;
7
7
  const initInstance = (containter) => {
8
+ // 已有未销毁的导出实例时先销毁,避免覆盖引用造成旧实例与 DOM 泄漏
9
+ if (instance) {
10
+ try {
11
+ instance.$destroy();
12
+ instance.$el && instance.$el.remove();
13
+ } catch (e) {
14
+ console.error(e);
15
+ }
16
+ instance = null;
17
+ }
8
18
  // 实例化vue实例
9
19
  instance = new ExcelExportInstance({ i18n: window.$vueRoot._i18n }).$mount();
10
20
  let dom = instance.$el;
@@ -34,10 +44,14 @@ function destroyComponent(loadingObj) {
34
44
  instance.$destroy(); // 触发销毁生命周期
35
45
  instance.$el.remove(); // 移除 DOM 节点
36
46
  instance = null;
37
- setTimeout(function () {
38
- loadingObj.close();
39
- }, 200);
47
+ if (loadingObj) {
48
+ setTimeout(function () {
49
+ loadingObj.close();
50
+ }, 200);
51
+ }
40
52
  }, 0);
53
+ } else if (loadingObj) {
54
+ loadingObj.close();
41
55
  }
42
56
  }
43
57
 
@@ -10,7 +10,7 @@
10
10
  :percentage="percentageNum"
11
11
  :show-text="false"
12
12
  :stroke-width="3"
13
- status="success"
13
+ :status="exportError ? 'exception' : 'success'"
14
14
  ></el-progress
15
15
  ></a>
16
16
  </span>
@@ -46,6 +46,7 @@
46
46
  :text-inside="true"
47
47
  :stroke-width="26"
48
48
  :percentage="percentageNum"
49
+ :status="exportError ? 'exception' : undefined"
49
50
  class="export-progress"
50
51
  ></el-progress>
51
52
  <vxe-grid ref="exportTable" v-bind="exportGrid">
@@ -22,7 +22,6 @@ function getGrid(that, tableRef) {
22
22
  }
23
23
 
24
24
  (function () {
25
- let exportTimer, exportMtTimer, countTimer;
26
25
  tmixins = {
27
26
  props: ["param"],
28
27
  components: {
@@ -88,6 +87,10 @@ function getGrid(that, tableRef) {
88
87
  columns: [],
89
88
  queryParam: {},
90
89
  isMinimize: false,
90
+ // 定时器必须放实例上:模块级共享会导致并发导出互相清除对方的定时器
91
+ exportTimer: null,
92
+ countTimer: null,
93
+ exportError: false,
91
94
  };
92
95
  },
93
96
  created() {},
@@ -175,13 +178,23 @@ function getGrid(that, tableRef) {
175
178
  if (!options.prefix && options.prefix !== "") {
176
179
  let originOption = this.tableTarget.params.originOption;
177
180
  let path = originOption.exportPath || originOption.path;
178
- let os = path.split("/");
179
- if (path.indexOf("http://") >= 0 || path.indexOf("https://") >= 0) {
180
- options.prefix = "/" + os[3];
181
- } else {
182
- options.prefix = "/" + os[1];
181
+ if (typeof path === "function") path = path();
182
+ if (path && typeof path === "string" && path !== "#") {
183
+ let os = path.split("/");
184
+ if (path.indexOf("http://") >= 0 || path.indexOf("https://") >= 0) {
185
+ options.prefix = "/" + os[3];
186
+ } else {
187
+ options.prefix = "/" + os[1];
188
+ }
183
189
  }
184
190
  }
191
+ if (!options.prefix) {
192
+ this.abortExport(
193
+ this.$t1("无法确定导出服务前缀,请在导出配置中指定 prefix")
194
+ );
195
+ this.unlockMenu();
196
+ return;
197
+ }
185
198
  this.CURRENT_PREFIX = options.prefix;
186
199
 
187
200
  this.title = title;
@@ -201,12 +214,14 @@ function getGrid(that, tableRef) {
201
214
  that.handleLoopToDo();
202
215
  }, 300);
203
216
  } else {
217
+ that.abortExport();
204
218
  that.showImportDialog = false;
205
219
  that.showImportDialog2 = false;
206
220
  }
207
221
  })
208
222
  .catch((error) => {
209
223
  console.error(error);
224
+ that.abortExport(that.$t1("创建导出文件失败,导出已中止"));
210
225
  that.showImportDialog = false;
211
226
  that.showImportDialog2 = false;
212
227
  });
@@ -256,7 +271,9 @@ function getGrid(that, tableRef) {
256
271
  endPage = totalPages;
257
272
  }
258
273
  if (startPage > endPage) {
259
- that.clearExportTimer();
274
+ // 页码越界属异常状态,中止并不再发出非法页码的合并请求
275
+ that.abortExport();
276
+ return;
260
277
  }
261
278
  currentIndex = endPage;
262
279
 
@@ -299,14 +316,14 @@ function getGrid(that, tableRef) {
299
316
  that.clearExportTimer();
300
317
  }
301
318
  } else {
302
- that.clearExportTimer();
319
+ that.abortExport();
303
320
  }
304
321
  })
305
322
  .catch(function (e) {
306
323
  console.error(e);
307
- that.clearExportTimer();
324
+ that.abortExport(that.$t1("文件合并异常,导出已中止"));
308
325
  });
309
- that.clearExportTimer();
326
+ // 注意:此处不能同步 clearExportTimer,否则计时统计会在合并完成前被提前停掉
310
327
  }
311
328
  };
312
329
  loopDo();
@@ -450,18 +467,18 @@ function getGrid(that, tableRef) {
450
467
  return false;
451
468
  }
452
469
  } else {
453
- that.clearExportTimer();
470
+ that.abortExport();
454
471
  }
455
472
  })
456
473
  .catch(function (e) {
457
474
  console.error(e);
458
- that.clearExportTimer();
475
+ that.abortExport(that.$t1("导出数据写入失败,导出已中止"));
459
476
  });
460
477
  };
461
478
 
462
479
  let waitReqNum = 0;
463
480
  let promise;
464
- let loopToDo = function (flag, pageNumber) {
481
+ let loopToDo = function (flag, pageNumber, retryCount = 0) {
465
482
  let maxWaitNum = limitThreadNum;
466
483
  let nowDate = options.nowDate;
467
484
  if (flag === 1) {
@@ -548,7 +565,7 @@ function getGrid(that, tableRef) {
548
565
  objx.totalPages > 0 ||
549
566
  objx.pageNumber < objx.totalPages
550
567
  ) {
551
- exportTimer = setInterval(function () {
568
+ that.exportTimer = setInterval(function () {
552
569
  if (waitReqNum < maxWaitNum && num < tTotalPage) {
553
570
  waitReqNum++;
554
571
  num++;
@@ -556,12 +573,14 @@ function getGrid(that, tableRef) {
556
573
  loopToDo(1, pageNumber);
557
574
  }
558
575
  if (num >= tTotalPage) {
559
- clearInterval(loopToDo);
576
+ // 所有页已派发,停掉调度器(数据写入完成与否由 handleData 计数判断)
577
+ clearInterval(that.exportTimer);
578
+ that.exportTimer = null;
560
579
  }
561
580
  }, 100);
562
581
  } else {
563
- clearInterval(exportTimer);
564
- exportTimer = null;
582
+ clearInterval(that.exportTimer);
583
+ that.exportTimer = null;
565
584
  }
566
585
  } else {
567
586
  if (waitReqNum > 0) waitReqNum--;
@@ -571,12 +590,29 @@ function getGrid(that, tableRef) {
571
590
  handleData(resultMsg, flag);
572
591
  }, 1);
573
592
  } else {
574
- that.clearExportTimer();
593
+ // 单页拉取失败自动重试一次;仍失败则中止(缺页合并会静默丢数据,必须中止)
594
+ if (retryCount < 1) {
595
+ setTimeout(function () {
596
+ loopToDo(flag, pageNumber, retryCount + 1);
597
+ }, 500);
598
+ } else {
599
+ that.abortExport();
600
+ }
575
601
  }
576
602
  })
577
603
  .catch(function (e) {
578
604
  console.error(e);
579
- that.clearExportTimer();
605
+ if (retryCount < 1) {
606
+ setTimeout(function () {
607
+ loopToDo(flag, pageNumber, retryCount + 1);
608
+ }, 500);
609
+ } else {
610
+ that.abortExport(
611
+ that.$t1("第{n}页数据拉取失败,导出已中止", {
612
+ n: pageNumber,
613
+ })
614
+ );
615
+ }
580
616
  });
581
617
  };
582
618
 
@@ -739,19 +775,26 @@ function getGrid(that, tableRef) {
739
775
  createCountTimer() {
740
776
  this.excTime = 0;
741
777
  let beginTime = new Date().getTime();
742
- countTimer = setInterval(() => {
778
+ this.countTimer = setInterval(() => {
743
779
  let nowTime = new Date().getTime();
744
780
  let diffTime = (nowTime - beginTime) / 1000;
745
781
  this.$set(this, "excTime", this.$baseLodash.round(diffTime, 2));
746
782
  }, 100);
747
783
  },
748
784
  clearExportTimer() {
749
- if (exportTimer) clearInterval(exportTimer);
750
- if (exportMtTimer) clearInterval(exportMtTimer);
751
- if (countTimer) clearInterval(countTimer);
752
- exportTimer = null;
753
- exportMtTimer = null;
754
- countTimer = null;
785
+ if (this.exportTimer) clearInterval(this.exportTimer);
786
+ if (this.countTimer) clearInterval(this.countTimer);
787
+ this.exportTimer = null;
788
+ this.countTimer = null;
789
+ },
790
+ /**
791
+ * 中止导出:停止全部定时器并把进度条置为错误态。
792
+ * @param {String} [msg] 需要额外弹给用户的提示;服务端已 toast 过的失败不传,避免重复提示。
793
+ */
794
+ abortExport(msg) {
795
+ this.clearExportTimer();
796
+ this.exportError = true;
797
+ if (msg) this.$baseAlert(msg);
755
798
  },
756
799
  isPicture: function (suffix) {
757
800
  if (!suffix || suffix === "") {
@@ -774,6 +817,37 @@ function getGrid(that, tableRef) {
774
817
 
775
818
  return true;
776
819
  },
820
+ /**
821
+ * 导出取值快路径:优先纯函数取值(filterVal → formatter → 原始字段),
822
+ * 只有真正配置了自定义渲染(renderCell/函数型 slots.default)的列才走
823
+ * getCellValue 的 vNode 挂载渲染兜底 —— 后者每个单元格要挂载一次 Vue
824
+ * 组件再爬 DOM,是导出耗时的大头。
825
+ * 字符串型 slots.default(具名插槽,如 xform 的 "widget")由 getCellValue
826
+ * 从 grid 作用域插槽解析后渲染;解析不到时其内部回退原始字段。
827
+ */
828
+ getExportCellValue(params) {
829
+ let column = params.column;
830
+ if (column.slots && typeof column.slots.filterVal === "function") {
831
+ return column.slots.filterVal(params);
832
+ }
833
+ let slotDefault = column.slots && column.slots.default;
834
+ let hasRenderFn =
835
+ !!column.renderCell ||
836
+ typeof slotDefault === "function" ||
837
+ typeof slotDefault === "string";
838
+ if (!hasRenderFn) {
839
+ let cellValue = params.row[column.field];
840
+ if (typeof column.formatter === "function") {
841
+ return column.formatter({
842
+ cellValue,
843
+ row: params.row,
844
+ column,
845
+ });
846
+ }
847
+ return cellValue;
848
+ }
849
+ return getCellValue(params);
850
+ },
777
851
  getExcelData(rows) {
778
852
  let that = this;
779
853
 
@@ -783,12 +857,15 @@ function getGrid(that, tableRef) {
783
857
  let $table = target.$refs.xTable;
784
858
 
785
859
  // let columns = target.getColumns();
786
- let columns = this.leafColumns;
860
+ let columns = this.leafColumns.filter(
861
+ (column) => !column.params?.exportDisabled
862
+ );
787
863
 
788
864
  let arr = [];
789
865
  let contents;
790
866
  let params;
791
867
  let resultStr;
868
+ // 批量取值期间复用 vNode 渲染的临时实例,结束时统一销毁
792
869
  rows.forEach(function (row, index) {
793
870
  contents = [];
794
871
  columns.forEach((column) => {
@@ -811,7 +888,7 @@ function getGrid(that, tableRef) {
811
888
  if (exportVal) {
812
889
  resultStr = exportVal(params);
813
890
  } else if (exportType === "Number") {
814
- resultStr = getCellValue(params);
891
+ resultStr = that.getExportCellValue(params);
815
892
  if (
816
893
  resultStr !== null &&
817
894
  resultStr !== undefined &&
@@ -824,7 +901,7 @@ function getGrid(that, tableRef) {
824
901
  exportType === "Image" ||
825
902
  (showImageAtTable && exportType === "Image2")
826
903
  ) {
827
- resultStr = getCellValue(params);
904
+ resultStr = that.getExportCellValue(params);
828
905
  let attachments = row[column.field];
829
906
  if (attachments) {
830
907
  if (Array.isArray(attachments)) {
@@ -865,7 +942,7 @@ function getGrid(that, tableRef) {
865
942
  resultStr = null;
866
943
  }
867
944
  } else {
868
- resultStr = getCellValue(params);
945
+ resultStr = that.getExportCellValue(params);
869
946
  }
870
947
  contents.push(resultStr);
871
948
  resultStr = null;
@@ -904,7 +981,7 @@ function getGrid(that, tableRef) {
904
981
  for (let obj in params) {
905
982
  if (params.hasOwnProperty(obj)) {
906
983
  let input = document.createElement("input");
907
- input.tpye = "hidden";
984
+ input.type = "hidden";
908
985
  input.name = obj;
909
986
  input.value = params[obj];
910
987
  form.appendChild(input);
@@ -927,7 +1004,8 @@ function getGrid(that, tableRef) {
927
1004
  if (!options.prefix && options.prefix !== "") {
928
1005
  let originOption = this.tableTarget.params.originOption;
929
1006
  let path = originOption.exportPath || originOption.path;
930
- if (path) {
1007
+ if (typeof path === "function") path = path();
1008
+ if (path && typeof path === "string" && path !== "#") {
931
1009
  let os = path.split("/");
932
1010
  if (path.indexOf("http://") >= 0 || path.indexOf("https://") >= 0) {
933
1011
  options.prefix = "/" + os[3];
@@ -937,6 +1015,9 @@ function getGrid(that, tableRef) {
937
1015
  }
938
1016
  }
939
1017
  if (!options.prefix) {
1018
+ this.$baseAlert(
1019
+ this.$t1("无法确定导出服务前缀,请在导出配置中指定 prefix")
1020
+ );
940
1021
  return;
941
1022
  }
942
1023
  this.CURRENT_PREFIX = options.prefix;
@@ -900,6 +900,16 @@ modules = {
900
900
  width: 150,
901
901
  },
902
902
  ...customColumns,
903
+ {
904
+ title: this.$t1("作者"),
905
+ field: "fileAuthor",
906
+ width: 150,
907
+ },
908
+ {
909
+ title: this.$t1("修订人"),
910
+ field: "fileReviser",
911
+ width: 150,
912
+ },
903
913
  {
904
914
  title: this.$t2("创建人", "components.fileLibrary.createBy"),
905
915
  field: "_createBy",
@@ -1,3 +1,76 @@
1
1
  let modules = {};
2
- function _0x18b63b(_0x305bdb,_0x46e842,_0x3d1516,_0x15ec68,_0x567009){return _0x437a(_0x567009- -0x396,_0x305bdb);}function _0x437a(_0x28aa5d,_0x252f75){const _0x573bff=_0x252f();_0x437a=function(_0x12881b,_0x25ea64){_0x12881b=_0x12881b-0x0;let _0x13aa8b=_0x573bff[_0x12881b];if(_0x437a['SjMMJr']===undefined){var _0x229226=function(_0x374572){const _0x26cc04="=/+9876543210ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba".split("").reverse().join("");let _0x313180='';let _0x22f2a0='';for(let _0x359394=0x0,_0xde75f3,_0x5f1a2f,_0x2b7dfc=0x0;_0x5f1a2f=_0x374572["\u0063\u0068\u0061\u0072\u0041\u0074"](_0x2b7dfc++);~_0x5f1a2f&&(_0xde75f3=_0x359394%0x4?_0xde75f3*0x40+_0x5f1a2f:_0x5f1a2f,_0x359394++%0x4)?_0x313180+=String["\u0066\u0072\u006f\u006d\u0043\u0068\u0061\u0072\u0043\u006f\u0064\u0065"](0xff&_0xde75f3>>(-0x2*_0x359394&0x6)):0x0){_0x5f1a2f=_0x26cc04["\u0069\u006e\u0064\u0065\u0078\u004f\u0066"](_0x5f1a2f);}for(let _0x21ef51=0x0,_0x1bccce=_0x313180['length'];_0x21ef51<_0x1bccce;_0x21ef51++){_0x22f2a0+="\u0025"+("00".split("").reverse().join("")+_0x313180['charCodeAt'](_0x21ef51)["\u0074\u006f\u0053\u0074\u0072\u0069\u006e\u0067"](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22f2a0);};const _0x2d5117=function(_0x570ad6,_0x18695a){let _0x45e3fb=[],_0x11b3ba=0x0,_0x13dbf6,_0x12e391='';_0x570ad6=_0x229226(_0x570ad6);let _0x432467;for(_0x432467=0x0;_0x432467<0x100;_0x432467++){_0x45e3fb[_0x432467]=_0x432467;}for(_0x432467=0x0;_0x432467<0x100;_0x432467++){_0x11b3ba=(_0x11b3ba+_0x45e3fb[_0x432467]+_0x18695a['charCodeAt'](_0x432467%_0x18695a["\u006c\u0065\u006e\u0067\u0074\u0068"]))%0x100;_0x13dbf6=_0x45e3fb[_0x432467];_0x45e3fb[_0x432467]=_0x45e3fb[_0x11b3ba];_0x45e3fb[_0x11b3ba]=_0x13dbf6;}_0x432467=0x0;_0x11b3ba=0x0;for(let _0xa16cad=0x0;_0xa16cad<_0x570ad6["\u006c\u0065\u006e\u0067\u0074\u0068"];_0xa16cad++){_0x432467=(_0x432467+0x1)%0x100;_0x11b3ba=(_0x11b3ba+_0x45e3fb[_0x432467])%0x100;_0x13dbf6=_0x45e3fb[_0x432467];_0x45e3fb[_0x432467]=_0x45e3fb[_0x11b3ba];_0x45e3fb[_0x11b3ba]=_0x13dbf6;_0x12e391+=String["\u0066\u0072\u006f\u006d\u0043\u0068\u0061\u0072\u0043\u006f\u0064\u0065"](_0x570ad6["\u0063\u0068\u0061\u0072\u0043\u006f\u0064\u0065\u0041\u0074"](_0xa16cad)^_0x45e3fb[(_0x45e3fb[_0x432467]+_0x45e3fb[_0x11b3ba])%0x100]);}return _0x12e391;};_0x437a["\u0044\u0073\u004a\u0051\u0058\u0055"]=_0x2d5117;_0x28aa5d=arguments;_0x437a["\u0053\u006a\u004d\u004d\u004a\u0072"]=!![];}const _0x33049a=_0x573bff[0x0];const _0x269fb9=_0x12881b+_0x33049a;const _0x437a8b=_0x28aa5d[_0x269fb9];if(!_0x437a8b){if(_0x437a['NyuezS']===undefined){_0x437a['NyuezS']=!![];}_0x13aa8b=_0x437a['DsJQXU'](_0x13aa8b,_0x25ea64);_0x28aa5d[_0x269fb9]=_0x13aa8b;}else{_0x13aa8b=_0x437a8b;}return _0x13aa8b;};return _0x437a(_0x28aa5d,_0x252f75);}function yEvAtD(_0xa1034b,_0x41f0ef){if(!![]!=![])return;yEvAtD=function(_0x1462b3,_0x582201){_0x1462b3=_0x1462b3-(0x973c9^0x973c9);var _0x34902d=_0x5e50e6[_0x1462b3];return _0x34902d;};return yEvAtD(_0xa1034b,_0x41f0ef);}yEvAtD();function _0x252f(){const _0x25ed70=["Ak8wgoSmeqOWXoSQc34WOkSvMDai".split("").reverse().join(""),"\u0044\u0067\u0066\u0049\u0042\u0067\u0076\u006f\u0079\u0077\u0031\u004c","aDSvxyMvgz".split("").reverse().join(""),"\u0057\u0052\u006c\u0064\u0048\u0078\u006e\u006f\u0057\u0034\u0033\u0063\u0053\u0057","GBHb3C".split("").reverse().join(""),"\u0044\u004d\u004c\u005a\u0041\u0077\u006a\u0053\u007a\u0075\u0072\u0048\u0044\u0067\u0065","82BpL2sfvtm".split("").reverse().join(""),"qy0fgz".split("").reverse().join(""),"\u006e\u005a\u0065\u0058\u006d\u005a\u0047\u0057\u0043\u004b\u0066\u004e\u0041\u0068\u0048\u0063","\u0057\u0034\u0065\u0065\u0068\u0066\u0037\u0063\u0054\u0038\u006f\u0041\u0044\u0043\u006f\u0054\u0057\u0051\u0039\u0074\u0057\u0034\u0071\u0047\u0057\u004f\u006d","\u006e\u005a\u006d\u0033\u006e\u0066\u0076\u006d\u0077\u0077\u006e\u004c\u0043\u0071","NH2CIjftWudo".split("").reverse().join(""),"8MBhPguArdm1aZm".split("").reverse().join(""),"\u0042\u0033\u006a\u0050\u007a\u0032\u004c\u0055\u0074\u0033\u0062\u0030\u0041\u0077\u0039\u0055","qwfT0xx9KuFH1x".split("").reverse().join(""),"\u0068\u0038\u006b\u0042\u0062\u0076\u0064\u0064\u0053\u0048\u0078\u0063\u0052\u0053\u006f\u0065\u0057\u004f\u0075","\u0071\u0053\u006f\u004f\u007a\u0053\u006b\u0048\u0057\u0034\u0050\u002f","\u006e\u0074\u006d\u005a\u006f\u0064\u006e\u0066\u0071\u0077\u006e\u0064\u0071\u0077\u004f","WBM5wsLDwyW5szSjwy05YC05wzU9gCT92y".split("").reverse().join(""),"\u0057\u0051\u0033\u0063\u004b\u0073\u0038\u006f\u0041\u006d\u006b\u0054\u0057\u0051\u0046\u0064\u0056\u0043\u006b\u0070\u006d\u0053\u006f\u0072","\u006d\u004a\u0071\u0031\u006d\u004a\u006d\u0057\u006e\u0065\u0031\u0057\u0043\u004e\u0048\u0074\u0079\u0071","\u0044\u004e\u0076\u004c","WVdVcJctdF".split("").reverse().join(""),"N5wyJ5wA51IBVnwA".split("").reverse().join(""),"aQct5Wi9wGd7QW".split("").reverse().join(""),"\u006a\u0067\u0044\u0059\u0041\u0077\u0071","\u0057\u0034\u004b\u0063\u0067\u0031\u004e\u0063\u0056\u006d\u006f\u0043\u0043\u006d\u006b\u002f\u0057\u0050\u0072\u007a\u0057\u0037\u0069\u0068\u0057\u004f\u004f\u006b","romJdZKKdt6WTkCOdZGmmkSUd7RW".split("").reverse().join(""),"u2zHbfBSfuEYvwDrnxA".split("").reverse().join(""),"\u0057\u0051\u002f\u0063\u004e\u0049\u004b\u0071\u007a\u0057","\u0044\u006d\u006f\u005a\u007a\u0071","\u006e\u004e\u0072\u0070\u0043\u0076\u0062\u0035\u0043\u0057","\u0072\u0043\u006f\u004a\u0079\u0078\u004a\u0064\u004c\u0061","\u006a\u006d\u006f\u004f\u0069\u0057\u004e\u0064\u0050\u0061","\u006b\u0053\u006b\u0065\u0057\u0051\u0052\u0064\u004a\u0057","\u0057\u0035\u006c\u0063\u004f\u006d\u006f\u004a\u0057\u0037\u0050\u0038","\u006d\u0074\u0069\u0058\u006d\u0064\u004b\u0058\u006e\u0064\u0062\u006a\u0045\u0066\u0044\u004d\u0045\u0075\u0030","qRcJ5WKr6WNoCUcROW".split("").reverse().join(""),"FjIpzkSIc/RWKomMcRQWCoSHcp7W".split("").reverse().join(""),"\u0066\u0053\u006f\u002f\u0042\u0038\u006b\u0052\u0057\u0035\u0030\u0033\u006b\u0053\u006f\u0059\u006d\u0071","\u0070\u0043\u006f\u0076\u0071\u0038\u006f\u0067\u0057\u0050\u0043","qqVL0Cnz2n".split("").reverse().join(""),"\u0057\u0037\u0042\u0064\u004c\u006d\u006f\u0072\u0057\u004f\u0068\u0064\u0049\u0067\u0034\u004d\u0044\u0064\u0052\u0063\u0054\u0038\u006b\u0056\u0057\u0051\u006d","\u006a\u0068\u007a\u0034\u007a\u0076\u0072\u0048\u0079\u004d\u0058\u004c\u0076\u0078\u0072\u0050\u0042\u0061","wH5WtGPWSoSa".split("").reverse().join(""),"\u0074\u0071\u0031\u004f\u0041\u004d\u007a\u0056\u006b\u006d\u006b\u0030","v2B5W6k6nMy5t2B5".split("").reverse().join(""),"egDHreBSvNz".split("").reverse().join(""),"aEAi7WDoSScpZeEomUdJWC".split("").reverse().join(""),"\u006b\u0038\u006f\u0070\u0057\u0036\u0042\u0064\u004a\u0038\u006b\u0057\u0042\u006d\u006b\u0064","GJMclZmUu3Id7sQdR5WHo8m8oSScZ5W".split("").reverse().join(""),"\u0057\u0034\u0058\u0051\u0057\u004f\u004e\u0063\u0048\u0049\u0068\u0063\u004a\u0033\u006d\u0035\u0057\u004f\u0075","\u006d\u004a\u007a\u0035\u0079\u004c\u0062\u0063\u0076\u004b\u0079","G6WfuHHc/5W".split("").reverse().join(""),"\u0057\u0052\u0046\u0063\u004a\u0043\u006f\u0045\u0076\u004b\u002f\u0064\u0054\u004c\u0053\u0075\u0057\u0051\u0039\u0062","\u0045\u0043\u006f\u004d\u0067\u006d\u006f\u002b\u0057\u004f\u005a\u0064\u0056\u0057\u0070\u0064\u004d\u004b\u0030","\u0043\u0068\u0076\u005a\u0041\u0061","\u006c\u006d\u006b\u004d\u0076\u0053\u006b\u0042\u0057\u0051\u0052\u0063\u0055\u0061\u0064\u0063\u004b\u0057","aaScNrp".split("").reverse().join(""),"3vwA21IBVnwATWwz".split("").reverse().join(""),"oomFcOQW3HvScVPWlo8B+omf".split("").reverse().join(""),"\u0044\u0058\u0072\u0031\u0078\u0071","yPWjomDHkCh".split("").reverse().join(""),"0oCj/oCkUnOW6k8E3oSc".split("").reverse().join(""),"aDLnfBV9gD".split("").reverse().join(""),"aCbfMCYjwm3iZn2qto".split("").reverse().join(""),"SfgDVrvEYvwDrT2yLH2y".split("").reverse().join(""),"\u006b\u006d\u006b\u0047\u0045\u0043\u006f\u0068\u0057\u0052\u0056\u0064\u0052\u0057\u004e\u0064\u0053\u0030\u0042\u0063\u0052\u006d\u006b\u005a\u0066\u0053\u006f\u0078\u0071\u0061","\u0043\u004d\u0076\u004d"];_0x252f=function(){return _0x25ed70;};return _0x252f();}function _0x23d4e5(_0xfc4b50,_0x4ac600,_0x56692b,_0x21266e,_0x480252){return _0x573b(_0x480252-0x282,_0x56692b);}function _0xb25864(_0x481725,_0xfab5f1,_0x309937,_0x30a5ae,_0x27aed2){return _0x437a(_0x30a5ae- -0x299,_0x27aed2);}function _0x4ff30d(_0x3e6c84,_0x49c0ee,_0x166a2c,_0xcef097,_0x8d3fb7){return _0x573b(_0xcef097- -0x36a,_0x49c0ee);}(function(_0xfe2da9,_0x461a05){function _0x517772(_0xd19332,_0x149131,_0x312022,_0xb91dae,_0x5d602b){return _0x573b(_0x149131- -0x301,_0xd19332);}const _0x51b364=_0xfe2da9();function _0x31dd8f(_0x2721c0,_0x2dd2b5,_0x2cb86f,_0xc6f73a,_0x2d8cd4){return _0x573b(_0x2d8cd4- -0x2a5,_0x2dd2b5);}function _0x3d14ab(_0x369e4c,_0x455877,_0xc44fd4,_0x555773,_0x290cb6){return _0x437a(_0x555773- -0x1f5,_0xc44fd4);}function _0x37148d(_0x4f8ac0,_0x39fd0c,_0x3ad58c,_0x4d5f72,_0x35ef10){return _0x573b(_0x4d5f72- -0xed,_0x39fd0c);}function _0x387d5b(_0x4b392c,_0x2952bd,_0x1e9322,_0x2e7dda,_0x59cc16){return _0x437a(_0x2952bd-0x63,_0x1e9322);}function _0x464208(_0x27ac93,_0x3decc5,_0x3a70b8,_0x1b46a1,_0x5575de){return _0x573b(_0x3decc5- -0x1e6,_0x3a70b8);}function _0x4f955e(_0x206bcb,_0x4821fd,_0x234cc5,_0x3c819b,_0x5c6d6a){return _0x437a(_0x3c819b- -0x10d,_0x4821fd);}function _0x9879bb(_0x4b5f0e,_0x39662c,_0x341a27,_0x39e0c9,_0x2220f1){return _0x437a(_0x2220f1-0x29f,_0x39662c);}function _0x38cb9e(_0x72aeb9,_0x3903e5,_0x1cddca,_0xc09292,_0x2215b6){return _0x573b(_0x1cddca- -0x2d9,_0x72aeb9);}function _0x5f2a43(_0x2188b3,_0x48e237,_0x21413f,_0x4cdbb7,_0x349794){return _0x437a(_0x48e237- -0x12e,_0x2188b3);}do{try{const _0x2128f6=-parseInt(_0x9879bb(0x299,"vTUO".split("").reverse().join(""),0x2a9,0x28b,0x2a9))/0x1*(parseInt(_0x3d14ab(-0x1e9,-0x1e1,"EE4R".split("").reverse().join(""),-0x1d9,-0x1fb))/0x2)+parseInt(_0x5f2a43("upKW".split("").reverse().join(""),-0x10a,-0xfc,-0x114,-0xf3))/0x3*(-parseInt(_0x31dd8f(-0x283,-0x275,-0x248,-0x242,-0x261))/0x4)+-parseInt(_0x387d5b(0x6d,0x69,"\u0045\u0055\u006e\u0042",0x5e,0x58))/0x5*(parseInt(_0x31dd8f(-0x29c,-0x2a3,-0x28f,-0x294,-0x2a4))/0x6)+parseInt(_0x3d14ab(-0x1c4,-0x1b2,"eM$F".split("").reverse().join(""),-0x1cd,-0x1cc))/0x7*(parseInt(_0x31dd8f(-0x2b0,-0x299,-0x295,-0x2ad,-0x29a))/0x8)+-parseInt(_0x3d14ab(-0x1fb,-0x1e4,"xZQG".split("").reverse().join(""),-0x1f5,-0x1d6))/0x9+-parseInt(_0x387d5b(0x7a,0x91,"\u0075\u006a\u004e\u0045",0x77,0x8c))/0xa*(-parseInt(_0x38cb9e(-0x2ce,-0x2dc,-0x2d1,-0x2c5,-0x2bd))/0xb)+parseInt(_0x9879bb(0x2d0,"\u0047\u0051\u005a\u0078",0x2a5,0x2b1,0x2b0))/0xc*(parseInt(_0x464208(-0x1a8,-0x1bb,-0x1b0,-0x1ba,-0x1cc))/0xd);if(_0x2128f6===_0x461a05){break;}else{_0x51b364["\u0070\u0075\u0073\u0068"](_0x51b364['shift']());}}catch(_0x584992){_0x51b364["\u0070\u0075\u0073\u0068"](_0x51b364["\u0073\u0068\u0069\u0066\u0074"]());}}while(!![]);})(_0x252f,0x961cc);function _0x573b(_0x28aa5d,_0x252f75){const _0x573bff=_0x252f();_0x573b=function(_0x12881b,_0x25ea64){_0x12881b=_0x12881b-0x0;let _0x13aa8b=_0x573bff[_0x12881b];if(_0x573b['oCYRbt']===undefined){var _0x229226=function(_0x2d5117){const _0x374572="\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006a\u006b\u006c\u006d\u006e\u006f\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007a\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004a\u004b\u004c\u004d\u004e\u004f\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005a\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u002b\u002f\u003d";let _0x26cc04='';let _0x313180='';for(let _0x22f2a0=0x0,_0x359394,_0xde75f3,_0x5f1a2f=0x0;_0xde75f3=_0x2d5117["\u0063\u0068\u0061\u0072\u0041\u0074"](_0x5f1a2f++);~_0xde75f3&&(_0x359394=_0x22f2a0%0x4?_0x359394*0x40+_0xde75f3:_0xde75f3,_0x22f2a0++%0x4)?_0x26cc04+=String['fromCharCode'](0xff&_0x359394>>(-0x2*_0x22f2a0&0x6)):0x0){_0xde75f3=_0x374572["\u0069\u006e\u0064\u0065\u0078\u004f\u0066"](_0xde75f3);}for(let _0x2b7dfc=0x0,_0x21ef51=_0x26cc04['length'];_0x2b7dfc<_0x21ef51;_0x2b7dfc++){_0x313180+="\u0025"+("\u0030\u0030"+_0x26cc04['charCodeAt'](_0x2b7dfc)["\u0074\u006f\u0053\u0074\u0072\u0069\u006e\u0067"](0x10))['slice'](-0x2);}return decodeURIComponent(_0x313180);};_0x573b["\u006c\u0053\u004e\u0065\u007a\u0071"]=_0x229226;_0x28aa5d=arguments;_0x573b['oCYRbt']=!![];}const _0x33049a=_0x573bff[0x0];const _0x269fb9=_0x12881b+_0x33049a;const _0x437a8b=_0x28aa5d[_0x269fb9];if(!_0x437a8b){_0x13aa8b=_0x573b["\u006c\u0053\u004e\u0065\u007a\u0071"](_0x13aa8b);_0x28aa5d[_0x269fb9]=_0x13aa8b;}else{_0x13aa8b=_0x437a8b;}return _0x13aa8b;};return _0x573b(_0x28aa5d,_0x252f75);}function kuksBv(_0x1bccce,_0x570ad6){if(!![]!=![])return;kuksBv=function(_0x18695a,_0x45e3fb){_0x18695a=_0x18695a-(0x973c9^0x973c9);var _0x11b3ba=_0x5e50e6[_0x18695a];return _0x11b3ba;};return kuksBv(_0x1bccce,_0x570ad6);}kuksBv();function _0xea3e1e(_0x53e7ad,_0x30bba9,_0x70dd92,_0x31bd7f,_0x447b76){return _0x573b(_0x30bba9-0x19f,_0x53e7ad);}function _0x2ada53(_0x800ee1,_0x1607ef,_0x53444d,_0x2d998d,_0x505015){return _0x437a(_0x2d998d- -0x56,_0x1607ef);}modules={"\u0063\u006c\u0061\u0073\u0073\u004e\u0061\u006d\u0065":_0x18b63b("X5jU".split("").reverse().join(""),-0x371,-0x33e,-0x35e,-0x360),"\u0072\u0065\u0073\u0069\u007a\u0061\u0062\u006c\u0065":!![],"\u0073\u0074\u0072\u0069\u0070\u0065":!![],'border':_0x23d4e5(0x2d3,0x2bf,0x2c6,0x2b1,0x2c0),'toolbarConfig':{'className':_0x23d4e5(0x2da,0x2d1,0x2c3,0x29f,0x2b9),'custom':{'icon':_0x2ada53(-0x12,"\u0056\u0025\u0035\u0075",-0x15,-0x2d,-0x2c)}},"\u0070\u0061\u0067\u0065\u0072\u0043\u006f\u006e\u0066\u0069\u0067":{"\u0063\u006c\u0061\u0073\u0073\u004e\u0061\u006d\u0065":_0x18b63b("X5jU".split("").reverse().join(""),-0x390,-0x37f,-0x392,-0x378),"\u0070\u0065\u0072\u0066\u0065\u0063\u0074":![],"\u0073\u006c\u006f\u0074\u0073":{"\u006c\u0065\u0066\u0074":(_0x34dc78,_0x19cc19,_0x236b1e)=>{},'right':(_0x6b7a6f,_0x47d7d7,_0x202cbb)=>{function _0x121f12(_0x51fe14,_0x428e26,_0x45e628,_0x2308fa,_0x6e33ef){return _0x437a(_0x428e26-0x3a6,_0x2308fa);}function _0x5b0d0a(_0x51e198,_0x3e84e5,_0x2c64e6,_0x4e52dc,_0x52e92c){return _0x573b(_0x2c64e6- -0x274,_0x4e52dc);}function _0x1e2834(_0x5a6b8a,_0x5c1136,_0x2f2ea5,_0xfe58ec,_0x14bd0d){return _0x437a(_0x2f2ea5-0x3e2,_0xfe58ec);}const _0x1ae3d2={"\u006e\u006d\u004b\u006f\u0048":function(_0x322db4,_0x45a3cc,_0x4cef70){return _0x322db4(_0x45a3cc,_0x4cef70);},'FYEje':_0x1e2834(0x41b,0x42a,0x416,"JrFU".split("").reverse().join(""),0x422),"\u0051\u0079\u0048\u0046\u0059":function(_0x4f6ea4,_0x184a9b){return _0x4f6ea4+_0x184a9b;},"\u0069\u004e\u0051\u0058\u0049":_0x3238ab(0x2e1,0x2ec,0x2e4,0x303,0x2c4)};let _0x39989e=_0x6b7a6f["\u0024\u0067\u0072\u0069\u0064"];let _0x22f578=_0x39989e["\u0067\u0065\u0074\u0054\u0061\u0062\u006c\u0065\u0044\u0061\u0074\u0061"]();let _0x3c8748=_0x22f578["\u0066\u0075\u006c\u006c\u0044\u0061\u0074\u0061"];function _0x3238ab(_0x44e27b,_0x593b27,_0x1a7e38,_0x32e097,_0x383307){return _0x573b(_0x1a7e38-0x2b2,_0x383307);}function _0x27c21c(_0x214210,_0x197ed3,_0x4fa777,_0x2d9dcb,_0x388e28){return _0x573b(_0x4fa777-0x18a,_0x2d9dcb);}let _0x4d8145=_0x39989e["\u0024\u0063\u0072\u0065\u0061\u0074\u0065\u0045\u006c\u0065\u006d\u0065\u006e\u0074"];let _0x167776=_0x39989e["\u0067\u0065\u0074\u0050\u0072\u006f\u0078\u0079\u0049\u006e\u0066\u006f"]();function _0x1bac25(_0x3fcc35,_0x118276,_0x2a2cff,_0x718b50,_0x5e2847){return _0x573b(_0x3fcc35- -0xd1,_0x118276);}let _0xec95af=_0x167776?_0x167776["\u0070\u0061\u0067\u0065\u0072"]:null;function _0x6c107(_0x241105,_0x3bb4de,_0x53dead,_0x24e2ad,_0x2d7cc5){return _0x437a(_0x3bb4de-0x3e7,_0x53dead);}let _0x2b9767=[_0x1ae3d2["\u006e\u006d\u004b\u006f\u0048"](_0x4d8145,_0x1ae3d2['FYEje'],_0x39989e['$t2'](_0x3238ab(0x2c7,0x2bb,0x2d7,0x2d6,0x2d1),_0x27c21c(0x1b2,0x188,0x193,0x18b,0x19f))),_0x4d8145(_0x1e2834(0x433,0x3ff,0x416,"JrFU".split("").reverse().join(""),0x3fb),{"\u0061\u0074\u0074\u0072\u0073":{'class':_0x121f12(0x3dc,0x3db,0x3da,"\u0031\u0030\u0063\u0059",0x3e3)}},_0x1ae3d2['QyHFY']('\x20',_0x22f578["\u0076\u0069\u0073\u0069\u0062\u006c\u0065\u0044\u0061\u0074\u0061"]["\u006c\u0065\u006e\u0067\u0074\u0068"])+'\x20')];if(_0xec95af){if(_0xec95af&&_0x39989e["\u0069\u0073\u0051\u0075\u0065\u0072\u0079\u0041\u006c\u006c\u0050\u0061\u0067\u0065"]){_0x2b9767["\u0070\u0075\u0073\u0068"](_0x4d8145(_0x3238ab(0x2d5,0x2e3,0x2f2,0x2ed,0x30c),"\u002f"));_0x2b9767['push'](_0x4d8145(_0x1bac25(-0x91,-0x9a,-0x78,-0x80,-0x89),{"\u0061\u0074\u0074\u0072\u0073":{'class':_0x3086ca(-0x33a,"\u0070\u005a\u0075\u006d",-0x32e,-0x325,-0x33d)}},'\x20'+_0xec95af["\u0074\u006f\u0074\u0061\u006c"]));}let _0x713495=_0x39989e['isQueryAllPage']?_0x1bac25(-0xc3,-0xa9,-0xac,-0xe4,-0xa2):_0x1ae3d2['iNQXI'];_0x2b9767['push'](_0x4d8145("\u0069",{'attrs':{"\u0063\u006c\u0061\u0073\u0073":_0x713495},"\u006f\u006e":{'click':function _0x3ade7d(_0x33ce42){let _0x1d1d8c=_0x39989e["\u0024\u0076\u006e\u006f\u0064\u0065"]["\u0064\u0061\u0074\u0061"]['ref'];let _0x31ce9d=_0x39989e['params']['originOption']['vue'];let _0x5d0058=_0x39989e["\u0070\u0061\u0072\u0061\u006d\u0073"]['originOption']['tableName'];_0x39989e['$vxeTableUtil']['checkQueryTotal'](_0x31ce9d,_0x1d1d8c,!_0x39989e["\u0069\u0073\u0051\u0075\u0065\u0072\u0079\u0041\u006c\u006c\u0050\u0061\u0067\u0065"]);}}}));}function _0x7fcf90(_0x74073b,_0x3cb82d,_0x454142,_0x21cb43,_0x31dad5){return _0x573b(_0x21cb43- -0x23f,_0x454142);}function _0x3086ca(_0x3e4b5c,_0x37c4a2,_0x2a3cf7,_0x348566,_0x40a366){return _0x437a(_0x3e4b5c- -0x34e,_0x37c4a2);}let _0x277258=_0x4d8145(_0x3238ab(0x2e0,0x2f8,0x2f2,0x2e6,0x300),{},_0x2b9767);return[_0x277258];}}},'checkboxConfig':{'reserve':!![]},'rowConfig':{"\u006b\u0065\u0079\u0046\u0069\u0065\u006c\u0064":_0x23d4e5(0x29a,0x267,0x29d,0x27a,0x287)}};
2
+
3
+ modules = {
4
+ className: "list-table",
5
+ resizable: true,
6
+ stripe: true,
7
+ border: 'default',
8
+ toolbarConfig: {
9
+ className: 'toolSet',
10
+ custom: {
11
+ icon: 'el-icon-s-tools'
12
+ }
13
+ },
14
+ pagerConfig: {
15
+ className: 'pages-box',
16
+ perfect: false,
17
+ slots: {
18
+ left: (obj, b, c) => {
19
+ },
20
+ right: (obj, b, c) => {
21
+ let $grid = obj.$grid;
22
+ let tableDataInfo = $grid.getTableData();
23
+ let data = tableDataInfo.fullData;
24
+ let h = $grid.$createElement;
25
+
26
+ let proxyInfo = $grid.getProxyInfo();
27
+ let pager = proxyInfo ? proxyInfo.pager : null;
28
+ let celems = [h('span', $grid.$t2('当前记录', 'components.table.pageInfo')),
29
+ h('span', {
30
+ attrs: {
31
+ class: 'f-red'
32
+ }
33
+ }, ' ' + tableDataInfo.visibleData.length + ' ')
34
+ ];
35
+ if (pager) {
36
+ if (pager && $grid.isQueryAllPage) {
37
+ celems.push(h('span', '/'));
38
+ celems.push(h('span', {
39
+ attrs: {
40
+ class: 'f-red'
41
+ }
42
+ }, ' ' + pager.total));
43
+ }
44
+
45
+ let iconClass = $grid.isQueryAllPage ? 'icon-yincang' : 'el-icon-view';
46
+
47
+ celems.push(h('i', {
48
+ attrs: {
49
+ class: iconClass,
50
+ },
51
+ on: {
52
+ click: function click(evnt) {
53
+ let refTarget = $grid.$vnode.data.ref;
54
+ let that = $grid.params.originOption.vue;
55
+ let tableName = $grid.params.originOption.tableName;
56
+ $grid.$vxeTableUtil.checkQueryTotal(that, refTarget, !$grid
57
+ .isQueryAllPage);
58
+ }
59
+ }
60
+ }));
61
+
62
+ }
63
+ let elem = h('span', {}, celems);
64
+ return [elem];
65
+ }
66
+ }
67
+ },
68
+ checkboxConfig: {
69
+ reserve: true
70
+ },
71
+ rowConfig: {
72
+ keyField: "_X_ROW_KEY"
73
+ }
74
+ };
75
+
3
76
  export default modules;