Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
attendance-performance-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
attendance-performance-platform
Commits
d298661e
Commit
d298661e
authored
Jul 17, 2023
by
“yiyousong”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:添加360报告导出
parent
c118e33d
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
508 additions
and
39 deletions
+508
-39
attendance-performance-manager-ui/admin/package.json
attendance-performance-manager-ui/admin/package.json
+1
-0
attendance-performance-manager-ui/admin/src/App.vue
attendance-performance-manager-ui/admin/src/App.vue
+55
-1
attendance-performance-manager-ui/admin/src/assets/utils/exportExcel.js
...formance-manager-ui/admin/src/assets/utils/exportExcel.js
+25
-0
attendance-performance-manager-ui/admin/src/main.js
attendance-performance-manager-ui/admin/src/main.js
+18
-16
attendance-performance-manager-ui/admin/src/views/homeCharts/record/list.vue
...nce-manager-ui/admin/src/views/homeCharts/record/list.vue
+290
-21
attendance-performance-manager-ui/admin/yarn.lock
attendance-performance-manager-ui/admin/yarn.lock
+119
-1
No files found.
attendance-performance-manager-ui/admin/package.json
View file @
d298661e
...
...
@@ -26,6 +26,7 @@
"file-saver"
:
"2.0.4"
,
"fuse.js"
:
"6.4.3"
,
"js-cookie"
:
"2.2.1"
,
"js-export-excel"
:
"^1.1.4"
,
"jsencrypt"
:
"3.0.0-rc.1"
,
"json-bigint"
:
"^0.3.0"
,
"jwt-decode"
:
"3.1.2"
,
...
...
attendance-performance-manager-ui/admin/src/App.vue
View file @
d298661e
<
template
>
<div
id=
"app"
>
<router-view/>
<div
class=
"loading"
v-if=
"loading"
>
<div>
<div
class=
"title"
>
{{
title
}}
。。。
</div>
<el-progress
:percentage=
"percentage"
color=
"#1890ff"
></el-progress>
</div>
</div>
<router-view
/>
</div>
</
template
>
<
script
>
import
Vue
from
"
vue
"
;
export
default
{
data
()
{
return
{
fontStyle
:
null
,
api
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
percentage
:
0
,
loading
:
false
,
title
:
"
报告生成中
"
,
};
},
beforeCreate
()
{
Vue
.
prototype
.
$app
=
this
;
},
created
()
{},
methods
:
{},
};
</
script
>
<
style
lang=
"less"
scoped
>
#app {
.loading {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.3);
position: fixed;
top: 0px;
left: 0px;
z-index: 99999;
.title {
color: #fff;
font-size: 12px;
text-align: center;
}
.el-progress {
width: 300px;
/deep/ .el-progress__text {
color: #fff;
}
}
}
}
</
style
>
attendance-performance-manager-ui/admin/src/assets/utils/exportExcel.js
0 → 100644
View file @
d298661e
// 导出表格数据
import
ExportJsonExcel
from
"
js-export-excel
"
;
/**
* 导出excel
* @param {导出的表头名信息} tHeader
* @param {导出的表头字段名,需要导出表格字段名} filterVal
* @param {导出数据} list
* @param {导出文件名称} fileName
*/
export
const
exportExcel
=
(
tHeader
,
filterVal
,
list
,
fileName
)
=>
{
let
option
=
{
fileName
,
datas
:
[
{
sheetData
:
list
,
sheetName
:
"
sheet
"
,
sheetFilter
:
filterVal
,
sheetHeader
:
tHeader
,
// columnWidths: columnWidths, // 列宽
},
],
};
let
toExcel
=
new
ExportJsonExcel
(
option
);
toExcel
.
saveExcel
();
//保存
};
attendance-performance-manager-ui/admin/src/main.js
View file @
d298661e
...
...
@@ -14,7 +14,9 @@ import VueAMap from "vue-amap";
import
*
as
echarts
from
"
echarts
"
;
import
formCreate
from
"
@form-create/element-ui
"
;
import
FcDesigner
from
"
@form-create/designer
"
;
// 引入时间处理
import
moment
from
"
moment
"
;
Vue
.
prototype
.
$moment
=
moment
;
// 将自动注册所有组件为全局组件
import
dataV
from
"
@jiaminghi/data-view
"
;
...
...
@@ -31,22 +33,22 @@ Vue.use(VueAMap);
Vue
.
use
(
formCreate
);
Vue
.
use
(
FcDesigner
);
VueAMap
.
initAMapApiLoader
({
key
:
"
f45cca59553214543a5a77e50a7e04df
"
,
plugin
:
[
"
AMap.Scale
"
,
"
AMap.OverView
"
,
"
AMap.ToolBar
"
,
"
AMap.MapType
"
,
"
AMap.PlaceSearch
"
,
"
AMap.Geolocation
"
,
"
AMap.Geocoder
"
,
],
v
:
"
1.4.4
"
,
uiVersion
:
"
1.0
"
,
key
:
"
f45cca59553214543a5a77e50a7e04df
"
,
plugin
:
[
"
AMap.Scale
"
,
"
AMap.OverView
"
,
"
AMap.ToolBar
"
,
"
AMap.MapType
"
,
"
AMap.PlaceSearch
"
,
"
AMap.Geolocation
"
,
"
AMap.Geocoder
"
,
],
v
:
"
1.4.4
"
,
uiVersion
:
"
1.0
"
,
});
Vue
.
prototype
.
Global
=
Global
;
new
Vue
({
router
,
store
,
render
:
(
h
)
=>
h
(
App
),
router
,
store
,
render
:
(
h
)
=>
h
(
App
),
}).
$mount
(
"
#app
"
);
attendance-performance-manager-ui/admin/src/views/homeCharts/record/list.vue
View file @
d298661e
...
...
@@ -182,18 +182,21 @@
<div
class=
"down_content"
>
<img
class=
"content_title"
src=
"../../../assets/images/title.png"
/>
<div
style=
"margin: 20px 0"
>
<el-radio-group
v-model=
"
form.t
ype"
border
>
<el-radio-group
v-model=
"
reportT
ype"
border
>
<el-radio-button
:label=
"1"
>
部门评估
</el-radio-button>
<el-radio-button
:label=
"2"
>
个人评估
</el-radio-button>
</el-radio-group>
</div>
<div
class=
"form"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"100px"
>
<el-form-item
label=
"请选择部门:"
>
<!-- 按部门 -->
<div
class=
"form"
v-if=
"reportType == 1"
>
<el-form
ref=
"form"
:model=
"deptForm"
label-width=
"100px"
>
<el-form-item
label=
"请选择部门"
>
<el-select
v-model=
"
f
orm.dept"
v-model=
"
deptF
orm.dept"
placeholder=
"请选择部门"
style=
"width: 100%"
clearable
filterable
>
<el-option
v-for=
"v in deptList"
...
...
@@ -203,33 +206,33 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"请选择类型
:
"
style=
"text-align: left"
>
<el-radio-group
v-model=
"
f
orm.resource"
>
<el-form-item
label=
"请选择类型"
style=
"text-align: left"
>
<el-radio-group
v-model=
"
deptF
orm.resource"
>
<el-radio
:label=
"1"
>
按年
</el-radio>
<el-radio
:label=
"2"
>
按月
</el-radio>
<el-radio
:label=
"3"
>
按天
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"请选择时间
:
"
>
<el-form-item
label=
"请选择时间"
>
<el-date-picker
v-
if=
"f
orm.resource == 1"
v-
show=
"deptF
orm.resource == 1"
type=
"year"
value-format=
"yyyy"
placeholder=
"选择日期"
v-model=
"
f
orm.year"
v-model=
"
deptF
orm.year"
style=
"width: 100%"
></el-date-picker>
<el-date-picker
v-
else-if=
"f
orm.resource == 2"
v-
show=
"deptF
orm.resource == 2"
type=
"month"
value-format=
"MM"
placeholder=
"选择日期"
v-model=
"
f
orm.month"
v-model=
"
deptF
orm.month"
style=
"width: 100%"
></el-date-picker>
<el-date-picker
v-
else
v-model=
"
f
orm.day"
v-
show=
"deptForm.resource == 3"
v-model=
"
deptF
orm.day"
value-format=
"yyyy-MM-DD"
type=
"daterange"
range-separator=
"至"
...
...
@@ -243,7 +246,73 @@
<el-form-item>
<el-button
type=
"primary"
@
click=
"onSubmit"
@
click=
"onDeptSubmit"
style=
"margin-top: 20px; transform: translateX(-50%)"
>
立即创建
</el-button
>
</el-form-item>
</el-form>
</div>
<!-- 按人员 -->
<div
class=
"form"
v-else
>
<el-form
ref=
"form"
:model=
"personForm"
label-width=
"100px"
>
<el-form-item
label=
"请选择姓名"
>
<el-select
v-model=
"personForm.staffId"
placeholder=
"请选择姓名"
style=
"width: 100%"
clearable
filterable
>
<el-option
v-for=
"v in staffList"
:key=
"v.id"
:label=
"v.name"
:value=
"v.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"请选择类型"
style=
"text-align: left"
>
<el-radio-group
v-model=
"personForm.resource"
>
<el-radio
:label=
"1"
>
按年
</el-radio>
<el-radio
:label=
"2"
>
按月
</el-radio>
<el-radio
:label=
"3"
>
按天
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"请选择时间"
>
<el-date-picker
v-show=
"personForm.resource == 1"
type=
"year"
value-format=
"yyyy"
placeholder=
"选择日期"
v-model=
"personForm.year"
style=
"width: 100%"
></el-date-picker>
<el-date-picker
v-show=
"personForm.resource == 2"
type=
"month"
value-format=
"MM"
placeholder=
"选择日期"
v-model=
"personForm.month"
style=
"width: 100%"
></el-date-picker>
<el-date-picker
v-show=
"personForm.resource == 3"
v-model=
"personForm.day"
value-format=
"yyyy-MM-DD"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
style=
"width: 100%"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"onPersonSubmit"
style=
"margin-top: 20px; transform: translateX(-50%)"
>
立即创建
</el-button
>
...
...
@@ -295,9 +364,77 @@
</
template
>
<
script
>
// 导出文件函数
import
{
exportExcel
}
from
"
@/assets/utils/exportExcel
"
;
// 个人报告字段
const
personExcelHeader
=
[
"
姓名
"
,
"
工号
"
,
"
所属部门
"
,
"
考勤绩效
"
,
"
评价绩效
"
,
"
办件绩效
"
,
"
效能绩效
"
,
"
其它绩效
"
,
"
累计异常分数
"
,
];
const
personFilterVal
=
[
"
staffName
"
,
"
workNum
"
,
"
deptName
"
,
"
attendScore
"
,
"
reviewScore
"
,
"
goworkScore
"
,
"
effectScore
"
,
"
otherScore
"
,
"
errorScore
"
,
];
// 部门报告字段
const
deptExcelHeader
=
[
"
部门名称
"
,
"
考勤绩效指标增加分数
"
,
"
考勤绩效指标扣减分数
"
,
"
评价绩效指标增加分数
"
,
"
评价绩效指标扣减分数
"
,
"
办件绩效指标增加分数
"
,
"
办件绩效指标扣减分数
"
,
"
效能绩效指标增加分数
"
,
"
效能绩效指标扣减分数
"
,
"
其它绩效指标增加分数
"
,
"
其它绩效指标扣减分数
"
,
"
部门绩效加分总分数汇总
"
,
"
部门绩效减分总分数汇总
"
,
"
投诉绩效指标增加分数
"
,
"
投诉绩效指标扣减分数
"
,
"
部门绩效平均分数
"
,
"
部门绩效总分数
"
,
];
const
deptFilterVal
=
[
"
deptName
"
,
"
attendScoreAdd
"
,
"
attendScoreSub
"
,
"
reviewScoreAdd
"
,
"
reviewScoreSub
"
,
"
goworkScoreAdd
"
,
"
goworkScoreSub
"
,
"
effectScoreAdd
"
,
"
effectScoreSub
"
,
"
otherScoreAdd
"
,
"
otherScoreSub
"
,
"
totalAddScore
"
,
"
totalSubScore
"
,
"
complainScoreAdd
"
,
"
complainScoreSub
"
,
"
averageScore
"
,
"
totalScore
"
,
];
export
default
{
data
()
{
return
{
personExcelHeader
,
// 按人员导出文件头
personFilterVal
,
// 按人员导出字段
deptExcelHeader
,
// 按部门导出文件头
deptFilterVal
,
// 按部门导出字段
// 时间搜索选项
searchTimes
:
[
{
...
...
@@ -317,14 +454,23 @@ export default {
abnormalDisDate
:
2
,
// 异常分值分布搜索
personageAttTopDate
:
2
,
// 个人绩效排名top搜索
appealDate
:
2
,
// 申诉分值分布搜索
form
:
{
type
:
1
,
reportType
:
1
,
// 生成报告类型
// 部门报告表单
deptForm
:
{
dept
:
""
,
resource
:
1
,
year
:
""
,
month
:
""
,
day
:
[],
},
// 个人报告表单
personForm
:
{
staffId
:
""
,
//人员id
resource
:
1
,
//年月日类型
year
:
""
,
//年
month
:
""
,
//月
day
:
[],
//日期范围
},
config
:
{},
//部门绩效总分top10
personConfig
:
{},
//个人绩效总分top10
// 部门
...
...
@@ -332,7 +478,17 @@ export default {
page
:
1
,
size
:
-
1
,
},
// 工作人员
staffQuery
:
{
page
:
1
,
size
:
-
1
,
},
deptList
:
[],
// 部门列表
deptExcelDate
:
[],
// 部门报告数据
deptExcelTotal
:
0
,
// 部门报告总数
staffList
:
[],
// 人员
staffExcelDate
:
[],
// 人员报告数据
staffExcelTotal
:
0
,
// 人员报告总数
leidaEchart
:
null
,
// 异常分值分布情况echart实例
rulePie
:
null
,
// 绩效规则分布echart实例
shensuPie
:
null
,
// 申诉分值分布情况echart实例
...
...
@@ -345,6 +501,7 @@ export default {
},
created
()
{
this
.
getDeptList
();
this
.
getStaff
();
this
.
getYearRecordAll
();
this
.
getMonthRecordAll
();
},
...
...
@@ -376,6 +533,15 @@ export default {
}
});
},
// 获取工作人员
getStaff
()
{
this
.
$post
(
"
/staff/list
"
,
this
.
staffQuery
).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
this
.
staffList
=
data
.
data
;
}
});
},
// 获取今年分值
async
getYearRecordAll
()
{
this
.
yearRecordAll
=
await
this
.
getRecordAll
(
1
);
...
...
@@ -857,10 +1023,6 @@ export default {
break
;
}
},
// 创建报告
onSubmit
()
{
console
.
log
(
this
.
form
);
},
// 获取年
getYear
()
{
return
new
Date
().
getFullYear
();
...
...
@@ -894,6 +1056,113 @@ export default {
this
.
getAppealTotal
();
},
1000
*
60
);
},
// 按部门生成报告
onDeptSubmit
()
{
if
(
this
.
deptForm
.
resource
==
1
)
{
delete
this
.
deptForm
.
month
;
delete
this
.
deptForm
.
day
;
}
else
if
(
this
.
deptForm
.
resource
==
2
)
{
delete
this
.
deptForm
.
year
;
delete
this
.
deptForm
.
day
;
}
else
{
delete
this
.
deptForm
.
year
;
delete
this
.
deptForm
.
month
;
}
this
.
dataSection
(
this
.
getDeptPerformList
,
this
.
deptForm
,
(
data
)
=>
{
if
(
!
data
.
length
)
return
;
exportExcel
(
this
.
deptExcelHeader
,
this
.
deptFilterVal
,
data
,
"
部门评估报告
"
+
this
.
$moment
().
format
(
"
YYYYMMDDHHmmss
"
)
);
});
},
// 按工作人员生成报告
onPersonSubmit
()
{
if
(
this
.
personForm
.
resource
==
1
)
{
delete
this
.
personForm
.
month
;
delete
this
.
personForm
.
day
;
}
else
if
(
this
.
personForm
.
resource
==
2
)
{
delete
this
.
personForm
.
year
;
delete
this
.
personForm
.
day
;
}
else
{
delete
this
.
personForm
.
year
;
delete
this
.
personForm
.
month
;
}
this
.
dataSection
(
this
.
getPersonPerformList
,
this
.
personForm
,
(
data
)
=>
{
if
(
!
data
.
length
)
return
;
exportExcel
(
this
.
personExcelHeader
,
this
.
personFilterVal
,
data
,
"
个人评估报告
"
+
this
.
$moment
().
format
(
"
YYYYMMDDHHmmss
"
)
);
});
},
// 获取部门报告列表
async
getDeptPerformList
(
page
,
size
,
searchForm
)
{
let
list
=
[];
let
listTotal
=
0
;
await
this
.
$post
(
"
/dept/perform/stat/list
"
,
{
page
:
page
||
1
,
size
:
size
||
100
,
...
searchForm
,
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
let
{
data
,
total
}
=
res
.
data
;
list
=
data
;
listTotal
=
total
;
}
});
return
{
data
:
list
,
total
:
listTotal
,
};
},
// 获取个人报告列表
async
getPersonPerformList
(
page
,
size
,
searchForm
)
{
let
list
=
[];
let
listTotal
=
0
;
await
this
.
$post
(
"
/staff/perform/summary/list
"
,
{
page
:
page
||
1
,
size
:
size
||
100
,
...
searchForm
,
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
let
{
data
,
total
}
=
res
.
data
;
list
=
data
;
listTotal
=
total
;
}
});
return
{
data
:
list
,
total
:
listTotal
,
};
},
// 数据切片
async
dataSection
(
fn
,
searchForm
,
callback
)
{
let
dataList
=
[];
let
page
=
1
;
let
size
=
1000
;
let
execute
=
async
()
=>
{
let
{
data
,
total
}
=
await
fn
(
page
,
size
,
searchForm
);
dataList
=
[...
dataList
,
...
data
];
this
.
$app
.
loading
=
true
;
this
.
$app
.
percentage
=
parseInt
((
dataList
.
length
/
total
)
*
100
);
if
(
dataList
.
length
>=
total
||
data
.
data
.
length
==
0
)
{
callback
(
dataList
);
this
.
$app
.
loading
=
false
;
this
.
$app
.
percentage
=
1
;
return
;
}
setTimeout
(()
=>
{
page
+=
1
;
execute
();
});
};
execute
();
},
},
beforeDestroy
()
{
// 解绑事件
...
...
attendance-performance-manager-ui/admin/yarn.lock
View file @
d298661e
...
...
@@ -1903,6 +1903,19 @@ address@^1.1.2:
resolved "https://registry.nlark.com/address/download/address-1.1.2.tgz"
integrity sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=
adler-32@~1.2.0:
version "1.2.0"
resolved "https://registry.npmmirror.com/adler-32/-/adler-32-1.2.0.tgz#6a3e6bf0a63900ba15652808cb15c6813d1a5f25"
integrity sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==
dependencies:
exit-on-epipe "~1.0.1"
printj "~1.1.0"
adler-32@~1.3.0:
version "1.3.1"
resolved "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2"
integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==
aggregate-error@^3.0.0:
version "3.1.0"
resolved "https://registry.nlark.com/aggregate-error/download/aggregate-error-3.1.0.tgz"
...
...
@@ -2330,6 +2343,11 @@ bindings@^1.5.0:
dependencies:
file-uri-to-path "1.0.0"
blob.js@^1.0.1:
version "1.0.1"
resolved "https://registry.npmmirror.com/blob.js/-/blob.js-1.0.1.tgz#547b449b252c855313e837b53d15b41d000ea1d2"
integrity sha512-TkPuWPeCHBbN+LWFg7BlXdSh6stRxwmAbuirKfiiHTMmo/uQfKFQMx2jrxVUkueKRiG+Tc7Os1Zn618Yc0MZpg==
bluebird@^3.1.1, bluebird@^3.5.0, bluebird@^3.5.5:
version "3.7.2"
resolved "https://registry.nlark.com/bluebird/download/bluebird-3.7.2.tgz"
...
...
@@ -2728,6 +2746,14 @@ caseless@~0.12.0:
resolved "https://registry.nlark.com/caseless/download/caseless-0.12.0.tgz"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
cfb@^1.1.4:
version "1.2.2"
resolved "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz#94e687628c700e5155436dac05f74e08df23bc44"
integrity sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==
dependencies:
adler-32 "~1.3.0"
crc-32 "~1.2.0"
chalk@2.3.0:
version "2.3.0"
resolved "https://registry.nlark.com/chalk/download/chalk-2.3.0.tgz?cache=0&sync_timestamp=1627646614989&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-2.3.0.tgz"
...
...
@@ -2980,6 +3006,14 @@ coa@^2.0.2:
chalk "^2.4.1"
q "^1.1.2"
codepage@~1.14.0:
version "1.14.0"
resolved "https://registry.npmmirror.com/codepage/-/codepage-1.14.0.tgz#8cbe25481323559d7d307571b0fff91e7a1d2f99"
integrity sha512-iz3zJLhlrg37/gYRWgEPkaFTtzmnEv1h+r7NgZum2lFElYQPi0/5bnmuDfODHxfp0INEfnRqyfyeIJDbb7ahRw==
dependencies:
commander "~2.14.1"
exit-on-epipe "~1.0.1"
collection-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.nlark.com/collection-visit/download/collection-visit-1.0.0.tgz"
...
...
@@ -3040,7 +3074,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
commander@2.17.x:
commander@2.17.x
, commander@~2.17.1
:
version "2.17.1"
resolved "https://registry.nlark.com/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1627359190297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz"
integrity sha1-vXerfebelCBc6sxy8XFtKfIKd78=
...
...
@@ -3055,6 +3089,11 @@ commander@^6.2.0:
resolved "https://registry.nlark.com/commander/download/commander-6.2.1.tgz"
integrity sha1-B5LraC37wyWZm7K4T93duhEKxzw=
commander@~2.14.1:
version "2.14.1"
resolved "https://registry.npmmirror.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
integrity sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==
commander@~2.19.0:
version "2.19.0"
resolved "https://registry.nlark.com/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1627359190297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz"
...
...
@@ -3270,6 +3309,11 @@ cosmiconfig@^7.0.0:
path-type "^4.0.0"
yaml "^1.10.0"
crc-32@~1.2.0:
version "1.2.2"
resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff"
integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
create-ecdh@^4.0.0:
version "4.0.4"
resolved "https://registry.nlark.com/create-ecdh/download/create-ecdh-4.0.4.tgz"
...
...
@@ -4317,6 +4361,11 @@ execa@^4.1.0:
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
exit-on-epipe@~1.0.1:
version "1.0.1"
resolved "https://registry.npmmirror.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692"
integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.nlark.com/expand-brackets/download/expand-brackets-2.1.4.tgz"
...
...
@@ -4490,6 +4539,11 @@ file-saver@2.0.4:
resolved "https://registry.npm.taobao.org/file-saver/download/file-saver-2.0.4.tgz?cache=0&sync_timestamp=1605790866952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-saver%2Fdownload%2Ffile-saver-2.0.4.tgz"
integrity sha1-RMQOg1MZyYNqhCIbTiVdS7TLe7U=
file-saver@^1.3.3:
version "1.3.8"
resolved "https://registry.npmmirror.com/file-saver/-/file-saver-1.3.8.tgz#e68a30c7cb044e2fb362b428469feb291c2e09d8"
integrity sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg==
file-uri-to-path@1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
...
...
@@ -4662,6 +4716,11 @@ forwarded@0.2.0:
resolved "https://registry.nlark.com/forwarded/download/forwarded-0.2.0.tgz"
integrity sha1-ImmTZCiq1MFcfr6XeahL8LKoGBE=
frac@~1.1.2:
version "1.1.2"
resolved "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz#3d74f7f6478c88a1b5020306d747dc6313c74d0b"
integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==
fragment-cache@^0.2.1:
version "0.2.1"
resolved "https://registry.nlark.com/fragment-cache/download/fragment-cache-0.2.1.tgz"
...
...
@@ -5796,6 +5855,16 @@ js-cookie@2.2.1:
resolved "https://registry.nlark.com/js-cookie/download/js-cookie-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-cookie%2Fdownload%2Fjs-cookie-2.2.1.tgz"
integrity sha1-aeEG3F1YBolFYpAqpbrsN0Tpsrg=
js-export-excel@^1.1.4:
version "1.1.4"
resolved "https://registry.npmmirror.com/js-export-excel/-/js-export-excel-1.1.4.tgz#65ebeb278010f301bee26bba909d7ffec7f28877"
integrity sha512-19m7e3Gnn4CRfHXoFrLYj4fFfJ/KpvI7HRRn25p4GXYD+AlTV+1oU24NH6S904Ksi44tSx7futxhouOPAQ22oQ==
dependencies:
blob.js "^1.0.1"
file-saver "^1.3.3"
script-loader "0.7.2"
xlsx "0.16.3"
js-message@1.0.7:
version "1.0.7"
resolved "https://registry.nlark.com/js-message/download/js-message-1.0.7.tgz"
...
...
@@ -7725,6 +7794,11 @@ pretty-error@^2.0.2:
lodash "^4.17.20"
renderkid "^2.0.4"
printj@~1.1.0:
version "1.1.2"
resolved "https://registry.npmmirror.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222"
integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.nlark.com/process-nextick-args/download/process-nextick-args-2.0.1.tgz"
...
...
@@ -7927,6 +8001,11 @@ raw-body@2.4.0:
iconv-lite "0.4.24"
unpipe "1.0.0"
raw-loader@~0.5.1:
version "0.5.1"
resolved "https://registry.npmmirror.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
integrity sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==
read-pkg@^5.1.1:
version "5.2.0"
resolved "https://registry.nlark.com/read-pkg/download/read-pkg-5.2.0.tgz"
...
...
@@ -8319,6 +8398,13 @@ script-ext-html-webpack-plugin@2.1.5:
dependencies:
debug "^4.2.0"
script-loader@0.7.2:
version "0.7.2"
resolved "https://registry.npmmirror.com/script-loader/-/script-loader-0.7.2.tgz#2016db6f86f25f5cf56da38915d83378bb166ba7"
integrity sha512-UMNLEvgOAQuzK8ji8qIscM3GIrRCWN6MmMXGD4SD5l6cSycgGsCo0tX5xRnfQcoghqct0tjHjcykgI1PyBE2aA==
dependencies:
raw-loader "~0.5.1"
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.nlark.com/select-hose/download/select-hose-2.0.0.tgz"
...
...
@@ -8719,6 +8805,13 @@ sprintf-js@~1.0.2:
resolved "https://registry.nlark.com/sprintf-js/download/sprintf-js-1.0.3.tgz"
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
ssf@~0.11.2:
version "0.11.2"
resolved "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz#0b99698b237548d088fc43cdf2b70c1a7512c06c"
integrity sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==
dependencies:
frac "~1.1.2"
sshpk@^1.7.0:
version "1.16.1"
resolved "https://registry.nlark.com/sshpk/download/sshpk-1.16.1.tgz"
...
...
@@ -9916,11 +10009,21 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
wmf@~1.0.1:
version "1.0.2"
resolved "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz#7d19d621071a08c2bdc6b7e688a9c435298cc2da"
integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==
word-wrap@^1.2.3:
version "1.2.3"
resolved "https://registry.nlark.com/word-wrap/download/word-wrap-1.2.3.tgz"
integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=
word@~0.3.0:
version "0.3.0"
resolved "https://registry.npmmirror.com/word/-/word-0.3.0.tgz#8542157e4f8e849f4a363a288992d47612db9961"
integrity sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==
worker-farm@^1.7.0:
version "1.7.0"
resolved "https://registry.nlark.com/worker-farm/download/worker-farm-1.7.0.tgz"
...
...
@@ -9967,6 +10070,21 @@ ws@^6.0.0, ws@^6.2.1:
dependencies:
async-limiter "~1.0.0"
xlsx@0.16.3:
version "0.16.3"
resolved "https://registry.npmmirror.com/xlsx/-/xlsx-0.16.3.tgz#7a91a75eb939db4961122da6f949b8a8f0c8af1a"
integrity sha512-LInZ1OK6vpe+Em8XDZ5gDH3WixARwxI7UWc+3chLeafI6gUwECEgL43k4Tjbs1uRfkxpM7wQFy5DLE0hFBRqRw==
dependencies:
adler-32 "~1.2.0"
cfb "^1.1.4"
codepage "~1.14.0"
commander "~2.17.1"
crc-32 "~1.2.0"
exit-on-epipe "~1.0.1"
ssf "~0.11.2"
wmf "~1.0.1"
word "~0.3.0"
xtend@^4.0.0, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.nlark.com/xtend/download/xtend-4.0.2.tgz"
...
...
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