|
@@ -178,8 +178,6 @@ export default defineComponent({
|
|
|
let sameSideIndex = chartData.findIndex(
|
|
|
(i:IDataProps) => i.IsAxis === item.IsAxis
|
|
|
);
|
|
|
- //轴数值的最大长度 用于计算单位标题相对与轴的偏移计算 没啥卵用需求如此 只为了显示美观 无逻辑用处
|
|
|
- let MaxlabelLen = getLabelMaxLen(item.DataList) + item.Unit.length
|
|
|
|
|
|
//y轴
|
|
|
let textEn = item.Unit?item.UnitEn:''
|
|
@@ -229,13 +227,18 @@ export default defineComponent({
|
|
|
: `${item.EdbName}${dynamic_tag}`
|
|
|
let nameEn:String=item.EdbNameEn?`${item.EdbNameEn}${dynamic_tag_en}`:''
|
|
|
let name :String=language.value == 'ch'?nameCh:nameEn
|
|
|
+
|
|
|
+ //预测指标配置
|
|
|
+ let predict_params = item.EdbInfoCategoryType === 1 ? getPredictParams(item) : {};
|
|
|
+
|
|
|
let obj = {
|
|
|
data: [] as any[],
|
|
|
type: 'spline',
|
|
|
yAxis: sameSideIndex,
|
|
|
name,
|
|
|
color: item.ChartColor,
|
|
|
- lineWidth: Number(item.ChartWidth)
|
|
|
+ lineWidth: Number(item.ChartWidth),
|
|
|
+ ...predict_params
|
|
|
};
|
|
|
item.DataList = item.DataList || []
|
|
|
for (let i of item.DataList) {
|
|
@@ -352,9 +355,6 @@ export default defineComponent({
|
|
|
item.IsAxis = serie_yIndex === index ? item.IsAxis : chartData[serie_yIndex].IsAxis;
|
|
|
item.IsOrder = serie_yIndex === index ? item.IsOrder : chartData[serie_yIndex].IsOrder;
|
|
|
|
|
|
- //轴数值的最大长度 用于计算单位标题相对与轴的偏移计算 没啥卵用需求如此 只为了显示美观 无逻辑用处
|
|
|
- let MaxlabelLen = getLabelMaxLen(item.DataList) + item.Unit.length
|
|
|
-
|
|
|
//y轴
|
|
|
let textEn = item.Unit?item.UnitEn:''
|
|
|
let yItem = {
|
|
@@ -403,6 +403,10 @@ export default defineComponent({
|
|
|
: `${item.EdbName}${dynamic_tag}`
|
|
|
let nameEn:String=item.EdbNameEn?`${item.EdbNameEn}${dynamic_tag_en}`:''
|
|
|
let name :String=language.value == 'ch'?nameCh:nameEn
|
|
|
+
|
|
|
+ //预测指标配置
|
|
|
+ let predict_params = item.EdbInfoCategoryType === 1 ? getPredictParams(item) : {};
|
|
|
+
|
|
|
let obj = {
|
|
|
data: [] as any[],
|
|
|
type: chartStyle || item.ChartStyle,
|
|
@@ -411,8 +415,8 @@ export default defineComponent({
|
|
|
color: item.ChartColor,
|
|
|
lineWidth: (chartInfo.ChartType === 6 && item.ChartStyle === 'spline') ? Number(item.ChartWidth) : 0,
|
|
|
fillColor: (chartInfo.ChartType === 3 || (chartInfo.ChartType === 6 && item.ChartStyle === 'areaspline')) ? item.ChartColor : undefined,
|
|
|
- zIndex: (chartInfo.ChartType === 6 && item.ChartStyle === 'spline') ? 1 : 0 //防止组合图曲线被遮住
|
|
|
-
|
|
|
+ zIndex: (chartInfo.ChartType === 6 && item.ChartStyle === 'spline') ? 1 : 0, //防止组合图曲线被遮住
|
|
|
+ ...predict_params
|
|
|
};
|
|
|
item.DataList = item.DataList || []
|
|
|
for (let i of item.DataList) {
|
|
@@ -476,11 +480,15 @@ export default defineComponent({
|
|
|
/* 公历数据处理 处理数据列 y轴 */
|
|
|
if (state.chartInfo.Calendar === '公历')
|
|
|
for (let j of chartData.DataList) {
|
|
|
+ //预测指标配置
|
|
|
+ let predict_params = chartData.EdbInfoCategoryType === 1 ? getSeasonPredictParams(j.CuttingDataTimestamp) : {};
|
|
|
+
|
|
|
let serie_item = {
|
|
|
data: [] as any[],
|
|
|
type: chartData.ChartStyle,
|
|
|
yAxis: 0,
|
|
|
name: j.Year,
|
|
|
+ ...predict_params
|
|
|
};
|
|
|
const data_array = _.cloneDeep(j.DataList);
|
|
|
data_array &&
|
|
@@ -504,7 +512,7 @@ export default defineComponent({
|
|
|
x: -5,
|
|
|
},
|
|
|
title: {
|
|
|
- text:language.value=='ch'?`${chartData.Unit}`:textEn,
|
|
|
+ text:language.value=='ch'?`${chartData.Unit}`:textEn,
|
|
|
// text: null,
|
|
|
align: 'high',
|
|
|
rotation: 0,
|
|
@@ -528,11 +536,15 @@ export default defineComponent({
|
|
|
: [];
|
|
|
if (state.chartInfo.Calendar === '农历')
|
|
|
for (let j of filterArr) {
|
|
|
+ //预测指标配置
|
|
|
+ let predict_params = chartData.EdbInfoCategoryType === 1 ? getSeasonPredictParams(j.CuttingDataTimestamp) : {};
|
|
|
+
|
|
|
let serie_item = {
|
|
|
data: [] as any[],
|
|
|
type: chartData.ChartStyle,
|
|
|
yAxis: 0,
|
|
|
name: j.Year,
|
|
|
+ ...predict_params
|
|
|
};
|
|
|
const data_array = _.cloneDeep(j.Items);
|
|
|
data_array &&
|
|
@@ -814,6 +826,33 @@ export default defineComponent({
|
|
|
return (axis_tag || order_tag || edb_tag) ? `(${axis_tag}${order_tag}${edb_tag})` : ''
|
|
|
}
|
|
|
|
|
|
+ /* 预测配置 分区 */
|
|
|
+ const getPredictParams = ({LatestDate,PredictChartColor}: IDataProps) => {
|
|
|
+ return {
|
|
|
+ zoneAxis: 'x',
|
|
|
+ zones: [{
|
|
|
+ value: new Date(LatestDate).getTime()+1
|
|
|
+ }, {
|
|
|
+ dashStyle: 'ShortDot',
|
|
|
+ color: PredictChartColor
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 季节图预测数据 年份=分割点年份做分割 年份>分割点年份全为预测 */
|
|
|
+ const getSeasonPredictParams = (timestamp: number) => {
|
|
|
+ return timestamp
|
|
|
+ ? {
|
|
|
+ zoneAxis: 'x',
|
|
|
+ zones: [{
|
|
|
+ value: new Date(timestamp).getTime()+1
|
|
|
+ }, {
|
|
|
+ dashStyle: 'ShortDot',
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ : {}
|
|
|
+ }
|
|
|
+
|
|
|
/* 复制标题 */
|
|
|
const copyText = () => {
|
|
|
const { chartInfo } = state;
|