xiejun
2023-12-07 05d45bd440ffc92e14e6c8728ac8956a0488c0ab
Source/UBCS-WEB/src/views/statistic/statisticPage.vue
@@ -13,11 +13,12 @@
      top="-50px"
    >
      <el-table
        ref="table"
        :data="tableData"
        border
        style="width: 100%"
        @selection-change="selectChange"
       >
      >
        <el-table-column
          type="selection"
          width="55">
@@ -47,11 +48,15 @@
  </span>
    </el-dialog>
    <!--    echarts组件-->
    <div>
      <lineChart v-for="(item,index) in lineList" :key="index" :chartName="item.menuName" :lineData="item.menuData"></lineChart>
            <pieChart v-for="(item,index) in pieList" :key="index" :pieData="item.menuData" :chartName="item.menuName"></pieChart>
      <ColumnarChart v-for="(item,index) in columnarList" :key="index" :chartName="item.menuName" :columnarData="item.menuData"></ColumnarChart>
      <mixCart v-for="(item,index) in mixList" :key="index" :chartName="item.menuName" :mixData="item.menuData"></mixCart>
    <div style="margin-top: 15px;padding-bottom: 35px">
      <lineChart v-for="(item,index) in lineList" :key="index" :chartName="item.menuName"
                 :lineData="item.menuData"></lineChart>
      <pieChart v-for="(item,index) in pieList" :key="index" :chartName="item.menuName"
                :pieData="item.menuData"></pieChart>
      <ColumnarChart v-for="(item,index) in columnarList" :key="index" :chartName="item.menuName"
                     :columnarData="item.menuData"></ColumnarChart>
      <mixCart v-for="(item,index) in mixList" :key="index" :chartName="item.menuName"
               :mixData="item.menuData"></mixCart>
    </div>
  </div>
</template>
@@ -61,6 +66,8 @@
import pieChart from "../../components/StatisticsComponent/pieChart"
import ColumnarChart from "../../components/StatisticsComponent/ColumnarChart"
import mixCart from "../../components/StatisticsComponent/mixCart"
import {getStatisticAnalysis} from "@/api/statistic/chart"
import {getList} from "@/api/system/statistic";
export default {
  components: {
@@ -72,6 +79,8 @@
  name: "statisticPage",
  data() {
    return {
      menuList:[],
      dataKeyList: [],
      addVisible: false,
      chartName: "",
      lineList: [],
@@ -79,99 +88,19 @@
      columnarList: [],
      mixList: [],
      selectData: [],
      tableData: [
        {
          menuName: "工艺文件",
          codeType: "1",
          menuData: [
            [222, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234],
            [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80],
          ]
        },
        {
          menuName: "测试sc",
          codeType: null,
          menuData: [
            [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234],
            [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80],
          ]
        },
        {
          menuName: "产品型号",
          codeType: null,
          menuData: [
            [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234],
            [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80],
          ]
        },
        {
          menuName: "固定资产",
          codeType: null,
          menuData: [
            [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234],
            [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80],
          ]
        },
        {
          menuName: "李航主数据",
          codeType: null,
          menuData: [
            [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234],
            [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80],
          ]
        },
        {
          menuName: "Part",
          codeType: null,
          menuData: [
            [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234],
            [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80],
          ]
        },
        {
          menuName: "人员主数据",
          codeType: null,
          menuData: [
            [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234],
            [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80],
          ]
        },
        {
          menuName: "人员",
          codeType: null,
          menuData: [
            [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234],
            [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80],
          ]
        },
        {
          menuName: "标准",
          codeType: null,
          menuData: [
            [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234],
            [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80],
          ]
        },
        {
          menuName: "物品主数据",
          codeType: null,
          menuData: [
            [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234],
            [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80],
          ]
        },
        {
          menuName: "型号",
          codeType: null,
          menuData: [
            [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234],
            [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80],
          ]
        }
      ]
      tableData: []
    }
  },
  created() {
    this.getMasterList()
  },
  methods: {
    getMasterList() {
      const userId = localStorage.getItem('userId');
      getList({userId: userId}).then(res => {
        this.tableData = res.data.data;
      })
    },
    //新增
    addHandler() {
      this.addVisible = true;
@@ -186,7 +115,50 @@
        this.$message.warning('请至少选择一条数据!');
        return;
      }
      let codeStatus = this.selectData.every(key => key.codeType)
      if (!codeStatus) {
        this.$message.warning("请检查已勾选数据类型是否为空!");
        return;
      }
      this.dataKeyList = this.selectData.map(obj => obj.code)
      const btmName = this.dataKeyList.join(",");
      if (btmName) {
        // this.menuList=[
        //   {
        //     menuData: [
        //       [0, 0, 0, 0, 0, 0, 4, 9, 12, 12, 12, 12],
        //       [0, 0, 0, 0, 0, 0, 4, 5, 3, 0, 0, 0]
        //     ],
        //     code:1
        //   },
        //   {
        //     menuData: [
        //       [0, 0, 0, 1, 1, 1, 1, 1, 1, 29, 5315, 5315],
        //       [0, 0, 0, 1, 0, 0, 0, 0, 0, 28, 5286, 0]
        //     ],
        //     code:2
        //   },
        //   {
        //     menuData: [
        //       [0, 58, 60, 61, 75, 84, 145, 162, 166, 177, 186, 186],
        //       [0, 58, 2, 1, 14, 9, 61, 17, 4, 11, 9, 0]
        //     ],
        //     code:3
        //   }
        // ]
        // this.nextSave();
        // this.$message.success('保存成功')
        getStatisticAnalysis({btmNames: btmName}).then(res => {
          this.menuList = res.data.data;
          this.nextSave();
          this.$message.success('保存成功')
        });
      }else {
        this.$message.warning('请选择数据!')
      }
    },
    nextSave() {
      const typeList = {
        "0": "lineList",
        "1": "pieList",
@@ -195,32 +167,29 @@
      };
      let hasValidData = false; // 添加一个标志来记录是否有有效的选择数据
      let codeStatus = this.selectData.every(key => key.codeType)
      if (!codeStatus) {
        this.$message.warning("请检查已勾选数据类型是否为空!");
        return;
      }
      this.selectData.forEach(item => {
      this.selectData.forEach((item, index) => {
        item.menuData = this.menuList[index].menuData;
        const dataKey = typeList[item.codeType];
        if (dataKey) {
          this[dataKey].push(item);
          hasValidData = true; // 标记有有效数据被添加
          hasValidData = true;
        }
      });
      if (hasValidData) {
        // this.$refs.table.clearSelection();
        this.addVisible = false;
      }
    },
    //表格多选
    selectChange(selection, row) {
      // console.log(selection, row)
    selectChange(selection) {
      this.selectData = selection;
    },
  }
}
</script>
<style scoped>
<style lang="scss" scoped>
</style>