Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
modulesServer
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
standardized
modulesServer
Commits
1e3658ab
Commit
1e3658ab
authored
Nov 23, 2021
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
f287cf60
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
237 additions
and
6 deletions
+237
-6
keyValue.ts
src/biz/keyValue.ts
+6
-4
excelEnter.ts
src/cal/excelEnter.ts
+221
-0
dataModule.ts
src/data/simulate/dataModule.ts
+5
-1
router.ts
src/routers/router.ts
+5
-1
No files found.
src/biz/keyValue.ts
View file @
1e3658ab
import
{
getKey
NumberValueOutData
,
getKeyStringValue
OutData
}
from
"../cal/out"
;
import
{
getKey
ValueNotNumberOutData
,
getKeyValueNumber
OutData
}
from
"../cal/out"
;
import
{
KEYVALUETYPEENUM
}
from
"../config/enum"
;
import
{
getKeyNumValue
,
getKeyStringValue
}
from
"../data/dataModule"
;
import
{
getKeyNumValue
,
getKeyStringValue
}
from
"../data/
simulate/
dataModule"
;
export
function
getData
(
req
,
res
)
{
let
typeName
=
req
.
query
.
typeName
;
let
ret
:
any
=
{};
let
modulesNumData
:
any
=
getKeyNumValue
(
typeName
);
ret
[
"KeyValueNumber"
]
=
getKey
NumberValue
OutData
(
""
,
modulesNumData
);
ret
[
"KeyValueNumber"
]
=
getKey
ValueNumber
OutData
(
""
,
modulesNumData
);
let
modulesStringData
:
any
=
getKeyStringValue
(
typeName
);
ret
[
"KeyValueN
umber"
]
=
getKeyNumberValue
OutData
(
""
,
modulesStringData
);
ret
[
"KeyValueN
otNumber"
]
=
getKeyValueNotNumber
OutData
(
""
,
modulesStringData
);
res
.
send
(
ret
);
}
src/cal/excelEnter.ts
0 → 100644
View file @
1e3658ab
//标准化exce输入
/**
* planarArrBecomeKeyValueData 二维数组转keyvalue需要的结构
* @param dataList 数据列表 格式 [[标题1,标题2],[key1,value1],[key2, value2]] or [[标题1, key1, key2],[标题2,value1, value2] ]
* @param titleInY 标题是否垂直排列 or key是否横向排列 or key在x轴上 and 即当为false时输入为(默认为false):[[标题1,标题2],[key1,value1],[key2, value2]]
* @returns {key:value}
*/
export
function
planarArrBecomeKeyValueData
(
dataList
,
titleInY
=
false
)
{
let
result
:
any
=
{};
if
(
!
titleInY
)
{
//title 在x轴上
for
(
let
y
=
1
;
y
<
dataList
.
length
;
y
++
)
{
let
childList
=
dataList
[
y
];
let
key
=
childList
[
0
];
let
value
=
childList
[
1
]
||
null
;
result
[
key
]
=
value
;
}
}
else
{
let
keyList
=
dataList
[
0
];
let
valueList
=
dataList
[
1
];
for
(
let
i
=
1
;
i
<
keyList
.
length
;
i
++
)
{
let
key
=
keyList
[
i
];
let
value
=
valueList
[
i
]
||
null
;
result
[
key
]
=
value
;
}
}
return
result
;
}
/**
* planarArrBecomeChartData 二维数组转chart需要的结构
* @param dataList 数据列表 格式 [[标题说明占位符, key1, key2, key3],[数据名称a, a的value1, a的value2, a的value3],[数据名称b, b的value1, b的value2, b的value3]]
* or [[标题说明占位符, 数据名称a, 数据名称b ],[key1, a的value1, b的value1],[key2, a的value2, b的value2]]
* @param titleInY key是否在y轴上 默认为false时 [[标题说明占位符, 数据名称a, 数据名称b ],[key1, a的value1, b的value1],[key2, a的value2, b的value2]]
* @returns {"图表名称":{unit:"", dataInfo:[{key:"数据key", value:"数据值"}, {key:"数据key", value:"数据值"} ] } }
*/
export
function
planarArrBecomeChartData
(
dataList
,
titleInY
=
false
)
{
let
result
=
{};
if
(
!
titleInY
)
{
let
keyList
=
dataList
[
0
];
for
(
let
y
=
1
;
y
<
dataList
.
length
;
y
++
)
{
let
subList
=
dataList
[
y
];
let
dataName
=
subList
[
0
];
let
dataInfo
=
[];
for
(
let
x
=
1
;
x
<
subList
.
length
;
x
++
)
{
let
key
=
keyList
[
x
]
||
`未知key
${
x
}
`
;
let
value
=
subList
[
x
];
dataInfo
.
push
({
key
,
value
});
}
result
[
dataName
]
=
{
unit
:
''
,
dataInfo
};
}
}
else
{
let
dataIndexMap
=
{};
let
dataNameList
=
dataList
[
0
];
for
(
let
x
=
1
;
x
<
dataNameList
.
length
;
x
++
)
{
let
dataName
=
dataNameList
[
x
];
dataIndexMap
[
x
]
=
dataName
;
result
[
dataName
]
=
{
unit
:
''
,
dataInfo
:[]};
}
for
(
let
y
=
1
;
y
<
dataList
.
length
;
y
++
)
{
let
subList
=
dataList
[
y
];
let
key
=
subList
[
0
];
for
(
let
x
=
1
;
x
<
subList
.
length
;
x
++
)
{
let
thisDataName
=
dataIndexMap
[
x
];
let
value
=
subList
[
x
];
result
[
thisDataName
].
dataInfo
.
push
(
{
key
,
value
}
);
}
}
}
return
result
;
}
/**
* planarArrBecomeStringListData 二维数组转字符列表需要的结构
* @param dataList dataList 数据列表 格式 [[标题1,标题2],[文本占位符,value1],[文本占位符, value2]] or [[标题1, 文本占位符, 文本占位符],[标题2,value1, value2] ]
* @param titleInY titleInY 标题是否垂直排列 or key是否横向排列 or key在x轴上 and 即当为false时输入为(默认为false):[[标题1,标题2],[key1,value1],[key2, value2]]
* @returns ["文本1", "文本2"]
*/
export
function
planarArrBecomeStringListData
(
dataList
,
titleInY
=
false
)
{
let
result
=
[];
if
(
!
titleInY
)
{
//title 在x轴上
for
(
let
y
=
1
;
y
<
dataList
.
length
;
y
++
)
{
let
childList
=
dataList
[
y
];
let
value
=
childList
[
1
]
||
''
;
result
.
push
(
value
);
}
}
else
{
let
valueList
=
dataList
[
1
];
for
(
let
i
=
1
;
i
<
valueList
.
length
;
i
++
)
{
let
value
=
valueList
[
i
]
||
''
;
result
.
push
(
value
);
}
}
return
result
;
}
/**
* planarArrBecomeListData 二维数组转列表需要的结构
* @param dataList 数据列表 格式 [[标题1, 标题2, 标题3],[a的value1, a的value2, a的value3],[b的value1, b的value2, b的value3]] or
* [[标题1, a的值1, b的值1],[标题2, a的值2, b的值2],[标题3, a的值3, b的值3]]
* @param titleInY titleInY 标题是否垂直排列 or key是否横向排列 or key在x轴上 and 即当为false时输入为(默认为false):[[标题1, 标题2, 标题3],[a的value1, a的value2, a的value3],[b的value1, b的value2, b的value3]]
* @returns 返回 [{key:"标题1", values:[a的value1, b的value1, c的value1] }, {key:"标题2", values:[a的value2, b的value2, c的value2] }]
*/
export
function
planarArrBecomeListData
(
dataList
,
titleInY
=
false
)
{
let
result
=
[];
if
(
!
titleInY
)
{
let
dataTitle
=
dataList
[
0
];
for
(
let
y
=
1
;
y
<
dataList
.
length
;
y
++
)
{
let
subValueList
=
dataList
[
y
];
for
(
let
x
=
0
;
x
<
subValueList
.
length
;
x
++
){
let
value
=
subValueList
[
x
];
let
key
=
dataTitle
[
x
];
if
(
!
result
[
x
]
)
result
[
x
].
push
({
key
,
values
:[]
});
result
[
x
].
values
.
push
(
value
);
}
}
}
else
{
for
(
let
y
=
0
;
y
<
dataList
.
length
;
y
++
)
{
let
subValueList
=
dataList
[
y
];
result
.
push
({
key
:
subValueList
[
0
],
values
:
subValueList
.
slice
(
1
,
subValueList
.
length
)
})
}
}
return
result
;
}
/**
* analysisExcelDataOfList 将excel解出来的数据块按需求解析成可用数据
* @param dataList excel解出来的数据 [[x, y, name], [x值, y值, name值], [x, y, name], [x, y, name]] or
* [[x, a的x, b的x, c的x], [y, a的y, b的y, c的y ], [name, a的name, b的name, c的name] ]
* @param titleInY 第一个表头数据是否横向排列
* @returns 返回 [{x:a的x, y:a的y, name:a的name}, {x:b的x, y:b的y, name:b的name}, {x:c的x, y:c的y, name:c的name} ]
*/
export
function
analysisExcelDataOfList
(
dataList
,
titleInY
=
true
)
{
let
result
=
[];
if
(
!
titleInY
)
{
//在y轴上排列
for
(
let
i
=
1
;
i
<
dataList
.
length
;
i
++
)
{
let
itemList
=
dataList
[
i
];
//[1,5,"测试数据"]
let
x
=
itemList
[
0
];
let
y
=
itemList
[
1
];
let
name
=
itemList
[
2
]
||
""
;
if
(
isNaN
(
x
)
||
isNaN
(
y
)
)
continue
;
result
.
push
({
x
,
y
,
name
});
}
}
else
{
for
(
let
i
=
0
;
i
<
dataList
.
length
;
i
++
)
{
let
list
=
[];
let
subList
=
dataList
[
i
];
let
keys
=
subList
[
0
];
for
(
let
x
=
1
;
x
<
subList
.
length
;
x
++
){
let
itemList
=
{};
let
addInfo
:
any
=
{};
addInfo
[
keys
]
=
keys
;
itemList
[
addInfo
[
keys
]]
=
subList
[
x
];
list
.
push
(
itemList
);
}
result
.
push
(
list
);
}
}
return
result
;
}
/**
* analysisExcelDataOfMoreObject 将excel解出来的数据块按需求解析成可用数据
* @param dataList excel解出来的数据
* @param isJumpTitle 是否跳过解析表头
* @param headerInx 第一个表头数据是否横向排列
* @returns 返回 {"第一个表头数据":{"表头数据":值...} }
*/
export
function
analysisExcelDataOfMoreObject
(
dataList
,
titleInY
=
false
)
{
let
result
=
{};
let
titleList
=
dataList
[
0
];
if
(
!
titleInY
)
{
for
(
let
y
=
1
;
y
<
dataList
.
length
;
y
++
)
{
let
dataTitle
=
dataList
[
y
][
0
];
let
thisData
=
{};
for
(
let
x
=
1
;
x
<
dataList
[
y
].
length
;
x
++
)
{
let
key
=
titleList
[
x
];
thisData
[
key
]
=
dataList
[
y
][
x
];
}
result
[
dataTitle
]
=
thisData
;
}
}
else
{
let
indexKeyMap
=
{};
titleList
.
forEach
((
thisTitle
,
index
)
=>
{
if
(
!
index
)
return
;
indexKeyMap
[
index
]
=
thisTitle
;
result
[
thisTitle
]
=
{};
});
for
(
let
y
=
1
;
y
<
dataList
.
length
;
y
++
)
{
let
thisKey
=
dataList
[
y
][
0
];
for
(
let
x
=
1
;
x
<
dataList
[
y
].
length
;
x
++
)
{
let
thisTitle
=
indexKeyMap
[
x
];
result
[
thisTitle
][
thisKey
]
=
dataList
[
y
][
x
];
}
}
}
return
result
;
}
src/data/dataModule.ts
→
src/data/
simulate/
dataModule.ts
View file @
1e3658ab
import
{
CHARTTYPEENUM
,
KEYVALUETYPEENUM
}
from
"../config/enum"
;
import
{
CHARTTYPEENUM
,
KEYVALUETYPEENUM
}
from
"../
../
config/enum"
;
export
function
getKeyNumValue
(
typeName
)
{
let
dataList
=
[[
"数据名称"
,
"数据值"
],[
"数据名称1"
,
36
],[
"数据名称2"
,
15
]];
...
...
@@ -20,6 +20,10 @@ export function getKeyStringValue(typeName) {
return
result
;
}
export
function
getKeyValueTest
()
{
}
export
function
getKeyValue
(
dataList
)
{
let
result
=
{};
let
keyList
=
dataList
[
0
];
...
...
src/routers/router.ts
View file @
1e3658ab
export
function
setRouter
(
httpServer
)
{
import
*
as
asyncHandler
from
'express-async-handler'
import
*
as
keyValueBiz
from
'../biz/keyValue'
export
function
setRouter
(
httpServer
)
{
httpServer
.
get
(
'/KeyValue'
,
asyncHandler
(
keyValueBiz
.
getData
));
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment