jwyu 1 年之前
父節點
當前提交
14fb3a9d37

+ 1 - 1
.env.development

@@ -1,5 +1,5 @@
 # 接口地址http://8.136.199.33:8610/v1   https://rddptest.hzinsights.com/adminapi
-VITE_APP_API_URL="http://8.136.199.33:8610/v1"
+VITE_APP_API_URL="https://rddptest.hzinsights.com/adminapi"
 # 路由根地址
 VITE_APP_BASE_URL="/"
 # 打包输入文件名

+ 16 - 1
src/api/lineEquationChart.js

@@ -26,5 +26,20 @@ export default {
      */
     chartInfoEditEn(params){
         return post('/line_equation/chart_info/en/edit',params)
-    }
+    },
+    /**
+     * 分类列表
+     */
+    chartClassifyList(params){
+        return get('/line_equation/chart_classify/list')
+    },
+    /**
+     * 图表另存为
+     * @param ChartInfoId
+     * @param ChartClassifyId
+     * @param ChartName
+     */
+    chartSaveOther(params){
+        return post('/line_equation/chart_info/copy',params)
+    },
 }

+ 16 - 1
src/api/statisticFeatureChart.js

@@ -16,5 +16,20 @@ export default {
      */
     chartInfoEditEn(params){
         return post('/line_feature/chart_info/en/edit',params)
-    }
+    },
+    /**
+     * 分类列表
+     */
+    chartClassifyList(params){
+        return get('/line_feature/chart_classify/list')
+    },
+    /**
+     * 图表另存为
+     * @param ChartInfoId
+     * @param ChartClassifyId
+     * @param ChartName
+     */
+    chartSaveOther(params){
+        return post('/line_feature/chart_info/copy',params)
+    },
 }

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

@@ -985,6 +985,13 @@ function setScatterOptions(data){
     const dataList=data.EdbInfoList
     const { ChartInfo } = data;
 
+    axisLimitState.hasLeftAxis=true
+    axisLimitState.leftMin=Number(dataList[0].MinData)
+    axisLimitState.leftMax=Number(dataList[0].MaxData)
+
+    axisLimitData.leftMin=Number(dataList[0].MinData)
+    axisLimitData.leftMax=Number(dataList[0].MaxData)
+
     // 取2个指标中日期相同的数据
     const real_data = [];
     let tmpData_date = {};//用来取点对应的日期
@@ -1410,7 +1417,7 @@ function initRelevanceChart(data){
     axisLimitState.rightTwoIndex=-1
     // 处理X轴
     let xAxis={
-        categories: data.XEdbIdValue,
+        categories: data.ChartInfo.Source===3?data.XEdbIdValue:data.DataResp.XDateTimeValue,
         tickWidth: 1,
         title: {
           text: data.ChartInfo.Source===3 ?`期数(${data.CorrelationChartInfo.LeadUnit})` : null,
@@ -1492,11 +1499,14 @@ function initRelevanceChart(data){
     }
     
     nextTick(()=>{
-        const hEl=document.getElementById(RenderDomId.value)
-        // console.log(hEl.offsetHeight);
-        xAxis.offset=-(hEl.offsetHeight-98)/2
+        if(data.ChartInfo.Source===3){
+            const hEl=document.getElementById(RenderDomId.value)
+            // console.log(hEl.offsetHeight);
+            xAxis.offset=-(hEl.offsetHeight-98)/2
+        }
+        
         options.value = {
-            isRelevanceChart:true,
+            isRelevanceChart:data.ChartInfo.Source===3,
             title: {
                 text:''
             },

+ 2 - 2
src/views/chartETA/ChartDetail.vue

@@ -548,7 +548,7 @@ function initChartState(data){
         <!-- 指标模块 -->
         <div class="edb-list-box">
             <!-- pad 设置上下限按钮 -->
-            <div class="pad-limit-set-btn" @click="handleShowAxisLimitOpt" v-if="chartInfo.Source!=3&&chartInfo.ChartType!=8">设置上下限</div>
+            <div class="pad-limit-set-btn" @click="handleShowAxisLimitOpt" v-if="![3,4,6,7,8,9].includes(chartInfo.Source)">设置上下限</div>
             <!-- <div class="list-lable">指标信息</div> -->
             <div class="list-box">
                 <div class="list-item" v-for="item in edbList" :key="item.EdbInfoId" @click="handleShowEDBInfo(item)">
@@ -568,7 +568,7 @@ function initChartState(data){
                 <img class="icon" style="transform: rotate(180deg);" src="@/assets/imgs/icon_arrow.png" alt="">
                 <div>下一张</div>
             </div>
-            <div class="item" @click="handleShowAxisLimitOpt" v-if="chartInfo.Source!=3&&chartInfo.ChartType!=8">
+            <div class="item" @click="handleShowAxisLimitOpt" v-if="![3,4,6,7,8,9].includes(chartInfo.Source)">
                 <img class="icon" src="@/assets/imgs/myETA/icon_limit.png" alt="">
                 <div>上下限</div>
             </div>

+ 23 - 13
src/views/myETA/ChartDetail.vue

@@ -72,7 +72,16 @@ async function getChartInfo(){
     }
 
     chartState.yearVal=res.Data.ChartInfo.DateType
-
+    if(res.Data.ChartInfo.DateType===5){
+        chartState.startTime=res.Data.ChartInfo.StartDate
+        chartState.endTime=res.Data.ChartInfo.EndDate
+        temStartTime.value=res.Data.ChartInfo.StartDate.split('-')
+        temEndTime.value=res.Data.ChartInfo.EndDate.split('-')
+    }
+    if(res.Data.ChartInfo.DateType===6){
+        chartState.startTime=res.Data.ChartInfo.StartDate
+        temStartTime.value=res.Data.ChartInfo.StartDate.split('-')
+    }
 
     nextTick(()=>{
         CHARTINS=chartRender({
@@ -476,18 +485,18 @@ function handleEditEnNameSuccess(){
         <!-- 一般曲线图选择时间区间或者季节图选择日期 -->
         <div 
             class="select-time-box" 
-            v-if="sameOptionType.includes(chartInfo.ChartType)||chartInfo.ChartType===2" 
+            v-if="sameOptionType.includes(chartInfo.ChartType)&& chartInfo.Source===1" 
             @click="chartState.showTimePop=true"
         >
             <img class="left-icon" src="@/assets/imgs/icon_calendar.png" alt="">
-            <span :class="['val-box',!chartState.startTime?'val-box_grey':'']">{{chartState.startTime||'开始日期'}} ~ {{chartState.endTime||'结束日期'}}</span>
+            <span :class="['val-box',!chartState.startTime?'val-box_grey':'']">{{chartState.startTime||'开始日期'}} ~ {{chartState.startTime&&!chartState.endTime?'至今':chartState.endTime||'结束日期'}}</span>
             <van-icon class="right-icon" name="arrow" />
         </div>
 
         <!-- pad端时间和操作按钮模块 -->
         <div class="pad-time-action-wrap">
-            <div class="left-time-box">
-                <template v-if="sameOptionType.includes(chartInfo.ChartType)">
+            <div class="left-time-box" >
+                <template v-if="sameOptionType.includes(chartInfo.ChartType)&& chartInfo.Source===1">
                     <span :class="['item',chartState.yearVal==''?'active':'']" @click="handleYearChange({value:''})">全部</span>
                     <span 
                         :class="['item',chartState.yearVal==item.value?'active':'']"
@@ -497,13 +506,13 @@ function handleEditEnNameSuccess(){
                     >{{item.name}}</span>
                 </template>
                 <span 
-                    class="time-box" 
-                    v-if="sameOptionType.includes(chartInfo.ChartType)||chartInfo.ChartType===2"
+                    class="time-box"
+                    v-if="sameOptionType.includes(chartInfo.ChartType)&& chartInfo.Source===1"
                     @click="chartState.showTimePop=true"
-                >{{chartState.startTime?chartState.startTime+'~'+chartState.endTime:'请选择时间段'}}</span>
+                >{{chartState.startTime?chartState.startTime+'~'+(chartState.endTime?chartState.endTime:'至今'):'请选择时间段'}}</span>
             </div>
             <div class="right-action-box">
-                <div class="item" @click="handleShowAxisLimitOpt" v-if="chartInfo.Source!=3&&chartInfo.ChartType!=8">
+                <div class="item" @click="handleShowAxisLimitOpt" v-if="![3,4,6,7,8,9].includes(chartInfo.Source)">
                     <img src="@/assets/imgs/myETA/icon_limit2.png" alt="">
                     <span>上下限设置</span>
                 </div>
@@ -523,7 +532,7 @@ function handleEditEnNameSuccess(){
         </div>
 
         <!-- 一般曲线图选择时间区间 -->
-        <div class="select-year-box" v-if="sameOptionType.includes(chartInfo.ChartType)">
+        <div class="select-year-box" v-if="sameOptionType.includes(chartInfo.ChartType)&& chartInfo.Source===1">
             <span :class="['item',chartState.yearVal==''?'active':'']" @click="handleYearChange({value:''})">全部</span>
             <span 
                 :class="['item',chartState.yearVal==item.value?'active':'']"
@@ -565,7 +574,7 @@ function handleEditEnNameSuccess(){
                 <img class="icon" style="transform: rotate(180deg);" src="@/assets/imgs/icon_arrow.png" alt="">
                 <div>下一张</div>
             </div>
-            <div class="item" @click="handleShowAxisLimitOpt" v-if="chartInfo.Source!=3&&chartInfo.ChartType!=8">
+            <div class="item" @click="handleShowAxisLimitOpt" v-if="![3,4,6,7,8,9].includes(chartInfo.Source)">
                 <img class="icon" src="@/assets/imgs/myETA/icon_limit.png" alt="">
                 <div>上下限</div>
             </div>
@@ -715,7 +724,8 @@ function handleEditEnNameSuccess(){
     <!-- 更多操作弹窗 -->
     <van-popup 
         v-model:show="showMoreAction"
-        position="bottom"
+        :position="width>650?'center':'bottom'"
+        :style="width>650?{ width: '400px'}:''"
         round
     >
         <div class="more-action-wrap">
@@ -732,7 +742,7 @@ function handleEditEnNameSuccess(){
             <div class="item" @click.stop="handleShowCopyTo" v-if="$route.query.iscommon!='true'">
                 复制到
             </div>
-            <div class="item" @click.stop="showSaveChartOther=true">
+            <div class="item" @click.stop="showSaveChartOther=true" v-if="chartInfo.Button.IsCopy">
                 另存为
             </div>
             <div class="item" @click.stop="handleChartSavePicture" v-if="!chartInfo.Disabled">

+ 31 - 29
src/views/myETA/Index.vue

@@ -175,7 +175,8 @@ async function goSearch(){
                 <img @click="goChooseChart" class="icon" src="@/assets/imgs/myETA/icon_select.png" alt="icon">
                 <img @click="showClassifyPop=true" class="icon" src="@/assets/imgs/myETA/icon_menu2.png" alt="icon">
             </div>
-            <p class="des">{{listState.ctype}}/{{listState.cname}}(共{{listState.total}}张图表)</p>
+            <p style="margin-top:5px;font-weight:bold">{{listState.ctype}}/{{listState.cname}}</p>
+            <p class="des">共{{listState.total}}张图表</p>
         </div>
         <van-list
             v-model:loading="listState.loading"
@@ -269,19 +270,19 @@ async function goSearch(){
         position="bottom"
     >
         <div class="classify-opt-wrap">
-            <div class="item border">
+            <!-- <div class="item border">
                 <img src="@/assets/imgs/ppt/ppt_icon_file.png" alt="">
                 <span>{{classifyState.activeClassifyVal.MyChartClassifyName}}</span>
-            </div>
+            </div> -->
             <!-- 我的图库分类操作 -->
             <template v-if="classifyState.classifyTypeAct==1">
-            <div class="item border blue" @click="handleAddClassify(classifyState.activeClassifyVal)">
-                <img src="@/assets/imgs/ppt/ppt_icon_write.png" alt="">
+            <div class="item border" @click="handleAddClassify(classifyState.activeClassifyVal)">
+                <!-- <img src="@/assets/imgs/ppt/ppt_icon_write.png" alt=""> -->
                 <span>重命名</span>
             </div>
-            <div class="item border blue">
-                <img src="@/assets/imgs/icon_user.png" alt="">
-                <span>所有人可见</span>
+            <div class="item border">
+                <!-- <img src="@/assets/imgs/icon_user.png" alt=""> -->
+                <span style="display:inline-block;margin-right:10px">所有人可见</span>
                 <van-switch
                     class="switch-box"
                     size="22px" 
@@ -290,14 +291,14 @@ async function goSearch(){
                 />
             </div>
             <div class="item border red" @click="handleClassifyDel(classifyState.activeClassifyVal)">
-                <img src="@/assets/imgs/icon_del.png" alt="">
+                <!-- <img src="@/assets/imgs/icon_del.png" alt=""> -->
                 <span>删除</span>
             </div>
             </template>
             <!-- 公共图库分类操作 -->
             <template v-if="classifyState.classifyTypeAct==2">
-            <div class="item border blue" @click="handleCopyClassify(classifyState.activeClassifyVal)">
-                <img src="@/assets/imgs/ppt/ppt_icon_copy.png" alt="">
+            <div class="item border" @click="handleCopyClassify(classifyState.activeClassifyVal)">
+                <!-- <img src="@/assets/imgs/ppt/ppt_icon_copy.png" alt=""> -->
                 <span>复制</span>
             </div>
             </template>
@@ -340,12 +341,12 @@ async function goSearch(){
     flex-wrap: wrap;
     box-sizing: border-box;
     justify-content: space-between;
+    gap: 30px 0;
     .chart-list-item{
         box-sizing: border-box;
-        width: 326px;
+        width: 330px;
         padding: 10px 14px;
         border: 1px solid $border-color;
-        margin-bottom: 20px;
         border-radius: 12px;
         .name{
             min-height: 70px;
@@ -462,18 +463,19 @@ async function goSearch(){
         padding: 42px;
         display: flex;
         align-items: center;
+        justify-content: center;
         position: relative;
         img{
             width: 36px;
             height: 36px;
             margin-right: 20px;
         }
-        .switch-box{
-            position: absolute;
-            right: 42px;
-            top: 50%;
-            transform: translateY(-50%);
-        }
+        // .switch-box{
+        //     position: absolute;
+        //     right: 42px;
+        //     top: 50%;
+        //     transform: translateY(-50%);
+        // }
     }
     .border{
         border-bottom: 1px solid $border-color;
@@ -508,20 +510,20 @@ async function goSearch(){
         }
     }
     .chart-list-wrap{
+        gap: 20px 4%;
         justify-content: flex-start;
         .chart-list-item{
-            width: 326px;
-            padding: 5px 7px;
-            margin-bottom: 10px;
+            width: 22%;
+            padding: 10px 14px;
             border-radius: 6px;
-            margin-left: 5px;
-            margin-right: 5px;
             .name{
                 min-height: 35px;
             }
             .img{
-                height: 220px;
-                margin: 5px 0;
+                width: 100%;
+                height: auto;
+                display: block;
+                margin: 10px 0;
             }
             .time{
                 font-size: 14px;
@@ -590,9 +592,9 @@ async function goSearch(){
                 height: 18px;
                 margin-right: 10px;
             }
-            .switch-box{
-                right: 21px;
-            }
+            // .switch-box{
+                // right: 21px;
+            // }
             
         }
     }

+ 16 - 6
src/views/myETA/components/ChartSaveOther.vue

@@ -3,6 +3,8 @@ import {watch,ref} from 'vue'
 import apiETAChart from '@/api/chart'
 import apiCorrelation from '@/api/correlationChart'
 import apiFuture from '@/api/futureChart'
+import apiLineEquationChart from '@/api/lineEquationChart'
+import apiStatisticFeatureChart from '@/api/statisticFeatureChart'
 import { showToast } from 'vant'
 import { useWindowSize } from '@vueuse/core'
 
@@ -43,16 +45,20 @@ watch(showPop,()=>{
 let opts=ref([])
 async function getOpts(){
     let res
-    if(props.source==2){
+    if([2,5].includes(props.source)){
         res=await apiFuture.chartClassifyList({})
-    }else if(props.source==3){
+    }else if([3,4].includes(props.source)){
         res=await apiCorrelation.chartClassifyList({})
+    }else if(props.source==6){
+        res=await apiLineEquationChart.chartClassifyList({})
+    }else if([7,8,9].includes(props.source)){
+        res=await apiStatisticFeatureChart.chartClassifyList({})
     }else{
         res=await apiETAChart.ETAChartClassifyList({})
     }
     if(res.Ret!=200) return
     const arr=res.Data.AllNodes||[]
-    if([2,3].includes(props.source)){
+    if([2,5,3,6,7,8,9].includes(props.source)){
         opts.value=arr
     }else{
         opts.value=arr.map(item=>{
@@ -83,10 +89,14 @@ async function handleConfirmSave(){
         ChartClassifyId:activeIds.value
     }
     let res
-    if(props.source==2){
+    if([2,5].includes(props.source)){
         res=await apiFuture.chartSaveOther(params)
-    }else if(props.source==3){
+    }else if([3,4].includes(props.source)){
         res=await apiCorrelation.chartSaveOther(params)
+    }else if(props.source==6){
+        res=await apiLineEquationChart.chartSaveOther(params)
+    }else if([7,8,9].includes(props.source)){
+        res=await apiStatisticFeatureChart.chartSaveOther(params)
     }else{
         res=await apiETAChart.ETAChartSaveOther(params)
     }
@@ -110,7 +120,7 @@ async function handleConfirmSave(){
                 <div class="title">另存为</div>
             </div>
             <div class="content">
-                <template v-if="[2,3].includes(source)">
+                <template v-if="[2,3,5,6].includes(source)">
                     <ul class="list-box">
                         <li 
                             :class="['item',activeIds==item.ChartClassifyId?'active':'']"