1:关于配置自动打包部署上线工具scp2的使用
- 安装scp
npm install scp2 --save-dev
- 配置命令
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"scp": "npm run build && node scp2.js"
},
- 创建执行文件scp2.js
const scp = require('scp2');
const ora = require('ora');
const chalk = require('chalk');
const spinner = ora(chalk.blue('正在部署到服务器...'));
spinner.start();
scp.scp('./dist/', {
host: '10.99.232.182', // 服务器的地址
port: 22, // 服务器端口, 一般为 22
username: 'root', // 用户名
password: 'g9M9w6Rw', // 密码
path: '/usr/share/nginx/dist/' //服务器存放文件路径
}, err => {
if (!err) {
console.log(chalk.green(`部署完成!`))
} else {
console.log(chalk.red(`部署失败!`))
}
spinner.stop();
})
- 打包部署执行
npm run scp
2:关于echartsx轴过多采用动画滚动渲染的形式在数据源变更发生的问题
- html部分代码
<template>
<div>
<button @click="changeData">切换数据</button>
<div id="main" style="width: 300px;height:300px;" v-if="echartShow"></div>
</div>
</template>
- js部分代码
export default {
name: "FrontEndLearningIndex",
data() {
return {
imgUrl: require('././index.vue'),
echartShow: true,
flag: false,
time: "",
listx: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18"],
listy: [42, 40, 34, 56, 13, 76, 28, 36, 91, 100, 82, 80, 70, 65, 66, 60, 54, 50],
};
},
mounted() {
this.changeData()
},
methods: {
initEcharts(listx, listy) {
let myChart = echarts.init(document.getElementById("main"));
var SData = listy;
let option = {
legend: {
data: ['销量']
},
xAxis: {
data: listx,
axisLabel: {
rotate: 45,
},
},
dataZoom: [
{
show: false,
type: 'slider',
startValue: 0,
endValue: 5
}
],
yAxis: {},
series: [{
name: '销量',
type: 'bar',
barWidth : 20,
data: SData,
itemStyle: {
color: new echarts.graphic.LinearGradient(
0, 0, 0, 1, [{
offset: 0,
color: 'rgba(35,240,199,1)'
},
{
offset: 1,
color: 'rgba(35,240,199,0)'
}
]
),
}
}]
};
this.time = setInterval(function () {
if (option.dataZoom[0].endValue == SData.length) {
option.dataZoom[0].endValue = 5;
option.dataZoom[0].startValue = 0;
}
else {
option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1;
option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1;
}
option && myChart.setOption(option, true);
}, 2000);
myChart.setOption(option)
myChart.clear()
},
changeData() {
this.flag = !this.flag
this.echartShow = false;
clearInterval(this.time)
var listx = [];
var listy = []
if (this.flag == true) {
listx = [
"中心领导",
"人力资源部(人才工作办公室)",
"党群工作部",
"条件保障部",
"科研发展部",
"综合管理部",
"财务管理部",]
listy = [
"12",
"13",
"2",
"16",
"12",
"13",
"15"
]
}
this.echartShow = true;
this.initEcharts(listx, listy)
}
},
};
</script>
3:x轴字体过多规定多少个字体后换行
formatter: (params) => {
let newParamsName = ''
const paramsNameNumber = params.length
const provideNumber = 7
const rowNumber = Math.ceil(paramsNameNumber / provideNumber)
if (paramsNameNumber > provideNumber) {
for (let p = 0
let tempStr = ''
const start = p * provideNumber
const end = start + provideNumber
if (p === rowNumber - 1) {
tempStr = params.substring(start, paramsNameNumber)
} else {
tempStr = params.substring(start, end) + '\n\n'
}
newParamsName += tempStr
}
} else {
newParamsName = params
}
var data = this.data.slice(0, 4)
var tarValue
var v
console.log('value', data)
for (var i = 0
tarValue = data[i].value
v = tarValue
}
return `${newParamsName} ${v}个`
}
4:对象数组的数组去重
arrDeduplication(data) {
for (let i = 0
for (let j = i + 1
if (data[i].value == data[j].value) {
data.splice(j, 1)
j--
}
}
}
return data
},