update 接口结构
This commit is contained in:
		@@ -65,13 +65,13 @@ const actions = {
 | 
			
		||||
  async initCopilot({ commit }, { period, source }) {
 | 
			
		||||
    const fetcher = {
 | 
			
		||||
      yield: getCopilotYield,
 | 
			
		||||
      energy: null,
 | 
			
		||||
      efficiency: null,
 | 
			
		||||
      energy: getCopilotEnergy,
 | 
			
		||||
      efficiency: getCopilotEfficiency,
 | 
			
		||||
    }[source];
 | 
			
		||||
    // 获取产量数据
 | 
			
		||||
    let { data: factoryList, type } = await fetcher(period);
 | 
			
		||||
    let targetList = null;
 | 
			
		||||
    if (source === "yield") {
 | 
			
		||||
    if (source === "yield" || source === "efficiency") {
 | 
			
		||||
      // 获取目标数据
 | 
			
		||||
      let { data } = await fetcher(period, true);
 | 
			
		||||
      targetList = data;
 | 
			
		||||
@@ -210,13 +210,33 @@ async function getHomeTarget() {
 | 
			
		||||
  return null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function fetcher(type = "yield", params) {
 | 
			
		||||
function getUrl(copilot_module) {
 | 
			
		||||
  let url = {
 | 
			
		||||
    // 对比数据的 URL
 | 
			
		||||
    comparison: "",
 | 
			
		||||
    // 目标数据的 URL
 | 
			
		||||
    target: "",
 | 
			
		||||
  };
 | 
			
		||||
  switch (copilot_module) {
 | 
			
		||||
    case "yield":
 | 
			
		||||
      url.comparison = "/ip/prod-output/query-by-date";
 | 
			
		||||
      url.target = "/ip/prod-target/query-by-date";
 | 
			
		||||
      break;
 | 
			
		||||
    case "energy":
 | 
			
		||||
      break;
 | 
			
		||||
    case "efficiency":
 | 
			
		||||
      url.comparison = "/ip/prod-output/query-Rate-List";
 | 
			
		||||
      url.target = "/ip/prod-target/query-rate-target";
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return url;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function doFetch(copilot_module = "yield", fetch_target, params) {
 | 
			
		||||
  const url = getUrl(copilot_module);
 | 
			
		||||
  const { code, data } = await axios.post(
 | 
			
		||||
    type == "yield"
 | 
			
		||||
      ? // 产量 数据
 | 
			
		||||
        "/ip/prod-output/query-by-date"
 | 
			
		||||
      : // 目标数据
 | 
			
		||||
        "/ip/prod-target/query-by-date",
 | 
			
		||||
    fetch_target ? url.target : url.comparison,
 | 
			
		||||
    {
 | 
			
		||||
      ...params,
 | 
			
		||||
    }
 | 
			
		||||
@@ -224,17 +244,30 @@ async function fetcher(type = "yield", params) {
 | 
			
		||||
  if (code == 0) {
 | 
			
		||||
    return data;
 | 
			
		||||
  }
 | 
			
		||||
  console.warn("getCopilotYield failed, code: ", code);
 | 
			
		||||
  console.warn("[doFetch] failed, code: ", code);
 | 
			
		||||
  return null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getCopilotYield(period, target = false) {
 | 
			
		||||
  return getCopilotData("yield", period, target);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getCopilotEnergy(period, target = false) {
 | 
			
		||||
  return getCopilotData("energy", period, target);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getCopilotEfficiency(period, target = false) {
 | 
			
		||||
  return getCopilotData("efficiency", period, target);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * @param {*} period 周期: 日周月年
 | 
			
		||||
 * @param {*} target 是否获取目标数据:默认 否
 | 
			
		||||
 * @returns
 | 
			
		||||
 */
 | 
			
		||||
async function getCopilotYield(period, target = false) {
 | 
			
		||||
async function getCopilotData(copilot_module, period, target = false) {
 | 
			
		||||
  if (!copilot_module) copilot_module = "yield";
 | 
			
		||||
  // 请求参数,直接一次性获取所有工厂
 | 
			
		||||
  let queryParams = {
 | 
			
		||||
    factorys: [],
 | 
			
		||||
@@ -260,7 +293,7 @@ async function getCopilotYield(period, target = false) {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return {
 | 
			
		||||
    data: await fetcher(target ? "target" : "yield", queryParams),
 | 
			
		||||
    type: "yield",
 | 
			
		||||
    data: await doFetch(copilot_module, target ? true : false, queryParams),
 | 
			
		||||
    type: copilot_module,
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -7,23 +7,41 @@
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="efficiency-copilot">
 | 
			
		||||
    <db-container title="芯片良率" icon="chip2"></db-container>
 | 
			
		||||
    <db-container title="标准组件良率" icon="std"></db-container>
 | 
			
		||||
    <db-container title="芯片OEE" icon="chip"></db-container>
 | 
			
		||||
    <db-container title="转化效率" icon="cube"></db-container>
 | 
			
		||||
    <Container title="芯片良率" icon="chip2"></Container>
 | 
			
		||||
    <Container title="标准组件良率" icon="std"></Container>
 | 
			
		||||
    <Container title="芯片OEE" icon="chip"></Container>
 | 
			
		||||
    <Container title="转化效率" icon="cube"></Container>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import Container from "../../dashboard/components/Container.vue";
 | 
			
		||||
import Container from "@/views/copilot/components/Container.vue";
 | 
			
		||||
export default {
 | 
			
		||||
  name: "EfficiencyCopilot",
 | 
			
		||||
  components: { DbContainer: Container },
 | 
			
		||||
  components: { Container },
 | 
			
		||||
  props: {
 | 
			
		||||
    period: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "日",
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {};
 | 
			
		||||
  },
 | 
			
		||||
  computed: {},
 | 
			
		||||
  methods: {},
 | 
			
		||||
  watch: {
 | 
			
		||||
    period: {
 | 
			
		||||
      handler(val) {
 | 
			
		||||
        val && this.fetchData(val);
 | 
			
		||||
      },
 | 
			
		||||
      immediate: true,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    fetchData(period = "日") {
 | 
			
		||||
      console.log(`效率驾驶舱,获取${period}数据`);
 | 
			
		||||
      this.$store.dispatch("copilot/initCopilot", { period, source: "efficiency" });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user