@ecan-bi/tools 1.0.6 → 1.0.8

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.
@@ -1,77 +0,0 @@
1
- interface DataItem {
2
- name: string | number
3
- value: string | number
4
- type?: string
5
- }
6
-
7
- export type Data = DataItem []
8
-
9
- export interface KeyTypeDataFieldNames {
10
- name: string
11
- types: {
12
- label: string
13
- value: string
14
- } []
15
- }
16
-
17
- /**
18
- * 图形转化数据
19
- * @param data 数据
20
- * @param dataFieldNames 字段映射
21
- */
22
- export const useTransformChartDataByAttrKey = (data: Data = [], dataFieldNames: KeyTypeDataFieldNames) => {
23
- let { name = 'name', types = [] } = dataFieldNames || {}
24
- name = name?.trim() || name
25
- const set = new Set()
26
- const map = new Map<string, any []>()
27
- const dataLen = data.length
28
- const typesLen = types.length
29
- // 只有一条记录
30
- if (dataLen === 1) {
31
- const vs: any = []
32
- // data 为一个值取第一个
33
- for (let i = 0; i < typesLen; i++) {
34
- const type = types[i]
35
- const { label, value } = type
36
- const v = { ...data[0], value: data[0][value] }
37
- set.add(label)
38
- // 值列表
39
- vs.push(v)
40
- }
41
- const n = data[0][name] || ''
42
- map.set(n, vs)
43
- } else {
44
- for (let i = 0; i < dataLen; i++) {
45
- const item = data[i]
46
- const x = item[name]
47
- set.add(x)
48
- for (let j = 0; j < typesLen; j++) {
49
- const type = types[j]
50
- const { label, value } = type
51
- const v = { ...item, value: item[value] }
52
- if (map.has(label)) {
53
- const m: any = map.get(label)
54
- m.push(v)
55
- map.set(label, m)
56
- } else {
57
- map.set(label, [v])
58
- }
59
- }
60
- }
61
- }
62
-
63
- const dimensions = Array.from(set)
64
- const dataset: { [key:string]:any } [] = []
65
- for (const [name, data] of map) {
66
- dataset.push({
67
- name,
68
- data
69
- })
70
- }
71
- return {
72
- dimensions,
73
- dataset
74
- }
75
- }
76
-
77
- export default useTransformChartDataByAttrKey
@@ -1,61 +0,0 @@
1
- interface DataItem {
2
- name: string | number
3
- value: string | number
4
- type?: string
5
- }
6
-
7
- export type Data = DataItem []
8
-
9
- export interface ValueTypeDataFieldNames {
10
- name: string
11
- value: string
12
- type: string
13
- }
14
-
15
- /**
16
- * 图形转化数据
17
- * @param data 数据
18
- * @param dataFieldNames 字段映射
19
- */
20
- export const useTransformChartDataByAttrValue = (data: Data, dataFieldNames?: ValueTypeDataFieldNames) => {
21
- let { name = 'name', value = 'value', type = 'type' } = dataFieldNames || {}
22
- // 处去字符串
23
- name = name?.trim()
24
- value = value?.trim()
25
- type = type?.trim()
26
- const set = new Set()
27
- const map = new Map()
28
- const len = data.length
29
- for (let i = 0; i < len; i++) {
30
- const item = data[i]
31
- // x轴
32
- const x = item[name] || ''
33
- // y轴
34
- const y = item[value] || ''
35
- // 系列(类型)
36
- const t = item[type] || ''
37
- set.add(x)
38
- if (map.has(t)) {
39
- const arr = map.get(t)
40
- // @ts-ignore
41
- arr.push({ name: x, value: y, ...item })
42
- map.set(t, arr)
43
- } else {
44
- // @ts-ignore
45
- map.set(t, [{ name: x, value: y, ...item }])
46
- }
47
- }
48
- const dimensions = Array.from(set)
49
- const dataset: { [key:string]:any } [] = []
50
- for (const [name, data] of map) {
51
- dataset.push({
52
- name,
53
- data
54
- })
55
- }
56
- return {
57
- dimensions,
58
- dataset
59
- }
60
- }
61
- export default useTransformChartDataByAttrValue
@@ -1,28 +0,0 @@
1
- import runCode from '../utils/runCode'
2
- export const useValueFormatter = (formatter, value) => {
3
- console.log('1234')
4
- if (formatter == null) return value
5
- const variables = (formatter).match(/\{.*\}/g)
6
- if (variables == null || variables.length === 0) {
7
- return value
8
- }
9
- const len = variables.length
10
- for (let i = 0; i < len; i++) {
11
- const variable = variables[i]
12
- if (variable == null || variable === '') break
13
- let statement = variable.slice(1, -1)?.trim()
14
- statement = statement?.replace(/value/g, value)
15
- try {
16
- let result = statement
17
- if ((/\(.*\)/g).test(statement) || (/[+/\\*]/g).test(statement)) {
18
- result = runCode(statement)
19
- }
20
- formatter = formatter.replace(variable, result)
21
- } catch (e) {
22
- formatter = formatter.replace(variable, statement)
23
- }
24
- }
25
- return formatter
26
- }
27
-
28
- module.exports = useValueFormatter
@@ -1,44 +0,0 @@
1
- import runCode from '../utils/runCode'
2
- export const useVariablesInText = (
3
- formatter: string = '',
4
- { textData, codeData }: { textData?: { [key:string]: any }, codeData?: { [key:string]: any } } = {},
5
- { useNewline = false, useSpace = false } = {}
6
- ) => {
7
- // 引入全局变量
8
- const data = { ...textData }
9
- const variables = (formatter || '').match(/\{(.+?)\}/g)
10
- if (variables == null || variables.length === 0) {
11
- return formatter
12
- }
13
- for (let i = 0; i < variables.length; i++) {
14
- const variable = variables[i]
15
- let statement = variable.slice(1, -1).trim()
16
- const reg = /[\u4e00-\u9fa5a-z-_A-Z0-9]*/g
17
- const textVariables: any = statement.match(reg)
18
- for (let j = 0; j < textVariables.length; j++) {
19
- const textVariable = textVariables[j]
20
- const usedVariable = data[textVariable]
21
- if (usedVariable != null) {
22
- // 使用的变量
23
- statement = statement.replace(textVariable, usedVariable)
24
- }
25
- }
26
- if ((/\(.*\)/g).test(statement) || (/[+/\\*]/g).test(statement)) {
27
- statement = runCode(statement, codeData)
28
- }
29
- formatter = formatter.replace(variable, statement)
30
- }
31
- // 替换换行
32
- if (useNewline) {
33
- formatter = formatter?.replace(/\n|\\n/g, '<br/>')
34
- }
35
- // 替换空格
36
- if (useSpace) {
37
- formatter = formatter?.replace(/\s{2,}?/g, '&nbsp;&nbsp;')
38
- }
39
- // 千分位格式化
40
- formatter = formatter.replace(/Qfw\((.*?)\)/, (res, str) => textData?.Qfw ? textData?.Qfw(str) : str)
41
- return formatter
42
- }
43
-
44
- export default useVariablesInText