wzz 3 years ago
parent
commit
4b758235ad

+ 53 - 32
pages/metrics/index.vue

@@ -36,14 +36,14 @@
 		<!-- <qiun-title-bar title="2021年规上工业任务目标"/> -->
 		<view class="title-second">{{dateYear}}年规上工业任务目标</view>
 		<view class="charts-box" style="position: relative;">
-		    <qiun-data-charts type="bar" background="#4C4C4C" :opts="{extra:{bar:{linearType:'custom',barBorderCircle:true}}}" :chartData="chartData"/>
+		    <qiun-data-charts type="bar" background="#4C4C4C" :opts="chartDataBarOpt" :chartData="chartData"/>
 			<view class="pos-font" style="top: 26%;">增速</view>
 			<view class="pos-font" style="top: 64.5%;">总产值</view>
 		</view>
 		<!-- <qiun-title-bar title="先进制造业产值(亿元)"/> -->
 		<view class="title-second">先进制造业产值(亿元)</view>
 		<view class="charts-box">
-		    <qiun-data-charts  type="column" :chartData="chartData1" background="#4C4C4C" :ontouch="true" :opts="{enableScroll: true,xAxis:{scrollShow: true,itemCount:5},yAxis:{splitNumber:3}}"/>
+		    <qiun-data-charts  type="column" :chartData="chartData1" background="#4C4C4C" :ontouch="true" :opts="companyOpts"/>
 		</view>
 		<!-- <qiun-title-bar title="工业产值"/> -->
 		<view class="title-second">工业产值</view>
@@ -69,7 +69,7 @@
 		<!-- <qiun-title-bar title="2021年工业投资任务目标"/> -->
 		<view class="title-second">{{dateYear}}年工业投资任务目标</view>
 		<view class="charts-box">
-		    <qiun-data-charts type="bar"   background="#4C4C4C" :opts="{extra:{bar:{linearType:'custom',barBorderCircle:true}}}" :chartData="industryData.chartData"/>
+		    <qiun-data-charts type="bar"   background="#4C4C4C" :opts="industryData.chartDataBarOptIndustry" :chartData="industryData.chartData"/>
 		</view>
 		<!-- <qiun-title-bar title="工业投资额"/> -->
 		<view class="title-second">工业投资额</view>
@@ -174,15 +174,15 @@
 			  advanced_count:'',
 			  advanced_increase_ratio:'',
 			  chartData:{
-				categories: [ "工业增加值","先进制造业" ],//增速,总产值
+				categories: [ "工业增加值","先进制造业" ],//增速1,总产值2
 				series: [
-					{   name: "目标任务",
+					{   name: "目标任务", //TARGET
 					    otherData:[],
 						data: [],
 						format:'moreDataShow',
 						textSize:10
 					},
-				    {   name: "目前已完成", 
+				    {   name: "目前已完成", //FINISH
 					    otherData:[],
 						data: [],
 						format:'moreDataShow',
@@ -190,6 +190,8 @@
 					},
 					]
 			  },
+			  chartDataBarOpt:{extra:{bar:{linearType:'custom',barBorderCircle:true}}},
+			  companyOpts:{enableScroll: false,xAxis:{scrollShow: true,itemCount:5},yAxis:{splitNumber:3}},
 			  chartData1:{
 				  "categories": [],
 				  "series": [
@@ -207,6 +209,7 @@
 					]
 			  },
 			  industryData:{
+				  chartDataBarOptIndustry:{extra:{bar:{linearType:'custom',barBorderCircle:true}}},
 				  discuss_project_count:'',
 				  industrial_investment_project_count:'',
 				  instore_project_count:'',
@@ -375,23 +378,33 @@
 				   this.standard_sized_increase_ratio = res.data.data.standard_sized_increase_ratio || '-';
 				   this.advanced_count = res.data.data.advanced_count || '-';
 				   this.advanced_increase_ratio = res.data.data.advanced_increase_ratio || '-';
-				   if(res.data.data.target.length){
-					   res.data.data.target.forEach((item,index)=>{
-						   if(item.source === '2'){
-							   targetRatio2 = Number(item.increase_ratio) || 0
-						   }
-						   if(item.source === '1'){
-							  targetRatio1 = Number(item.increase_ratio) || 0					 
+				   let dataList = res.data.data;
+				   if(dataList.target.length){
+					   dataList.target.forEach((item,index)=>{
+						   if(item.source == '1'){
+							   targetRatio1 = Number(item.increase_ratio) || 0		
+							   targetData.push(Number(item.increase_balance))
+							   targetData1.push(Number(item.increase_ratio))
 						   }
-						   if(item.source !== '0'){
+						   if(item.source == '2'){
+							   targetRatio2 = Number(item.increase_ratio) || 0
 							   targetData.push(Number(item.increase_balance))
 							   targetData1.push(Number(item.increase_ratio))
 						   }
 					   })
 				   }
-				   if(res.data.data.finish.length){
-					    res.data.data.finish.forEach((item,index)=>{
-						   if(item.source === '2'){
+				   if(dataList.finish.length){
+					    this.chartDataBarOpt.xAxis = {min:0}
+					    dataList.finish.forEach((item,index)=>{
+						if(item.source == '1'){
+						   let dataObj = {
+							   value:Number(item.increase_ratio),
+							   color:Number(item.increase_ratio) > targetRatio1 ? '#68d889' : '#cc0000'
+						   }
+						   finishData.push(Number(item.increase_balance))
+						   finishData1.push(dataObj)
+						 }
+						   if(item.source == '2'){
 							   let dataObj = {
 								   value:Number(item.increase_ratio),
 								   color:Number(item.increase_ratio) > targetRatio2 ? '#68d889' : '#cc0000'
@@ -399,20 +412,16 @@
 							   finishData.push(Number(item.increase_balance))
 							   finishData1.push(dataObj)
 						   }
-						   if(item.source === '1'){
-							   let dataObj = {
-								   value:Number(item.increase_ratio),
-								   color:Number(item.increase_ratio) > targetRatio1 ? '#68d889' : '#cc0000'
-							   }
-							   finishData.push(Number(item.increase_balance))
-							   finishData1.push(dataObj)
+						   if(Number(item.increase_ratio) < 0){
+						   	   this.chartDataBarOpt.xAxis = {min:-8}					   
 						   }
 					   })
+					  
 				   }
-				   this.chartData.series[0].data = targetData1.reverse()
-				   this.chartData.series[0].otherData = targetData.reverse()
-				   this.chartData.series[1].data = finishData1.reverse()
-				   this.chartData.series[1].otherData = finishData.reverse()
+				   this.chartData.series[0].data = targetData1
+				   this.chartData.series[0].otherData = targetData
+				   this.chartData.series[1].data = finishData1
+				   this.chartData.series[1].otherData = finishData
 			      }
 			    },
 			    fail: () => {
@@ -449,10 +458,18 @@
 				success: (res) => {
 				  if (res.data.code === 200) {
 					  let categoriesList = [],balanceList = [],lineBalanceList = [], lineLast = [];
-					  res.data.data.company_list.forEach((item)=>{
-						categoriesList.push(item.short_name);
-						balanceList.push(item.balance)
-					  })
+					  let companyList = res.data.data.company_list
+					  if(companyList.length){
+						 if(companyList.length > 4){
+							 this.companyOpts.enableScroll = true; 
+						 } 
+						 companyList.forEach((item)=>{
+								categoriesList.push(item.short_name);
+								balanceList.push(item.balance)
+						 }) 
+					  }else if(companyList.length === 0){
+						  this.companyOpts.enableScroll = false;
+					  }
 					  balanceList = balanceList.map((item)=>{ return (Number(item)/10000).toFixed(2)});
 					 //  res.data.data.month_list.forEach((item)=>{
 						// lineBalanceList.push(item.balance);
@@ -495,6 +512,7 @@
 			  }
 			  if(data.finish.length){
 					let finishList = data.finish;
+					this.industryData.chartDataBarOptIndustry.xAxis = {min:0}
 					let dataStoreObj = {
 					   value:Number(finishList[0].store_ratio),
 					   color:Number(finishList[0].store_ratio) > storeRatio ? '#68d889' : '#cc0000'
@@ -506,6 +524,9 @@
 					}
 					finishData1.push(dataTechObj)
 					finishData = [Number(finishList[0].store_balance),Number(finishList[0].tech_balance)];
+					if(Number(finishList[0].store_ratio) < 0 || Number(finishList[0].tech_ratio) < 0){
+						 this.industryData.chartDataBarOptIndustry.xAxis = {min:-8}
+					}
 			  }
 			  for(let key in data.month_list ){
 					 lineBalanceList.push(data.month_list[key].balance)

+ 7 - 1
uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js

@@ -54,7 +54,13 @@ const cfu = {
   "option":{},
   //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换
   "formatter":{
-    "moreDataShow":function(val,index,opts,series){return series.otherData[index] +'亿' + ';同比增长' + val + '%'},
+    "moreDataShow":function(val,index,opts,series){
+		if(series.otherData[index] == 0 && val == 0){
+			return ''
+		}else {
+			return series.otherData[index] +'亿' + ';同比增长' + val + '%'
+		}
+		},
     "yAxisDemo2":function(val){return val.toFixed(2)},
 	"fix1":function(val,index,opts,series){return series.otherData[index] + '%'},
     "xAxisDemo1":function(val){return val+'年'},

+ 1 - 1
uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js

@@ -2120,7 +2120,7 @@ function drawBarPointText(points, series, config, context, opts) {
       }
       var formatVal = series.formatter ? series.formatter(value,index,opts,series) : value;
       context.setTextAlign('left');
-      context.fillText(String(formatVal), item.x - 70 * opts.pix , item.y + fontSize / 2 - 3 );
+      context.fillText(String(formatVal), item.x - 85 * opts.pix , item.y + fontSize / 2 - 3 );
       context.closePath();
       context.stroke();
     }