Bläddra i källkod

上下限修改,兼容新增-编辑-详情-myETA

cxmo 1 år sedan
förälder
incheckning
739a040c72

+ 17 - 4
src/views/dataEntry_manage/addChart.vue

@@ -466,7 +466,7 @@
 							</div> -->
 							<!-- 需求:曲线图、堆积柱状图、组合图加入新指标时上下限自动调整 -->
 							<template v-if="![7,10].includes(chartInfo.ChartType)">
-								<div class="range-cont left">
+								<div class="range-cont left" v-if="leftIndex !== -1">
 									<el-input
 										style="width: 60px; display: block"
 										size="mini"
@@ -484,7 +484,7 @@
 										@change="changeAxisLimit"
 									/>
 								</div>
-								<div class="range-cont right">
+								<div class="range-cont right" v-if="rightIndex !== -1">
 									<el-input
 										style="width: 60px; display: block"
 										size="mini"
@@ -503,7 +503,7 @@
 									/>
 								</div>
 								<!-- 右2上下限设置 -->
-								<div class="range-cont rightTwo">
+								<div class="range-cont rightTwo" v-if="rightTwoIndex !== -1">
 									<el-input
 										style="width: 60px; display: block"
 										size="mini"
@@ -703,6 +703,7 @@ import { dataBaseInterface } from '@/api/api.js';
 import { chartSetMixin } from './mixins/chartPublic';
 import {unitArr} from '@/utils/defaultOptions.js';
 import addOrEditMixn from './mixins/addOreditMixin';
+import changeLimit from './mixins/changeLimit';
 import Chart from './components/chart';
 import DateChooseDia from './components/DateChooseDia';
 import barOption from './components/barOptionSection.vue';
@@ -769,7 +770,7 @@ export default {
 			return localStorage.getItem('userName');
 		}
 	},
-	mixins: [chartSetMixin,addOrEditMixn],
+	mixins: [chartSetMixin,addOrEditMixn,changeLimit],
   data() {
     return {
 			isSlideLeft: false,
@@ -858,6 +859,18 @@ export default {
 								EndDate: this.year_select === 5 ? this.select_date[1] : '',
 							} 
 						: typePrams
+					if(![7,10].includes(this.chartInfo.ChartType)){
+						params = {
+							...params,
+							LeftMin:this.leftLimitData[1]+'',
+							LeftMax:this.leftLimitData[0]+'',
+							RightMin:this.rightLimitData[1]+'',
+							RightMax:this.rightLimitData[0]+'',
+							Right2Min:this.rightTwoLimitData[1]+'',
+							Right2Max:this.rightTwoLimitData[0]+'',
+							MinMaxSave:Number(hasLimitChange)
+						}
+					}
 					dataBaseInterface.chartAdd(params).then(res => {
 						if(res.Ret !== 200) return;
 							this.setChartImage(res.Data);

+ 87 - 6
src/views/dataEntry_manage/chartSetting.vue

@@ -382,7 +382,7 @@
 
                     <Chart :options="options" :chartInfo="chartInfo" ref="chartRef"/>
 
-                    <div class="range-cont left" v-if="leftIndex != -1">
+                   <!--  <div class="range-cont left" v-if="leftIndex != -1">
                       <el-input
                         style="width: 60px; display: block"
                         size="mini"
@@ -421,8 +421,6 @@
                         v-model="tableData[rightIndex].MinData"
                       />
                     </div>
-
-                    <!-- 右2上下限设置 -->
                     <div class="range-cont rightTwo" v-if="rightTwoIndex != -1">
                       <el-input
                         style="width: 60px; display: block"
@@ -440,7 +438,72 @@
                         :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib_editLimit')"
                         v-model="tableData[rightTwoIndex].MinData"
                       />
+                    </div> -->
+                    <template v-if="![7,10].includes(chartInfo.ChartType)">
+                        <div class="range-cont left" v-if="leftIndex != -1">
+                            <el-input
+                                style="width: 60px; display: block"
+                                size="mini"
+                                type="number"
+                                placeholder="上限"
+                                :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib_editLimit')"
+                                v-model="leftLimitData[0]"
+                                @change="changeAxisLimit"
+                            />
+                            <el-input
+                                class="min-data-input"
+                                size="mini"
+                                type="number"
+                                placeholder="下限"
+                                :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib_editLimit')"
+                                v-model="leftLimitData[1]"
+                                @change="changeAxisLimit"
+                            />
+                        </div>
+                    <div 
+                      class="range-cont right" 
+                      v-if="rightIndex != -1"
+                    >
+                      <el-input
+                        style="width: 60px; display: block"
+                        size="mini"
+                        type="number"
+                        placeholder="上限"
+                        :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib_editLimit')"
+                        v-model="rightLimitData[0]"
+                        @change="changeAxisLimit"
+                      />
+                      <el-input
+                        class="min-data-input"
+                        size="mini"
+                        type="number"
+                        placeholder="下限"
+                        :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib_editLimit')"
+                        v-model="rightLimitData[1]"
+                        @change="changeAxisLimit"
+                      />
+                    </div>
+                    <div class="range-cont rightTwo" v-if="rightTwoIndex != -1">
+                      <el-input
+                        style="width: 60px; display: block"
+                        size="mini"
+                        type="number"
+                        placeholder="上限"
+                        :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib_editLimit')"
+                        v-model="rightTwoLimitData[0]"
+                        @change="changeAxisLimit"
+                      />
+                      <el-input
+                        class="min-data-input"
+                        size="mini"
+                        type="number"
+                        placeholder="下限"
+                        :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib_editLimit')"
+                        v-model="rightTwoLimitData[1]"
+                        @change="changeAxisLimit"
+                      />
                     </div>
+                    </template>
 
                     <!-- 后续新图专用上下限 和其他数据依赖不公用 柱形图 截面散点-->
                     <template v-if="[7,10].includes(chartInfo.ChartType)">	
@@ -798,7 +861,7 @@ import {
   copyOtherOptions
 } from '@/utils/defaultOptions';
 import { chartSetMixin } from './mixins/chartPublic'
-
+import changeLimit from './mixins/changeLimit';
 import mPage from '@/components/mPage';
 import Chart from './components/chart';
 import chartDialog from './components/chartDialog';
@@ -847,7 +910,7 @@ export default {
       };
     },
   },
-  mixins: [chartSetMixin],
+  mixins: [chartSetMixin,changeLimit],
   data() {
     return {
       showData: false,
@@ -1596,6 +1659,12 @@ export default {
 			this.setDefaultSourceFrom();
   
       this.tableData = res.Data.EdbInfoList;
+      //若没有手动改过上下限,则初始化上下限
+      if(!this.chartInfo.MinMaxSave){
+            this.calcYAxislimit()
+        }else{
+            this.setLimitData()
+        }
       // 设置起始日期和最新日期
       this.setExtremumDate()
 
@@ -1844,7 +1913,19 @@ export default {
               EndDate: this.year_select === 5 ? this.select_date[1] : '',
             }
           : typeChartParam;
-
+        if(![7,10].includes(this.selected_chartType)){
+            params = {
+                ...params,
+                LeftMin:this.leftLimitData[1]+'',
+                LeftMax:this.leftLimitData[0]+'',
+                RightMin:this.rightLimitData[1]+'',
+                RightMax:this.rightLimitData[0]+'',
+                Right2Min:this.rightTwoLimitData[1]+'',
+                Right2Max:this.rightTwoLimitData[0]+'',
+                //手动保存视为更改过上下限
+                MinMaxSave:1
+            }
+        }
         dataBaseInterface.chartSave(params).then((res) => {
           if (res.Ret === 200) {
             this.$message.success('保存成功');

+ 82 - 7
src/views/dataEntry_manage/editChart.vue

@@ -407,7 +407,7 @@
 								{{ chartInfo.ChartName }}
 							</h2>
 							<Chart :options="options" :chartInfo="chartInfo" ref="chartRef" />
-							<div class="range-cont left" v-if="leftIndex != -1">
+							<!-- <div class="range-cont left" v-if="leftIndex != -1">
 								<el-input
 									style="width: 60px; display: block"
 									size="mini"
@@ -439,7 +439,6 @@
 									v-model="tableData[rightIndex].MinData"
 								/>
 							</div>
-							<!-- 右2上下限设置 -->
 							<div class="range-cont rightTwo" v-if="rightTwoIndex != -1">
 								<el-input
 									style="width: 60px; display: block"
@@ -455,7 +454,65 @@
 									placeholder="下限"
 									v-model="tableData[rightTwoIndex].MinData"
 								/>
-							</div>
+							</div> -->
+							<!-- 需求:曲线图、堆积柱状图、组合图加入新指标时上下限自动调整 -->
+							<template v-if="![7,10].includes(chartInfo.ChartType)">
+								<div class="range-cont left" v-if="leftIndex !== -1">
+									<el-input
+										style="width: 60px; display: block"
+										size="mini"
+										type="number"
+										placeholder="上限"
+										v-model="leftLimitData[0]"
+										@change="changeAxisLimit"
+									/>
+									<el-input
+										class="min-data-input"
+										size="mini"
+										type="number"
+										placeholder="下限"
+										v-model="leftLimitData[1]"
+										@change="changeAxisLimit"
+									/>
+								</div>
+								<div class="range-cont right" v-if="rightIndex !== -1">
+									<el-input
+										style="width: 60px; display: block"
+										size="mini"
+										type="number"
+										placeholder="上限"
+										v-model="rightLimitData[0]"
+										@change="changeAxisLimit"
+									/>
+									<el-input
+										class="min-data-input"
+										size="mini"
+										type="number"
+										placeholder="下限"
+										v-model="rightLimitData[1]"
+										@change="changeAxisLimit"
+									/>
+								</div>
+								<!-- 右2上下限设置 -->
+								<div class="range-cont rightTwo" v-if="rightTwoIndex !== -1">
+									<el-input
+										style="width: 60px; display: block"
+										size="mini"
+										type="number"
+										placeholder="上限"
+										v-model="rightTwoLimitData[0]"
+										@change="changeAxisLimit"
+									/>
+									<el-input
+										class="min-data-input"
+										size="mini"
+										type="number"
+										placeholder="下限"
+										v-model="rightTwoLimitData[1]"
+										@change="changeAxisLimit"
+									/>
+								</div>
+							</template>
 
 							<!-- 后续新图专用上下限 和其他数据依赖不公用 柱形图 截面散点-->
 							<template v-if="[7,10].includes(chartInfo.ChartType)">	
@@ -641,7 +698,7 @@ import { dataBaseInterface } from '@/api/api.js';
 import { chartSetMixin } from './mixins/chartPublic';
 import {unitArr} from '@/utils/defaultOptions.js'
 import addOrEditMixn from './mixins/addOreditMixin';
-
+import changeLimit from './mixins/changeLimit';
 import Chart from './components/chart';
 import DateChooseDia from './components/DateChooseDia';
 import SaveChartOther from './components/SaveChartOther';
@@ -686,6 +743,7 @@ export default {
 						// 奇怪柱形图
 						this.chartInfo.ChartType === 7 && this.barDateList.length && this.$refs.BarOptRef && this.$refs.BarOptRef.getBarData();
 					}else {
+						this.EdbAxisChange()
 						this.setAddChartDefault();
 						newval.length && !this.chartInfo.WarnMsg && this.setChartOptionHandle(newval);
 					}
@@ -696,7 +754,7 @@ export default {
       deep: true,
     },
 	},
-	mixins: [chartSetMixin,addOrEditMixn],
+	mixins: [chartSetMixin,addOrEditMixn,changeLimit],
   data() {
     return {
 			isSlideLeft: false,
@@ -855,7 +913,13 @@ export default {
 							MinData: Number(item.MinData)
 						})
 					)
-
+					
+					let hasLimitChange = Boolean(this.chartInfo.MinMaxSave)
+					//如果是 曲线图 堆积柱状图 组合图 需检测上下限是否修改
+					if([1,4,6].includes(this.chartInfo.ChartType)&&!this.chartInfo.MinMaxSave){
+						const limitSame= this.getLimitInfo()
+						hasLimitChange = !limitSame
+					}
 					const { ChartType,ChartName,ChartThemeId,SourcesFrom,Instructions,MarkersLines,MarkersAreas,ChartThemeStyle } = this.chartInfo;
 					let public_param = {
 						ChartClassifyId: this.chartInfo.classify.length ? this.chartInfo.classify[this.chartInfo.classify.length - 1] : 0,
@@ -893,7 +957,18 @@ export default {
 							height: 230,
 						}
 					});
-
+					if(![7,10].includes(this.chartInfo.ChartType)){
+						params = {
+							...params,
+							LeftMin:this.leftLimitData[1]+'',
+							LeftMax:this.leftLimitData[0]+'',
+							RightMin:this.rightLimitData[1]+'',
+							RightMax:this.rightLimitData[0]+'',
+							Right2Min:this.rightTwoLimitData[1]+'',
+							Right2Max:this.rightTwoLimitData[0]+'',
+							MinMaxSave:Number(hasLimitChange)
+						}
+					}
 					dataBaseInterface.chartEdit(params).then(res => {
 						if(res.Ret !== 200) return;
 						

+ 50 - 64
src/views/dataEntry_manage/mixins/addOreditMixin.js

@@ -82,10 +82,6 @@ export default {
 
 			},
 
-			leftLimitData:[0,0],
-			rightLimitData:[0,0],
-			rightTwoLimitData:[0,0]
-
 		}
 	},
 	computed: {
@@ -885,91 +881,81 @@ export default {
 		/* 指标切换左右轴*/
 		EdbAxisChange(){
 			//若用户没有修改过,则计算y轴的上下限
-			if(!this.chartInfo.hasLimitChange)
+			if(!this.chartInfo.MinMaxSave){
 				this.calcYAxislimit()
-		},
-		/* 计算y轴上下限 */
-		calcYAxislimit(){
-			//分组
-			const leftData = this.tableData.filter(i=>i.IsAxis===1).map(i=>[Number(i.MinData),Number(i.MaxData)])
-			const rightData = this.tableData.filter(i=>!i.IsAxis).map(i=>[Number(i.MinData),Number(i.MaxData)])
-			const rightTwoData = this.tableData.filter(i=>i.IsAxis===2).map(i=>[Number(i.MinData),Number(i.MaxData)])
-			//计算最大最小值
-			if(leftData.length){
-				const {Max,Min} = this.calcLimit(leftData.flat())
-				this.leftLimitData = [Max,Min]
-			}else{
-				this.leftLimitData = [0,0]
-			}
-			if(rightData.length){
-				const {Max,Min} = this.calcLimit(rightData.flat())
-				this.rightLimitData = [Max,Min]
-			}else{
-				this.rightLimitData = [0,0]
 			}
-			if(rightTwoData.length){
-				const {Max,Min} = this.calcLimit(rightTwoData.flat())
-				this.rightTwoLimitData = [Max,Min]
-			}else{
-				this.rightTwoLimitData = [0,0]
-			}
-			console.table([
-				{'y轴':'左轴','最大值':this.leftLimitData[0],'最小值':this.leftLimitData[1]},
-				{'y轴':'右轴','最大值':this.rightLimitData[0],'最小值':this.rightLimitData[1]},
-				{'y轴':'右二轴','最大值':this.rightTwoLimitData[0],'最小值':this.rightTwoLimitData[1]}
-			])
-		},
-		calcLimit(arr){
-			return {
-				Max:Math.max(...arr),
-				Min:Math.min(...arr)
-			}
-		},
-		changeAxisLimit(){
-			this.setAddChartDefault();
-			this.setChartOptionHandle(this.tableData);
 		},
-		//判断用户有没有手动更改过上下限
+		//新增/编辑保存图表时-判断用户有没有手动更改过上下限
 		getLimitInfo(){
 			const leftData = this.tableData.filter(i=>i.IsAxis===1).map(i=>[Number(i.MinData),Number(i.MaxData)])
 			const rightData = this.tableData.filter(i=>!i.IsAxis).map(i=>[Number(i.MinData),Number(i.MaxData)])
 			const rightTwoData = this.tableData.filter(i=>i.IsAxis===2).map(i=>[Number(i.MinData),Number(i.MaxData)])
-			let leftLimitSame=false,rightLimitSame=false,rightTwoLimitSame=false
+			let leftLimitSame=true,rightLimitSame=true,rightTwoLimitSame=true
 			//若每个轴的最大值和最小值不一致,则认为是更改过
 			if(leftData.length){
 				const {Max,Min} = this.calcLimit(leftData.flat())
-				leftLimitSame = Max===this.leftLimitData[0]&&Min===this.leftLimitData[1]
+				leftLimitSame = Max===Number(this.leftLimitData[0])&&Min===Number(this.leftLimitData[1])
+                console.table([{
+                    'y轴': '左轴',
+                    '设置最大值': this.leftLimitData[0],
+                    '设置最小值': this.leftLimitData[1],
+                    '指标最大值':Max,
+                    '指标最小值':Min
+                }])
 			}
 			if(rightData.length){
 				const {Max,Min} = this.calcLimit(rightData.flat())
-				rightLimitSame = Max===this.rightLimitData[0]&&Min===this.rightLimitData[1]
+				rightLimitSame = Max===Number(this.rightLimitData[0])&&Min===Number(this.rightLimitData[1])
+                console.table([{
+                    'y轴': '右轴',
+                    '设置最大值': this.rightLimitData[0],
+                    '设置最小值': this.rightLimitData[1],
+                    '指标最大值':Max,
+                    '指标最小值':Min
+                }])
 			}
 			if(rightTwoData.length){
 				const {Max,Min} = this.calcLimit(rightTwoData.flat())
-				rightTwoLimitSame = Max===this.rightTwoLimitData[0]&&Min===this.rightTwoLimitData[1]
+				rightTwoLimitSame = Max===Number(this.rightTwoLimitData[0])&&Min===Number(this.rightTwoLimitData[1])
+                console.table([{
+                    'y轴': '右二轴',
+                    '设置最大值': this.rightTwoLimitData[0],
+                    '设置最小值': this.rightTwoLimitData[1],
+                    '指标最大值':Max,
+                    '指标最小值':Min
+                }])
 			}
 			let limitSame = leftLimitSame&&rightLimitSame&&rightTwoLimitSame
 			return limitSame
 		},
 		//编辑图表-获取接口的上下限数据赋值
 		getLimitData(){
-			/* const {
+			const {
 				//左右轴极值字段 
+				LeftMin=0,LeftMax=0,
+				RightMin=0,RightMax=0,
+				Right2Min=0,Right2Max=0,
+				MinMaxSave
 			} = this.chartInfo
-			this.leftLimitData = []
-			this.rightLimitData = []
-			this.rightTwoLimitData = []
-			//右二轴之前没存字段,需要单独处理下
-			//若右二轴的上下限均为0,则不管用户有没有修改过,都重新赋值
-			if(this.rightTwoLimitData[0]===0&&this.rightTwoLimitData[1]===0){
-				const rightTwoData = this.tableData.filter(i=>i.IsAxis===2).map(i=>[Number(i.MinData),Number(i.MaxData)])
-				if(rightTwoData.length){
-					const {Max,Min} = this.calcLimit(rightTwoData.flat())
-					this.rightTwoLimitData = [Max,Min]
-				}else{
-					this.rightTwoLimitData = [0,0]
+			if(MinMaxSave){
+				this.leftLimitData = [Number(LeftMin),Number(LeftMax)]
+				this.rightLimitData = [Number(RightMin),Number(RightMax)]
+				this.rightTwoLimitData = [Number(Right2Min),Number(Right2Max)]
+				//右二轴之前没存字段,需要单独处理下
+				//若右二轴的上下限均为0,则不管用户有没有修改过,都重新赋值
+				if(this.rightTwoLimitData[0]===0&&this.rightTwoLimitData[1]===0){
+					const rightTwoData = this.tableData.filter(i=>i.IsAxis===2).map(i=>[Number(i.MinData),Number(i.MaxData)])
+					if(rightTwoData.length){
+						const {Max,Min} = this.calcLimit(rightTwoData.flat())
+						this.rightTwoLimitData = [Max,Min]
+					}else{
+						this.rightTwoLimitData = [0,0]
+					}
 				}
-			} */
+			}else{
+				this.EdbAxisChange()
+			}
+			
 		}
 	}
 }

+ 85 - 0
src/views/dataEntry_manage/mixins/changeLimit.js

@@ -0,0 +1,85 @@
+export default {
+    data() {
+        return {
+            leftLimitData:[0,0],//左轴上下限
+            rightLimitData:[0,0],//右轴上下限
+            rightTwoLimitData:[0,0],//右二轴上下限
+        }
+    },
+    methods: {
+        /* 计算y轴上下限 */
+        calcYAxislimit(type) {
+            //分组
+            const leftData = this.tableData.filter(i => i.IsAxis === 1).map(i => [Number(i.MinData), Number(i.MaxData)])
+            const rightData = this.tableData.filter(i => !i.IsAxis).map(i => [Number(i.MinData), Number(i.MaxData)])
+            const rightTwoData = this.tableData.filter(i => i.IsAxis === 2).map(i => [Number(i.MinData), Number(i.MaxData)])
+            //计算最大最小值
+            if (leftData.length) {
+                const {
+                    Max,
+                    Min
+                } = this.calcLimit(leftData.flat())
+                this.leftLimitData = [Max, Min]
+            } else {
+                this.leftIndex = -1
+                this.leftLimitData = [0, 0]
+            }
+            if (rightData.length) {
+                const {
+                    Max,
+                    Min
+                } = this.calcLimit(rightData.flat())
+                this.rightLimitData = [Max, Min]
+            } else {
+                this.rightIndex = -1
+                this.rightLimitData = [0, 0]
+            }
+            if (rightTwoData.length) {
+                const {
+                    Max,
+                    Min
+                } = this.calcLimit(rightTwoData.flat())
+                this.rightTwoLimitData = [Max, Min]
+            } else {
+                this.rightTwoIndex = -1
+                this.rightTwoLimitData = [0, 0]
+            }
+            console.table([{
+                    'y轴': '左轴',
+                    '最大值': this.leftLimitData[0],
+                    '最小值': this.leftLimitData[1]
+                },
+                {
+                    'y轴': '右轴',
+                    '最大值': this.rightLimitData[0],
+                    '最小值': this.rightLimitData[1]
+                },
+                {
+                    'y轴': '右二轴',
+                    '最大值': this.rightTwoLimitData[0],
+                    '最小值': this.rightTwoLimitData[1]
+                }
+            ])
+        },
+        calcLimit(arr) {
+            return {
+                Max: Math.max(...arr),
+                Min: Math.min(...arr)
+            }
+        },
+        changeAxisLimit() {
+            this.setAddChartDefault&&this.setAddChartDefault();
+            this.setChartOptionHandle(this.tableData);
+        },
+        setLimitData(){
+            this.leftLimitData[1] = this.chartInfo.LeftMin
+            this.leftLimitData[0] = this.chartInfo.LeftMax
+
+            this.rightLimitData[1] = this.chartInfo.RightMin
+            this.rightLimitData[0] = this.chartInfo.RightMax
+        
+            this.rightTwoLimitData[1] = this.chartInfo.Right2Min
+            this.rightTwoLimitData[0] = this.chartInfo.Right2Max
+        }
+    }
+}

+ 9 - 21
src/views/dataEntry_manage/mixins/chartPublic.js

@@ -586,27 +586,15 @@ export const chartSetMixin = {
           (i) => i.IsAxis === item.IsAxis
         );
         
-        //添加编辑页和其他页面取值不同
-        const isCalcLimit = ['/addchart','/editchart'].includes(this.$route.path)
+        //获取对应轴的上下限
         let minLimit = 0,maxLimit = 0
-        if(isCalcLimit){
-            const limitMap = {
-                0:this.rightLimitData||[],
-                1:this.leftLimitData||[],
-                2:this.rightTwoLimitData||[]
-            }
-            minLimit = limitMap[item.IsAxis][1]||0
-            maxLimit = limitMap[item.IsAxis][0]||0
-        }else{
-            //其他页面直接获取图表详情的上下限值
-            /* const limitMap = {
-                0:this.chartInfo.rightLimitData||[],
-                1:this.chartInfo.leftLimitData||[],
-                2:this.chartInfo.rightTwoLimitData||[]
-            }
-            minLimit = limitMap[item.IsAxis][1]||0
-            maxLimit = limitMap[item.IsAxis][0]||0 */
+        const limitMap = {
+            0:this.rightLimitData||[],
+            1:this.leftLimitData||[],
+            2:this.rightTwoLimitData||[]
         }
+        minLimit = limitMap[item.IsAxis][1]||0
+        maxLimit = limitMap[item.IsAxis][0]||0
 
         //y轴
         let yItem = {
@@ -638,8 +626,8 @@ export const chartSetMixin = {
           },
           opposite: [0,2].includes(item.IsAxis),
           reversed: item.IsOrder,
-          min: isCalcLimit?Number(minLimit):Number(item.MinData),
-          max: isCalcLimit?Number(maxLimit):Number(item.MaxData),
+          min: Number(minLimit),
+          max: Number(maxLimit),
           tickWidth: 1,
           visible: sameSideIndex === index,
           plotBands: this.setAxisPlotAreas(item.IsAxis),

+ 80 - 58
src/views/mychart_manage/components/chartDetailDia.vue

@@ -214,62 +214,63 @@
               <template v-if="!chartInfo.WarnMsg">
                 <Chart :options="options" :chartInfo="chartInfo" ref="chartRef"/>
                 <!-- 上下限 -->
-                <div class="range-cont left" v-if="leftIndex != -1">
-                  <el-input
-                    style="width: 60px; display: block"
-                    size="mini"
-                    type="number"
-                    placeholder="上限"
-                    :disabled="!isAllowEditLimit"
-                    v-model="tableData[leftIndex].MaxData"
-                  />
-                  <el-input
-                    class="min-data-input"
-                    size="mini"
-                    type="number"
-                    placeholder="下限"
-                    :disabled="!isAllowEditLimit"
-                    v-model="tableData[leftIndex].MinData"
-                  />
-                </div>
-                <div class="range-cont right" v-if="rightIndex != -1">
-                  <el-input
-                    style="width: 60px; display: block"
-                    size="mini"
-                    type="number"
-                    placeholder="上限"
-                    :disabled="!isAllowEditLimit"
-                    v-model="tableData[rightIndex].MaxData"
-                  />
-                  <el-input
-                    class="min-data-input"
-                    size="mini"
-                    type="number"
-                    placeholder="下限"
-                    :disabled="!isAllowEditLimit"
-                    v-model="tableData[rightIndex].MinData"
-                  />
-                </div>
-
-                <!-- 右2上下限设置 -->
-                <div class="range-cont rightTwo" v-if="rightTwoIndex != -1">
-                  <el-input
-                    style="width: 60px; display: block"
-                    size="mini"
-                    type="number"
-                    placeholder="上限"
-                    :disabled="!isAllowEditLimit"
-                    v-model="tableData[rightTwoIndex].MaxData"
-                  />
-                  <el-input
-                    class="min-data-input"
-                    size="mini"
-                    type="number"
-                    placeholder="下限"
-                    :disabled="!isAllowEditLimit"
-                    v-model="tableData[rightTwoIndex].MinData"
-                  />
-                </div>
+                <template v-if="![7,10].includes(chartInfo.ChartType)">
+                    <div class="range-cont left" v-if="leftIndex !== -1">
+                        <el-input
+                            style="width: 60px; display: block"
+                            size="mini"
+                            type="number"
+                            placeholder="上限"
+                            v-model="leftLimitData[0]"
+                            @change="changeAxisLimit"
+                        />
+                        <el-input
+                            class="min-data-input"
+                            size="mini"
+                            type="number"
+                            placeholder="下限"
+                            v-model="leftLimitData[1]"
+                            @change="changeAxisLimit"
+                        />
+                    </div>
+                    <div class="range-cont right" v-if="rightIndex !== -1">
+                        <el-input
+                            style="width: 60px; display: block"
+                            size="mini"
+                            type="number"
+                            placeholder="上限"
+                            v-model="rightLimitData[0]"
+                            @change="changeAxisLimit"
+                        />
+                        <el-input
+                            class="min-data-input"
+                            size="mini"
+                            type="number"
+                            placeholder="下限"
+                            v-model="rightLimitData[1]"
+                            @change="changeAxisLimit"
+                        />
+                    </div>
+                    <!-- 右2上下限设置 -->
+                    <div class="range-cont rightTwo" v-if="rightTwoIndex !== -1">
+                        <el-input
+                            style="width: 60px; display: block"
+                            size="mini"
+                            type="number"
+                            placeholder="上限"
+                            v-model="rightTwoLimitData[0]"
+                            @change="changeAxisLimit"
+                        />
+                        <el-input
+                            class="min-data-input"
+                            size="mini"
+                            type="number"
+                            placeholder="下限"
+                            v-model="rightTwoLimitData[1]"
+                            @change="changeAxisLimit"
+                        />
+                    </div>
+                </template>
 
                   <!-- 后续新图专用上下限 和其他数据依赖不公用 柱形图 截面散点-->
                 <template v-if="[7,10].includes(chartInfo.ChartType)">	
@@ -588,11 +589,12 @@ import DateChooseDia from '@/views/dataEntry_manage/components/DateChooseDia';
 import changeLang from "@/views/dataEntry_manage/components/changeLang"
 import setEnNameDia from "@/views/dataEntry_manage/components/setEnNameDia"
 import { chartSetMixin } from '@/views/dataEntry_manage/mixins/chartPublic'
+import changeLimit from '@/views/dataEntry_manage/mixins/changeLimit';
 import { copyFit } from '@/utils/svgToblob.js';
 
 export default {
   components: { Chart, DateChooseDia,SaveChartOther,changeLang,setEnNameDia },
-  mixins: [ chartSetMixin ],
+  mixins: [ chartSetMixin,changeLimit ],
   directives: {
     'click-outside':{
       bind(el, binding) {
@@ -731,8 +733,15 @@ export default {
             this.setDefaultSourceFrom();
             
             this.tableData = res.Data.EdbInfoList;
+            //若没有手动改过上下限,则初始化上下限
+            if(!this.chartInfo.MinMaxSave){
+                this.calcYAxislimit()
+            }else{
+                this.setLimitData()
+            }
             //eta图
             this.setDefaultDateSelect(); //设置默认的日期选中
+
             this.chartInfo.ChartType === 7 && this.initBarData(res.Data);
 
             this.chartInfo.ChartType === 10 && this.initSectionScatterData(res.Data);
@@ -1188,7 +1197,20 @@ export default {
             EndDate: this.year_select === 5 ? this.select_date[1] : '',
           }
         : typeChartParam;
-
+        
+        if(![7,10].includes(this.selected_chartType)){
+            params = {
+                ...params,
+                LeftMin:this.leftLimitData[1]+'',
+                LeftMax:this.leftLimitData[0]+'',
+                RightMin:this.rightLimitData[1]+'',
+                RightMax:this.rightLimitData[0]+'',
+                Right2Min:this.rightTwoLimitData[1]+'',
+                Right2Max:this.rightTwoLimitData[0]+'',
+                //手动保存视为更改过上下限
+                MinMaxSave:1
+            }
+        }
       dataBaseInterface.chartSave(params).then((res) => {
         if (res.Ret === 200) {
           this.$message.success('保存成功');