Browse Source

跨品种分析上下限取chartInfo里同时兼容历史空的情况

Karsa 1 year ago
parent
commit
3ac08d80b6
3 changed files with 71 additions and 10 deletions
  1. 9 1
      src/api/crossVarietyChart.js
  2. 30 5
      src/hooks/chart/render.js
  3. 32 4
      src/views/myETA/ChartDetail.vue

+ 9 - 1
src/api/crossVarietyChart.js

@@ -60,7 +60,15 @@ export default {
      * @param {*} params  ChartInfoId
      * @param {*} params  ChartInfoId
      * @returns 
      * @returns 
      */
      */
-     chartLangOption: params => {
+    chartLangOption: params => {
       return get('/cross_variety/chart_info/relation',params)
       return get('/cross_variety/chart_info/relation',params)
     },
     },
+
+    /**
+     * 图表保存上下限
+     * @param {*} params  ChartInfoId
+     */
+    myETASaveChart: params => {
+      return post('/cross_variety/chart_info/save',params)
+    }
 }
 }

+ 30 - 5
src/hooks/chart/render.js

@@ -118,6 +118,16 @@ export function chartRender({data,renderId,lang='zh',changeLangIsCheck,showChart
     }else if([9].includes(data.ChartInfo.Source)){//统计频率
     }else if([9].includes(data.ChartInfo.Source)){//统计频率
         chartOpt=setStatisticFrequency(data);
         chartOpt=setStatisticFrequency(data);
     }else if(data.ChartInfo.Source===10) {
     }else if(data.ChartInfo.Source===10) {
+
+        /* 历史数据chartInfo里上下限全是空 兼容下历史数据不崩 */
+        axisLimitState.hasLeftAxis=true
+        axisLimitState.leftMin=data.ChartInfo.LeftMin?Number(data.ChartInfo.LeftMin):Number(data.DataResp.YMinValue)
+        axisLimitState.leftMax=data.ChartInfo.LeftMax?Number(data.ChartInfo.LeftMax):Number(data.DataResp.YMaxValue)
+        
+        axisLimitState.hasXAxis=true
+        axisLimitState.xMin= data.ChartInfo.XMin?Number(data.ChartInfo.XMin):Number(data.DataResp.XMinValue)
+        axisLimitState.xMax=data.ChartInfo.XMax?Number(data.ChartInfo.XMax):Number(data.DataResp.XMaxValue),
+
         chartOpt = setCrossVarietyChart(data)
         chartOpt = setCrossVarietyChart(data)
     }
     }
 
 
@@ -1976,6 +1986,8 @@ function setCrossVarietyChart({DataResp,EdbInfoList,ChartInfo}) {
 
 
     const { DataList,XName,YName,XNameEn,YNameEn,XMaxValue,XMinValue,YMaxValue,YMinValue } = DataResp;
     const { DataList,XName,YName,XNameEn,YNameEn,XMaxValue,XMinValue,YMaxValue,YMinValue } = DataResp;
 
 
+    const {leftMin,leftMax,xMin,xMax} = axisLimitState;
+
      //y轴
      //y轴
      let yAxis = {
      let yAxis = {
         ...basicYAxis,
         ...basicYAxis,
@@ -1995,8 +2007,8 @@ function setCrossVarietyChart({DataResp,EdbInfoList,ChartInfo}) {
         },
         },
         opposite: false,
         opposite: false,
         reversed: false,
         reversed: false,
-        min: Number(YMinValue),
-        max: Number(YMaxValue),
+        min: Number(leftMin),
+        max: Number(leftMax),
         tickWidth: 1,
         tickWidth: 1,
       }
       }
 
 
@@ -2017,12 +2029,16 @@ function setCrossVarietyChart({DataResp,EdbInfoList,ChartInfo}) {
                 ...chartTheme&&chartTheme.xAxisOptions.style
                 ...chartTheme&&chartTheme.xAxisOptions.style
             }
             }
         },
         },
-        min: Number(XMinValue),
-        max: Number(XMaxValue),
+        min: Number(xMin),
+        max: Number(xMax),
       }
       }
 
 
        //数据列
        //数据列
       let series = [];
       let series = [];
+      const tagMap = { //标签对应文字
+        1: '最新',
+        3: 'Fix'
+      }
       DataList.forEach(item => {
       DataList.forEach(item => {
         //数据列
         //数据列
         let series_item = {
         let series_item = {
@@ -2037,7 +2053,16 @@ function setCrossVarietyChart({DataResp,EdbInfoList,ChartInfo}) {
           zIndex:1
           zIndex:1
         }
         }
         item.CoordinatePointData.forEach(_ => {
         item.CoordinatePointData.forEach(_ => {
-          series_item.data.push({x: _.X,y: _.Y,})
+          series_item.data.push({
+            x: _.X,
+            y: _.Y,
+            dataLabels: {
+              enabled: _.ShowTips===1,
+              allowOverlap: true,
+              align: 'left',
+              format: tagMap[_.DateType] || `-${_.DaysAgo}T`,
+            }
+          })
         })
         })
         series.push(series_item);
         series.push(series_item);
       })
       })

+ 32 - 4
src/views/myETA/ChartDetail.vue

@@ -303,7 +303,7 @@ function handleConfirmLimitChange(){
                 data.ChartInfo.LeftMax=axisLimitDataTem.leftMax
                 data.ChartInfo.LeftMax=axisLimitDataTem.leftMax
             }
             }
             // 商品价格曲线
             // 商品价格曲线
-            if(data.ChartInfo.ChartType ===8){
+            if([2,5].includes(data.ChartInfo.Source)){
                 data.ChartInfo.LeftMin=axisLimitDataTem.leftMin
                 data.ChartInfo.LeftMin=axisLimitDataTem.leftMin
                 data.ChartInfo.LeftMax=axisLimitDataTem.leftMax
                 data.ChartInfo.LeftMax=axisLimitDataTem.leftMax
             }
             }
@@ -314,6 +314,13 @@ function handleConfirmLimitChange(){
                 data.DataResp.YMinValue=axisLimitDataTem.leftMin
                 data.DataResp.YMinValue=axisLimitDataTem.leftMin
                 data.DataResp.YMaxValue=axisLimitDataTem.leftMax
                 data.DataResp.YMaxValue=axisLimitDataTem.leftMax
             }
             }
+
+            // 跨品种分析
+            if(data.ChartInfo.Source===10){
+
+                data.ChartInfo.LeftMin = axisLimitDataTem.leftMin
+                data.ChartInfo.LeftMax = axisLimitDataTem.leftMax
+            }
         }
         }
     }
     }
 
 
@@ -340,6 +347,13 @@ function handleConfirmLimitChange(){
             data.DataResp.XMinValue=axisLimitDataTem.xMin
             data.DataResp.XMinValue=axisLimitDataTem.xMin
             data.DataResp.XMaxValue=axisLimitDataTem.xMax
             data.DataResp.XMaxValue=axisLimitDataTem.xMax
         }
         }
+
+         // 跨品种分析
+        if(data.ChartInfo.Source===10){
+            
+            data.ChartInfo.XMin = axisLimitDataTem.xMin
+            data.ChartInfo.XMax = axisLimitDataTem.xMax
+        }
     }
     }
 
 
     CHARTINS=chartRender({
     CHARTINS=chartRender({
@@ -550,6 +564,7 @@ function handleChartSave(){
         1: saveChartHandle,
         1: saveChartHandle,
         2: saveCommodityChart,//商品价格曲线
         2: saveCommodityChart,//商品价格曲线
         5: saveCommodityChart,//利润曲线
         5: saveCommodityChart,//利润曲线
+        10: saveCrossVarietyChart
       }
       }
       sourceMap[chartInfo.value.Source]&&sourceMap[chartInfo.value.Source]();
       sourceMap[chartInfo.value.Source]&&sourceMap[chartInfo.value.Source]();
 }
 }
@@ -640,6 +655,19 @@ function saveCommodityChart(){
         setChartImage()
         setChartImage()
     })
     })
 }
 }
+function saveCrossVarietyChart() {
+    apiCrossVarietyChart.myETASaveChart({
+        ChartInfoId:chartInfo.value.ChartInfoId,
+        LeftMin:String(axisLimitState.leftMin),
+        LeftMax:String(axisLimitState.leftMax),
+        XMin: String(axisLimitState.xMin),
+        XMax: String(axisLimitState.xMax),
+    }).then(res=>{
+        if(res.Ret!==200) return 
+        showToast("保存成功")
+        setChartImage()
+    })
+}
 
 
 //更新缩略图
 //更新缩略图
 async function setChartImage(){
 async function setChartImage(){
@@ -741,7 +769,7 @@ const isShowAddToMyETADialog=ref(false)
                 >{{chartState.startTime?chartState.startTime+'~'+(chartState.endTime?chartState.endTime:'至今'):'请选择时间段'}}</span>
                 >{{chartState.startTime?chartState.startTime+'~'+(chartState.endTime?chartState.endTime:'至今'):'请选择时间段'}}</span>
             </div>
             </div>
             <div class="right-action-box">
             <div class="right-action-box">
-                <div class="item" @click="handleShowAxisLimitOpt" v-if="[1,2,5].includes(chartInfo.Source)&&checkAuthBtn(myETABtn.myChart_editLimit)">
+                <div class="item" @click="handleShowAxisLimitOpt" v-if="[1,2,5,10].includes(chartInfo.Source)&&checkAuthBtn(myETABtn.myChart_editLimit)">
                     <img src="@/assets/imgs/myETA/icon_limit2.png" alt="">
                     <img src="@/assets/imgs/myETA/icon_limit2.png" alt="">
                     <span>上下限设置</span>
                     <span>上下限设置</span>
                 </div>
                 </div>
@@ -829,7 +857,7 @@ const isShowAddToMyETADialog=ref(false)
                 <img class="icon" style="transform: rotate(180deg);" src="@/assets/imgs/icon_arrow.png" alt="">
                 <img class="icon" style="transform: rotate(180deg);" src="@/assets/imgs/icon_arrow.png" alt="">
                 <div>下一张</div>
                 <div>下一张</div>
             </div>
             </div>
-            <div class="item" @click="handleShowAxisLimitOpt" v-if="[1,2,5].includes(chartInfo.Source)&&checkAuthBtn(myETABtn.myChart_editLimit)">
+            <div class="item" @click="handleShowAxisLimitOpt" v-if="[1,2,5,10].includes(chartInfo.Source)&&checkAuthBtn(myETABtn.myChart_editLimit)">
                 <img class="icon" src="@/assets/imgs/myETA/icon_limit.png" alt="">
                 <img class="icon" src="@/assets/imgs/myETA/icon_limit.png" alt="">
                 <div>上下限</div>
                 <div>上下限</div>
             </div>
             </div>
@@ -991,7 +1019,7 @@ const isShowAddToMyETADialog=ref(false)
             <div class="item" @click.stop="handleChartShare" v-if="!chartInfo.Disabled&&checkAuthBtn(myETABtn.myChart_share)">
             <div class="item" @click.stop="handleChartShare" v-if="!chartInfo.Disabled&&checkAuthBtn(myETABtn.myChart_share)">
                 分享
                 分享
             </div>
             </div>
-            <div class="item" @click.stop="handleChartSave" v-if="[1,2,5].includes(chartInfo.Source)&&checkAuthBtn(myETABtn.myChart_save)">
+            <div class="item" @click.stop="handleChartSave" v-if="[1,2,5,10].includes(chartInfo.Source)&&checkAuthBtn(myETABtn.myChart_save)">
                 保存
                 保存
             </div>
             </div>
             <div class="item" @click.stop="handleRemoveChart" v-if="$route.query.iscommon!='true'&&checkAuthBtn(myETABtn.myChart_move)">
             <div class="item" @click.stop="handleRemoveChart" v-if="$route.query.iscommon!='true'&&checkAuthBtn(myETABtn.myChart_move)">