|
@@ -344,6 +344,9 @@ const setSplineOpt=(data)=>{
|
|
|
//处理数据列name
|
|
|
let temName= setDyncmicSerieName(item,dynamic_arr)
|
|
|
|
|
|
+ //预测指标配置
|
|
|
+ let predict_params = item.EdbInfoCategoryType === 1 ? getPredictParams(item) : {};
|
|
|
+
|
|
|
let seriesItemObj={
|
|
|
data:[],
|
|
|
dataGrouping:{
|
|
@@ -356,7 +359,8 @@ const setSplineOpt=(data)=>{
|
|
|
lineWidth: Number(item.ChartWidth),
|
|
|
visible:true,
|
|
|
LatestDate:item.LatestDate,
|
|
|
- LatestValue:item.LatestValue
|
|
|
+ LatestValue:item.LatestValue,
|
|
|
+ ...predict_params
|
|
|
}
|
|
|
item.DataList = item.DataList || [];
|
|
|
for (let i of item.DataList) {
|
|
@@ -372,9 +376,6 @@ const setSplineOpt=(data)=>{
|
|
|
temYRightArr.push(item)
|
|
|
}
|
|
|
|
|
|
- //轴数值的最大长度 用于计算单位标题相对与轴的偏移计算 没啥卵用需求如此 只为了显示美观 无逻辑用处
|
|
|
- let MaxlabelLen = getLabelMaxLen(item.DataList) + item.Unit.length
|
|
|
-
|
|
|
let yItem={
|
|
|
...basicYAxis,
|
|
|
IsAxis:item.IsAxis,
|
|
@@ -541,6 +542,9 @@ const setStackOrCombinChart = data => {
|
|
|
//处理数据列name
|
|
|
let temName= setDyncmicSerieName(item,dynamic_arr)
|
|
|
|
|
|
+ //预测指标配置
|
|
|
+ let predict_params = item.EdbInfoCategoryType === 1 ? getPredictParams(item) : {};
|
|
|
+
|
|
|
let seriesItemObj={
|
|
|
data:[],
|
|
|
dataGrouping:{
|
|
@@ -554,7 +558,8 @@ const setStackOrCombinChart = data => {
|
|
|
fillColor: (resData.value.ChartInfo.ChartType === 3 || (resData.value.ChartInfo.ChartType === 6 && item.ChartStyle === 'areaspline')) ? item.ChartColor : undefined,
|
|
|
visible:true,
|
|
|
LatestDate:item.LatestDate,
|
|
|
- LatestValue:item.LatestValue
|
|
|
+ LatestValue:item.LatestValue,
|
|
|
+ ...predict_params
|
|
|
}
|
|
|
item.DataList = item.DataList || [];
|
|
|
for (let i of item.DataList) {
|
|
@@ -570,9 +575,6 @@ const setStackOrCombinChart = data => {
|
|
|
temYRightArr.push(item)
|
|
|
}
|
|
|
|
|
|
- //轴数值的最大长度 用于计算单位标题相对与轴的偏移计算 没啥卵用需求如此 只为了显示美观 无逻辑用处
|
|
|
- let MaxlabelLen = getLabelMaxLen(item.DataList) + item.Unit.length
|
|
|
-
|
|
|
let yItem={
|
|
|
...basicYAxis,
|
|
|
IsAxis:item.IsAxis,
|
|
@@ -704,14 +706,6 @@ const setDyncmicSerieName = (item,dynamic_arr) => {
|
|
|
return temName
|
|
|
}
|
|
|
|
|
|
-/* 获取轴数值的最大长度 通过真实数据推测而已 也不准确 */
|
|
|
-const getLabelMaxLen = (data)=> {
|
|
|
- let value_arr = data.map(_ => String(Math.abs(_.Value)));
|
|
|
- let max_len_value = value_arr.reduce((a,b)=> (a.length > b.length ? a : b))
|
|
|
- let num = Number(max_len_value) > 1 ? String(parseInt(Number(max_len_value))) : max_len_value
|
|
|
- return num.length
|
|
|
-}
|
|
|
-
|
|
|
/* 指标顺序调整 IsAxis: 0右轴 1左轴 2右2*/
|
|
|
const changeEdbOrder = (data) => {
|
|
|
// 左轴指标
|
|
@@ -736,6 +730,9 @@ const setSeasonOpt=(data)=>{
|
|
|
// 公历
|
|
|
if(calendarType.value==='公历'){
|
|
|
data.DataList.forEach((item,index)=>{
|
|
|
+ //预测指标配置
|
|
|
+ let predict_params = data.EdbInfoCategoryType === 1 ? getSeasonPredictParams(item.CuttingDataTimestamp) : {};
|
|
|
+
|
|
|
let seriesItem={
|
|
|
data:[],
|
|
|
dataGrouping:{
|
|
@@ -745,7 +742,8 @@ const setSeasonOpt=(data)=>{
|
|
|
yAxis:index,
|
|
|
name:item.Year,
|
|
|
color:colorsArr.slice(-data.DataList.length)[index],
|
|
|
- visible:true
|
|
|
+ visible:true,
|
|
|
+ ...predict_params
|
|
|
}
|
|
|
item.DataList=item.DataList||[]
|
|
|
for(let i of item.DataList){
|
|
@@ -799,6 +797,9 @@ const setSeasonOpt=(data)=>{
|
|
|
let filterArr=data.DataList.List&&data.DataList.List.slice(1,data.DataList.List.length)||[]
|
|
|
console.log('aaa',filterArr);
|
|
|
filterArr.forEach((item,index)=>{
|
|
|
+ //预测指标配置
|
|
|
+ let predict_params = data.EdbInfoCategoryType === 1 ? getSeasonPredictParams(item.CuttingDataTimestamp) : {};
|
|
|
+
|
|
|
let seriesItem={
|
|
|
data:[],
|
|
|
dataGrouping:{
|
|
@@ -808,7 +809,8 @@ const setSeasonOpt=(data)=>{
|
|
|
yAxis:index,
|
|
|
name:item.Year,
|
|
|
color:colorsArr.slice(-filterArr.length)[index],
|
|
|
- visible:true
|
|
|
+ visible:true,
|
|
|
+ ...predict_params
|
|
|
}
|
|
|
let temarr=item.Items||[]
|
|
|
for(let i of temarr){
|
|
@@ -941,6 +943,33 @@ const setSeasonOpt=(data)=>{
|
|
|
|
|
|
}
|
|
|
|
|
|
+/* 预测配置 分区 */
|
|
|
+const getPredictParams = ({LatestDate,PredictChartColor}) => {
|
|
|
+ return {
|
|
|
+ zoneAxis: 'x',
|
|
|
+ zones: [{
|
|
|
+ value: new Date(LatestDate).getTime()+1
|
|
|
+ }, {
|
|
|
+ dashStyle: 'ShortDot',
|
|
|
+ color: PredictChartColor
|
|
|
+ }]
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/* 季节图预测数据 年份=分割点年份做分割 年份>分割点年份全为预测 */
|
|
|
+const getSeasonPredictParams = (timestamp) => {
|
|
|
+ return timestamp
|
|
|
+ ? {
|
|
|
+ zoneAxis: 'x',
|
|
|
+ zones: [{
|
|
|
+ value: new Date(timestamp).getTime()+1
|
|
|
+ }, {
|
|
|
+ dashStyle: 'ShortDot',
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ : {}
|
|
|
+}
|
|
|
+
|
|
|
/* 散点图 第一个指标值为x轴 第二个指标为y轴*/
|
|
|
const setScatterOptions = (dataList) => {
|
|
|
const { ChartInfo } = resData.value;
|