//柱状图 app.controller('zhuCtrl', ['$scope', '$timeout', 'YPJBXXGL', '$http', 'wyChartsData', 'RWDZ', '$uibModal', 'wytableData', '$state', function ($scope, $timeout, YPJBXXGL, $http, wyChartsData, RWDZ, $uibModal, wytableData, $state) { $scope.toBIHome = function () { $state.go("app.BIHome"); } $scope.Details = false; $scope.SistDetail = function () { if (!$scope.Details) { $scope.Details = true; } else { $scope.Details = false; } } $scope.myDetails = [];//表格详细 //点击年份 跳转到饼图 $scope.BingTu = function (year) { $scope.items = year; var modalInstance = $uibModal.open({ animation: true, backdrop: false, // 不让点击背景关闭系统 templateUrl: 'app/login/view/modalMain_Bing.html', controller: 'bingCtrl', size: 'lg', //windowTopClass:'dialog' resolve: { items: function () { return $scope.items; } } }); modalInstance.result.then( function (nclose) { $scope.returnData = nclose }, function (ndismiss) { $scope.returnData = ndismiss } ) } //柱状图展示 //$scope.item = ['2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020','2021']; //y轴展示数据 $scope.tt = []; $scope.id = 0; $scope.data = []; //这个是柱状图里面的内容 wyChartsData.getData().then(function (dTata) { console.log(angular.toJson(dTata)) dTata = Enumerable.From(dTata).OrderBy("$.RWNF").ToArray(); $scope.myDetails = dTata; //为了年度的数组 arrYear = Enumerable.From(dTata).OrderBy("$.RWNF").Select("$.RWNF").ToArray(); for (var i = 0; i < dTata.length; i++) { $scope.data.push(dTata[i].XiangCiShu); } $scope.myData = { tooltip: { show: true, trigger: "axis" }, legend: { data: ['样品量'] }, xAxis: [{ type: 'category', //data: ['2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020','2021'] data: arrYear }], yAxis: [{ type: 'value' }], series: [{ name: '样品量', type: 'bar', data: $scope.data, itemStyle: { normal: { label: { show: true, position: 'top', formatter: '{c}'    //这是关键,在需要的地方加上就行了 } } }, }] }; }) //这个是图表下方的表格里面的内容 wytableData.getData().then(function (dTata) { $scope.myDetails = dTata; }) }]) app.directive('wyCharts', function () { return { scope: { id: '@', data: "=" }, restrict: 'AE', template: '
', replace: true, link: function ($scope, iElm, iAttrs, controller) { //var option =data; // 基于准备好的dom,初始化echarts图表 var myChart = echarts.init(document.getElementById($scope.id), 'macarons'); // console.log(myChart) // 为echarts对象加载数据 myChart.showLoading( { text: "正在加载数据" }, { effect: "whirling" } ); $scope.$watch('data', function (e, t) { // console.log(e); //console.log('xindexinxi!!!'); if (e) { myChart.setOption(e); myChart.hideLoading(); } }) } }; }); /*******************************************************************************************************************************/ //这哥service是用于异步的获取数据 app.service('wyChartsData', function ($http, $q,$timeout,$sessionStorage) { this.getData = function () { var deferred = $q.defer(); //$http.get(Gaddress + '/home/getarraycount', {}).success(function (data) { // deferred.resolve(data); //}) $http.get(Gaddress + '/tongji/GetMainPageData', {}).success(function (data) { console.log('主页图表数据',data.data) deferred.resolve(data.data); }) //console.log(deferred.promise) return deferred.promise; } }) //这个service是用于获取当前年份的计划件数和采样件数完成件数的接口数据 app.service('wytableDataOld', function ($http, $q, $timeout) { this.getData = function () { var deferred = $q.defer(); var Year = ["2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021"];//表格年份 var mydata = []; angular.forEach(Year, function (data) { var aa = { JHJS: 0, year: "", CYJS: 0, SHJS:0, WCJS: 0, HGL:"" } var rwbh = pubserver + "RWDZ_DB?$filter="+"YPKSSJ ge '" + data + "/01/01' and YPJSSJ le '" + data + "/12/31' &$select=JCRWHJ"; $http.get(rwbh, {}).success(function (data1) { if (data1.value.length > 0) { var cc = Enumerable.From(data1.value).Select("$.JCRWHJ").Sum(); aa.JHJS = cc; aa.year = data; } else { aa.JHJS = 0; aa.year = data; } }) //查询出任务里面的状态查询出采样的数据 var caiyangshuju = pubserver + "YPJBXXGL_DB?$filter=" + "RWNF eq '" + data + "' &$select=YPJBZTType"; $http.get(caiyangshuju, {}).success(function (data2) { var dd = Enumerable.From(data2.value); aa.CYJS = dd.Count(); aa.SHJS = dd.Where(function (x) { return x.YPJBZTType == 4 || x.YPJBZTType == 3 }).Count(); aa.WCJS = dd.Where(function (x) { return x.YPJBZTType == 4 }).Count(); if (aa.JHJS > 0) { aa.HGL = (aa.WCJS / aa.JHJS).toFixed(2)*100 + "%"; } else { aa.HGL = "0.00%"; } }) mydata.push(aa); }) $timeout(function () { deferred.resolve(mydata); }, 3000) return deferred.promise; } }) app.service('wytableData', function ($http, $q, $timeout) { this.getData = function () { var deferred = $q.defer(); // $timeout(function () { // deferred.resolve(mydata); // }, 3000) //return JSON.parse( deferred.promise); return deferred.promise; } }) //饼状图 /**************************饼庄图******************************/ app.controller('bingCtrl', ['$scope', '$timeout','$uibModal','$uibModalInstance','items', function ($scope, $timeout, $uibModal,$uibModalInstance,items) { // $scope.legend = ['粮食加工品', "食用油、油脂及其制品", "调味品", '肉制品', "乳制品", "饮料", "方便食品", "饼干", "罐头", "冷冻饮品", "速冻食品", "薯类和膨化食品", "糖果制品", " 茶叶及相关制品", "酒类", "蔬菜制品", "水果制品", "炒货食品及坚果制品", "蛋制品", "可可及焙烤咖啡产品", "食糖", "水产制品", "淀粉及淀粉制品", "糕点", "豆制品", "蜂产品", "特殊医学用途配方食品", "婴幼儿配方食品", "特殊膳食食品", "餐饮食品", "食用农产品", "食品添加剂"]; $scope.item = ['', '', '', '', '', '']; //y轴展示数据 $scope.data = [ [ { value: 152, name: '粮食加工品' }, { value: 200, name: '食用油、油脂及其制品' }, { value: 102, name: '调味品' }, { value: 260, name: '肉制品' }, { value: 230, name: '乳制品' }, { value: 125, name: '饮料' }, { value: 136, name: '方便食品' }, { value: 182, name: '饼干' }, { value: 290, name: '罐头' }, { value: 252, name: '冷冻饮品' }, { value: 240, name: '速冻食品' }, { value: 150, name: '薯类和膨化食品' }, { value: 99, name: '糖果制品' }, { value: 263, name: '茶叶及相关制品' }, { value: 240, name: '酒类' }, { value: 260, name: '蔬菜制品' }, { value: 120, name: '水果制品' }, { value: 201, name: '炒货食品及坚果制品 ' }, { value: 260, name: '可可及焙烤咖啡产品' }, { value: 150, name: '食糖' }, { value: 260, name: '水产制品' }, { value: 150, name: '淀粉及淀粉制品' }, { value: 140, name: '糕点' }, { value: 260, name: '豆制品' }, { value: 102, name: '蜂产品' }, { value: 135, name: '特殊医学用途配方食品' }, { value: 150, name: '婴幼儿配方食品' }, { value: 270, name: '特殊膳食食品' }, { value: 260, name: '餐饮食品' }, { value: 160, name: '食用农产品' }, { value: 280, name: '食品添加剂' }, ] ]; $scope.return = function () { $uibModalInstance.dismiss('界面直接退出'); } }]) app.directive('ePiechart', function ($timeout) { return { restrict: 'AE', link: link }; function link($scope, element, attrs) { var myChart1 = echarts.init(element[0]); myChart1.showLoading( { text: "正在加载数据" }, { effect: "whirling" } ); //监听options变化 if (attrs.uiOptions1) { attrs.$observe('uiOptions1', function () { var options = $scope.$eval(attrs.uiOptions1); // console.log(options) if (angular.isObject(options)) { myChart1.setOption(options); } }, true); } $timeout(function () { myChart1.hideLoading(); }, 2000) } }) app.directive('mainpiewy', function () { return { scope: { id: "@", legend: "=", item: "=", data: "=", newfunc: '&' }, restrict: 'E', // E = Element, A = Attribute, C = Class, M = Comment template: '
', replace: true, controller: function ($scope) { var option = { title: { text: '食品分类情况', subtext: '', x: 'center' }, tooltip: { trigger: 'item', formatter: "{a}
{b} : {c} ({d}%)" }, legend: { orient: 'vertical', left: 'left', data: $scope.legend }, series: function () { var serie = []; var item = { name: "样品大类", type: 'pie', data: $scope.data[0], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX:0 , shadowColor: 'rgba(0, 0, 0, 0.5)' } } }; serie.push(item); return serie; }() } $scope.option = option; }, link: function ($scope, iElm, iAttrs, controller) { //// 基于准备好的dom,初始化echarts图表 var myChart = echarts.init(document.getElementById($scope.id), 'macarons'); //// 为echarts对象加载数据 myChart.setOption($scope.option); $scope.$watch('', function () { //// 基于准备好的dom,初始化echarts图表 var myChart = echarts.init(document.getElementById($scope.id), 'macarons'); //// 为echarts对象加载数据 myChart.setOption($scope.option); } ); } }; });