|
|
@@ -18,6 +18,7 @@ const state = { |
|
|
|
efficiency: {}, |
|
|
|
}, |
|
|
|
home: { |
|
|
|
/** 主页状态 */ |
|
|
|
ftoInvest: null, |
|
|
|
chipInvest: null, |
|
|
|
chipOutput: null, |
|
|
@@ -65,13 +66,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; |
|
|
@@ -88,8 +89,8 @@ export default { |
|
|
|
actions, |
|
|
|
}; |
|
|
|
|
|
|
|
// utils function |
|
|
|
function splitCurrentAndPrevious(factoryListResponse, targetListResponse) { |
|
|
|
// 初始数据 |
|
|
|
const { chipInvest, ftoInvest, chipOutput, stdOutput, bipvOutput } = init(); |
|
|
|
if (factoryListResponse) { |
|
|
|
for (const factory of factoryListResponse) { |
|
|
@@ -148,6 +149,10 @@ function getFactoryTargetValue(targetList, factoryId) { |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* @returns 初始化状态值 |
|
|
|
*/ |
|
|
|
function init() { |
|
|
|
const t_ = { |
|
|
|
current: Array(7).fill(0), |
|
|
@@ -168,11 +173,11 @@ function init() { |
|
|
|
const bipvOutput = deepClone(chipOutput); |
|
|
|
|
|
|
|
return { |
|
|
|
chipInvest, |
|
|
|
ftoInvest, |
|
|
|
chipOutput, |
|
|
|
stdOutput, |
|
|
|
bipvOutput, |
|
|
|
chipInvest, // 芯片投入 |
|
|
|
ftoInvest, // FTO投入 |
|
|
|
chipOutput, // 芯片产出 |
|
|
|
stdOutput, // 标准组件产出 |
|
|
|
bipvOutput, // BIPV产出 |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
@@ -210,13 +215,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 +249,36 @@ 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; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* @param {*} period 日周月年1,2,3,4 |
|
|
|
* @param {*} target 是否获取目标数据 |
|
|
|
* @returns |
|
|
|
*/ |
|
|
|
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 +304,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, |
|
|
|
}; |
|
|
|
} |