528071db by zhangmeng

看板

1 parent 0c42ffc8
......@@ -18,7 +18,7 @@
placeholder="全部基地"
size="small"
@change="handelSelect2">
<el-option v-for="val in list" :key="val.BASE" :label="val.BASE" :value="val.BASE"/>
<el-option v-for="val in list" :key="val.BASE" :label="val.BASEJC" :value="val.BASEJC"/>
</el-select>
</div>
<div class="itemBox">
......@@ -82,6 +82,8 @@ const type1 = ref(['1', '2'])
const list = ref([])
const set1 = ref([])
const set2 = ref([])
const set3 = ref([])
const s1 = ref([])
const s2 = ref([])
......@@ -114,6 +116,8 @@ async function handelGetYS006() {
const res = await getYS006()
list.value = res.data.baselist
set1.value = []
set2.value = []
set3.value = []
s1.value = new Array(12).fill(0)
s2.value = new Array(12).fill(0)
s3.value = new Array(12).fill(0)
......@@ -126,9 +130,24 @@ async function handelGetYS006() {
for (const v1 of list.value) {
set1.value.push({
value: v1.TOTAL,
name: v1.BASE
name: v1.BASEJC,
type: v1.BLOCK
})
type2.value.push(v1.BASE)
if (v1.BLOCK == '海上') {
set2.value.push({
value: v1.TOTAL,
name: v1.BASEJC,
type: v1.BLOCK
})
} else {
set3.value.push({
value: v1.TOTAL,
name: v1.BASEJC,
type: v1.BLOCK
})
}
type2.value.push(v1.BASEJC)
for (const v2 of v1.list) {
const i2 = v2.MONTH - 1; // 转为 0~11 的索引
h1.value[i2] += v2.YSDSK / 10000 || 0;
......@@ -162,7 +181,7 @@ async function handelGetYS006() {
// }
//
setA(set1.value)
setA(set1.value, set2.value, set3.value)
setB(
type1.value.includes('1') ? s1.value : [],
type1.value.includes('1') ? s2.value : [],
......@@ -182,7 +201,7 @@ function handelSelect1() {
}
function handelSelect2() {
let arr = type2.value.map(val => list.value.find(item => item.BASE === val))
let arr = type2.value.map(val => list.value.find(item => item.BASEJC === val))
for (const v1 of arr) {
for (const v2 of v1.list) {
const i2 = v2.MONTH - 1; // 转为 0~11 的索引
......@@ -278,7 +297,7 @@ const getBdata = () => {
})
}
const setA = (arr) => {
const setA = (arr, arr2, arr3) => {
chartA = echarts.init(zhuRef.value)
const option = {
tooltip: {
......@@ -292,28 +311,54 @@ const setA = (arr) => {
fontSize: 12, // 文字大小
}
},
legend: {
orient: 'vertical',
right: 20,
top: '12%',
bottom: 20,
textStyle: {
color: '#FFF'
},
formatter: function (name) {
let value = 0
for (let i = 0; i < option.series[2].data?.length; i++) {
if (option.series[2].data[i].name === name) {
value = option.series[2].data[i].value;
break;
legend: [
{
orient: 'vertical',
data: arr2,
right: '5%',
top: '12%',
bottom: 20,
textStyle: {
color: '#FFF'
},
formatter: function (name) {
let value = 0
for (let i = 0; i < option.series[2].data?.length; i++) {
if (option.series[2].data[i].name === name) {
value = option.series[2].data[i].value;
break;
}
}
}
// 计算百分比
let num1 = ((value / option.series[2].data.reduce((a, b) => a + b.value, 0)) * 100).toFixed(2);
let num2 = num1 > 0 ? num1 + '%' : 0 + '%'
return name + ' ' + num2;
// 计算百分比
let num1 = ((value / option.series[2].data.reduce((a, b) => a + b.value, 0)) * 100).toFixed(2);
let num2 = num1 > 0 ? num1 + '%' : 0 + '%'
return name + ' ' + num2;
},
},
},
{
orient: 'vertical',
data: arr3,
right: '30%',
top: '12%',
bottom: 20,
textStyle: {
color: '#FFF'
},
formatter: function (name) {
let value = 0
for (let i = 0; i < option.series[2].data?.length; i++) {
if (option.series[2].data[i].name === name) {
value = option.series[2].data[i].value;
break;
}
}
// 计算百分比
let num1 = ((value / option.series[2].data.reduce((a, b) => a + b.value, 0)) * 100).toFixed(2);
let num2 = num1 > 0 ? num1 + '%' : 0 + '%'
return name + ' ' + num2;
},
}
],
series: [
{
type: 'pie',
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!