|
|
@@ -2,7 +2,7 @@
|
|
|
<div>
|
|
|
<div class="wrapper pc" v-if="screenWidth > 960">
|
|
|
<div class="title">{{city}}-{{job}}收入水平</div>
|
|
|
- <div class="subtitle">{{city}}{{job}}平均工资:¥{{avg_salary}}/月,取自23212份数据样本,较2018年,减少1.1%,统计来自程序员客栈(proginn.com)</div>
|
|
|
+ <div class="subtitle">{{city}}{{job}}平均工资:¥{{avg_salary}}/月,统计来自程序员客栈(proginn.com)</div>
|
|
|
<div class="content">
|
|
|
<div class="module-wrapper">
|
|
|
<div class="module-title">开发者薪资范围分布</div>
|
|
|
@@ -10,17 +10,17 @@
|
|
|
</div>
|
|
|
<div class="module-wrapper">
|
|
|
<div class="average-title">平均工资:¥{{avg_salary}}元/月</div>
|
|
|
- <div class="average-subtitle">最高为{{max_salary}}元/月,最低为{{min_salary}}元/月其中,平均工资为{{avg_salary}}元/月</div>
|
|
|
+ <div class="average-subtitle">最高为{{max_salary}}元/月,最低为{{min_salary}}元/月,其中,平均工资为{{avg_salary}}元/月</div>
|
|
|
<img class="average-img" src="@/assets/img/salary/average_salary.png" alt="">
|
|
|
</div>
|
|
|
- <div class="module-wrapper">
|
|
|
- <div class="module-title">杭州其他岗位平均工资</div>
|
|
|
- <div id="industry-chart" class="industry-chart"></div>
|
|
|
- </div>
|
|
|
- <div class="module-wrapper">
|
|
|
- <div class="module-title">按工作经验统计</div>
|
|
|
- <div id="experience-chart" class="experience-chart"></div>
|
|
|
- </div>
|
|
|
+<!-- <div class="module-wrapper">-->
|
|
|
+<!-- <div class="module-title">杭州其他岗位平均工资</div>-->
|
|
|
+<!-- <div id="industry-chart" class="industry-chart"></div>-->
|
|
|
+<!-- </div>-->
|
|
|
+<!-- <div class="module-wrapper">-->
|
|
|
+<!-- <div class="module-title">按工作经验统计</div>-->
|
|
|
+<!-- <div id="experience-chart" class="experience-chart"></div>-->
|
|
|
+<!-- </div>-->
|
|
|
<!-- <div class="module-wrapper">-->
|
|
|
<!-- <div class="module-title">按学历统计</div>-->
|
|
|
<!-- <div id="education-chart" class="education-chart"></div>-->
|
|
|
@@ -55,7 +55,7 @@
|
|
|
<div class="wrapper mobile" v-else-if="screenWidth > 0">
|
|
|
<div class="title-wrapper">
|
|
|
<div class="title">{{city}}-{{job}}收入水平</div>
|
|
|
- <div class="subtitle">杭州产品经理平均工资:¥66666/月,取自23212份数据样本,较2018年,减少1.1%,统计来自程序员客栈(proginn.com)</div>
|
|
|
+ <div class="subtitle">杭州产品经理平均工资:¥66666/月,统计来自程序员客栈(proginn.com)</div>
|
|
|
</div>
|
|
|
<div class="module-wrapper">
|
|
|
<div class="module-title">开发者薪资排行城市TOP10</div>
|
|
|
@@ -63,17 +63,17 @@
|
|
|
</div>
|
|
|
<div class="module-wrapper">
|
|
|
<div class="average-title">平均工资:¥13000元/月</div>
|
|
|
- <div class="average-subtitle">最高为16000元/月,最低为10000元/月其中,人工智能行业的产品经理平均工资最高达54363元/月</div>
|
|
|
+ <div class="average-subtitle">最高为16000元/月,最低为10000元/月,其中,人工智能行业的产品经理平均工资最高达54363元/月</div>
|
|
|
<img class="average-img" src="@/assets/img/salary/average_salary.png" alt="">
|
|
|
</div>
|
|
|
- <div class="module-wrapper">
|
|
|
- <div class="module-title">杭州其他岗位平均工资</div>
|
|
|
- <div id="industry-chart" class="industry-chart"></div>
|
|
|
- </div>
|
|
|
- <div class="module-wrapper">
|
|
|
- <div class="module-title">按工作经验统计</div>
|
|
|
- <div id="experience-chart" class="experience-chart"></div>
|
|
|
- </div>
|
|
|
+<!-- <div class="module-wrapper">-->
|
|
|
+<!-- <div class="module-title">杭州其他岗位平均工资</div>-->
|
|
|
+<!-- <div id="industry-chart" class="industry-chart"></div>-->
|
|
|
+<!-- </div>-->
|
|
|
+<!-- <div class="module-wrapper">-->
|
|
|
+<!-- <div class="module-title">按工作经验统计</div>-->
|
|
|
+<!-- <div id="experience-chart" class="experience-chart"></div>-->
|
|
|
+<!-- </div>-->
|
|
|
<!-- <div class="module-wrapper">-->
|
|
|
<!-- <div class="module-title">按学历统计</div>-->
|
|
|
<!-- <div id="education-chart" class="education-chart"></div>-->
|
|
|
@@ -139,6 +139,7 @@
|
|
|
let query = window.location.search.substring(1);
|
|
|
let vars = query.split("&");
|
|
|
this.job = decodeURI(vars[0].split("=")[1]).replace(/c%23/, "c#");
|
|
|
+ this.job = decodeURI(vars[0].split("=")[1]).replace(/c%24*/, "c++");
|
|
|
this.city = decodeURI(vars[1].split("=")[1]);
|
|
|
let params = {
|
|
|
job:this.job,
|
|
|
@@ -162,8 +163,6 @@
|
|
|
const sortJob = this.jobList;
|
|
|
const sortExperience = this.experience;
|
|
|
const allSalaryRange = this.salaryRange;
|
|
|
- console.log('-------------------------------');
|
|
|
- console.log(allSalaryRange);
|
|
|
const chart = new G2.Chart({
|
|
|
container: 'range-chart',
|
|
|
forceFit: true,
|
|
|
@@ -250,245 +249,7 @@
|
|
|
chart2.render();
|
|
|
|
|
|
},
|
|
|
- getRangeChart() {
|
|
|
- const data = [{
|
|
|
- item: '事例一',
|
|
|
- count: 40,
|
|
|
- percent: 0.4
|
|
|
- }, {
|
|
|
- item: '事例二',
|
|
|
- count: 21,
|
|
|
- percent: 0.21
|
|
|
- }, {
|
|
|
- item: '事例三',
|
|
|
- count: 17,
|
|
|
- percent: 0.17
|
|
|
- }, {
|
|
|
- item: '事例四',
|
|
|
- count: 13,
|
|
|
- percent: 0.13
|
|
|
- }, {
|
|
|
- item: '事例五',
|
|
|
- count: 9,
|
|
|
- percent: 0.09
|
|
|
- }];
|
|
|
- const chart = new G2.Chart({
|
|
|
- container: 'range-chart',
|
|
|
- forceFit: true,
|
|
|
- height: 300
|
|
|
- });
|
|
|
- chart.source(data, {
|
|
|
- percent: {
|
|
|
- formatter: function formatter(val) {
|
|
|
- val = val * 100 + '%';
|
|
|
- return val;
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- chart.coord('theta', {
|
|
|
- radius: 0.75
|
|
|
- });
|
|
|
- chart.tooltip({
|
|
|
- showTitle: false,
|
|
|
- itemTpl: '<li><span style="background-color:{color};" class="g2-tooltip-marker"></span>{name}: {value}</li>'
|
|
|
- });
|
|
|
- chart.intervalStack().position('percent').color('item').label('percent', {
|
|
|
- formatter: function formatter(val, item) {
|
|
|
- return item.point.item + ': ' + val;
|
|
|
- }
|
|
|
- }).tooltip('item*percent', function(item, percent) {
|
|
|
- percent = percent * 100 + '%';
|
|
|
- return {
|
|
|
- name: item,
|
|
|
- value: percent
|
|
|
- };
|
|
|
- }).style({
|
|
|
- lineWidth: 1,
|
|
|
- stroke: '#fff'
|
|
|
- });
|
|
|
- chart.render();
|
|
|
- },
|
|
|
- getIndustryChart() {
|
|
|
- const data = [{
|
|
|
- industry: '行业一',
|
|
|
- salary: 23000
|
|
|
- }, {
|
|
|
- industry: '行业二',
|
|
|
- salary: 18000
|
|
|
- }, {
|
|
|
- industry: '行业三',
|
|
|
- salary: 15000
|
|
|
- }, {
|
|
|
- industry: '行业四',
|
|
|
- salary: 13000
|
|
|
- }, {
|
|
|
- industry: '行业五',
|
|
|
- salary: 16000
|
|
|
- }];
|
|
|
- const chart = new G2.Chart({
|
|
|
- container: 'industry-chart',
|
|
|
- forceFit: true,
|
|
|
- height: 300
|
|
|
- });
|
|
|
- chart.source(data);
|
|
|
- chart.scale('salary', {
|
|
|
- min: 0
|
|
|
- });
|
|
|
- chart.scale('industry', {
|
|
|
- range: [0, 1]
|
|
|
- });
|
|
|
- chart.tooltip({
|
|
|
- crosshairs: {
|
|
|
- type: 'line'
|
|
|
- }
|
|
|
- });
|
|
|
- chart.line().position('industry*salary');
|
|
|
- chart.point().position('industry*salary').size(4).shape('circle').style({
|
|
|
- stroke: '#fff',
|
|
|
- lineWidth: 1
|
|
|
- });
|
|
|
- chart.render();
|
|
|
- },
|
|
|
- getExperienceChart() {
|
|
|
- const data = [{
|
|
|
- experience: '第一年',
|
|
|
- salary: 7887
|
|
|
- }, {
|
|
|
- experience: '第二年',
|
|
|
- salary: 9014
|
|
|
- }, {
|
|
|
- experience: '第三年',
|
|
|
- salary: 12394
|
|
|
- }, {
|
|
|
- experience: '第四年',
|
|
|
- salary: 13098
|
|
|
- }, {
|
|
|
- experience: '第五年',
|
|
|
- salary: 29295
|
|
|
- }];
|
|
|
- const chart = new G2.Chart({
|
|
|
- container: 'experience-chart',
|
|
|
- forceFit: true,
|
|
|
- height: 300
|
|
|
- });
|
|
|
- chart.source(data);
|
|
|
- chart.scale('salary', {
|
|
|
- min: 0
|
|
|
- });
|
|
|
- chart.scale('experience', {
|
|
|
- range: [0, 1]
|
|
|
- });
|
|
|
- chart.tooltip({
|
|
|
- crosshairs: {
|
|
|
- type: 'line'
|
|
|
- }
|
|
|
- });
|
|
|
- chart.line().position('experience*salary');
|
|
|
- chart.point().position('experience*salary').size(4).shape('circle').style({
|
|
|
- stroke: '#fff',
|
|
|
- lineWidth: 1
|
|
|
- });
|
|
|
- chart.render();
|
|
|
- },
|
|
|
- // getEducationChart() {
|
|
|
- // const data = [{
|
|
|
- // education: '高中',
|
|
|
- // salary: 7887
|
|
|
- // }, {
|
|
|
- // education: '大专',
|
|
|
- // salary: 9014
|
|
|
- // }, {
|
|
|
- // education: '本科',
|
|
|
- // salary: 12394
|
|
|
- // }, {
|
|
|
- // education: '硕士',
|
|
|
- // salary: 13098
|
|
|
- // }, {
|
|
|
- // education: '博士',
|
|
|
- // salary: 29295
|
|
|
- // }];
|
|
|
- // const chart = new G2.Chart({
|
|
|
- // container: 'education-chart',
|
|
|
- // forceFit: true,
|
|
|
- // height: 300
|
|
|
- // });
|
|
|
- // chart.source(data);
|
|
|
- // chart.scale('salary', {
|
|
|
- // min: 0
|
|
|
- // });
|
|
|
- // chart.scale('education', {
|
|
|
- // range: [0, 1]
|
|
|
- // });
|
|
|
- // chart.tooltip({
|
|
|
- // crosshairs: {
|
|
|
- // type: 'line'
|
|
|
- // }
|
|
|
- // });
|
|
|
- // chart.line().position('education*salary');
|
|
|
- // chart.point().position('education*salary').size(4).shape('circle').style({
|
|
|
- // stroke: '#fff',
|
|
|
- // lineWidth: 1
|
|
|
- // });
|
|
|
- // chart.render();
|
|
|
- // },
|
|
|
- // getCityChart() {
|
|
|
- // const data = [
|
|
|
- // {
|
|
|
- // city: '北京',
|
|
|
- // salary: 23000
|
|
|
- // }, {
|
|
|
- // city: '上海',
|
|
|
- // salary: 15000
|
|
|
- // }, {
|
|
|
- // city: '深圳',
|
|
|
- // salary: 18000
|
|
|
- // }, {
|
|
|
- // city: '杭州',
|
|
|
- // salary: 13000
|
|
|
- // }, {
|
|
|
- // city: '武汉',
|
|
|
- // salary: 16000
|
|
|
- // }, {
|
|
|
- // city: '长沙',
|
|
|
- // salary: 10000
|
|
|
- // }, {
|
|
|
- // city: '成都',
|
|
|
- // salary: 17000
|
|
|
- // }, {
|
|
|
- // city: '广州',
|
|
|
- // salary: 14000
|
|
|
- // }, {
|
|
|
- // city: '南京',
|
|
|
- // salary: 10000
|
|
|
- // }, {
|
|
|
- // city: '苏州',
|
|
|
- // salary: 24000
|
|
|
- // }
|
|
|
- // ]
|
|
|
- // const chart = new G2.Chart({
|
|
|
- // container: 'city-chart',
|
|
|
- // forceFit: true,
|
|
|
- // height: 300
|
|
|
- // });
|
|
|
- // chart.source(data);
|
|
|
- // chart.scale('salary', {
|
|
|
- // min: 0
|
|
|
- // });
|
|
|
- // chart.scale('city', {
|
|
|
- // range: [0, 1]
|
|
|
- // });
|
|
|
- // chart.tooltip({
|
|
|
- // crosshairs: {
|
|
|
- // type: 'line'
|
|
|
- // }
|
|
|
- // });
|
|
|
- // chart.line().position('city*salary');
|
|
|
- // chart.point().position('city*salary').size(4).shape('circle').style({
|
|
|
- // stroke: '#fff',
|
|
|
- // lineWidth: 1
|
|
|
- // });
|
|
|
- // chart.render();
|
|
|
- // }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
</script>
|