Commit d298661e authored by “yiyousong”'s avatar “yiyousong”

feat:添加360报告导出

parent c118e33d
......@@ -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",
......
<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>
// 导出表格数据
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(); //保存
};
......@@ -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");
......@@ -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.type" border>
<el-radio-group v-model="reportType" 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="form.dept"
v-model="deptForm.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="form.resource">
<el-form-item label="请选择类型" style="text-align: left">
<el-radio-group v-model="deptForm.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="form.resource == 1"
v-show="deptForm.resource == 1"
type="year"
value-format="yyyy"
placeholder="选择日期"
v-model="form.year"
v-model="deptForm.year"
style="width: 100%"
></el-date-picker>
<el-date-picker
v-else-if="form.resource == 2"
v-show="deptForm.resource == 2"
type="month"
value-format="MM"
placeholder="选择日期"
v-model="form.month"
v-model="deptForm.month"
style="width: 100%"
></el-date-picker>
<el-date-picker
v-else
v-model="form.day"
v-show="deptForm.resource == 3"
v-model="deptForm.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() {
// 解绑事件
......
......@@ -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"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment