Merge branch 'feature/个险业绩排行优化' into release/20210127

# Conflicts:
#	src/assets/js/utils/request.js
This commit is contained in:
mengxiaolong
2021-01-27 14:41:18 +08:00
7 changed files with 1250 additions and 480 deletions

View File

@@ -9,3 +9,30 @@ export function branchOfficeApi(data) {
data
})
}
// 个险业绩排行优化: 机构查询
export function getComList(data) {
return request({
url: getUrl('/data/performance/getComList', 1),
method: 'post',
data
})
}
// 个险业绩排行优化: 业绩查询
export function getComPerformance(data) {
return request({
url: getUrl('/data/performance/getComPerformance', 1),
method: 'post',
data
})
}
// 个险业绩排行优化: 机构查询
export function getOrgList(data) {
return request({
url: getUrl('/data/performance/getBranchComList', 1),
method: 'post',
data
})
}

View File

@@ -96,6 +96,9 @@ let whitelist = ['/agent/white/getWhiteInfo']
let goodStart = ['/data/performance/getComPerformance']
// 个险业绩排行优化
let performanceRanking = ['/data/performance/getComList', '/data/performance/getComPerformance']
let whiteList = [
'/customer/agent/getCustomersList',
...proposal,
@@ -109,7 +112,8 @@ let whiteList = [
...renewalManage,
...hgb,
...whitelist,
...goodStart
...goodStart,
...performanceRanking
]
// 创建axios实例

View File

@@ -26,7 +26,7 @@ export default [
name: 'underOffice',
component: UnderOffice,
meta: {
title: '机构业绩',
title: '排名',
index: 1
}
},

View File

@@ -0,0 +1,309 @@
<template>
<div>
<van-tabs v-model="active">
<van-tab title="中心支公司"></van-tab>
<van-tab title="营销服务部"></van-tab>
<van-tab title="下辖营业区"></van-tab>
</van-tabs>
<div class="table-wrapper">
<table class="myTable mb30" :style="widthObj" cellspacing="0" cellpadding="0">
<tr>
<th class="sticky th-rank">排名</th>
<th v-for="(column, index) in columns" :key="index" :class="{ fixedWidth: index === 0, orgName: index === 0 }">
{{ column.name }}
</th>
</tr>
<tr v-show="values.length !== 0">
<td class="sticky bleft bright" colspan="2">合计</td>
<td class="bright" v-for="(total, i) in totals" :key="i">{{ total | blankFilter }}</td>
</tr>
<tr v-for="(value, index) in values" :key="index">
<td class="sticky bleft bright">{{ index + 1 }}</td>
<td v-for="(key, i) in needGettingKey" :key="i" class="bright" :class="{ orgName: i === 0 }">
{{ value[key] | blankFilter }}
</td>
</tr>
<tr v-if="values.length === 0">
<td class="nodata bleft bright" :colspan="columns.length + 1">暂无数据</td>
</tr>
</table>
</div>
</div>
</template>
<script>
import { Tab, Tabs } from 'vant'
import { orgShortNames } from '@/assets/js/utils/orgShortName'
export default {
name: 'Organization',
components: {
[Tab.name]: Tab,
[Tabs.name]: Tabs
},
props: {
dataType: {
// 0: 业绩, 1: 人力, 2: 产品
type: Number,
default: 0
},
timeType: {
type: Number,
default: 0
}
},
computed: {
// 获取需要显示的列名称
columns() {
this.widthObj.minWidth = '200vw'
if (this.dataType === 0) {
switch (this.timeType) {
case 0:
case 3:
return this.tableColumns[0][0]
case 1:
return this.tableColumns[0][1]
case 2:
if (this.active <= 1) {
return this.tableColumns[0][2]
} else {
this.widthObj.minWidth = '100%'
return this.tableColumns[0][3]
}
default:
return []
}
} else {
return this.tableColumns[this.dataType]
}
},
needGettingKey() {
let keys = []
this.columns.forEach(element => {
keys.push(element.key)
})
return keys
}
},
data() {
return {
widthObj: {
minWidth: '200vw'
},
active: 0,
tableColumns: [
[
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '预收标保(万元)', key: 'ysbb' },
{ isInt: true, name: '预收件数(件)', key: 'ysjs' },
{ isInt: false, name: '承保标保(万元)', key: 'bzbf' },
{ isInt: true, name: '承保件数(件)', key: 'cbjs' }
],
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '预收标保(万元)', key: 'ysbb' },
{ isInt: true, name: '预收件数(件)', key: 'ysjs' },
{ isInt: false, name: '承保标保(万元)', key: 'bzbf' },
{ isInt: true, name: '承保件数(件)', key: 'cbjs' },
{ isInt: false, name: '承保同比', key: 'cbtb' },
{ isInt: false, name: '承保环比', key: 'cbhb' }
],
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '承保标保(万元)', key: 'bzbf' },
{ isInt: false, name: '标保目标', key: 'bbmb' },
{ isInt: false, name: '标保目标达成率', key: 'bbmbdcl' },
{ isInt: false, name: '差距', key: 'cj' }
],
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '承保标保(万元)', key: 'bzbf' }
]
],
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: true, name: '活动人力(人)', key: 'hdrl' },
{ isInt: true, name: '合格人力(人)', key: 'hgrl' },
{ isInt: true, name: '桂冠人力(人)', key: 'ggrl' },
{ isInt: true, name: '桂冠正式会员(人)', key: 'gghy' },
{ isInt: true, name: '双冠人力(人)', key: 'sgrl' },
{ isInt: true, name: '新增人力(人)', key: 'xzrl' }
],
[
{ isInt: false, name: '产品', key: 'productName' },
{ isInt: false, name: '承保标保(万元)', key: 'cbbb' },
{ isInt: true, name: '承保件数(件)', key: 'cbItems' },
{ isInt: false, name: '保费占比(%)', key: 'percent' }
]
],
values: [],
totals: []
}
},
methods: {
calculateTotal() {
this.totals = []
let columns = JSON.parse(JSON.stringify(this.columns))
// 排除第一列(排名)
columns.splice(0, 1)
for (let column of columns) {
let key = column.key
let total = this.values.reduce((prevVal, currVal) => {
let count = column.isInt ? parseInt(currVal[key]) : parseFloat(currVal[key])
return prevVal + count
}, 0)
if (column.isInt) {
this.totals.push(total)
} else {
this.totals.push(parseFloat(total.toFixed(2)))
}
}
},
setShortName() {
for (let org of this.values) {
for (let shortName of orgShortNames) {
if (org.code === shortName.code) {
org.name = shortName.name
}
}
}
},
setTableData(data, type) {
switch (type) {
case 'prem':
this.values = data.list ? data.list : []
this.setShortName()
this.calculateTotal()
break
case 'active':
this.values = data.listRL ? data.listRL : []
this.setShortName()
this.calculateTotal()
break
case 'product':
this.values = data.productDTO ? data.productDTO : []
this.calculate()
this.calculateTotal()
break
}
},
calculate() {
let allPrice = this.values.reduce((prevVal, currVal) => {
return prevVal + parseFloat(currVal.cbbb)
}, 0)
this.values.map(product => {
product.allPrice = allPrice
let percent = ((product.cbbb / allPrice) * 100).toFixed(8)
product.percent = percent
return product
})
}
},
watch: {
active: {
handler(nv) {
this.$emit('updateQueryCom', nv)
}
}
},
filters: {
blankFilter(val) {
if (isNaN(parseFloat(val))) {
return val ? val : '-'
} else {
let res = parseFloat(val).toFixed(2)
if (res.endsWith('.00')) {
return res.split('.')[0]
} else {
return res
}
}
}
}
}
</script>
<style lang="scss" scoped>
$border: 1px solid #e4e4e4;
$bgRed: #f03;
$white: #fff;
::v-deep .van-tabs__wrap {
padding: 10px;
}
::v-deep .van-tabs__nav {
border-radius: 5px;
border: 1px solid #e4e4e4;
padding-bottom: 0;
}
::v-deep .van-tabs__line {
bottom: 0;
}
::v-deep .van-tab--active {
font-size: 16px;
font-weight: bolder;
transition: all 0.1s ease;
}
.table-wrapper {
overflow: auto;
margin: 0 10px;
}
.myTable {
text-align: center;
}
.myTable td,
.myTable th {
font-size: 14px;
padding: 10px 5px;
border-bottom: $border;
border-collapse: collapse;
background-color: $white;
}
.myTable th {
background-color: $bgRed;
border: none;
color: $white;
}
.sticky {
position: sticky;
left: 0;
}
.bleft {
border-left: $border;
}
.bright {
border-right: $border;
}
.nodata {
text-align: left;
text-indent: 10em;
}
th.fixedWidth {
width: 8em;
}
.th-rank {
width: 50px;
}
.orgName {
position: sticky;
left: 59px;
}
*::-webkit-scrollbar {
display: none;
}
</style>

View File

@@ -0,0 +1,241 @@
<template>
<div class="summarize">
<div class="data-section">
<span ref="performance" class="title">
业绩
</span>
<div class="table-wrapper">
<table class="myTable" cellspacing="0" cellpadding="0">
<tr>
<th style="width: 50%;">机构业绩</th>
<th>达成</th>
</tr>
<tr>
<td class="bleft bright">预收标保</td>
<td class="bright">{{ performance.ysbb | unitFilter(1) | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">预收件数</td>
<td class="bright">{{ performance.ysjs | unitFilter(2) | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">承保标保</td>
<td class="bright">{{ performance.bzbf | unitFilter(1) | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">承保件数</td>
<td class="bright">{{ performance.cbjs | unitFilter(2) | blankFilter }}</td>
</tr>
</table>
</div>
</div>
<div class="data-section">
<span ref="manpower" class="title">
人力
</span>
<div class="table-wrapper">
<table class="myTable" cellspacing="0" cellpadding="0">
<tr>
<th style="width: 50%;">人力指标</th>
<th>达成()</th>
</tr>
<tr>
<td class="bleft bright">活动人力</td>
<td class="bright">{{ manpower.hdrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">合格人力</td>
<td class="bright">{{ manpower.hgrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">桂冠人力</td>
<td class="bright">{{ manpower.ggrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">桂冠正式会员</td>
<td class="bright">{{ manpower.gghy | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">双冠人力</td>
<td class="bright">{{ manpower.sgrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">新增人力</td>
<td class="bright">{{ manpower.xzrl | blankFilter }}</td>
</tr>
</table>
</div>
</div>
<div class="data-section">
<span ref="production" class="title">
产品
</span>
<p class="pl10">
总保费: <span class="all-price"> {{ performance.bzbf | blankFilter }}(万元)</span>
</p>
<div class="table-wrapper">
<table class="myTable" style="min-width: 140vw;" cellspacing="0" cellpadding="0">
<tr>
<th class="sticky">产品名称</th>
<th>承保标保(万元)</th>
<th>承保件数()</th>
<th>保费占比(%)</th>
</tr>
<tr v-for="(product, index) in products" :key="index">
<td class="sticky bleft bright">{{ product.productName }}</td>
<td class="bright">{{ product.cbbb | blankFilter }}</td>
<td class="bright">{{ product.cbItems | blankFilter }}</td>
<td class="bright">{{ product.percent | blankFilter }}</td>
</tr>
<tr v-if="products.length === 0">
<td class="nodata bleft bright" colspan="4">暂无数据</td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'Summarizing',
props: {
typeIndex: {
type: Number,
default: 0
}
},
data() {
return {
performance: {},
manpower: {},
products: [],
allPrice: 0
}
},
methods: {
setManpower(data) {
this.manpower = data
},
setPerformance(data) {
this.performance = data
this.allPrice = Number(this.performance.bzbf)
},
setProducts(data) {
this.products = data
this.products.map(product => {
let percent = ((Number(product.cbbb) / this.allPrice) * 100).toFixed(2)
product.percent = isNaN(percent) ? 0 : percent < 0 ? 0 : percent
return product
})
}
},
watch: {
typeIndex(nv) {
const scroll = {
behavior: 'smooth',
block: 'start'
}
switch (nv) {
case 0:
this.$refs.performance.scrollIntoView(scroll)
break
case 1:
this.$refs.manpower.scrollIntoView(scroll)
break
case 2:
this.$refs.production.scrollIntoView(scroll)
break
}
}
},
filters: {
blankFilter(val) {
return val ? val : '-'
},
unitFilter(val, unit) {
if (!val) {
return ''
}
// 1: 万元, 2: 件数
switch (unit) {
case 1:
return `${val} (万元)`
case 2:
return `${val} (件)`
}
}
}
}
</script>
<style lang="scss" scoped>
$border: 1px solid #e4e4e4;
$bgRed: #f03;
$white: #fff;
.summarize {
padding-bottom: 30px;
}
.data-section {
.title {
display: inline-block;
background-color: $bgRed;
color: $white;
padding: 5px 20px;
margin: 15px 0;
border-radius: 0 10px 10px 0;
}
}
.table-wrapper {
overflow: auto;
margin: 0 5px;
}
.myTable {
text-align: center;
width: 100%;
}
.myTable td,
.myTable th {
padding: 10px 0;
border-bottom: $border;
border-collapse: collapse;
background-color: $white;
}
.myTable th {
background-color: $bgRed;
border: none;
color: $white;
}
.sticky {
width: 8em;
position: sticky;
padding: 5px !important;
left: 0;
}
.bleft {
border-left: $border;
}
.bright {
border-right: $border;
}
.nodata {
text-align: left;
text-indent: 10em;
}
.all-price {
margin-bottom: 15px;
color: $bgRed;
display: inline-block;
}
</style>

File diff suppressed because it is too large Load Diff

141
yarn.lock
View File

@@ -2813,11 +2813,6 @@ crypto-browserify@^3.11.0:
randombytes "^2.0.0"
randomfill "^1.0.3"
crypto-js@^4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/crypto-js/download/crypto-js-4.0.0.tgz#2904ab2677a9d042856a2ea2ef80de92e4a36dcc"
integrity sha1-KQSrJnep0EKFai6i74DekuSjbcw=
css-color-names@0.0.4, css-color-names@^0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
@@ -3065,7 +3060,7 @@ debug@=3.1.0:
dependencies:
ms "2.0.0"
debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5:
debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6:
version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -3101,6 +3096,11 @@ deep-equal@^1.0.1:
object-keys "^1.1.1"
regexp.prototype.flags "^1.2.0"
deep-extend@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
@@ -3217,6 +3217,11 @@ detect-indent@^4.0.0:
dependencies:
repeating "^2.0.0"
detect-libc@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
detect-newline@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
@@ -4341,6 +4346,13 @@ fs-extra@^7.0.1:
jsonfile "^4.0.0"
universalify "^0.1.0"
fs-minipass@^1.2.5:
version "1.2.7"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
dependencies:
minipass "^2.6.0"
fs-write-stream-atomic@^1.0.8:
version "1.0.10"
resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
@@ -4894,7 +4906,7 @@ human-signals@^1.1.1:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24:
iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -4923,6 +4935,13 @@ iferr@^0.1.5:
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
ignore-walk@^3.0.1:
version "3.0.3"
resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
dependencies:
minimatch "^3.0.4"
ignore@^3.3.3, ignore@^3.3.5:
version "3.3.10"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
@@ -5029,7 +5048,7 @@ inherits@2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
ini@^1.3.4:
ini@^1.3.4, ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
@@ -5919,11 +5938,6 @@ js-levenshtein@^1.1.3:
resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d"
integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==
js-md5@^0.7.3:
version "0.7.3"
resolved "https://registry.npm.taobao.org/js-md5/download/js-md5-0.7.3.tgz#b4f2fbb0b327455f598d6727e38ec272cd09c3f2"
integrity sha1-tPL7sLMnRV9ZjWcn447Ccs0Jw/I=
js-message@1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.5.tgz#2300d24b1af08e89dd095bc1a4c9c9cfcb892d15"
@@ -6591,6 +6605,21 @@ minimist@~0.0.1:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
dependencies:
safe-buffer "^5.1.2"
yallist "^3.0.0"
minizlib@^1.2.1:
version "1.3.3"
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
dependencies:
minipass "^2.9.0"
mississippi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
@@ -6719,6 +6748,15 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
needle@^2.2.1:
version "2.4.0"
resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==
dependencies:
debug "^3.2.6"
iconv-lite "^0.4.4"
sax "^1.2.4"
negotiator@0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
@@ -6831,6 +6869,22 @@ node-notifier@^5.2.1:
shellwords "^0.1.1"
which "^1.3.0"
node-pre-gyp@*:
version "0.14.0"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==
dependencies:
detect-libc "^1.0.2"
mkdirp "^0.5.1"
needle "^2.2.1"
nopt "^4.0.1"
npm-packlist "^1.1.6"
npmlog "^4.0.2"
rc "^1.2.7"
rimraf "^2.6.1"
semver "^5.3.0"
tar "^4.4.2"
node-releases@^1.1.44:
version "1.1.44"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.44.tgz#cd66438a6eb875e3eb012b6a12e48d9f4326ffd7"
@@ -6868,7 +6922,7 @@ node-sass@^4.9.0:
dependencies:
abbrev "1"
nopt@~4.0.1:
nopt@^4.0.1, nopt@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
@@ -6923,6 +6977,26 @@ normalize-url@^3.0.0:
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
npm-bundled@^1.0.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
dependencies:
npm-normalize-package-bin "^1.0.1"
npm-normalize-package-bin@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
npm-packlist@^1.1.6:
version "1.4.7"
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848"
integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==
dependencies:
ignore-walk "^3.0.1"
npm-bundled "^1.0.1"
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -6937,7 +7011,7 @@ npm-run-path@^4.0.0:
dependencies:
path-key "^3.0.0"
"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0:
"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
@@ -8156,6 +8230,16 @@ raw-loader@^0.5.1:
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
integrity sha1-DD0L6u2KAclm2Xh793goElKpeao=
rc@^1.2.7:
version "1.2.8"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
dependencies:
deep-extend "^0.6.0"
ini "~1.3.0"
minimist "^1.2.0"
strip-json-comments "~2.0.1"
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
@@ -9411,6 +9495,19 @@ tar@^2.0.0:
fstream "^1.0.12"
inherits "2"
tar@^4.4.2:
version "4.4.13"
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
dependencies:
chownr "^1.1.1"
fs-minipass "^1.2.5"
minipass "^2.8.6"
minizlib "^1.2.1"
mkdirp "^0.5.0"
safe-buffer "^5.1.2"
yallist "^3.0.3"
terser-webpack-plugin@^1.2.3, terser-webpack-plugin@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c"
@@ -9934,13 +10031,6 @@ vue-eslint-parser@^5.0.0:
esquery "^1.0.1"
lodash "^4.17.11"
vue-hash-calendar@^1.2.12:
version "1.2.17"
resolved "https://registry.npm.taobao.org/vue-hash-calendar/download/vue-hash-calendar-1.2.17.tgz#da92148f02e5658a69316c05231ac0ef940bf176"
integrity sha1-2pIUjwLlZYppMWwFIxrA75QL8XY=
dependencies:
vue "^2.5.17"
vue-hot-reload-api@^2.3.0:
version "2.3.4"
resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"
@@ -10020,11 +10110,6 @@ vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0:
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
vue@^2.5.17:
version "2.6.12"
resolved "https://registry.npm.taobao.org/vue/download/vue-2.6.12.tgz?cache=0&sync_timestamp=1603224263683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123"
integrity sha1-9evU+mvShpQD4pqJau1JBEVskSM=
vue@^2.6.10:
version "2.6.11"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5"
@@ -10412,7 +10497,7 @@ yallist@^2.1.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
yallist@^3.0.2:
yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==