@ecan-bi/datav 1.0.88 → 1.0.89

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 (102) hide show
  1. package/dist/index.es.js +115 -38
  2. package/dist/index.es.js.map +1 -1
  3. package/dist/index.umd.js +114 -37
  4. package/dist/index.umd.js.map +1 -1
  5. package/dist/style.css +12 -12
  6. package/es/container/modal/Modal.js +1 -4
  7. package/es/container/modal/Modal.js.map +1 -1
  8. package/es/container/modal/index.js.map +1 -1
  9. package/es/container/modal/props.js +1 -1
  10. package/es/container/modal/props.js.map +1 -1
  11. package/es/graph/bar/Bar.js +33 -2
  12. package/es/graph/bar/Bar.js.map +1 -1
  13. package/es/graph/bar/index.js.map +1 -1
  14. package/es/graph/bar/props.js +1 -2
  15. package/es/graph/bar/props.js.map +1 -1
  16. package/es/graph/combo-graph/ComboGraph.js +44 -12
  17. package/es/graph/combo-graph/ComboGraph.js.map +1 -1
  18. package/es/graph/combo-graph/props.js +1 -1
  19. package/es/graph/combo-graph/props.js.map +1 -1
  20. package/es/graph/line/Line.js +37 -3
  21. package/es/graph/line/Line.js.map +1 -1
  22. package/es/graph/line/props.js +7 -6
  23. package/es/graph/line/props.js.map +1 -1
  24. package/es/graph/pie/Pie.js +22 -1
  25. package/es/graph/pie/Pie.js.map +1 -1
  26. package/es/graph/pie/props.js +1 -1
  27. package/es/graph/pie/props.js.map +1 -1
  28. package/es/graph/scatter/Scatter.js +10 -1
  29. package/es/graph/scatter/Scatter.js.map +1 -1
  30. package/es/graph/scatter/props.js +1 -1
  31. package/es/graph/scatter/props.js.map +1 -1
  32. package/es/hooks/useRequestData.js +1 -1
  33. package/es/hooks/useRequestData.js.map +1 -1
  34. package/es/hooks/useValueFormatter.js +2 -1
  35. package/es/hooks/useValueFormatter.js.map +1 -1
  36. package/es/hooks/useVariablesInText.js +33 -11
  37. package/es/hooks/useVariablesInText.js.map +1 -1
  38. package/es/setting/provider-config/ProviderConfig.js +3 -1
  39. package/es/setting/provider-config/ProviderConfig.js.map +1 -1
  40. package/es/table/table/Table.js +87 -28
  41. package/es/table/table/Table.js.map +1 -1
  42. package/es/table/table/index.js.map +1 -1
  43. package/es/table/table/props.js +1 -0
  44. package/es/table/table/props.js.map +1 -1
  45. package/es/text/text/Text.js +21 -1
  46. package/es/text/text/Text.js.map +1 -1
  47. package/es/text/text/props.js +4 -1
  48. package/es/text/text/props.js.map +1 -1
  49. package/lib/container/modal/Modal.js +1 -4
  50. package/lib/container/modal/Modal.js.map +1 -1
  51. package/lib/container/modal/index.js.map +1 -1
  52. package/lib/container/modal/props.js +1 -1
  53. package/lib/container/modal/props.js.map +1 -1
  54. package/lib/graph/bar/Bar.js +33 -2
  55. package/lib/graph/bar/Bar.js.map +1 -1
  56. package/lib/graph/bar/index.js.map +1 -1
  57. package/lib/graph/bar/props.js +1 -2
  58. package/lib/graph/bar/props.js.map +1 -1
  59. package/lib/graph/combo-graph/ComboGraph.js +44 -12
  60. package/lib/graph/combo-graph/ComboGraph.js.map +1 -1
  61. package/lib/graph/combo-graph/props.js +1 -1
  62. package/lib/graph/combo-graph/props.js.map +1 -1
  63. package/lib/graph/line/Line.js +37 -3
  64. package/lib/graph/line/Line.js.map +1 -1
  65. package/lib/graph/line/props.js +7 -6
  66. package/lib/graph/line/props.js.map +1 -1
  67. package/lib/graph/pie/Pie.js +22 -1
  68. package/lib/graph/pie/Pie.js.map +1 -1
  69. package/lib/graph/pie/props.js +1 -1
  70. package/lib/graph/pie/props.js.map +1 -1
  71. package/lib/graph/scatter/Scatter.js +10 -1
  72. package/lib/graph/scatter/Scatter.js.map +1 -1
  73. package/lib/graph/scatter/props.js +1 -1
  74. package/lib/graph/scatter/props.js.map +1 -1
  75. package/lib/hooks/useRequestData.js +1 -1
  76. package/lib/hooks/useRequestData.js.map +1 -1
  77. package/lib/hooks/useValueFormatter.js +2 -1
  78. package/lib/hooks/useValueFormatter.js.map +1 -1
  79. package/lib/hooks/useVariablesInText.js +33 -11
  80. package/lib/hooks/useVariablesInText.js.map +1 -1
  81. package/lib/setting/provider-config/ProviderConfig.js +3 -1
  82. package/lib/setting/provider-config/ProviderConfig.js.map +1 -1
  83. package/lib/style.css +6503 -6503
  84. package/lib/table/table/Table.js +87 -28
  85. package/lib/table/table/Table.js.map +1 -1
  86. package/lib/table/table/index.js.map +1 -1
  87. package/lib/table/table/props.js +1 -0
  88. package/lib/table/table/props.js.map +1 -1
  89. package/lib/text/text/Text.js +21 -1
  90. package/lib/text/text/Text.js.map +1 -1
  91. package/lib/text/text/props.js +4 -1
  92. package/lib/text/text/props.js.map +1 -1
  93. package/package.json +1 -1
  94. package/types/container/modal/index.d.ts +1 -1
  95. package/types/table/table/Table.vue.d.ts +44 -5
  96. package/types/table/table/index.d.ts +45 -6
  97. package/types/table/table/props.d.ts +21 -0
  98. package/types/text/text/Text.vue.d.ts +66 -0
  99. package/types/text/text/index.d.ts +66 -0
  100. package/types/text/text/props.d.ts +36 -0
  101. package/types/hooks/usePickEchartsData.d.ts +0 -2
  102. package/types/hooks/useTooltipFormatter.d.ts +0 -4
@@ -18,7 +18,7 @@ require("../../node_modules/ant-design-vue/es/tree/style/index.js");
18
18
  const usePickComponentStyle = require("../../hooks/usePickComponentStyle.js");
19
19
  const useOnEvent = require("../../hooks/useOnEvent.js");
20
20
  const useEmitEvent = require("../../hooks/useEmitEvent.js");
21
- require("lodash-es");
21
+ const lodashEs = require("lodash-es");
22
22
  const useRequestData = require("../../hooks/useRequestData.js");
23
23
  const constant = require("../../utils/constant.js");
24
24
  const useVariablesInText = require("../../hooks/useVariablesInText.js");
@@ -67,27 +67,34 @@ const _sfc_main = vue.defineComponent({
67
67
  });
68
68
  const x = vue.computed(() => props2.scrollX);
69
69
  const y = vue.computed(() => parseFloat(props2.height) - vue.unref(splitY));
70
- const myColumns = vue.computed(() => {
71
- let columns = [];
70
+ const myColumns = vue.ref([]);
71
+ const myDataSource = vue.ref(props2.data);
72
+ const tableColumns = vue.ref([]);
73
+ const tableDataSource = vue.ref([]);
74
+ const total = vue.ref(0);
75
+ const pageNum = vue.ref(1);
76
+ const pageSize = vue.computed(() => props2.paginationPageSize);
77
+ const handleColumns = (columns = []) => {
78
+ let _columns = [];
72
79
  const isUseSeq = props2.isUseSeq;
73
80
  if (isUseSeq) {
74
- columns.push({
81
+ _columns.push({
75
82
  title: "\u5E8F\u53F7",
76
83
  dataIndex: "SEQ"
77
84
  });
78
85
  }
79
- columns = columns.concat(props2.columns);
86
+ _columns = _columns.concat(lodashEs.cloneDeep(columns));
80
87
  if (props2.isUseAction) {
81
- columns.push({
88
+ _columns.push({
82
89
  title: "\u64CD\u4F5C",
83
90
  dataIndex: "ACTION",
84
91
  width: props2.actionColumnWidth
85
92
  });
86
93
  }
87
- const len = columns.length;
94
+ const len = _columns.length;
88
95
  const columnsFixedNum = props2.columnsFixedNum;
89
96
  for (let i = 0; i < len; i++) {
90
- const column = columns[i];
97
+ const column = _columns[i];
91
98
  if (i < columnsFixedNum) {
92
99
  column.fixed = "left";
93
100
  } else {
@@ -116,16 +123,71 @@ const _sfc_main = vue.defineComponent({
116
123
  }
117
124
  });
118
125
  }
119
- return columns;
126
+ myColumns.value = _columns;
127
+ };
128
+ vue.watch(() => [
129
+ props2.columns,
130
+ props2.isUseSeq,
131
+ props2.isUseAction,
132
+ props2.columnsFixedNum,
133
+ props2.actionColumnWidth,
134
+ props2.headerCellBackgroundColor,
135
+ props2.cellBackgroundColor,
136
+ props2.borderColor
137
+ ], () => {
138
+ handleColumns(props2.columns);
139
+ }, {
140
+ immediate: true,
141
+ deep: true
120
142
  });
121
- const total = vue.ref(0);
122
- const pageNum = vue.ref(1);
123
- const pageSize = vue.computed(() => props2.paginationPageSize);
124
- const dataSource = vue.ref(props2.data);
125
143
  vue.watch(() => [props2.data, props2.dataType], ([data, dataType]) => {
126
144
  if (dataType !== "static")
127
145
  return;
128
- dataSource.value = data;
146
+ myDataSource.value = data;
147
+ });
148
+ const handleReverseTable = (columns, dataSource) => {
149
+ const firstColumns = columns[0];
150
+ const _columns = [{
151
+ title: firstColumns.title,
152
+ dataIndex: "col0",
153
+ key: "col0"
154
+ }];
155
+ for (let i = 0; i < dataSource.length; i++) {
156
+ const data = dataSource[i];
157
+ const dataIndex = "col" + (i + 1);
158
+ _columns.push({
159
+ title: data[firstColumns.dataIndex],
160
+ dataIndex,
161
+ key: dataIndex
162
+ });
163
+ }
164
+ const _dataSource = [];
165
+ for (let i = 1; i < columns.length; i++) {
166
+ const column = columns[i];
167
+ const _data = { col0: column.title };
168
+ for (let j = 0; j < dataSource.length; j++) {
169
+ const data = dataSource[j];
170
+ _data[`col${j + 1}`] = data[column.dataIndex];
171
+ }
172
+ _dataSource.push(_data);
173
+ }
174
+ return {
175
+ columns: _columns,
176
+ dataSource: _dataSource
177
+ };
178
+ };
179
+ vue.watch(() => [props2.isReverse, myColumns.value, myDataSource.value], () => {
180
+ if (props2.isReverse) {
181
+ const { columns, dataSource } = handleReverseTable(vue.unref(myColumns), vue.unref(myDataSource));
182
+ tableColumns.value = columns;
183
+ tableDataSource.value = dataSource;
184
+ } else {
185
+ tableColumns.value = vue.unref(myColumns);
186
+ tableDataSource.value = vue.unref(myDataSource);
187
+ }
188
+ }, {
189
+ deep: true,
190
+ immediate: true
129
191
  });
130
192
  const orderCondition = vue.ref(void 0);
131
193
  const requestData = useRequestData.useRequestData(props2);
@@ -149,7 +211,7 @@ const _sfc_main = vue.defineComponent({
149
211
  const res = await requestData(params);
150
212
  const { rows = [], total: tableTotal = 0 } = ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.data) || {};
151
213
  total.value = tableTotal;
152
- dataSource.value = rows;
214
+ myDataSource.value = rows;
153
215
  } catch (e) {
154
216
  console.error(e);
155
217
  } finally {
@@ -222,12 +284,10 @@ const _sfc_main = vue.defineComponent({
222
284
  getGlobalModel: (key) => void 0,
223
285
  setGlobalModel: (key, value) => void 0
224
286
  });
225
- const dataColumns = vue.ref([]);
226
- const handleIndicatorDataset = (colmuns = [], rows = []) => {
227
- dataColumns.value = colmuns.map((it) => {
228
- return { title: it, dataIndex: it, key: it };
229
- });
230
- dataSource.value = rows;
287
+ const handleIndicatorDataset = (dataColumns = [], dataRows = []) => {
288
+ const _columns = dataColumns.map((column) => ({ title: column, dataIndex: column, key: column }));
289
+ handleColumns(_columns);
290
+ myDataSource.value = dataRows;
231
291
  };
232
292
  const indicatorData = useIndicatorData.useIndicatorData(props2);
233
293
  const handleIndicatorData = async () => {
@@ -288,7 +348,7 @@ const _sfc_main = vue.defineComponent({
288
348
  return [];
289
349
  const start = (vue.unref(pageNum) - 1) * vue.unref(pageSize);
290
350
  const end = start + vue.unref(pageSize);
291
- const records = vue.unref(dataSource).slice(start, end);
351
+ const records = vue.unref(myDataSource).slice(start, end);
292
352
  for (let i = 0; i < records.length; i++) {
293
353
  const record = records[i];
294
354
  for (let j = 0; j < summaryList2.length; j++) {
@@ -334,15 +394,14 @@ const _sfc_main = vue.defineComponent({
334
394
  return {
335
395
  x,
336
396
  y,
337
- myColumns,
338
397
  style,
339
398
  customRow,
340
399
  pagination,
341
400
  formatFn,
342
401
  contrastClass,
343
402
  tableChange,
344
- dataColumns,
345
- dataSource,
403
+ tableDataSource,
404
+ tableColumns,
346
405
  summaryList,
347
406
  loading,
348
407
  onTouchHrefEvent,
@@ -373,8 +432,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
373
432
  style: {
374
433
  height: "100%"
375
434
  },
376
- columns: _ctx.dataColumns.length > 0 ? _ctx.dataColumns : _ctx.myColumns,
377
- "data-source": _ctx.dataSource,
435
+ columns: _ctx.tableColumns,
436
+ "data-source": _ctx.tableDataSource,
378
437
  bordered: _ctx.bordered,
379
438
  size: _ctx.size,
380
439
  customRow: _ctx.customRow,
@@ -454,6 +513,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
454
513
  }, 8, ["loading"])
455
514
  ], 4);
456
515
  }
457
- const Table = /* @__PURE__ */ pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-0963bd5a"]]);
516
+ const Table = /* @__PURE__ */ pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-48569fe8"]]);
458
517
  exports.default = Table;
459
518
  //# sourceMappingURL=Table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../src/table/table/Table.vue"],"sourcesContent":["<template>\n <div class=\"ecan-table\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <a-table\n class=\"table\"\n :style=\"{\n height: '100%'\n }\"\n :columns=\"dataColumns.length > 0 ? dataColumns : myColumns\"\n :data-source=\"dataSource\"\n :bordered=\"bordered\"\n :size=\"size\"\n :customRow=\"customRow\"\n :scroll=\"{ x, y }\"\n :pagination=\"pagination\"\n @change=\"tableChange\"\n >\n <template v-slot:bodyCell=\"{ column, index, text, record }\">\n <!-- 序列配置 -->\n <template v-if=\"column.dataIndex === 'SEQ'\">\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ index + 1 }}\n </span>\n </template>\n <!-- 操作列配置 -->\n <template v-else-if=\"column.dataIndex === 'ACTION'\">\n <div class=\"action-list\">\n <div class=\"action\" v-for=\"(action, index) in actionList\" :key=\"index\">\n <a\n :href=\"handleHref(action.href, record)\"\n :target=\"handleHrefTarget(action.target)\"\n :style=\"{\n color: action.color,\n fontSize,\n fontWeight\n }\"\n @click=\"onTouchHrefEvent(action.target, handleHref(action.href, record))\"\n >\n {{ action.title }}\n </a>\n </div>\n </div>\n </template>\n <template v-else>\n <div\n :class=\"[contrastClass(text, column.format)]\"\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ (column.format != null || column.format !== '') && formatFn(text, column.format) }}\n </div>\n </template>\n </template>\n <template v-slot:summary>\n <a-table-summary v-if=\"summaryList.length > 0\">\n <a-table-summary-row>\n <a-table-summary-cell\n v-for=\"(summary, index) in summaryList\"\n :key=\"summary.dataIndex + index\"\n :index=\"summary.index\"\n :style=\"{\n backgroundColor: cellBackgroundColor,\n textAlign: summary.cellAlign || 'center',\n color: summary.cellColor,\n borderBottomColor: borderColor\n }\"\n >\n <div :class=\"[contrastClass(summary.total, summary.format)]\">\n {{ (summary.format != null || summary.format !== '') && formatFn(summary.total, summary.format) }}\n </div>\n </a-table-summary-cell>\n </a-table-summary-row>\n </a-table-summary>\n </template>\n </a-table>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref, ref, watch, inject } from 'vue'\nimport {\n Table as ATable,\n TableSummary as ATableSummary,\n TableSummaryRow as ATableSummaryRow,\n TableSummaryCell as ATableSummaryCell\n} from 'ant-design-vue'\nimport 'ant-design-vue/es/table/style'\nimport {\n usePickComponentStyle,\n useEmitEvent,\n useRequestData,\n useOnEvent,\n useIndicatorData,\n useVariablesInText\n} from '@/hooks'\nimport { tableComponentProps } from './props'\nimport { formatMoney, formatPercentage } from '@/utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\n\nexport default defineComponent({\n name: 'EcanTable',\n components: {\n Skeleton,\n ATable,\n ATableSummary,\n ATableSummaryRow,\n ATableSummaryCell\n },\n props: {\n ...tableComponentProps\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const splitY = computed(() => {\n if (props.paginationShow) {\n switch (props.size) {\n case 'small':\n return 90\n case 'middle':\n return 100\n default:\n return 120\n }\n } else {\n switch (props.size) {\n case 'small':\n return 40\n case 'middle':\n return 47\n default:\n return 55\n }\n }\n })\n const x = computed(() => props.scrollX)\n const y = computed(() => parseFloat(props.height as string) - unref(splitY))\n const myColumns = computed(() => {\n // 复制表头数据\n let columns = [] as { [key: string]: any } []\n const isUseSeq = props.isUseSeq as boolean\n if (isUseSeq) {\n // 添加序号\n columns.push({\n title: '序号',\n dataIndex: 'SEQ'\n })\n }\n columns = columns.concat(props.columns as { [key: string]: any } [])\n // 添加操作列\n if (props.isUseAction) {\n columns.push({\n title: '操作',\n dataIndex: 'ACTION',\n width: props.actionColumnWidth\n })\n }\n const len = columns.length\n const columnsFixedNum = props.columnsFixedNum as number\n // 这里的循环为了 props 是引用类型,会造成脏数据(上次修改后,还会存在上次的数据)\n // 如果使用深拷贝会造成性能的浪费,循环来说相对更快\n for (let i = 0; i < len; i++) {\n const column = columns[i]\n if (i < columnsFixedNum) {\n column.fixed = 'left'\n } else {\n column.fixed = false\n }\n const {\n headerCellAlign = 'center',\n headerCellColor,\n cellAlign = 'center',\n cellColor\n } = column\n // 通用配置\n column.customHeaderCell = () => ({\n style: {\n textAlign: headerCellAlign,\n color: headerCellColor,\n backgroundColor: props.headerCellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n column.customCell = () => ({\n style: {\n textAlign: cellAlign,\n color: cellColor,\n backgroundColor: props.cellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n }\n return columns\n })\n const total = ref(0)\n const pageNum = ref(1)\n const pageSize = computed(() => props.paginationPageSize as number)\n const dataSource = ref(props.data as { [key: string]: any } [])\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType !== 'static') return\n dataSource.value = data as { [key: string]: any } []\n })\n const orderCondition = ref<string | undefined>(undefined)\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async (isUseLoading: boolean = true) => {\n try {\n if (isUseLoading) loading.value = true\n // 初始参数:排序\n let params = {\n orderCondition: unref(orderCondition)\n } as { [key:string]: any }\n // 分页\n if (props.paginationShow) {\n params = {\n ...params,\n pageNum: unref(pageNum),\n pageSize: unref(pageSize),\n layer: '1'\n }\n }\n const res = await requestData(params)\n const { rows = [], total: tableTotal = 0 } = res?.data?.data || {}\n total.value = tableTotal\n dataSource.value = rows\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const tableChange = ({ current }: { current: number }, _filters, sorter) => {\n pageNum.value = current\n if (sorter && Object.keys(sorter).length > 0) {\n const { field, order } = sorter as { field: string | null, order: 'ascend' | 'descend' }\n const map = {\n ascend: 'asc',\n descend: 'desc'\n }\n const fieldOrder = map[order]\n if (field != null && fieldOrder != null) {\n orderCondition.value = field + ' ' + fieldOrder\n pageNum.value = 1\n }\n }\n refreshData(false)\n }\n const pagination = computed(() => {\n const simple = props.simple\n const position = [props.paginationPosition]\n return props.paginationShow && {\n simple,\n position,\n total: unref(total),\n current: unref(pageNum),\n pageSize: unref(pageSize),\n showSizeChanger: false\n }\n })\n const formatBoolean = (value: string | number) => {\n if (+value === 1) return '是'\n if (+value === 0) return '否'\n return value\n }\n type Format = 'money' | 'percentage' | 'contrast' | 'boolean' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage,\n boolean: formatBoolean\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const dataColumns = ref([])\n const handleIndicatorDataset = (colmuns: any = [], rows: any = []) => {\n dataColumns.value = colmuns.map((it: string) => {\n return { title: it, dataIndex: it, key: it }\n })\n dataSource.value = rows\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n handleIndicatorDataset(res?.data?.data?.columns, res?.data?.data?.rows)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const customRow = (record) => ({\n onClick: emitEvent('click', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n })\n })\n const refreshData = (isUseLoading: boolean = true) => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'request':\n handleRequestData(isUseLoading)\n break\n case 'indicator':\n handleIndicatorData()\n break\n }\n }\n useOnEvent(props, {\n refreshData\n })\n const summaryList = computed(() => {\n const columns = props.columns as { [key: string]: any } []\n const summaryList = (props.isUseSeq ? [{ total: '小计' }] : []) as { [key: string]: any } []\n let calcTotalCount = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]\n const { isCalcTotal } = column\n if (isCalcTotal) {\n summaryList.push({\n ...column,\n index: i,\n total: 0\n })\n calcTotalCount++\n } else {\n summaryList.push({\n ...column\n })\n }\n }\n // 为空直接返回\n if (calcTotalCount === 0) return []\n const start = (unref(pageNum) - 1) * unref(pageSize)\n const end = start + unref(pageSize)\n const records = unref(dataSource).slice(start, end)\n for (let i = 0; i < records.length; i++) {\n const record = records[i]\n for (let j = 0; j < summaryList.length; j++) {\n const summary = summaryList[j]\n const { dataIndex, total } = summary\n const num = +record[dataIndex]\n if (!Number.isNaN(num) && total != null) {\n summary.total = num + total\n }\n }\n }\n return summaryList\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n expose({\n refreshData\n })\n\n const handleHref = (href: string = '', data: { [key:string]: any }) => {\n return useVariablesInText(href, data)\n }\n\n const handleHrefTarget = (target: 'self' | 'blank' | 'event') => {\n if (target === 'event') {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n }\n\n const onTouchHrefEvent = (target: 'self' | 'blank' | 'event', href: string = '') => {\n if (target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n }\n\n return {\n x,\n y,\n myColumns,\n style,\n customRow,\n pagination,\n formatFn,\n contrastClass,\n tableChange,\n dataColumns,\n dataSource,\n summaryList,\n loading,\n onTouchHrefEvent,\n handleHref,\n handleHrefTarget\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.table {\n width: 100%;\n}\n\n.goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.action-list {\n display: flex;\n width: 100%;\n}\n.action {\n flex: 1;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-table {\n *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n *::-webkit-scrollbar-thumb {\n border-radius: 3px;\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);\n background-color: #c8c9ca !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n\n .ant-table {\n color: rgba(0, 0, 0, .65);\n background: #ffffff;\n }\n\n .ant-table-thead > tr > th {\n color: rgba(0, 0, 0, .85);\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #f0f0f0 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #f0f0f0 !important;\n }\n }\n\n .anticon {\n color: rgba(0, 0, 0, .65) !important;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ecan-table {\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #192c70;\n }\n\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .ant-table {\n color: #e8e8e8;\n background: #071655;\n }\n\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-thead > tr > th {\n color: #cdd0f7;\n background: #17338c;\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #3e8ee3 !important;\n }\n }\n\n .ant-pagination-item-link {\n background: #17338c !important;\n }\n\n .ant-pagination-item {\n background: #17338c !important;\n }\n\n .anticon {\n color: rgba(255, 255, 255, .65) !important;\n }\n\n .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {\n background: #225b98;\n }\n }\n\n td.ant-table-column-sort {\n background: #225b98;\n }\n}\n</style>\n"],"names":["defineComponent","Skeleton","ATable","ATableSummary","ATableSummaryRow","ATableSummaryCell","tableComponentProps","props","usePickComponentStyle","computed","unref","ref","watch","useRequestData","formatMoney","formatPercentage","useEmitEvent","inject","GLOBAL_CONFIG","GLOBAL_MODEL","useIndicatorData","useOnEvent","summaryList","total","REQUEST_MODEL","useVariablesInText","_createElementBlock","_normalizeStyle","_createVNode","_withCtx","_openBlock","_toDisplayString","_Fragment","_renderList","index","_createElementVNode","_normalizeClass","_createBlock"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sources":["../../../src/table/table/Table.vue"],"sourcesContent":["<template>\n <div class=\"ecan-table\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <a-table\n class=\"table\"\n :style=\"{\n height: '100%'\n }\"\n :columns=\"tableColumns\"\n :data-source=\"tableDataSource\"\n :bordered=\"bordered\"\n :size=\"size\"\n :customRow=\"customRow\"\n :scroll=\"{ x, y }\"\n :pagination=\"pagination\"\n @change=\"tableChange\"\n >\n <template v-slot:bodyCell=\"{ column, index, text, record }\">\n <!-- 序列配置 -->\n <template v-if=\"column.dataIndex === 'SEQ'\">\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ index + 1 }}\n </span>\n </template>\n <!-- 操作列配置 -->\n <template v-else-if=\"column.dataIndex === 'ACTION'\">\n <div class=\"action-list\">\n <div class=\"action\" v-for=\"(action, index) in actionList\" :key=\"index\">\n <a\n :href=\"handleHref(action.href, record)\"\n :target=\"handleHrefTarget(action.target)\"\n :style=\"{\n color: action.color,\n fontSize,\n fontWeight\n }\"\n @click=\"onTouchHrefEvent(action.target, handleHref(action.href, record))\"\n >\n {{ action.title }}\n </a>\n </div>\n </div>\n </template>\n <template v-else>\n <div\n :class=\"[contrastClass(text, column.format)]\"\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ (column.format != null || column.format !== '') && formatFn(text, column.format) }}\n </div>\n </template>\n </template>\n <template v-slot:summary>\n <a-table-summary v-if=\"summaryList.length > 0\">\n <a-table-summary-row>\n <a-table-summary-cell\n v-for=\"(summary, index) in summaryList\"\n :key=\"summary.dataIndex + index\"\n :index=\"summary.index\"\n :style=\"{\n backgroundColor: cellBackgroundColor,\n textAlign: summary.cellAlign || 'center',\n color: summary.cellColor,\n borderBottomColor: borderColor\n }\"\n >\n <div :class=\"[contrastClass(summary.total, summary.format)]\">\n {{ (summary.format != null || summary.format !== '') && formatFn(summary.total, summary.format) }}\n </div>\n </a-table-summary-cell>\n </a-table-summary-row>\n </a-table-summary>\n </template>\n </a-table>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref, ref, watch, inject } from 'vue'\nimport {\n Table as ATable,\n TableSummary as ATableSummary,\n TableSummaryRow as ATableSummaryRow,\n TableSummaryCell as ATableSummaryCell\n} from 'ant-design-vue'\nimport 'ant-design-vue/es/table/style'\nimport {\n usePickComponentStyle,\n useEmitEvent,\n useRequestData,\n useOnEvent,\n useIndicatorData,\n useVariablesInText\n} from '@/hooks'\nimport { tableComponentProps } from './props'\nimport { formatMoney, formatPercentage } from '@/utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport { cloneDeep } from 'lodash-es'\n\nexport default defineComponent({\n name: 'EcanTable',\n components: {\n Skeleton,\n ATable,\n ATableSummary,\n ATableSummaryRow,\n ATableSummaryCell\n },\n props: {\n ...tableComponentProps\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const splitY = computed(() => {\n if (props.paginationShow) {\n switch (props.size) {\n case 'small':\n return 90\n case 'middle':\n return 100\n default:\n return 120\n }\n } else {\n switch (props.size) {\n case 'small':\n return 40\n case 'middle':\n return 47\n default:\n return 55\n }\n }\n })\n const x = computed(() => props.scrollX)\n const y = computed(() => parseFloat(props.height as string) - unref(splitY))\n const myColumns = ref([] as { [key: string]: any } [])\n const myDataSource = ref(props.data as { [key: string]: any } [])\n const tableColumns = ref([] as { [key: string]: any } [])\n const tableDataSource = ref([] as { [key: string]: any } [])\n const total = ref(0)\n const pageNum = ref(1)\n const pageSize = computed(() => props.paginationPageSize as number)\n const handleColumns = (columns: { [key: string]: any } [] = []) => {\n // 复制表头数据\n let _columns = [] as { [key: string]: any } []\n const isUseSeq = props.isUseSeq as boolean\n if (isUseSeq) {\n // 添加序号\n _columns.push({\n title: '序号',\n dataIndex: 'SEQ'\n })\n }\n _columns = _columns.concat(cloneDeep((columns)))\n // 添加操作列\n if (props.isUseAction) {\n _columns.push({\n title: '操作',\n dataIndex: 'ACTION',\n width: props.actionColumnWidth\n })\n }\n const len = _columns.length\n const columnsFixedNum = props.columnsFixedNum as number\n // 这里的循环为了 props 是引用类型,会造成脏数据(上次修改后,还会存在上次的数据)\n // 如果使用深拷贝会造成性能的浪费,循环来说相对更快\n for (let i = 0; i < len; i++) {\n const column = _columns[i]\n if (i < columnsFixedNum) {\n column.fixed = 'left'\n } else {\n column.fixed = false\n }\n const {\n headerCellAlign = 'center',\n headerCellColor,\n cellAlign = 'center',\n cellColor\n } = column\n // 通用配置\n column.customHeaderCell = () => ({\n style: {\n textAlign: headerCellAlign,\n color: headerCellColor,\n backgroundColor: props.headerCellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n column.customCell = () => ({\n style: {\n textAlign: cellAlign,\n color: cellColor,\n backgroundColor: props.cellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n }\n myColumns.value = _columns\n }\n watch(() => [\n props.columns,\n props.isUseSeq,\n props.isUseAction,\n props.columnsFixedNum,\n props.actionColumnWidth,\n props.headerCellBackgroundColor,\n props.cellBackgroundColor,\n props.borderColor\n ], () => {\n handleColumns(props.columns as any [])\n }, {\n immediate: true,\n deep: true\n })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType !== 'static') return\n myDataSource.value = data as { [key: string]: any } []\n })\n const handleReverseTable = (columns: { [key:string]: any} [], dataSource: { [key:string]: any} []) => {\n const firstColumns = columns[0]\n const _columns = [{\n title: firstColumns.title,\n dataIndex: 'col0',\n key: 'col0'\n }] as { [key:string]: any } []\n for (let i = 0; i < dataSource.length; i++) {\n const data = dataSource[i]\n const dataIndex = 'col' + (i + 1)\n _columns.push({\n title: data[firstColumns.dataIndex],\n dataIndex,\n key: dataIndex\n })\n }\n const _dataSource = [] as { [key:string]: any } []\n for (let i = 1; i < columns.length; i++) {\n const column = columns[i]\n const _data = { col0: column.title }\n for (let j = 0; j < dataSource.length; j++) {\n const data = dataSource[j]\n _data[`col${j + 1}`] = data[column.dataIndex]\n }\n _dataSource.push(_data)\n }\n return {\n columns: _columns,\n dataSource: _dataSource\n }\n }\n watch(() => [props.isReverse, myColumns.value, myDataSource.value], () => {\n if (props.isReverse) {\n const { columns, dataSource } = handleReverseTable(unref(myColumns), unref(myDataSource))\n tableColumns.value = columns\n tableDataSource.value = dataSource\n } else {\n tableColumns.value = unref(myColumns)\n tableDataSource.value = unref(myDataSource)\n }\n }, {\n deep: true,\n immediate: true\n })\n const orderCondition = ref<string | undefined>(undefined)\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async (isUseLoading: boolean = true) => {\n try {\n if (isUseLoading) loading.value = true\n // 初始参数:排序\n let params = {\n orderCondition: unref(orderCondition)\n } as { [key:string]: any }\n // 分页\n if (props.paginationShow) {\n params = {\n ...params,\n pageNum: unref(pageNum),\n pageSize: unref(pageSize),\n layer: '1'\n }\n }\n const res = await requestData(params)\n const { rows = [], total: tableTotal = 0 } = res?.data?.data || {}\n total.value = tableTotal\n myDataSource.value = rows\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const tableChange = ({ current }: { current: number }, _filters, sorter) => {\n pageNum.value = current\n if (sorter && Object.keys(sorter).length > 0) {\n const { field, order } = sorter as { field: string | null, order: 'ascend' | 'descend' }\n const map = {\n ascend: 'asc',\n descend: 'desc'\n }\n const fieldOrder = map[order]\n if (field != null && fieldOrder != null) {\n orderCondition.value = field + ' ' + fieldOrder\n pageNum.value = 1\n }\n }\n refreshData(false)\n }\n const pagination = computed(() => {\n const simple = props.simple\n const position = [props.paginationPosition]\n return props.paginationShow && {\n simple,\n position,\n total: unref(total),\n current: unref(pageNum),\n pageSize: unref(pageSize),\n showSizeChanger: false\n }\n })\n const formatBoolean = (value: string | number) => {\n if (+value === 1) return '是'\n if (+value === 0) return '否'\n return value\n }\n type Format = 'money' | 'percentage' | 'contrast' | 'boolean' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage,\n boolean: formatBoolean\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const handleIndicatorDataset = (dataColumns: any [] = [], dataRows: { [key:string]: any }[] = []) => {\n const _columns = dataColumns.map((column: string) => ({ title: column, dataIndex: column, key: column }))\n handleColumns(_columns)\n myDataSource.value = dataRows\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n handleIndicatorDataset(res?.data?.data?.columns, res?.data?.data?.rows)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const customRow = (record) => ({\n onClick: emitEvent('click', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n })\n })\n const refreshData = (isUseLoading: boolean = true) => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'request':\n handleRequestData(isUseLoading)\n break\n case 'indicator':\n handleIndicatorData()\n break\n }\n }\n useOnEvent(props, {\n refreshData\n })\n const summaryList = computed(() => {\n const columns = props.columns as { [key: string]: any } []\n const summaryList = (props.isUseSeq ? [{ total: '小计' }] : []) as { [key: string]: any } []\n let calcTotalCount = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]\n const { isCalcTotal } = column\n if (isCalcTotal) {\n summaryList.push({\n ...column,\n index: i,\n total: 0\n })\n calcTotalCount++\n } else {\n summaryList.push({\n ...column\n })\n }\n }\n // 为空直接返回\n if (calcTotalCount === 0) return []\n const start = (unref(pageNum) - 1) * unref(pageSize)\n const end = start + unref(pageSize)\n const records = unref(myDataSource).slice(start, end)\n for (let i = 0; i < records.length; i++) {\n const record = records[i]\n for (let j = 0; j < summaryList.length; j++) {\n const summary = summaryList[j]\n const { dataIndex, total } = summary\n const num = +record[dataIndex]\n if (!Number.isNaN(num) && total != null) {\n summary.total = num + total\n }\n }\n }\n return summaryList\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n expose({\n refreshData\n })\n\n const handleHref = (href: string = '', data: { [key:string]: any }) => {\n return useVariablesInText(href, data)\n }\n\n const handleHrefTarget = (target: 'self' | 'blank' | 'event') => {\n if (target === 'event') {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n }\n\n const onTouchHrefEvent = (target: 'self' | 'blank' | 'event', href: string = '') => {\n if (target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n }\n\n return {\n x,\n y,\n style,\n customRow,\n pagination,\n formatFn,\n contrastClass,\n tableChange,\n tableDataSource,\n tableColumns,\n summaryList,\n loading,\n onTouchHrefEvent,\n handleHref,\n handleHrefTarget\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.table {\n width: 100%;\n}\n\n.goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.action-list {\n display: flex;\n width: 100%;\n}\n.action {\n flex: 1;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-table {\n *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n *::-webkit-scrollbar-thumb {\n border-radius: 3px;\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);\n background-color: #c8c9ca !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n\n .ant-table {\n color: rgba(0, 0, 0, .65);\n background: #ffffff;\n }\n\n .ant-table-thead > tr > th {\n color: rgba(0, 0, 0, .85);\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #f0f0f0 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #f0f0f0 !important;\n }\n }\n\n .anticon {\n color: rgba(0, 0, 0, .65) !important;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ecan-table {\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #192c70;\n }\n\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .ant-table {\n color: #e8e8e8;\n background: #071655;\n }\n\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-thead > tr > th {\n color: #cdd0f7;\n background: #17338c;\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #3e8ee3 !important;\n }\n }\n\n .ant-pagination-item-link {\n background: #17338c !important;\n }\n\n .ant-pagination-item {\n background: #17338c !important;\n }\n\n .anticon {\n color: rgba(255, 255, 255, .65) !important;\n }\n\n .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {\n background: #225b98;\n }\n }\n\n td.ant-table-column-sort {\n background: #225b98;\n }\n}\n</style>\n"],"names":["defineComponent","Skeleton","ATable","ATableSummary","ATableSummaryRow","ATableSummaryCell","tableComponentProps","props","usePickComponentStyle","computed","unref","ref","cloneDeep","watch","useRequestData","formatMoney","formatPercentage","useEmitEvent","inject","GLOBAL_CONFIG","GLOBAL_MODEL","useIndicatorData","useOnEvent","summaryList","total","REQUEST_MODEL","useVariablesInText","_createElementBlock","_normalizeStyle","_createVNode","_withCtx","_openBlock","_toDisplayString","_Fragment","_renderList","index","_createElementVNode","_normalizeClass","_createBlock"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/table/table/index.ts"],"sourcesContent":["import { withInstall } from '../../utils/withInstall'\nimport Table from './Table.vue'\nexport const EcanTable = withInstall(Table)\nexport default EcanTable\nexport * from './props'\n"],"names":["withInstall","Table"],"mappings":";;;;;AAEa,MAAA,YAAYA,wBAAYC,MAAK,OAAA;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/table/table/index.ts"],"sourcesContent":["import { withInstall } from '@/utils/withInstall'\nimport Table from './Table.vue'\nexport const EcanTable = withInstall(Table)\nexport default EcanTable\nexport * from './props'\n"],"names":["withInstall","Table"],"mappings":";;;;;AAEa,MAAA,YAAYA,wBAAYC,MAAK,OAAA;;;;;;"}
@@ -17,6 +17,7 @@ const tableProps = {
17
17
  columnsFixedNum: 0,
18
18
  scrollX: 0,
19
19
  paginationShow: true,
20
+ isReverse: false,
20
21
  simple: false,
21
22
  headerCellBackgroundColor: "",
22
23
  cellBackgroundColor: "",
@@ -1 +1 @@
1
- {"version":3,"file":"props.js","sources":["../../../src/table/table/props.ts"],"sourcesContent":["import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TableProps extends Props {\n columns: { [key: string]: any } []\n data: { [key: string]: any } []\n bordered: boolean\n size: 'default' | 'middle' | 'small'\n isUseSeq: boolean\n columnsFixedNum: number\n scrollX: number\n paginationShow: boolean\n paginationPosition: 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'\n simple: boolean\n headerCellBackgroundColor: string\n cellBackgroundColor: string\n borderColor: string\n paginationPageSize: number\n isUseAction: boolean // 添加操作列\n actionColumnWidth: number\n actionList: { [key: string]: any } []\n fontSize: string\n fontWeight: number\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'table' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '1' // 表格类型, 后台接口\n }\n}\n\nexport const tableProps: TableProps = {\n ...props,\n zIndex: 2,\n name: '表格',\n keyName: '表格',\n type: 'ecanTable',\n width: '400px',\n height: '240px',\n bordered: false,\n fontSize: '14px',\n isUseSeq: false,\n size: 'default',\n fontWeight: 400,\n columnsFixedNum: 0,\n scrollX: 0,\n paginationShow: true,\n simple: false,\n headerCellBackgroundColor: '',\n cellBackgroundColor: '',\n borderColor: '',\n paginationPosition: 'bottomRight',\n paginationPageSize: 10,\n isUseAction: false,\n actionList: [{\n title: '',\n href: '',\n target: '',\n color: ''\n }],\n actionColumnWidth: 100,\n columns: [\n {\n title: '姓名',\n dataIndex: 'name'\n },\n {\n title: '年龄',\n dataIndex: 'age'\n },\n {\n title: '住址',\n dataIndex: 'address'\n }\n ],\n data: [\n {\n name: '小明',\n age: 32,\n address: '福州软件园'\n },\n {\n name: '小红',\n age: 25,\n address: '福州软件园'\n }\n ],\n graphicConfig: {\n chartType: 'table', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '1' // 图类型, 后台接口\n }\n}\n\n// 转化默认属性\nexport const tableComponentProps = transformToComponentProps(tableProps)\n\nexport const tableEvents = ['click', 'refreshData']\n"],"names":["props","transformToComponentProps"],"mappings":";;;AA0CO,MAAM,aAAyB;AAAA,EACpC,GAAGA,MAAA;AAAA,EACH,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,2BAA2B;AAAA,EAC3B,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,YAAY,CAAC;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA,CACR;AAAA,EACD,mBAAmB;AAAA,EACnB,SAAS;AAAA,IACP;AAAA,MACE,OAAO;AAAA,MACP,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACb,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAGa,MAAA,sBAAsBC,gCAA0B,UAAU;AAE1D,MAAA,cAAc,CAAC,SAAS,aAAa;;;;"}
1
+ {"version":3,"file":"props.js","sources":["../../../src/table/table/props.ts"],"sourcesContent":["import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TableProps extends Props {\n columns: { [key: string]: any } []\n data: { [key: string]: any } []\n bordered: boolean\n size: 'default' | 'middle' | 'small'\n isUseSeq: boolean\n columnsFixedNum: number\n scrollX: number\n paginationShow: boolean\n paginationPosition: 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'\n simple: boolean\n headerCellBackgroundColor: string\n cellBackgroundColor: string\n borderColor: string\n paginationPageSize: number\n isUseAction: boolean // 添加操作列\n actionColumnWidth: number\n actionList: { [key: string]: any } []\n fontSize: string\n fontWeight: number\n isReverse: boolean\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'table' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '1' // 表格类型, 后台接口\n }\n}\n\nexport const tableProps: TableProps = {\n ...props,\n zIndex: 2,\n name: '表格',\n keyName: '表格',\n type: 'ecanTable',\n width: '400px',\n height: '240px',\n bordered: false,\n fontSize: '14px',\n isUseSeq: false,\n size: 'default',\n fontWeight: 400,\n columnsFixedNum: 0,\n scrollX: 0,\n paginationShow: true,\n isReverse: false,\n simple: false,\n headerCellBackgroundColor: '',\n cellBackgroundColor: '',\n borderColor: '',\n paginationPosition: 'bottomRight',\n paginationPageSize: 10,\n isUseAction: false,\n actionList: [{\n title: '',\n href: '',\n target: '',\n color: ''\n }],\n actionColumnWidth: 100,\n columns: [\n {\n title: '姓名',\n dataIndex: 'name'\n },\n {\n title: '年龄',\n dataIndex: 'age'\n },\n {\n title: '住址',\n dataIndex: 'address'\n }\n ],\n data: [\n {\n name: '小明',\n age: 32,\n address: '福州软件园'\n },\n {\n name: '小红',\n age: 25,\n address: '福州软件园'\n }\n ],\n graphicConfig: {\n chartType: 'table', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '1' // 图类型, 后台接口\n }\n}\n\n// 转化默认属性\nexport const tableComponentProps = transformToComponentProps(tableProps)\n\nexport const tableEvents = ['click', 'refreshData']\n"],"names":["props","transformToComponentProps"],"mappings":";;;AA2CO,MAAM,aAAyB;AAAA,EACpC,GAAGA,MAAA;AAAA,EACH,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,2BAA2B;AAAA,EAC3B,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,YAAY,CAAC;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA,CACR;AAAA,EACD,mBAAmB;AAAA,EACnB,SAAS;AAAA,IACP;AAAA,MACE,OAAO;AAAA,MACP,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACb,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAGa,MAAA,sBAAsBC,gCAA0B,UAAU;AAE1D,MAAA,cAAc,CAAC,SAAS,aAAa;;;;"}
@@ -8,6 +8,8 @@ const useEmitEvent = require("../../hooks/useEmitEvent.js");
8
8
  require("lodash-es");
9
9
  const useRequestData = require("../../hooks/useRequestData.js");
10
10
  const constant = require("../../utils/constant.js");
11
+ const usePageUrl = require("../../hooks/usePageUrl.js");
12
+ const useVariablesInText = require("../../hooks/useVariablesInText.js");
11
13
  require("../../utils/request.js");
12
14
  require("ant-design-vue");
13
15
  const Skeleton = require("../../common/skeleton/Skeleton.js");
@@ -108,6 +110,24 @@ const _sfc_main = vue.defineComponent({
108
110
  });
109
111
  const emitEvent = useEmitEvent.useEmitEvent(props2);
110
112
  const click = emitEvent("click", () => {
113
+ if (!props2.linkPage && !props2.href)
114
+ return;
115
+ const linkPage = props2.linkPage || "";
116
+ const pageUrl = usePageUrl.usePageUrl(vue.unref(pageMode), linkPage);
117
+ const href = props2.href;
118
+ let url = href || pageUrl;
119
+ url = useVariablesInText.useVariablesInText(url);
120
+ const target = props2.target;
121
+ if (target == null || target === "")
122
+ return;
123
+ if (target !== "event") {
124
+ window.open(url, "_" + target);
125
+ } else {
126
+ window.parent.postMessage({
127
+ type: "openPage",
128
+ url: href
129
+ }, "*");
130
+ }
111
131
  });
112
132
  return {
113
133
  style,
@@ -134,6 +154,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
134
154
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.click && _ctx.click(...args))
135
155
  }, null, 12, _hoisted_1));
136
156
  }
137
- const Text = /* @__PURE__ */ pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-1b461e28"]]);
157
+ const Text = /* @__PURE__ */ pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-604c9a14"]]);
138
158
  exports.default = Text;
139
159
  //# sourceMappingURL=Text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","sources":["../../../src/text/text/Text.vue"],"sourcesContent":["<template>\n <div class=\"skeleton-wrapper\" :style=\"style\" v-if=\"loading\">\n <skeleton :loading=\"loading\"/>\n </div>\n <div class=\"ecan-text\" :style=\"style\" v-html=\"myText\" @click=\"click\" v-else/>\n</template>\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport { textComponentProps } from './props'\nimport { usePickComponentStyle, useRequestData, useOnEvent, useEmitEvent } from '@/hooks'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport goUp from '@/assets/go-up.png'\nimport goDown from '@/assets/go-down.png'\nexport default defineComponent({\n name: 'EcanText',\n components: { Skeleton },\n props: {\n ...textComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myData = ref({} as { [key:string]:any })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType === 'static') {\n myData.value = data as { [key: string]: any }\n }\n }, {\n immediate: true\n })\n const myText = computed(() => {\n const data = unref(myData)\n let text = props.text as string\n text = text?.replace(/\\n|\\\\n/g, '<br/>')\n text = text?.replace(/\\s/g, '&nbsp;')\n const variables = (text).match(/\\{\\s*[\\w\\u4e00-\\u9fa5]*\\s*\\}/g)\n if (variables == null || variables.length === 0) return text\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const v = variable?.slice(1, variable.length - 1)?.trim()\n let usedVariable = data[v]\n // 能取到变量值\n if (usedVariable != null) {\n // 百分比格式化\n if (props.format === 'percentage') {\n // 判断是数字类型\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable * 100).toFixed(2)\n // 如果大于等于 0\n if (usedVariable >= 0) {\n text = text.replace(variable, `<span style=\"color:#ED6643;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goUp}\"/>${usedVariable}%</span>`)\n } else {\n // 如果小于 0\n text = text.replace(variable, `<span style=\"color: #6ACB97;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goDown}\"/>${Math.abs(usedVariable)}%</span>`)\n }\n } else {\n // 判断不是数字类型\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${0.00}%</span>`)\n }\n } else if (props.format === 'money') {\n // 金额格式化\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable).toFixed(2).toLocaleString()\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n /// 没有使用百分格式化\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n // 不能取到变量值\n text = text.replace(variable, props.variableDefaultValue as string)\n }\n }\n return `<span>${text}</span>`\n })\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n if (unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n if (props.dataType === 'static') return\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n return {\n style,\n myText,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.skeleton-wrapper {\n overflow: hidden;\n}\n\n.ecan-text {\n overflow: hidden;\n display: flex;\n}\n</style>\n"],"names":["defineComponent","Skeleton","textComponentProps","props","usePickComponentStyle","ref","watch","computed","unref","goUp","goDown","inject","GLOBAL_CONFIG","useRequestData","useOnEvent","REQUEST_MODEL","useEmitEvent","_openBlock","_createElementBlock","_normalizeStyle","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"Text.js","sources":["../../../src/text/text/Text.vue"],"sourcesContent":["<template>\n <div class=\"skeleton-wrapper\" :style=\"style\" v-if=\"loading\">\n <skeleton :loading=\"loading\"/>\n </div>\n <div class=\"ecan-text\" :style=\"style\" v-html=\"myText\" @click=\"click\" v-else/>\n</template>\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport { textComponentProps } from './props'\nimport {\n usePickComponentStyle,\n useRequestData,\n useOnEvent,\n useEmitEvent,\n usePageUrl,\n useVariablesInText\n} from '@/hooks'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport goUp from '@/assets/go-up.png'\nimport goDown from '@/assets/go-down.png'\nexport default defineComponent({\n name: 'EcanText',\n components: { Skeleton },\n props: {\n ...textComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myData = ref({} as { [key:string]:any })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType === 'static') {\n myData.value = data as { [key: string]: any }\n }\n }, {\n immediate: true\n })\n const myText = computed(() => {\n const data = unref(myData)\n let text = props.text as string\n text = text?.replace(/\\n|\\\\n/g, '<br/>')\n text = text?.replace(/\\s/g, '&nbsp;')\n const variables = (text).match(/\\{\\s*[\\w\\u4e00-\\u9fa5]*\\s*\\}/g)\n if (variables == null || variables.length === 0) return text\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const v = variable?.slice(1, variable.length - 1)?.trim()\n let usedVariable = data[v]\n // 能取到变量值\n if (usedVariable != null) {\n // 百分比格式化\n if (props.format === 'percentage') {\n // 判断是数字类型\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable * 100).toFixed(2)\n // 如果大于等于 0\n if (usedVariable >= 0) {\n text = text.replace(variable, `<span style=\"color:#ED6643;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goUp}\"/>${usedVariable}%</span>`)\n } else {\n // 如果小于 0\n text = text.replace(variable, `<span style=\"color: #6ACB97;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goDown}\"/>${Math.abs(usedVariable)}%</span>`)\n }\n } else {\n // 判断不是数字类型\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${0.00}%</span>`)\n }\n } else if (props.format === 'money') {\n // 金额格式化\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable).toFixed(2).toLocaleString()\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n /// 没有使用百分格式化\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n // 不能取到变量值\n text = text.replace(variable, props.variableDefaultValue as string)\n }\n }\n return `<span>${text}</span>`\n })\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n if (unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n if (props.dataType === 'static') return\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {\n // 空链接、空页面直接 return\n if (!props.linkPage && !props.href) return\n const linkPage = (props.linkPage || '') as string\n const pageUrl = usePageUrl(unref(pageMode), linkPage)\n // 优先使用外部链接,再使用url\n const href = props.href as string\n let url = href || pageUrl\n url = useVariablesInText(url)\n const target = props.target\n if (target == null || target === '') return\n if (target !== 'event') {\n window.open(url, '_' + (target as string))\n } else {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n })\n\n return {\n style,\n myText,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.skeleton-wrapper {\n overflow: hidden;\n}\n\n.ecan-text {\n overflow: hidden;\n display: flex;\n}\n</style>\n"],"names":["defineComponent","Skeleton","textComponentProps","props","usePickComponentStyle","ref","watch","computed","unref","goUp","goDown","inject","GLOBAL_CONFIG","useRequestData","useOnEvent","REQUEST_MODEL","useEmitEvent","usePageUrl","useVariablesInText","_openBlock","_createElementBlock","_normalizeStyle","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA,MAAK,YAAaA,IAAAA,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY,EAAEC,UAAAA,SAAAA,QAAS;AAAA,EACvB,OAAO;AAAA,IACL,GAAGC,MAAA;AAAA,EACL;AAAA,EACA,MAAOC,QAAO;AACN,UAAA,QAAQC,4CAAsBD,MAAK;AACnC,UAAA,SAASE,QAAI,CAAA,CAA0B;AACvCC,cAAA,MAAM,CAACH,OAAM,MAAMA,OAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,QAAQ,MAAM;AAC9D,UAAI,aAAa,UAAU;AACzB,eAAO,QAAQ;AAAA,MACjB;AAAA,IAAA,GACC;AAAA,MACD,WAAW;AAAA,IAAA,CACZ;AACK,UAAA,SAASI,IAAAA,SAAS,MAAM;;AACtB,YAAA,OAAOC,UAAM,MAAM;AACzB,UAAI,OAAOL,OAAM;AACV,aAAA,6BAAM,QAAQ,WAAW;AACzB,aAAA,6BAAM,QAAQ,OAAO;AACtB,YAAA,YAAa,KAAM,MAAM,+BAA+B;AAC1D,UAAA,aAAa,QAAQ,UAAU,WAAW;AAAU,eAAA;AACxD,eAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,cAAM,WAAW,UAAU;AACrB,cAAA,KAAI,0CAAU,MAAM,GAAG,SAAS,SAAS,OAArC,mBAAyC;AACnD,YAAI,eAAe,KAAK;AAExB,YAAI,gBAAgB,MAAM;AAEpB,cAAAA,OAAM,WAAW,cAAc;AAEjC,2BAAe,CAAC;AACZ,gBAAA,CAAC,MAAM,YAAY,GAAG;AACR,8BAAA,eAAe,KAAK,QAAQ,CAAC;AAE7C,kBAAI,gBAAgB,GAAG;AACd,uBAAA,KAAK,QAAQ,UAAU,wCAAwCA,OAAM,wCAAwCA,OAAM,0BAA0BM,KAAA,aAAU,sBAAsB;AAAA,cAAA,OAC/K;AAEL,uBAAO,KAAK,QAAQ,UAAU,yCAAyCN,OAAM,wCAAwCA,OAAM,0BAA0BO,OAAY,aAAA,KAAK,IAAI,YAAY,WAAW;AAAA,cACnM;AAAA,YAAA,OACK;AAEE,qBAAA,KAAK,QAAQ,UAAU,sBAAsBP,OAAM,2BAA2BA,OAAM,qBAAqB,WAAc;AAAA,YAChI;AAAA,UAAA,WACSA,OAAM,WAAW,SAAS;AAEnC,2BAAe,CAAC;AACZ,gBAAA,CAAC,MAAM,YAAY,GAAG;AACxB,6BAAgB,aAAc,QAAQ,CAAC,EAAE,eAAe;AACjD,qBAAA,KAAK,QAAQ,UAAU,sBAAsBA,OAAM,2BAA2BA,OAAM,qBAAqB,qBAAqB;AAAA,YACvI;AAAA,UAAA,OACK;AAEE,mBAAA,KAAK,QAAQ,UAAU,sBAAsBA,OAAM,2BAA2BA,OAAM,qBAAqB,qBAAqB;AAAA,UACvI;AAAA,QAAA,OACK;AAEL,iBAAO,KAAK,QAAQ,UAAUA,OAAM,oBAA8B;AAAA,QACpE;AAAA,MACF;AACA,aAAO,SAAS;AAAA,IAAA,CACjB;AACD,UAAM,EAAE,SAAA,IAAaQ,IAAA,OAAOC,wBAAe;AAAA,MACzC,UAAU;AAAA,IAAA,CACX;AACK,UAAA,cAAcC,8BAAeV,MAAK;AAClC,UAAA,UAAUE,QAAI,KAAK;AACzB,UAAM,oBAAoB,YAAY;;AAChC,UAAAG,IAAA,MAAM,QAAQ,MAAM;AAAU;AAC9B,UAAA;AACF,gBAAQ,QAAQ;AACV,cAAA,MAAM,MAAM;AAClB,eAAO,UAAQ,gCAAK,SAAL,mBAAW,SAAQ,CAAA;AAAA,eAC3B;AACP,gBAAQ,MAAM,CAAC;AAAA,MAAA,UACf;AACA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAEF,UAAM,cAAc,MAAM;AACxB,UAAIL,OAAM,aAAa;AAAU;AACf;IAAA;AAGpBW,eAAAA,WAAWX,QAAO;AAAA,MAChB;AAAA,IAAA,CACD;AAED,UAAM,EAAE,WAAA,IAAeQ,IAAA,OAAOI,wBAAe;AAAA,MAG3C,YAAY,CAAC,WAAqB,YAAoB;AAAA,IAAA,CACvD;AAEU,eAAA,aAAaZ,OAAM,WAAqB;AAEnDW,eAAAA,WAAWX,QAAO;AAAA,MAChB;AAAA,IAAA,CACD;AAEK,UAAA,YAAYa,0BAAab,MAAK;AAE9B,UAAA,QAAQ,UAAU,SAAS,MAAM;AAErC,UAAI,CAACA,OAAM,YAAY,CAACA,OAAM;AAAM;AAC9B,YAAA,WAAYA,OAAM,YAAY;AACpC,YAAM,UAAUc,WAAAA,WAAWT,IAAAA,MAAM,QAAQ,GAAG,QAAQ;AAEpD,YAAM,OAAOL,OAAM;AACnB,UAAI,MAAM,QAAQ;AAClB,YAAMe,mBAAAA,mBAAmB,GAAG;AAC5B,YAAM,SAASf,OAAM;AACjB,UAAA,UAAU,QAAQ,WAAW;AAAI;AACrC,UAAI,WAAW,SAAS;AACf,eAAA,KAAK,KAAK,MAAO,MAAiB;AAAA,MAAA,OACpC;AACL,eAAO,OAAO,YAAY;AAAA,UACxB,MAAM;AAAA,UACN,KAAK;AAAA,WACJ,GAAG;AAAA,MACR;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;;;AAxJoD,SAAA,KAAA,WAAAgB,IAAA,UAAA,GAAnDC,IAAAA,mBAEM,OAAA;AAAA,IAAA,KAAA;AAAA,IAFD,OAAM;AAAA,IAAoB,OAAKC,IAAAA,eAAE,KAAK,KAAA;AAAA,EAAA,GAAA;AAAA,IACzCC,gBAA8B,qBAAA,EAAnB,SAAS,KAAO,QAAA,GAAA,MAAA,GAAA,CAAA,SAAA,CAAA;AAAA,EAAA,GAAA,CAAA,MAAAH,IAAAA,aAE7BC,IAAAA,mBAA6E,OAAA;AAAA,IAAA,KAAA;AAAA,IAAxE,OAAM;AAAA,IAAa,OAAKC,IAAAA,eAAE,KAAK,KAAA;AAAA,IAAE,WAAQ,KAAA;AAAA,IAAS,SAAK,OAAE,OAAA,OAAA,KAAA,IAAA,SAAA,KAAA,SAAA,KAAA,MAAA,GAAA,IAAA;AAAA,EAAA,GAAA,MAAA,IAAA,UAAA;;;;"}
@@ -20,7 +20,10 @@ const textProps = {
20
20
  variableFontSize: "14px",
21
21
  data: {},
22
22
  variableDefaultValue: "0",
23
- format: ""
23
+ format: "",
24
+ target: "self",
25
+ href: "",
26
+ linkPage: ""
24
27
  };
25
28
  const textComponentProps = props.transformToComponentProps(textProps);
26
29
  const textEvents = ["refreshData", "click"];
@@ -1 +1 @@
1
- {"version":3,"file":"props.js","sources":["../../../src/text/text/props.ts"],"sourcesContent":["import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TextProps extends Props {\n text: string // 文本内容\n color: string // 颜色\n fontSize: string // 字体大小\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n justifyContent: 'flex-start' | 'center' | 'end' // 水平位置\n alignItems: 'flex-start' | 'center' | 'end' // 垂直位置\n textShadow: string // 文字阴影\n data: { [key:string]: any }\n variableColor: string\n variableFontSize: string\n variableDefaultValue: string\n format: '' | 'percentage'\n}\nexport const textProps:TextProps = {\n ...props,\n name: '文本',\n keyName: '文本',\n type: 'ecanText',\n width: '100px',\n height: '40px',\n text: '文字',\n color: '#333',\n variableColor: '#f00',\n fontSize: '14px',\n fontFamily: '',\n fontWeight: 400,\n textShadow: '',\n justifyContent: 'center',\n alignItems: 'center',\n variableFontSize: '14px',\n data: {},\n variableDefaultValue: '0',\n format: ''\n}\n\n// 转化默认属性\nexport const textComponentProps = transformToComponentProps(textProps)\n\nexport const textEvents = ['refreshData', 'click']\n"],"names":["props","transformToComponentProps"],"mappings":";;;AAqBO,MAAM,YAAsB;AAAA,EACjC,GAAGA,MAAA;AAAA,EACH,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,eAAe;AAAA,EACf,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,MAAM,CAAC;AAAA,EACP,sBAAsB;AAAA,EACtB,QAAQ;AACV;AAGa,MAAA,qBAAqBC,gCAA0B,SAAS;AAExD,MAAA,aAAa,CAAC,eAAe,OAAO;;;;"}
1
+ {"version":3,"file":"props.js","sources":["../../../src/text/text/props.ts"],"sourcesContent":["import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TextProps extends Props {\n text: string // 文本内容\n color: string // 颜色\n fontSize: string // 字体大小\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n justifyContent: 'flex-start' | 'center' | 'end' // 水平位置\n alignItems: 'flex-start' | 'center' | 'end' // 垂直位置\n textShadow: string // 文字阴影\n data: { [key:string]: any }\n variableColor: string\n variableFontSize: string\n variableDefaultValue: string\n format: '' | 'percentage'\n href: string\n target: 'self' | 'blank' | 'event' // 打开方式\n linkPage: string // 传入pageId\n}\nexport const textProps:TextProps = {\n ...props,\n name: '文本',\n keyName: '文本',\n type: 'ecanText',\n width: '100px',\n height: '40px',\n text: '文字',\n color: '#333',\n variableColor: '#f00',\n fontSize: '14px',\n fontFamily: '',\n fontWeight: 400,\n textShadow: '',\n justifyContent: 'center',\n alignItems: 'center',\n variableFontSize: '14px',\n data: {},\n variableDefaultValue: '0',\n format: '',\n target: 'self',\n href: '',\n linkPage: ''\n}\n\n// 转化默认属性\nexport const textComponentProps = transformToComponentProps(textProps)\n\nexport const textEvents = ['refreshData', 'click']\n"],"names":["props","transformToComponentProps"],"mappings":";;;AAwBO,MAAM,YAAsB;AAAA,EACjC,GAAGA,MAAA;AAAA,EACH,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,eAAe;AAAA,EACf,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,MAAM,CAAC;AAAA,EACP,sBAAsB;AAAA,EACtB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AACZ;AAGa,MAAA,qBAAqBC,gCAA0B,SAAS;AAExD,MAAA,aAAa,CAAC,eAAe,OAAO;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecan-bi/datav",
3
- "version": "1.0.88",
3
+ "version": "1.0.89",
4
4
  "main": "./dist/index.umd.js",
5
5
  "module": "./dist/index.es.js",
6
6
  "types": "./types/index.d.ts",
@@ -1,4 +1,4 @@
1
- export declare const EcanModal: import("../../utils/withInstall").SFCWithInstall<import("vue").DefineComponent<{
1
+ export declare const EcanModal: import('../../utils/withInstall').SFCWithInstall<import("vue").DefineComponent<{
2
2
  id: {
3
3
  type?: undefined;
4
4
  default?: undefined;
@@ -379,6 +379,26 @@ declare const _sfc_main: import("vue").DefineComponent<{
379
379
  [key: string]: any;
380
380
  }[];
381
381
  };
382
+ isReverse: {
383
+ type?: undefined;
384
+ default?: undefined;
385
+ } | {
386
+ type: any;
387
+ default: string | number | boolean | import("../../utils/props").Events | {
388
+ [key: string]: any;
389
+ } | import("../../utils/props").RequestParams | {
390
+ [key: string]: any;
391
+ }[] | {
392
+ [key: string]: any;
393
+ chartType: "table";
394
+ plugin: "1";
395
+ layer: "1";
396
+ } | {
397
+ [key: string]: any;
398
+ }[] | {
399
+ [key: string]: any;
400
+ }[];
401
+ };
382
402
  graphicConfig: {
383
403
  type?: undefined;
384
404
  default?: undefined;
@@ -844,9 +864,6 @@ declare const _sfc_main: import("vue").DefineComponent<{
844
864
  [key: string]: any;
845
865
  }>;
846
866
  y: import("vue").ComputedRef<number>;
847
- myColumns: import("vue").ComputedRef<{
848
- [key: string]: any;
849
- }[]>;
850
867
  style: import("vue").ComputedRef<import("vue").HTMLAttributes>;
851
868
  customRow: (record: any) => {
852
869
  onClick: () => void;
@@ -868,8 +885,10 @@ declare const _sfc_main: import("vue").DefineComponent<{
868
885
  tableChange: ({ current }: {
869
886
  current: number;
870
887
  }, _filters: any, sorter: any) => void;
871
- dataColumns: import("vue").Ref<any[]>;
872
- dataSource: import("vue").Ref<{
888
+ tableDataSource: import("vue").Ref<{
889
+ [x: string]: any;
890
+ }[]>;
891
+ tableColumns: import("vue").Ref<{
873
892
  [x: string]: any;
874
893
  }[]>;
875
894
  summaryList: import("vue").ComputedRef<{
@@ -1262,6 +1281,26 @@ declare const _sfc_main: import("vue").DefineComponent<{
1262
1281
  [key: string]: any;
1263
1282
  }[];
1264
1283
  };
1284
+ isReverse: {
1285
+ type?: undefined;
1286
+ default?: undefined;
1287
+ } | {
1288
+ type: any;
1289
+ default: string | number | boolean | import("../../utils/props").Events | {
1290
+ [key: string]: any;
1291
+ } | import("../../utils/props").RequestParams | {
1292
+ [key: string]: any;
1293
+ }[] | {
1294
+ [key: string]: any;
1295
+ chartType: "table";
1296
+ plugin: "1";
1297
+ layer: "1";
1298
+ } | {
1299
+ [key: string]: any;
1300
+ }[] | {
1301
+ [key: string]: any;
1302
+ }[];
1303
+ };
1265
1304
  graphicConfig: {
1266
1305
  type?: undefined;
1267
1306
  default?: undefined;