Browse Source

截面组合图修改

jwyu 8 months ago
parent
commit
c80806232c

+ 5 - 1
src/lang/modules/EtaChart/En.js

@@ -123,7 +123,11 @@ export default {
     more_refrence_date:'Add More Reference Dates',
     new_series:'New Series',
     series_name:'Series Name',
-    more_series_btn:'More Series'
+    more_series_btn:'More Series',
+    refrence_date_repeat:'Duplicate Date Name, Please Adjust',
+    series_name_repeat:'Duplicate Series Name, Please Adjust',
+    series_number_tips:'Inconsistent Series Metric Count, Please Adjust', 
+    series_del_tips:'Are you sure you want to delete all series? The chart will be cleared after the operation.',
 
   }
 }

+ 5 - 1
src/lang/modules/EtaChart/Zh.js

@@ -121,7 +121,11 @@ export default {
     more_refrence_date:'添加更多引用日期',
     new_series:'新系列',
     series_name:'系列名称',
-    more_series_btn:'更多系列'
+    more_series_btn:'更多系列',
+    refrence_date_repeat:'引用日期名称重复,请调整',
+    series_name_repeat:'系列名称重复,请调整',
+    series_number_tips:'系列指标数量不一致,请调整',
+    series_del_tips:'系列全部删除后,图表会被清除,确认操作吗?',
 
 
 

+ 1 - 1
src/views/dataEntry_manage/addChart.vue

@@ -739,7 +739,7 @@ export default {
 		tableData: {
       handler(newval, oldval) {
 				if(newval.length) {
-					if([7,10,11].includes(this.chartInfo.ChartType)) {
+					if([7,10,11,14].includes(this.chartInfo.ChartType)) {
 						// 奇怪柱形图
 						this.chartInfo.ChartType === 7 && this.barDateList.length && this.$refs.BarOptRef.getBarData();
 

+ 4 - 4
src/views/dataEntry_manage/components/addMarkerDialog.vue

@@ -61,7 +61,7 @@
               </template>
 
               <!-- 柱形图,散点,截面散点只可选数字 -->
-              <template v-else-if="[5,7,10].includes(chartInfo.ChartType)">
+              <template v-else-if="[5,7,10,14].includes(chartInfo.ChartType)">
                 <el-input
                   v-model="markerForm.value"
                   style="width: 200px;"
@@ -123,7 +123,7 @@
               </template>
 
               <!-- 柱形图,散点,截面散点只可选数字 -->
-              <div v-else-if="[5,7,10].includes(chartInfo.ChartType)">
+              <div v-else-if="[5,7,10,14].includes(chartInfo.ChartType)">
                 <el-input
                   v-model="markerForm.fromValue"
                   class="number-input"
@@ -288,9 +288,9 @@ export default {
       }
       return isHave
     },
-    /* 是否可选x轴 柱形图不可选*/
+    /* 是否可选x轴 柱形图、截面组合图不可选*/
     canSelectXaxis() {
-      return this.chartInfo.ChartType!==7
+      return ![7,14].includes(this.chartInfo.ChartType)
     },
     /* 是否可选右轴 曲线 组合 堆积柱*/
     canSelectRightYaxis() {

+ 17 - 2
src/views/dataEntry_manage/components/sectionalCombination/referenceDateSet.vue

@@ -30,6 +30,7 @@
           <div style="width: 300px">
             <selectTarget
               ref="selectRef"
+              :defaultType="item.edbType"
               :defaultId="
                 item.selectEdbData ? item.selectEdbData.EdbInfoId : ''
               "
@@ -43,7 +44,7 @@
             <template v-if="item.selectEdbData">
               <span>{{$t('Table.frequency')}}:</span>
               <span>{{ item.selectEdbData.Frequency }}</span>
-              <span>{{$t('Detail.e_latest_date')}}:</span>
+              <span>{{$t('Edb.Detail.e_latest_date')}}:</span>
               <span>{{ item.selectEdbData.EndDate }}</span>
             </template>
           </div>
@@ -121,6 +122,7 @@ export default {
           this.list = [{
             name: '',
             dateType: 0,//0指标最新日期 1系统日期
+            edbType:0,
             selectEdbData: null,
             MoveForward: 0,//期数前移
             dateTransfData: [],//日期变换数据
@@ -141,6 +143,7 @@ export default {
         {
           name: '',
           dateType: 0,//0指标最新日期 1系统日期
+          edbType:0,
           selectEdbData: null,
           MoveForward: 0,//期数前移
           dateTransfData: [],//日期变换数据
@@ -173,9 +176,20 @@ export default {
         }
       });
       if (!flag) {
-        this.$message.warning('请完善表单')
+        this.$message.warning('名称和指标不能为空')
         return
       }
+      // 用于检查重复的 name
+      const nameSet = new Set();
+
+      for(let i of this.list){
+        // 检查 seriesName 是否重复
+        if (nameSet.has(i.name)) {
+          this.$message.warning(this.$t('EtaChartAddPage.refrence_date_repeat'))
+          return false;
+        }
+        nameSet.add(i.name);
+      }
 
 
       this.$emit('change', JSON.parse(JSON.stringify(this.list)))
@@ -187,6 +201,7 @@ export default {
       this.list.push({
         name: '',
         dateType: 0,//0指标最新日期 1系统日期
+        edbType:0,
         selectEdbData: null,
         MoveForward: 0,//期数前移
         dateTransfData: [],//日期变换数据

+ 26 - 2
src/views/dataEntry_manage/components/sectionalCombination/sectionalCombinationOption.vue

@@ -42,7 +42,7 @@
       <el-collapse class="series-list">
         <el-collapse-item v-for="(item, index) in seriesData" :key="index">
           <template slot="title">
-            <span class="text_oneLine" @click.stop="showSeriesEdit = true">{{
+            <span class="text_oneLine" @click.stop="handleShowEditSeries(index)">{{
               currentLang === "en"?item.seriesNameEn||item.seriesName:item.seriesName
             }}</span>
             <img class="copy-icon" src="~@/assets/img/icons/copy-active.png" alt="" @click.stop="copySeries(item)">
@@ -245,6 +245,12 @@ export default {
     this.initData()
   },
   methods: {
+    handleShowEditSeries(index){
+      this.showSeriesEdit=true
+      this.$nextTick(()=>{
+        this.$refs.seriesEditIns.activeIndex=index
+      })
+    },
     initData(){
       if(this.defaultData&&Object.keys(this.defaultData).length !== 0){
         this.sortType=this.defaultData.SortType
@@ -266,6 +272,7 @@ export default {
                 ChartSeriesEdbMappingId:i.ChartSeriesEdbMappingId,
 						    ChartSeriesId:i.ChartSeriesId,
                 dateType: i.DateConfType,//0指标最新日期 1引用日期
+                edbType:i.EdbInfoType,
                 selectEdbData: i,
                 MoveForward: i.DateConf.MoveForward,//期数前移
                 dateTransfData: i.DateConf.DateChange,//日期变换数据
@@ -335,7 +342,10 @@ export default {
     },
 
     // 删除系列
-    handleDelSeries(item,index){
+    async handleDelSeries(item,index){
+      if(this.seriesData.length===1){
+        await this.$confirm(this.$t('EtaChartAddPage.series_del_tips'),this.$t('Dialog.warn_tit'))
+      }
       this.seriesData.splice(index,1)
       // 删完了
       if(this.seriesData.length===0){
@@ -348,6 +358,20 @@ export default {
         }
         this.$emit('hideChart')
       }else{
+        // 删除的是基准
+        if(item.seriesName===this.sortBasisEdb){
+          this.sortBasisEdb=this.seriesData[0].seriesName
+        }
+        // 判断是否还有右轴 如果没了则要将右二轴换成右轴
+        const hasRightTwo=this.seriesData.some(i=>i.IsAxis===2)
+        const hasRight=this.seriesData.some(i=>i.IsAxis===0)
+        if(hasRightTwo&&!hasRight){
+          this.seriesData.forEach(i=>{
+            if(i.IsAxis===2){
+              i.IsAxis=0
+            }
+          })
+        }
         this.handleGetChartData()
       }
     },

+ 11 - 2
src/views/dataEntry_manage/components/sectionalCombination/seriesEdit.vue

@@ -105,6 +105,7 @@ export default {
                   ChartSeriesEdbMappingId: 0,
                   ChartSeriesId: 0,
                   dateType: 0,//0指标最新日期 1引用日期
+                  edbType:0,//指标类型 0普通 1预测
                   selectEdbData: null,
                   MoveForward: 0,//期数前移
                   dateTransfData: [],//日期变换数据
@@ -114,6 +115,7 @@ export default {
                   ChartSeriesEdbMappingId: 0,
                   ChartSeriesId: 0,
                   dateType: 0,//0指标最新日期 1引用日期
+                  edbType:0,//指标类型 0普通 1预测
                   selectEdbData: null,
                   MoveForward: 0,//期数前移
                   dateTransfData: [],//日期变换数据
@@ -123,6 +125,7 @@ export default {
                   ChartSeriesEdbMappingId: 0,
                   ChartSeriesId: 0,
                   dateType: 0,//0指标最新日期 1引用日期
+                  edbType:0,//指标类型 0普通 1预测
                   selectEdbData: null,
                   MoveForward: 0,//期数前移
                   dateTransfData: [],//日期变换数据
@@ -155,6 +158,7 @@ export default {
               ChartSeriesEdbMappingId: 0,
               ChartSeriesId: 0,
               dateType: 0,//0指标最新日期 1引用日期
+              edbType:0,//指标类型 0普通 1预测
               selectEdbData: null,
               MoveForward: 0,//期数前移
               dateTransfData: [],//日期变换数据
@@ -164,6 +168,7 @@ export default {
               ChartSeriesEdbMappingId: 0,
               ChartSeriesId: 0,
               dateType: 0,//0指标最新日期 1引用日期
+              edbType:0,//指标类型 0普通 1预测
               selectEdbData: null,
               MoveForward: 0,//期数前移
               dateTransfData: [],//日期变换数据
@@ -173,6 +178,7 @@ export default {
               ChartSeriesEdbMappingId: 0,
               ChartSeriesId: 0,
               dateType: 0,//0指标最新日期 1引用日期
+              edbType:0,//指标类型 0普通 1预测
               selectEdbData: null,
               MoveForward: 0,//期数前移
               dateTransfData: [],//日期变换数据
@@ -208,6 +214,7 @@ export default {
             ChartSeriesEdbMappingId: 0,
             ChartSeriesId: 0,
             dateType: 0,//0指标最新日期 1系统日期
+            edbType:0,//指标类型 0普通 1预测
             selectEdbData: null,
             MoveForward: 0,//期数前移
             dateTransfData: [],//日期变换数据
@@ -215,6 +222,7 @@ export default {
           },
           {
             dateType: 0,//0指标最新日期 1系统日期
+            edbType:0,//指标类型 0普通 1预测
             selectEdbData: null,
             MoveForward: 0,//期数前移
             dateTransfData: [],//日期变换数据
@@ -222,6 +230,7 @@ export default {
           },
           {
             dateType: 0,//0指标最新日期 1系统日期
+            edbType:0,//指标类型 0普通 1预测
             selectEdbData: null,
             MoveForward: 0,//期数前移
             dateTransfData: [],//日期变换数据
@@ -263,14 +272,14 @@ export default {
       for (let item of arr) {
         // 检查 seriesName 是否重复
         if (seriesNameSet.has(item.seriesName)) {
-          this.$message.warning('系列名称重复,请调整')
+          this.$message.warning(this.$t('EtaChartAddPage.series_name_repeat'))
           return false;
         }
         seriesNameSet.add(item.seriesName);
 
         // 检查 edbList 长度
         if (item.edbList.length !== edbListLength) {
-          this.$message.warning('系列指标数量不一致,请调整 ')
+          this.$message.warning(this.$t('EtaChartAddPage.series_number_tips'))
           return false;
         }
 

+ 21 - 2
src/views/dataEntry_manage/components/sectionalCombination/seriesItemWrap.vue

@@ -56,7 +56,8 @@
           <div class="top-flex-box">
             <div style="width: 300px">
               <selectTarget
-                ref="selectRef"
+                ref="selectEdbRef"
+                :defaultType="item.edbType"
                 :defaultId="
                   item.selectEdbData ? item.selectEdbData.EdbInfoId : ''
                 "
@@ -142,7 +143,8 @@ export default {
   watch: {
     value: {
       handler(newValue) {
-        this.compData = newValue;        
+        this.compData = newValue;
+        this.initEdbType()      
       },
       immediate: true // 在组件创建时立即执行处理函数
     },
@@ -154,9 +156,25 @@ export default {
     }
   },
   methods: {
+    // 更新指标类型
+    initEdbType(){
+      this.$nextTick(()=>{
+        const arr=this.$refs.selectEdbRef
+        console.log('aaaa');
+        arr.forEach((item,index)=>{
+          if(this.compData.edbList[index].selectEdbData){
+            item.targetType=this.compData.edbList[index].edbType==1?'2':'1' 
+          }
+        })
+      })
+    },
+
     chooseEdb(e, index) {
       console.log('选择的指标', e);
       this.compData.edbList[index].selectEdbData = e || null
+      if(e){//更新指标类型
+        this.compData.edbList[index].edbType=e.EdbInfoType
+      }
       if(e&&!this.compData.seriesName){//设置系列名称
         this.compData.seriesName=e.LatestDate
       }
@@ -172,6 +190,7 @@ export default {
     handleAddListItem(){
       this.compData.edbList.push({
         dateType: 0,//0指标最新日期 1系统日期
+        edbType:0,//指标类型 0普通 1预测
         selectEdbData: null,
         MoveForward: 0,//期数前移
         dateTransfData: [],//日期变换数据

+ 2 - 1
src/views/dataEntry_manage/mixins/addOreditMixin.js

@@ -1217,7 +1217,8 @@ export default {
 			const chartTypeMap = {
         7: this.setBarChart, //柱形图
         10: this.setSectionScatterChart, //截面散点
-				11: this.setRadarChart  //雷达图
+				11: this.setRadarChart,  //雷达图
+				14:this.setSectionalCombinationChart,//截面组合图
       }
       chartTypeMap[this.chartInfo.ChartType] 
 				? chartTypeMap[this.chartInfo.ChartType]() 

+ 19 - 0
src/views/dataEntry_manage/mixins/chartPublic.js

@@ -2226,6 +2226,9 @@ export const chartSetMixin = {
           name:item.SeriesName,
           nameCh:item.SeriesName,
           nameEn:item.SeriesNameEn,
+          unitName:UnitList[yTitleMap[item.IsAxis][0]],
+          unitNameCh:UnitList[yTitleMap[item.IsAxis][0]],
+          unitNameEn:UnitList[yTitleMap[item.IsAxis][0]]?UnitList[yTitleMap[item.IsAxis][1]]:'',
           color: item.ChartColor,
           lineWidth: Number(item.ChartWidth)||(chartTheme&&chartTheme.lineOptionList[lineIndex].lineWidth),
           borderWidth: 1,
@@ -2249,10 +2252,26 @@ export const chartSetMixin = {
         seriesData.push(obj)
       })
 
+      const tooltip={
+        formatter:function () { 
+          return `<b>${this.x}</b>
+          <br><span style="color:${this.color}">\u25CF</span>${this.x}:${this.y} ${this.series.options.unitName}`
+        },
+        formatterCh:function () { 
+          return `<b>${this.x}</b>
+          <br><span style="color:${this.color}">\u25CF</span>${this.x}:${this.y} ${this.series.options.unitNameCh}`
+        },
+        formatterEn:function () { 
+          return `<b>${this.x}</b>
+          <br><span style="color:${this.color}">\u25CF</span>${this.x}:${this.y} ${this.series.options.unitNameEn}`
+        }
+      }
+
       this.options = {
         title: {
           text:''
         },
+        tooltip,
         series: seriesData,
         yAxis: yAxis,
         xAxis,