spring
11 小时以前 0b8b77e3320c45260f28f92dadf9c66515d75328
fix: 样式调整
已修改2个文件
97 ■■■■■ 文件已修改
src/api/viewIndex.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/dataDashboard/components/basic/left-top.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/viewIndex.js
@@ -114,12 +114,3 @@
        method: 'get'
    })
}
// 产品大类分布
// /home/productCategoryDistribution
export const productCategoryDistribution = () => {
    return request({
        url: '/home/productCategoryDistribution',
        method: 'get'
    })
}
src/views/reportAnalysis/dataDashboard/components/basic/left-top.vue
@@ -3,7 +3,6 @@
    <PanelHeader title="产品大类" />
    <div class="panel-item-customers">
      <div style="height: 70%">
      <div style="height: 100%">
        <Echarts
          ref="chart"
          :chartStyle="chartStyle"
@@ -28,7 +27,6 @@
// 数据列表(来自接口)
const dataList = ref([])
import { productCategoryDistribution } from '@/api/viewIndex.js'
// 颜色列表
const landColors = ['#26FFCB', '#24CBFF', '#35FBF4', '#2651FF', '#D1E4F5', '#5782F7', '#2F67EF', '#82BAFF']
@@ -47,29 +45,6 @@
// 图例配置(右侧竖排)
const landLegend = {
// 在制品工序柱状图配置
const workInProcessXAxis = ref([
  {
    type: 'category',
    axisTick: { show: false },
    axisLabel: {
      color: '#B8C8E0',
      interval: 0,
      rotate: 25
    },
    data: [],
  },
])
const workInProcessYAxis = [
  {
    type: 'value',
    axisLabel: { color: '#B8C8E0' },
    name: '',
  },
]
const workInProcessBarLegend = {
  show: false,
  icon: 'circle',
  data: [],
@@ -139,33 +114,26 @@
        const dotKey = `dot${(params?.dataIndex || 0) % landColors.length}`
        const dot = `{${dotKey}|} `
        if (!children.length) return `${dot}{parent|${parentName} ${parentValue}}`
        // 用 marker 显示与扇区同色的小圆点,再显示父级名称,后面列出 children 的 name + value
        // 小圆点 + 父级 name + 父级 value,换行展示 children 的 name + value
        return [
          `${dot}{parent|${parentName} ${parentValue}}`,
          ...children.map((c) => `{child|${c.name} ${c.value || 0}}`),
          ...children.map((c) => `{child|${c.name}}`),
        ].join('\n')
      },
    },
    labelLine: {
      show: true,
      length: 40,
      length2: 40,
      length: 20,
      length2: 20,
      lineStyle: {
        color: '#B8C8E0',
      },
    name: '产品数量',
    type: 'bar',
    barWidth: 25,
    barGap: 0,
    emphasis: {
      focus: 'series',
    },
    itemStyle: {
      color: function (params) {
        return landColors[params.dataIndex % landColors.length]
      },
    },
    // 初始绑定为响应式数据源,后续通过接口填充
    data: dataList.value,
  },
  {
@@ -174,19 +142,6 @@
    radius: ['35%', '40%'],
    center: ['50%', '50%'],
    silent: true,
      color: {
        type: 'linear',
        x: 0,
        y: 0,
        x2: 0,
        y2: 1,
        colorStops: [
          { offset: 0, color: '#4EE4FF' },
          { offset: 1, color: '#00A4ED' },
        ],
      },
      borderRadius: [4, 4, 0, 0]
    },
    label: {
      show: false,
    },
@@ -203,7 +158,6 @@
const chartStyle = {
  width: '100%',
  height: '150%',
  height: '100%',
}
const loadData = async () => {
@@ -224,44 +178,10 @@
    landLegend.data = []
    landSeries.value[0].data = []
  }
const grid = {
  left: '3%',
  right: '4%',
  bottom: '15%',
  containLabel: true,
}
const tooltip = {
  trigger: 'axis',
  axisPointer: {
    type: 'shadow',
  },
  formatter: function (params) {
    let result = params[0].axisValueLabel + '<br/>'
    params.forEach((item) => {
      result += `<div style="color: #B8C8E0">${item.marker} ${item.seriesName}: ${item.value}</div>`
    })
    return result
  },
}
// 获取各产品大类分布
const getProductCategoryDistribution = () => {
  productCategoryDistribution()
    .then((res) => {
      if (res.code === 200 && res.data && res.data.items) {
        workInProcessXAxis.value[0].data = res.data.items.map(item => item.name)
        workInProcessBarSeries.value[0].data = res.data.items.map(item => parseInt(item.value))
      }
    })
    .catch((error) => {
      console.error('获取各产品大类分布失败:', error)
    })
}
onMounted(() => {
  loadData()
  getProductCategoryDistribution()
})
</script>