Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
server
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
changsanjiao
server
Commits
b5a82426
Commit
b5a82426
authored
Oct 14, 2021
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
33579d2a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
224 additions
and
0 deletions
+224
-0
excelCmd.js
src/excelCmd.js
+224
-0
No files found.
src/excelCmd.js
0 → 100644
View file @
b5a82426
let
fs
=
require
(
'fs'
);
//excel的名字
const
excelName
=
"数据模板"
;
let
typeEnum
=
{
"键值数据"
:
1
,
"图标数据"
:
2
,
"列表数据"
:
3
}
const
createBizAndDataConfigMap
=
{
"page1"
:
{
sheetName
:
"页面1"
,
apiList
:[
{
type
:
"键值数据"
,
dataName
:
"模拟数据块"
,
title
:
"教师学段人数"
,
unit
:
"个"
,
total
:
true
,
percent
:
false
}
]
},
"page2"
:
{
sheetName
:
"页面2"
,
apiList
:[
{}
]
},
"page3"
:
{
sheetName
:
"页面3"
,
apiList
:[
{}
]
}
};
//创建data层
function
createData
()
{
let
str
=
`
import * as path from "path";
import * as fs from "fs";
import { BizError } from "../util/bizError";
import { limitEnteNameString } from "../util/tools";
import { getExcelDataBySheetName, analysisExcelDataOfObject } from "../util/analysisExcel";`
;
for
(
let
pangeName
in
createBizAndDataConfigMap
)
{
let
{
sheetName
}
=
createBizAndDataConfigMap
[
pangeName
];
str
+=
`
export function get
${
sheetName
}
() {;
let bolckDataList = getExcelDataBySheetName('
${
excelName
}
', '
${
sheetName
}
');
let result = {};
for (let i = 0; i < bolckDataList.length; i++) {
let {blockData, blockTitle} = bolckDataList[i];
let analysisData = analysisExcelDataOfObject(blockData, true, true);
result[blockTitle] = analysisData;
}
return result;
}`
;
}
let
path
=
`./data/analysisExcelData.ts`
;
fs
.
access
(
path
,
(
err
)
=>
{
if
(
!
err
)
{
console
.
error
(
path
,
"文件已存在"
);
return
;
}
fs
.
writeFileSync
(
path
,
str
);
console
.
log
(
path
,
"创建文件成功"
)
});
}
//创建biz层
function
createBiz
(){
for
(
let
pageName
in
createBizAndDataConfigMap
)
{
let
{
apiList
,
sheetName
}
=
createBizAndDataConfigMap
[
pageName
];
let
thisBizData
=
getBizStr
(
apiList
,
sheetName
);
let
path
=
`./biz/
${
pageName
}
.ts`
;
fs
.
access
(
path
,
(
err
)
=>
{
if
(
!
err
)
{
console
.
error
(
path
,
"文件已存在"
);
return
;
}
fs
.
writeFileSync
(
path
,
thisBizData
);
console
.
log
(
path
,
"创建文件成功"
)
});
}
}
function
getBizStr
(
apiList
,
sheetName
)
{
let
str
=
`
import { get
${
sheetName
}
} from "../data/analysisExcelData";
`
;
str
+=
`
export function getData(req, res) {
let ret:any = {};
let excelData = analysisExcelData();
`
;
apiList
.
forEach
((
info
,
index
)
=>
{
let
{
dataName
,
unit
,
total
,
percent
,
type
}
=
info
;
const
apiName
=
`api
${
index
+
1
}
`
;
let
subStr
=
`
ret[
${
apiName
}
] = `
;
switch
(
type
)
{
case
"键值数据"
:
subStr
+=
`getKeyValue(
${
dataName
}
, excelData.
${
dataName
}
,
${
unit
}
,
${
total
}
,
${
percent
}
)`
;
break
;
//todo
}
});
str
+=
`
res.send(ret);
}
`
return
``
;
}
//创建Router层
function
createRouter
()
{
let
importName
=
""
;
let
routergetName
=
""
;
let
routerpostName
=
""
;
apiList
.
forEach
(
apiInfo
=>
{
importName
+=
`
import * as
${
apiInfo
.
name
}
Biz from '../biz/
${
apiInfo
.
name
}
';
`
routergetName
+=
`
httpServer.get('/
${
apiInfo
.
name
}
', asyncHandler(
${
apiInfo
.
name
}
Biz.getData));
`
routerpostName
+=
`
httpServer.post('/
${
apiInfo
.
name
}
', asyncHandler(
${
apiInfo
.
name
}
Biz.getData));
`
});
let
str
=
`
import * as asyncHandler from 'express-async-handler'
${
importName
}
export function srtRouter(httpServer){
${
routergetName
}
${
routerpostName
}
}`
let
path
=
`./routers/router.ts`
;
fs
.
access
(
path
,
(
err
)
=>
{
if
(
!
err
)
{
console
.
error
(
path
,
"文件已存在"
);
return
;
}
fs
.
writeFileSync
(
path
,
str
);
console
.
log
(
path
,
"创建router文件成功"
)
});
}
function
getBizData
(
dataList
){
let
funStr
=
""
;
let
runFunStr
=
""
;
dataList
.
forEach
(
dataInfo
=>
{
let
subFunStr
=
``
;
switch
(
dataInfo
.
type
){
case
"键值"
:
subFunStr
=
`mock键值数据模板(
${
dataInfo
.
len
}
)`
;
break
;
case
"键值"
:
subFunStr
=
`mock柱状数据模板(
${
dataInfo
.
len
}
)`
;
break
;
case
"键值"
:
subFunStr
=
`mock地图数据模板(
${
dataInfo
.
len
}
)`
;
break
;
};
funStr
+=
`function get
${
dataInfo
.
name
}
(){
return
${
subFunStr
}
;
}
`
;
runFunStr
+=
` ret["
${
dataInfo
.
name
}
"]=get
${
dataInfo
.
name
}
();
`
});
let
allData
=
`import { mock键值数据模板,mock柱状图数据模板,mock地图数据模板 } from "../util/mockData";
export async function getData(req, res){
let ret:any = {};
${
runFunStr
}
res.send(ret);
}
${
funStr
}
`
return
allData
;
}
createData
();
//createRouter();
createBiz
();
//创建 biz层
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