123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559 |
- //index.js
- //获取应用实例
- import * as echarts from '../../ec-canvas/echarts';
- var imageUtil = require('../../utils/window.js');
- const apiServer = require('../../api/request');
- const app = getApp()
- Page({
- data: {
- url:'../../images/timg.jpg',
- motto: '',
- currentTab: 0,
- winheight:0,
- userInfo: {},
- hasUserInfo: false,
- canIUse: wx.canIUse('button.open-type.getUserInfo'),
- currPage:1,//当前页
- pages:0,//每页条数
- total:0,//总条数
- aa:[],//列表
- loading: false,
- imagewidth: 0,//缩放后的宽
- imageheight: 0,//缩放后的高
- chartData:{
- },
- chartDatas:{
- },
- ec: {
- onInit: true,
- // lazyLoad: true // 延迟加载
- },
- aa:[
- ],
- },
-
- //事件处理函数
- bindViewTap: function() {
- wx.navigateTo({
- url: '../logs/logs'
- })
- },
- //上证
- getHz:function(){
- apiServer.getHz().then((res) =>{
- if(res.statusCode == 200){
- this.setData({
- loading:false
- })
- this.onComponent.init((canvas, width, height,dpr) => {
- // 初始化图表
- const Chart = echarts.init(canvas, null, {
- width: width,
- height: height,
- devicePixelRatio: dpr // new
- });
- Chart.setOption(this.getOption(this.recursion(res.data.data)));
- return Chart;
- });
- }
- })
- },
- //深证
- getSz:function(){
- apiServer.getSz().then((res) =>{
- if(res.statusCode == 200){
- console.log(res);
- this.setData({
- loading:false
- })
- this.deppComponnet.init((canvas, width, height,dpr) => {
- // 初始化图表
- const Chart = echarts.init(canvas, null, {
- width: width,
- height: height,
- devicePixelRatio: dpr // new
- });
- Chart.setOption(this.getOption(this.recursion(res.data.data)));
- return Chart;
- });
- }
- })
- },
- recursion:function(row,a=[],b=[],c=[],d){
- for(let i in row.actuals){
- a.unshift(row.actuals[i].industryDate)
- b.unshift(row.actuals[i].close)
- c.unshift(row.actuals[i].pred)
- }
- if(row.tag){
- d="#D81E06"
- }else{
- d="#07c160"
- }
- return {"timeData":a,"actual":b,"prediction":c,"color":d}
- },
- getOption:function(data){
- return {
- title: {//标题
- text: '',
- left: 'center'
- },
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'cross',
- label: {
- backgroundColor: '#6a7985'
- }
- }
- },
- renderAsImage: true, //支持渲染为图片模式
-
- color: [data.color, "#80CDF8"],//图例图标颜色
-
- legend: {
-
- show: true,
-
- itemGap: 25,//每个图例间的间隔
-
- // top: 30,
-
- x: 30,//水平安放位置,离容器左侧的距离 'left'
-
- z: 100,
-
- textStyle: {
-
- color: '#383838'
- },
-
- },
-
- grid: {//网格
- top:"8%",
- left: "2%",
- right:"2%",
- containLabel: true,//grid 区域是否包含坐标轴的刻度标签
- },
-
- xAxis: {//横坐标
-
- type: 'category',
-
- // nameTextStyle: {//在name值存在下,设置name的样式
-
- // color: 'white',
-
- // fontStyle: 'normal'
-
- // },
- // splitNumber: 7,//坐标轴的分割段数
- nameLocation:'end',//坐标轴名称显示位置。
-
-
- splitLine: {//坐标轴在 grid 区域中的分隔线。
-
- show: true,
-
- lineStyle: {
-
- type: 'dashed',
- color: ['#2B2B2B']
- }
-
- },
-
- boundaryGap: false,//1.true 数据点在2个刻度直接 2.fals 数据点在分割线上,即刻度值上
-
- data: data.timeData,
- axisLine: {onZero: true},
- axisLabel: {
-
- textStyle: {
-
- fontSize: 13,
-
- color: '#5D5D5D'
-
- }
-
- }
-
- },
- dataZoom: [
- {
- type: 'slider',
- xAxisIndex: 0,
- filterMode: 'empty',
- startValue: data.prediction? data.prediction.length -4:0,
- endValue: data.prediction?data.prediction.length:3 ,
- handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
- handleSize: '80%',
- handleStyle: {
- color: '#fff',
- shadowBlur: 3,
- shadowColor: 'rgba(0, 0, 0, 0.6)',
- shadowOffsetX: 2,
- shadowOffsetY: 2
- }
- },
- {
- type: 'inside',
- realtime: true
- }
-
- ],
- yAxis: {//纵坐标
-
- type: 'value',
-
- position:'right',
-
- // nameTextStyle:{//在name值存在下,设置name的样式
-
- // color:'red',
-
- // fontStyle:'normal'
-
- // },
-
- splitNumber: 5,//坐标轴的分割段数
- scale:true,
- splitLine: {//坐标轴在 grid 区域中的分隔线。
-
- show: true,
-
- lineStyle: {
-
- type: 'dashed',
- color: ['#2B2B2B']
-
- }
-
- },
-
- axisLabel: {//坐标轴刻度标签
-
- // formatter: function (value) {
-
- // var xLable = [];
-
- // if (value == 20) {
-
- // xLable.push('25,883');
-
- // }
-
- // if (value == 40) {
-
- // xLable.push('26,035');
-
- // }
-
- // if (value == 60) {
-
- // xLable.push('26,187');
-
- // }
-
- // if (value == 80) {
-
- // xLable.push('26,339');
-
- // }
- // return xLable
-
- // },
-
- textStyle: {
-
- fontSize: 13,
-
- color: '#5D5D5D',
-
- }
-
- },
-
- // min: 0,
-
- // max: 100,
-
- },
-
- series: [{
-
- name: '实际',
-
- type: 'line',
-
- // smooth:true,
-
- data:data.actual,
-
- symbol: 'none',
- areaStyle: {
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
- offset: 0,
- color: data.color
- }, {
- offset: 1,
- color: '#1C1C1C'
- }])
-
- },
- itemStyle: {
-
- normal: {
-
- lineStyle: {
-
- color: data.color
-
- }
-
- }
-
- }
-
- }, {
-
- name: '预测',
-
- type: 'line',
-
- data: data.prediction,
-
- symbol: 'none',
-
- itemStyle: {
-
- normal: {
-
- lineStyle: {
-
- color: '#80CDF8'
-
- }
-
- }
-
- }
-
- }],
- };
- },
- onReady: function (e) {
- this.computeScrollViewHeight();
- // var query = wx.createSelectorQuery()
- // query.select('#test').boundingClientRect(function (res) {
- // console.log(res.top);
- // }).exec();
- },
- //下拉刷新
- onRefresh: function(e) {
- this.setData({
- currentPage: 1,
- loading:true
- })
- this.getHz();
- this.getSz();
- getNewsList(this);
- },
- onLoad: function (options) {
- this.onComponent = this.selectComponent('#mychart-dom-line-on');
- this.deppComponnet = this.selectComponent('#mychart-dom-line-depp');
- this.getHz();
- this.getSz();
- getNewsList(this);
- let sysinfo = wx.getSystemInfoSync(),
- windowHeight = sysinfo.windowHeight,
- statusHeight = sysinfo.statusBarHeight,
- isiOS = sysinfo.system.indexOf('iOS') > -1,
- navHeight;
- if (!isiOS) {
- navHeight = 48;
- } else {
- navHeight = 44;
- }
- let height = windowHeight-statusHeight-navHeight;
- this.setData({
- winheight:height
- })
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
- //下拉刷新,重新初始化,isMerge = false
- getNewsList(this);
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
- console.log("触发")
- setPage(this);
- },
- scrolltolower:function() {
- console.log("dgff");
- // var that = this;
- // var tempCurrentPage = that.data.currentPage;
- // tempCurrentPage = tempCurrentPage + 1;
- // if(that.data.currentPage==that.data.totalpages){
- // wx.showLoading({title: '已经到底啦'})
- // setTimeout(function(){
- // wx.hideLoading()
- // },600);
- // return
- // }
- // that.setData({
- // currentPage: tempCurrentPage,
- // })
- // getNewsList(this);
- setPage(this);
- },
- computeScrollViewHeight() {
- // var that = this
- // let query = wx.createSelectorQuery().in(that)
- // query.select('.swiper-tab').boundingClientRect()
- // query.select('.chart').boundingClientRect()
- // query.select('.news').boundingClientRect()
- // query.exec(res => {
- // let topHeight = res[0].height
- // let searchHeight = res[1].height
- // let titleHeight = res[2].height
- // let windowHeight = wx.getSystemInfoSync().windowHeight
- // let windowWidth = wx.getSystemInfoSync().windowWidth
- // let height = windowHeight - topHeight - searchHeight - titleHeight
- // let ratio = 750 / windowWidth
- // let scrollHeight = height * ratio
- // that.setData({ scrollHeight: scrollHeight})
- // })
- },
- imageLoad: function (e) {
- var imageSize = imageUtil.imageUtil(e)
- this.setData({
- imagewidth: imageSize.imageWidth,
- imageheight: imageSize.imageHeight
- })
- this.computeScrollViewHeight();
- },
-
- onFold:function(e){
- wx.navigateTo({
- url:'../news/news?newsId='+e.currentTarget.dataset.id
- });
- },
- choose:function(e){
- wx.navigateTo({
- url:"../filter/filter"
- })
- },
- swichNav: function(e) {
- var that = this;
- if (this.data.currentTab === e.target.dataset.current) {
- return false;
- } else {
- that.setData({
- currentTab: e.target.dataset.current
- })
- }
- },
- // 滑动切换tab
- bindChange: function(e) {
- var that = this;
- that.setData({
- currentTab: e.detail.current
- });
- },
- catchTouchMove:function(res){
- return false
- },
- getUserInfo: function(e) {
- console.log(e)
- app.globalData.userInfo = e.detail.userInfo
- this.setData({
- userInfo: e.detail.userInfo,
- hasUserInfo: true
- })
-
- }
- })
- /**
- * method:分页加载控制函数
- *
- */
- function setPage(that) {
- const {
- currPage,
- pages,
- total
- } = that.data;
- // const totalPages = getTotalPages(total,pages);
- if (currPage >= pages || that.isLoading) {
- //控制触底是否加载需要两个条件,满足一下两个条件,都不能调用请求函数
- // 1.当前页是最后一页,
- // 2. 正在加载中
- return
- }
- //分页加载需要传递isMerge=true参数,表示需要合并到原来的数组上
- getNewsList(that,true)
- }
- /**
- * method:得到总页数
- * @param {Number,String} total 列表总数
- * @param {Number,String} pages 每一页的条数
- * @return {Number} totalPages 总页数
- */
- function getTotalPages(total,pages){
- //总数除以每一页条数 如果余数!=0,结果需要+1
- const remainder = Number(total) % Number(pages);
- const value = Math.floor(total / pages);
- const totalPages = remainder == 0 ? value : Number(value) + 1;
- return totalPages
- }
- //获取新闻列表
- function getNewsList(that,isMerge){
- // that.isLoading = true
- // wx.showLoading({
- // title: '加载中',
- // })
- const data = {};
- data.currPage = Number(that.data.currPage) + 1;
- if(!isMerge){
- //不合并,页码需要重新设置为1
- data.currPage = 1;
- }
- apiServer.getNewsList(data).then((res)=>{
- if(res.statusCode == 200){
- let aa = that.data.aa;
- if(!isMerge){
- aa = [];
- }
- aa = aa.concat(res.data.data.incInfos)
- that.setData({
- aa,
- currPage:res.data.data.current,
- pages: res.data.data.pages,
- total: res.data.data.total,
- loading:false
- })
- }
- // that.isLoading = false
- wx.stopPullDownRefresh();
- // setTimeout(function(){
- // wx.hideLoading()
- // },500)
- })
- }
|