From 304ae6b52fbcb52fdad871d0ab9c0f4711418fdd Mon Sep 17 00:00:00 2001 From: RainSun Date: Fri, 14 Feb 2020 23:17:01 +0800 Subject: [PATCH] update --- app.js | 16 - app.json | 25 - cloudfunctions/sD_login/index.js | 31 + cloudfunctions/sD_login/package.json | 14 + cloudfunctions/sD_submit/index.js | 39 + cloudfunctions/sD_submit/package.json | 14 + database_export-yq88LuJx60Rg.json | 2 + pages/main/main.js => miniprogram/app.js | 155 +- miniprogram/app.json | 16 + app.wxss => miniprogram/app.wxss | 20 +- miniprogram/images/bg.png | Bin 0 -> 188531 bytes miniprogram/images/info.png | Bin 0 -> 7673 bytes {images => miniprogram/images}/title_bg.jpg | Bin miniprogram/pages/index/index.js | 101 + {pages => miniprogram/pages}/index/index.json | 0 {pages => miniprogram/pages}/index/index.wxml | 0 {pages => miniprogram/pages}/index/index.wxss | 410 ++-- miniprogram/pages/main/main.js | 148 ++ {pages => miniprogram/pages}/main/main.json | 4 +- {pages => miniprogram/pages}/main/main.wxml | 3 +- {pages => miniprogram/pages}/main/main.wxss | 248 +- miniprogram/pages/report/report.js | 64 + miniprogram/pages/report/report.json | 3 + miniprogram/pages/report/report.wxml | 9 + miniprogram/pages/report/report.wxss | 58 + miniprogram/pages/report/utils/wxcharts.js | 2048 +++++++++++++++++ miniprogram/pages/welcome/welcome.js | 66 + miniprogram/pages/welcome/welcome.json | 3 + miniprogram/pages/welcome/welcome.wxml | 2 + miniprogram/pages/welcome/welcome.wxss | 15 + miniprogram/sitemap.json | 7 + pages/index/index.js | 157 -- project.config.json | 10 +- 33 files changed, 3052 insertions(+), 636 deletions(-) delete mode 100644 app.js delete mode 100644 app.json create mode 100644 cloudfunctions/sD_login/index.js create mode 100644 cloudfunctions/sD_login/package.json create mode 100644 cloudfunctions/sD_submit/index.js create mode 100644 cloudfunctions/sD_submit/package.json create mode 100644 database_export-yq88LuJx60Rg.json rename pages/main/main.js => miniprogram/app.js (65%) create mode 100644 miniprogram/app.json rename app.wxss => miniprogram/app.wxss (95%) create mode 100644 miniprogram/images/bg.png create mode 100644 miniprogram/images/info.png rename {images => miniprogram/images}/title_bg.jpg (100%) create mode 100644 miniprogram/pages/index/index.js rename {pages => miniprogram/pages}/index/index.json (100%) rename {pages => miniprogram/pages}/index/index.wxml (100%) rename {pages => miniprogram/pages}/index/index.wxss (94%) create mode 100644 miniprogram/pages/main/main.js rename {pages => miniprogram/pages}/main/main.json (75%) rename {pages => miniprogram/pages}/main/main.wxml (99%) rename {pages => miniprogram/pages}/main/main.wxss (94%) create mode 100644 miniprogram/pages/report/report.js create mode 100644 miniprogram/pages/report/report.json create mode 100644 miniprogram/pages/report/report.wxml create mode 100644 miniprogram/pages/report/report.wxss create mode 100644 miniprogram/pages/report/utils/wxcharts.js create mode 100644 miniprogram/pages/welcome/welcome.js create mode 100644 miniprogram/pages/welcome/welcome.json create mode 100644 miniprogram/pages/welcome/welcome.wxml create mode 100644 miniprogram/pages/welcome/welcome.wxss create mode 100644 miniprogram/sitemap.json delete mode 100644 pages/index/index.js diff --git a/app.js b/app.js deleted file mode 100644 index aac0ff4..0000000 --- a/app.js +++ /dev/null @@ -1,16 +0,0 @@ -//app.js -App({ - onLaunch: function () { - wx.getSystemInfo({ - success: res => { - //导航高度 - this.globalData.navHeight = res.statusBarHeight + 46; - }, fail(err) { - console.log(err); - } - }) - }, - globalData: { - navHeight:0 - } -}) \ No newline at end of file diff --git a/app.json b/app.json deleted file mode 100644 index e346407..0000000 --- a/app.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "pages":[ - "pages/main/main", - "pages/index/index" - ], - "window":{ - "backgroundTextStyle":"light", - "navigationBarBackgroundColor": "#fff", - "navigationBarTitleText": "WeChat", - "navigationBarTextStyle":"write", - "navigationStyle":"custom" - } -} - - - - - - - - - - - - diff --git a/cloudfunctions/sD_login/index.js b/cloudfunctions/sD_login/index.js new file mode 100644 index 0000000..3475912 --- /dev/null +++ b/cloudfunctions/sD_login/index.js @@ -0,0 +1,31 @@ +// 云函数入口文件 +const cloud = require('wx-server-sdk') + +cloud.init() +const db = cloud.database() +const _ = db.command +const wxContext = cloud.getWXContext() + +// 云函数入口函数 +exports.main = async (event, context) => { + var allData = '',state = -1 //有个人记录就是1,无就是0, 下面执行出错就是-1 + await db.collection('sD_personal').where({ + _openid: wxContext.OPENID + }).get().then(async res => { + //where查询如果为空,返回[] + if (res.data.length){ + allData = res.data[0].allData; + state = 1; + } else { + //如果不存在则调取默认模板 + await db.collection('sD_common').doc('XKg1i1sqTi00tq1N').get().then(res1 => { + allData = res1.data.allData; + state = 0; + }) + } + }) + return { + allData: allData, + state:state + } +} \ No newline at end of file diff --git a/cloudfunctions/sD_login/package.json b/cloudfunctions/sD_login/package.json new file mode 100644 index 0000000..01e363e --- /dev/null +++ b/cloudfunctions/sD_login/package.json @@ -0,0 +1,14 @@ +{ + "name": "sD_login", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "wx-server-sdk": "latest" + } +} \ No newline at end of file diff --git a/cloudfunctions/sD_submit/index.js b/cloudfunctions/sD_submit/index.js new file mode 100644 index 0000000..a6ebe1c --- /dev/null +++ b/cloudfunctions/sD_submit/index.js @@ -0,0 +1,39 @@ +// 云函数入口文件 +const cloud = require('wx-server-sdk') + +cloud.init() +const db = cloud.database() +const _ = db.command +const wxContext = cloud.getWXContext() + +var commonUpload = async (data) => { + let rightAnswer = [] + await db.collection('sD_common').doc('XKg1i1sqTi00tq1N').get().then(res => { + rightAnswer = res.data.rightAnswer //这玩意的返回值莫名其妙会套上一层right,,但是不影响使用 + }) + //event.data是对象!妈的坑人! + for (let i in data) { + i = parseInt(i) + if (data[i] === rightAnswer[i]) { + let object = {} + object[i + 1] = _.inc(1)//不能直接传进去,在外边构造然后传进去 + db.collection('sD_common').doc('XKjJSXkPDdDCJ8rz').update({ + data: object + }).catch(err => { + return err; + }) + } + } + db.collection('sD_common').doc('XKjJSXkPDdDCJ8rz').update({ + data: { + total: _.inc(1) + } + }).catch(err => { + return err; + }) +} +// 云函数入口函数 +exports.main = async (event, context) => { + let common = await commonUpload(event.data); + return common; +} \ No newline at end of file diff --git a/cloudfunctions/sD_submit/package.json b/cloudfunctions/sD_submit/package.json new file mode 100644 index 0000000..18f1b61 --- /dev/null +++ b/cloudfunctions/sD_submit/package.json @@ -0,0 +1,14 @@ +{ + "name": "sD_submit", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "wx-server-sdk": "latest" + } +} \ No newline at end of file diff --git a/database_export-yq88LuJx60Rg.json b/database_export-yq88LuJx60Rg.json new file mode 100644 index 0000000..3650889 --- /dev/null +++ b/database_export-yq88LuJx60Rg.json @@ -0,0 +1,2 @@ +{"_id":"XKg1i1sqTi00tq1N","allData":[{"illustrate":"‘信心’应为‘信赖’","classState":"\"\"","pngAdd":"cloud://cloud-83621f.636c-cloud-83621f/styleDay/question_1.png","question":"问题一:以下哪一项不是四信的内容?","answers":[{"name":{"$numberLong":"0"},"value":"A:信念"},{"name":{"$numberLong":"1"},"value":"B:信仰"},{"name":{"$numberLong":"2"},"value":"C:信任"},{"name":{"$numberLong":"3"},"value":"D:信心"}],"userAnswer":"\"\"","rightAnswer":{"$numberLong":"3"}},{"rightAnswer":{"$numberLong":"1"},"illustrate":"要成为新时代青年马克思主义者,必须练就高强的本领,“既要政治过硬, 也要本领高强, 这是党的十九大报告对全党的要求, 对于青年马克思主义者来讲也是完全适用的","classState":"\"\"","pngAdd":"cloud://cloud-83621f.636c-cloud-83621f/styleDay/question_2.png","question":"问题二:关于以下说法,哪一项是不正确的?","answers":[{"value":"A:要成为新时代青年马克思主义者, 必须坚定对共产主义和中国特色社会主义的执着信仰","name":{"$numberLong":"0"}},{"name":{"$numberLong":"1"},"value":"B:要成为新时代青年马克思主义者, 只须练就高强的本领。"},{"name":{"$numberLong":"2"},"value":"C:要成为新时代青年马克思主义者, 必须常葆对人民群众的赤子之心"},{"name":{"$numberLong":"3"},"value":"D:要成为新时代青年马克思主义者, 必须树立为实现中华民族伟大复兴的中国梦而奋斗的使命担当"}],"userAnswer":"\"\""},{"illustrate":"马克思主义之所以是科学,首先在于它不再把自己的理论建立在主观臆想的基础上,而是建立在对现实社会进行科学研究的基础之上。马克思主义之所以为科学,还在于它不断吸收科学研究的最新成果,而不是故步自封、自视为穷尽一切真理的宗教教义。","classState":"\"\"","pngAdd":"cloud://cloud-83621f.636c-cloud-83621f/styleDay/question3.jpg","question":"问题三:马克思主义之所以是科学,仅仅在于它不再把自己的理论建立在主观臆想的基础上,而是建立在对现实社会进行科学研究的基础之上。","answers":[{"name":{"$numberLong":"0"},"value":"A:正确"},{"name":{"$numberLong":"1"},"value":"B:错误"}],"userAnswer":"\"\"","rightAnswer":{"$numberLong":"1"}},{"userAnswer":"\"\"","rightAnswer":{"$numberLong":"0"},"illustrate":"2018年5月4日,习近平总书记在纪念马克思诞辰200周年大会上强调,对待科学的理论必须有科学的态度。","classState":"\"\"","pngAdd":"cloud://cloud-83621f.636c-cloud-83621f/styleDay/question4.jpg","question":"问题四:马克思主义始终是我们党和国家的指导思想,是我们认识世界、把握规律、追求真理、改造世界的强大思想武器。","answers":[{"name":{"$numberLong":"0"},"value":"A:正确"},{"name":{"$numberLong":"1"},"value":"B:错误"}]}],"rightAnswer":[{"$numberLong":"3"},{"$numberLong":"1"},{"$numberLong":"1"},{"$numberLong":"0"}]} +{"_id":"XKjJSXkPDdDCJ8rz","total":{"$numberLong":"19"},"1":{"$numberLong":"13"},"2":{"$numberLong":"13"},"3":{"$numberLong":"13"},"4":{"$numberLong":"13"}} diff --git a/pages/main/main.js b/miniprogram/app.js similarity index 65% rename from pages/main/main.js rename to miniprogram/app.js index 84eefaa..921b47d 100644 --- a/pages/main/main.js +++ b/miniprogram/app.js @@ -1,13 +1,62 @@ -// pages/main/main.js -const App = getApp(); -Page({ - - /** - * 页面的初始数据 - */ - data: { - title:"主题团日知识竞答", - allData: [ +//app.js +App({ + onLaunch: function () { + wx.getSystemInfo({ + success: res => { + //导航高度 + this.globalData.navHeight = res.statusBarHeight + 46; + }, fail(err) { + console.log(err); + } + }) + // this.judgeCloud(); + }, + globalData: { + navHeight:0, + cloudState:0, + allData:null, + }, + judgeCloud() { + if (!wx.cloud) { + //不支持云能力 + console.error('请使用 2.2.3 或以上的基础库以使用云能力') + this.rewriteAllData(); + wx.redirectTo({ + url: '../main/mian', + }) + } else { + //支持云能力 + this.globalData.cloudState = 1; + wx.cloud.init({ + traceUser: true, + }) + //先查看该学生是否已经答过题 + + wx.cloud.callFunction({ + name: 'sD_login', + data: {} + }).then(res => { + console.log(res.result) + this.globalData.allData = res.result.allData + //如果没答过题 + if(res.result.state == 0) wx.redirectTo({ + url: '../main/main', + }) + //如果答过题 + if(res.result.state == 1) wx.redirectTo({ + url: '../index/index', + }) + }).catch(err => { + console.log(err) + this.rewriteAllData(); + wx.redirectTo({ + url: '../main/main', + }) + }) + } + }, + rewriteAllData() { + this.globalData.allData = [ { pngAdd: "https://gss0.baidu.com/-fo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/9d82d158ccbf6c81962c9e57b13eb13533fa4071.jpg", // pngAdd: "http://powerrain.cn/styleDay/images/question_1.png", @@ -54,96 +103,16 @@ Page({ { pngAdd: "https://gss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/4e4a20a4462309f7381b1fad7f0e0cf3d7cad61d.jpg", // pngAdd: "http://powerrain.cn/styleDay/images/question_4.png", - question: "问题四:习主席曾言,办好中国的事情,关键在党。", + question: "问题四:马克思主义始终是我们党和国家的指导思想,是我们认识世界、把握规律、追求真理、改造世界的强大思想武器。", answers: [ { name: 0, value: 'A:正确' }, { name: 1, value: 'B:错误' }, ], userAnswer: "", rightAnswer: 0, - illustrate: "习主席确实这么说的。", + illustrate: "2018年5月4日,习近平总书记在纪念马克思诞辰200周年大会上强调,对待科学的理论必须有科学的态度。", classState: "" } - ], - disabled:true - }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad: function (options) { - wx.clearStorage(); - this.setData({ - navH: App.globalData.navHeight - }) - }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { - - }, - - /** - * 生命周期函数--监听页面显示 - */ - onShow: function () { - - }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide: function () { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload: function () { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh: function () { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom: function () { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage: function () { - - }, - radioChange: function (e) { - wx.setStorageSync(e.currentTarget.id, e.detail.value); - console.log(typeof e.detail.value) - this.setData({ - disabled:this.judge() - }) - }, - judge(){ - for(let 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 z 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 literal 0 HcmV?d00001 diff --git a/miniprogram/images/info.png b/miniprogram/images/info.png new file mode 100644 index 0000000000000000000000000000000000000000..65695c1460c6a9e472c54bea24fe37180c11c017 GIT binary patch literal 7673 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 literal 0 HcmV?d00001 diff --git a/images/title_bg.jpg b/miniprogram/images/title_bg.jpg similarity index 100% rename from images/title_bg.jpg rename to miniprogram/images/title_bg.jpg diff --git a/miniprogram/pages/index/index.js b/miniprogram/pages/index/index.js new file mode 100644 index 0000000..2bcd79b --- /dev/null +++ b/miniprogram/pages/index/index.js @@ -0,0 +1,101 @@ +// pages/index/index.js +const App = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + right_num:0, + grade:0, + title: "主题团日知识竞答", + allData: [], + disabled: true + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + // wx.clearStorage(); + this.setData({ + navH: App.globalData.navHeight, + allData:App.globalData.allData + }) + // for (let i = 0; i < this.data.allData.length; i++) { + // var j = i.toString(); + // var info = wx.getStorageSync(j) + // var str = "allData[" + i + "].userAnswer" + // this.setData({ + // [str]: parseInt(info) + // }) + // // this.data.allData[i].userAnswer = parseInt(info); + // } + for (let i = 0; i < this.data.allData.length; i++) { + if (this.data.allData[i].userAnswer != this.data.allData[i].rightAnswer){ + var str = "allData[" + i + "].classState"; + this.setData({ + [str]: "item_error" + }) + }else { + var str = "allData[" + i + "].classState"; + this.setData({ + [str]: "item_right", + right_num:this.data.right_num+1 + }) + } + } + this.setData({ + grade:this.data.right_num*25 + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, +}) \ No newline at end of file diff --git a/pages/index/index.json b/miniprogram/pages/index/index.json similarity index 100% rename from pages/index/index.json rename to miniprogram/pages/index/index.json diff --git a/pages/index/index.wxml b/miniprogram/pages/index/index.wxml similarity index 100% rename from pages/index/index.wxml rename to miniprogram/pages/index/index.wxml diff --git a/pages/index/index.wxss b/miniprogram/pages/index/index.wxss similarity index 94% rename from pages/index/index.wxss rename to miniprogram/pages/index/index.wxss index f5ebb3e..7678480 100644 --- a/pages/index/index.wxss +++ b/miniprogram/pages/index/index.wxss @@ -1,205 +1,205 @@ -/* pages/index/index.wxss */ -Page { - background-color: #efefef; -} -.title { - width:100%; - margin:auto; - overflow:hidden; - position: fixed; - top:0; - z-index: 100; - background-image:url(https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3ac79f3df8dcd10095b44a9e7f8b4710b9122f60.jpg); - /* background-image:url(https://powerrain.cn/styleDay/images/title_bg.png); */ - color: #fff; -} - -.title_text { - text-align: center; - margin-top:30px; - color: #fff; - font-size: 40rpx; -} - -.title_bg { - width:100%; - height:170px; - text-align:center; - line-height:50px; - position: fixed; - top:0; - z-index: -99; -} - -.title_bg:after { - width: 120%; - height: 170px; - position: fixed; - left: -10%; - top:0; - z-index: -100; - content: ''; - border-radius: 0 0 50% 50%; - background-image:url(https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3ac79f3df8dcd10095b44a9e7f8b4710b9122f60.jpg); - /* background-image:url(https://powerrain.cn/styleDay/images/title_bg.png); */ -} - -.boundary { - height:30rpx; - width:100%; - border-bottom: #eee 1px solid; -} -.info { - display: flex; - flex-direction: row; - width:100%; - height:180rpx; - justify-content: space-between; - align-items: center; -} - -.info .userAvatar { - height: 150rpx; - width: 150rpx; - border-radius: 50%; - margin: 30rpx; - overflow: hidden; -} - -.info .userNickName>view ,.answer_title{ - font-size: 36rpx; - font-weight: bolder; - margin-bottom: 10rpx; -} - -.info .userNickName>open-data { - font-size: 36rpx; - font-weight: lighter; -} - - -.box_ticket { - position: relative; - height:auto; - width:650rpx; - background-color: #fff; - margin:0 auto; - border-radius: 20rpx; - margin-bottom:60rpx; - box-shadow: 0 1px 4px rgba(0,0,0,0.3),0 0 40px rgba(0,0,0,0.1) inset; -} - -.w { - height: 90%; - width:90%; - margin:auto auto; - padding-top: 30rpx; -} - -.answer { - height:auto; - width:100%; - margin-bottom:30rpx; -} - -.answer .question_answer { - font-size: 30rpx; - margin-bottom:18rpx; -} - -.answer .question_answer .question { - margin-bottom:18rpx; - font-weight: bold; -} - -.rightAnswer .item { - height:auto; - line-height: 60rpx; - background: rgba(153,204,50,0.3); - font-weight: lighter; -} - -.userAnswer { - margin-bottom:18rpx; -} - -.userAnswer .item_right { - height:auto; - line-height:60rpx; - background: rgba(153,204,50,0.3); - font-weight: lighter; - -} - -.userAnswer .item_error { - height:auto; - line-height:60rpx; - background: rgba(255, 0, 0, 0.3); - font-weight: lighter; - -} - -.illustrate_title { - margin-bottom:18rpx; -} - -.illustrate_item { - font-weight: lighter; -} - -.grade { - height:auto; -} - -.grade .item_1 { - font-size: 30rpx; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - margin-bottom: 18rpx; -} - - -.grade .item_1 .item_item { - font-weight: bold; -} - -.grade .item_2 .item_item { - font-weight: bold; -} - -.grade .item_2 { - font-size: 30rpx; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; -} - -.grade .item_3 { - height:100rpx; - font-size: 36rpx; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; -} - -.grade .item_3 .item_item { - font-size: 40rpx; - font-weight: bold; -} - -.BT { - color: #7f8389; - font-size: 20rpx; - flex: 1; -} - -.banquan { - display: flex; - flex-direction: column; - align-items: center; - margin-bottom: 20rpx; -} +/* pages/index/index.wxss */ +Page { + background-color: #efefef; +} +.title { + width:100%; + margin:auto; + overflow:hidden; + position: fixed; + top:0; + z-index: 100; + background-image:url(https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3ac79f3df8dcd10095b44a9e7f8b4710b9122f60.jpg); + /* background-image:url(https://powerrain.cn/styleDay/images/title_bg.png); */ + color: #fff; +} + +.title_text { + text-align: center; + margin-top:30px; + color: #fff; + font-size: 40rpx; +} + +.title_bg { + width:100%; + height:170px; + text-align:center; + line-height:50px; + position: fixed; + top:0; + z-index: -99; +} + +.title_bg:after { + width: 120%; + height: 170px; + position: fixed; + left: -10%; + top:0; + z-index: -100; + content: ''; + border-radius: 0 0 50% 50%; + background-image:url(https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3ac79f3df8dcd10095b44a9e7f8b4710b9122f60.jpg); + /* background-image:url(https://powerrain.cn/styleDay/images/title_bg.png); */ +} + +.boundary { + height:30rpx; + width:100%; + border-bottom: #eee 1px solid; +} +.info { + display: flex; + flex-direction: row; + width:100%; + height:180rpx; + justify-content: space-between; + align-items: center; +} + +.info .userAvatar { + height: 150rpx; + width: 150rpx; + border-radius: 50%; + margin: 30rpx; + overflow: hidden; +} + +.info .userNickName>view ,.answer_title{ + font-size: 36rpx; + font-weight: bolder; + margin-bottom: 10rpx; +} + +.info .userNickName>open-data { + font-size: 36rpx; + font-weight: lighter; +} + + +.box_ticket { + position: relative; + height:auto; + width:650rpx; + background-color: #fff; + margin:0 auto; + border-radius: 20rpx; + margin-bottom:60rpx; + box-shadow: 0 1px 4px rgba(0,0,0,0.3),0 0 40px rgba(0,0,0,0.1) inset; +} + +.w { + height: 90%; + width:90%; + margin:auto auto; + padding-top: 30rpx; +} + +.answer { + height:auto; + width:100%; + margin-bottom:30rpx; +} + +.answer .question_answer { + font-size: 30rpx; + margin-bottom:18rpx; +} + +.answer .question_answer .question { + margin-bottom:18rpx; + font-weight: bold; +} + +.rightAnswer .item { + height:auto; + line-height: 60rpx; + background: rgba(153,204,50,0.3); + font-weight: lighter; +} + +.userAnswer { + margin-bottom:18rpx; +} + +.userAnswer .item_right { + height:auto; + line-height:60rpx; + background: rgba(153,204,50,0.3); + font-weight: lighter; + +} + +.userAnswer .item_error { + height:auto; + line-height:60rpx; + background: rgba(255, 0, 0, 0.3); + font-weight: lighter; + +} + +.illustrate_title { + margin-bottom:18rpx; +} + +.illustrate_item { + font-weight: lighter; +} + +.grade { + height:auto; +} + +.grade .item_1 { + font-size: 30rpx; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + margin-bottom: 18rpx; +} + + +.grade .item_1 .item_item { + font-weight: bold; +} + +.grade .item_2 .item_item { + font-weight: bold; +} + +.grade .item_2 { + font-size: 30rpx; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; +} + +.grade .item_3 { + height:100rpx; + font-size: 36rpx; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; +} + +.grade .item_3 .item_item { + font-size: 40rpx; + font-weight: bold; +} + +.BT { + color: #7f8389; + font-size: 20rpx; + flex: 1; +} + +.banquan { + display: flex; + flex-direction: column; + align-items: center; + margin-bottom: 20rpx; +} diff --git a/miniprogram/pages/main/main.js b/miniprogram/pages/main/main.js new file mode 100644 index 0000000..73a3b26 --- /dev/null +++ b/miniprogram/pages/main/main.js @@ -0,0 +1,148 @@ +// pages/main/main.js +const App = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + title:"主题团日知识竞答", + allData: [], + disabled:true, + interval:'', + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + wx.clearStorage(); + this.setData({ + navH: App.globalData.navHeight, + allData: App.globalData.allData + }) + // wx.showLoading({ + // title: '加载中', + // }) + // this.interval = setInterval(()=>{ + // if (App.globalData.allData !== null) { + // this.setData({ + // allData: App.globalData.allData, + // isShow:true + // }) + // this.stopInterval(); + // wx.hideLoading(); + // } + // }, 100); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + // stopInterval() { + // clearInterval(this.interval) + // }, + radioChange: function (e) { + wx.setStorageSync(e.currentTarget.id, e.detail.value); + // console.log(e.currentTarget.id, e.detail.value) + //将改变保存到globalData里边 + App.globalData.allData[e.currentTarget.id].userAnswer = parseInt(e.detail.value) ; + // console.log(App.globalData.allData) + this.setData({ + disabled:this.judge() + }) + + }, + judge(){ + for(let i=0;i{ + console.log(res.result) + }).catch(err =>{ + console.log(err) + }) + } + wx.cloud.database().collection('sD_personal').add({ + data:{ + allData: App.globalData.allData + } + }).then(res => { + wx.redirectTo({url:"../index/index"}) + }).catch(err =>{ + console.err(err); + wx.vibrateLong({}) + wx.showToast({ + title: '抱歉,请重试', + icon: 'success', + image: '../../images/info.png', + duration: 2000 + }) + }) + + } +}) \ No newline at end of file diff --git a/pages/main/main.json b/miniprogram/pages/main/main.json similarity index 75% rename from pages/main/main.json rename to miniprogram/pages/main/main.json index 405ba36..077404a 100644 --- a/pages/main/main.json +++ b/miniprogram/pages/main/main.json @@ -1,3 +1,3 @@ -{ - +{ + } \ No newline at end of file diff --git a/pages/main/main.wxml b/miniprogram/pages/main/main.wxml similarity index 99% rename from pages/main/main.wxml rename to miniprogram/pages/main/main.wxml index 2e70c06..4ecef68 100644 --- a/pages/main/main.wxml +++ b/miniprogram/pages/main/main.wxml @@ -4,7 +4,6 @@ - @@ -27,4 +26,4 @@ Designed by Rain Sun 计算机科学技术学院 团委学生会学习部 All Rights Reserved - \ No newline at end of file + diff --git a/pages/main/main.wxss b/miniprogram/pages/main/main.wxss similarity index 94% rename from pages/main/main.wxss rename to miniprogram/pages/main/main.wxss index e722439..1551dab 100644 --- a/pages/main/main.wxss +++ b/miniprogram/pages/main/main.wxss @@ -1,125 +1,125 @@ -/* pages/main/main.wxss */ -Page { - background-color: #efefef; -} -.title { - width:100%; - margin:auto; - overflow:hidden; - position: fixed; - top:0; - z-index: 100; - background-image:url(https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3ac79f3df8dcd10095b44a9e7f8b4710b9122f60.jpg); - /* background-image:url(https://powerrain.cn/styleDay/images/title_bg.png); */ - color: #fff; -} - -.title_text { - text-align: center; - margin-top:30px; - color: #fff; - font-size: 40rpx; -} - -.title_bg { - width:100%; - height:170px; - text-align:center; - line-height:50px; - position: fixed; - top:0; - z-index: -99; -} - -.title_bg:after { - width: 120%; - height: 170px; - position: fixed; - left: -10%; - top:0; - z-index: -100; - content: ''; - border-radius: 0 0 50% 50%; - background-image:url(https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3ac79f3df8dcd10095b44a9e7f8b4710b9122f60.jpg); - /* background-image:url(https://powerrain.cn/styleDay/images/title_bg.png); */ -} - -.box_select { - height:auto; - width:650rpx; - background-color: #fff; - margin:0 auto; - border-radius: 20rpx; - margin-bottom:60rpx; - box-shadow: 0 1px 4px rgba(0,0,0,0.3),0 0 40px rgba(0,0,0,0.1) inset; -} - -.box_select .w { - height: 90%; - width:90%; - margin:auto auto; - padding-top: 30rpx; -} - -.box_png_1 { - height:240rpx; - width:100%; - margin-bottom: 30rpx; - border-top-left-radius:20rpx; - border-top-right-radius:20rpx; -} - -.box_select .question { - font-size: 40rpx; -} - -.box_select .radio-group { - margin-top:40rpx; -} - -.box_select .radio-group .radio { - margin-bottom: 30rpx; - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - height:auto; - border-bottom:1px #eee solid; - font-weight: lighter; -} - -.box_select .radio-group .radio .answer { - width:80%; - margin-bottom: 30rpx; -} - -.box_select .radio-group .radio radio { - margin-bottom: 30rpx; -} - - -.BT { - color: #7f8389; - font-size: 20rpx; - flex: 1; -} - -.banquan { - display: flex; - flex-direction: column; - align-items: center; - margin-bottom: 20rpx; -} - -.button { - height:80rpx; - background-color: #c91b1e; - width: 650rpx; - margin:0 auto; - border-radius: 20rpx; - margin-bottom: 30rpx; - line-height: 80rpx; - color: #fff; - font-size: 40rpx; - text-align: center; +/* pages/main/main.wxss */ +Page { + background-color: #efefef; +} +.title { + width:100%; + margin:auto; + overflow:hidden; + position: fixed; + top:0; + z-index: 100; + background-image:url(https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3ac79f3df8dcd10095b44a9e7f8b4710b9122f60.jpg); + /* background-image:url(https://powerrain.cn/styleDay/images/title_bg.png); */ + color: #fff; +} + +.title_text { + text-align: center; + margin-top:30px; + color: #fff; + font-size: 40rpx; +} + +.title_bg { + width:100%; + height:170px; + text-align:center; + line-height:50px; + position: fixed; + top:0; + z-index: -99; +} + +.title_bg:after { + width: 120%; + height: 170px; + position: fixed; + left: -10%; + top:0; + z-index: -100; + content: ''; + border-radius: 0 0 50% 50%; + background-image:url(https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3ac79f3df8dcd10095b44a9e7f8b4710b9122f60.jpg); + /* background-image:url(https://powerrain.cn/styleDay/images/title_bg.png); */ +} + +.box_select { + height:auto; + width:650rpx; + background-color: #fff; + margin:0 auto; + border-radius: 20rpx; + margin-bottom:60rpx; + box-shadow: 0 1px 4px rgba(0,0,0,0.3),0 0 40px rgba(0,0,0,0.1) inset; +} + +.box_select .w { + height: 90%; + width:90%; + margin:auto auto; + padding-top: 30rpx; +} + +.box_png_1 { + height:240rpx; + width:100%; + margin-bottom: 30rpx; + border-top-left-radius:20rpx; + border-top-right-radius:20rpx; +} + +.box_select .question { + font-size: 40rpx; +} + +.box_select .radio-group { + margin-top:40rpx; +} + +.box_select .radio-group .radio { + margin-bottom: 30rpx; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + height:auto; + border-bottom:1px #eee solid; + font-weight: lighter; +} + +.box_select .radio-group .radio .answer { + width:80%; + margin-bottom: 30rpx; +} + +.box_select .radio-group .radio radio { + margin-bottom: 30rpx; +} + + +.BT { + color: #7f8389; + font-size: 20rpx; + flex: 1; +} + +.banquan { + display: flex; + flex-direction: column; + align-items: center; + margin-bottom: 20rpx; +} + +.button { + height:80rpx; + background-color: #c91b1e; + width: 650rpx; + margin:0 auto; + border-radius: 20rpx; + margin-bottom: 30rpx; + line-height: 80rpx; + color: #fff; + font-size: 40rpx; + text-align: center; } \ No newline at end of file diff --git a/miniprogram/pages/report/report.js b/miniprogram/pages/report/report.js new file mode 100644 index 0000000..c2ce901 --- /dev/null +++ b/miniprogram/pages/report/report.js @@ -0,0 +1,64 @@ +var wxCharts = require('./utils/wxcharts.js'); +var App = getApp(); +var pieChart = null; +// px = rpx / 750 * wx.getSystemInfoSync().windowWidth; +Page({ + data: { + title:"数据分析" + }, + touchHandler: function (e) { + console.log(pieChart.getCurrentDataIndex(e)); + }, + onLoad: function (e) { + this.setData({ + navH: App.globalData.navHeight + }) + var windowWidth = 320; + try { + var res = wx.getSystemInfoSync(); + windowWidth = res.windowWidth; + console.log("屏幕宽度为:",windowWidth) + } catch (e) { + console.error('getSystemInfoSync failed!'); + } + var list = [{ + name: 'A选项', + data: 412, + }, { + name: 'B选项', + data: 35, + }, { + name: 'C选项', + data: 40, + }, { + name: 'D选项', + data: 63, + }] + pieChart = new wxCharts({ + animation: true, + canvasId: 'pieCanvas', + type: 'pie', + series: list , + width: windowWidth, + height: 300, + dataLabel: true, + }); + wx.startWifi({ + success: function (res) { + console.log("调起wifi",res) + wx.getWifiList({ + success: function (sList) { + console.log("sList",sList) + wx.onGetWifiList(res => { + console.log("获取到WiFilist", res) + }); + }, + fail: function (fList) { + console.log("flist",fList) + } + }) + } + }) + + } +}); \ No newline at end of file diff --git a/miniprogram/pages/report/report.json b/miniprogram/pages/report/report.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/miniprogram/pages/report/report.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/pages/report/report.wxml b/miniprogram/pages/report/report.wxml new file mode 100644 index 0000000..3b2907c --- /dev/null +++ b/miniprogram/pages/report/report.wxml @@ -0,0 +1,9 @@ + + {{title}} + + + + + + + diff --git a/miniprogram/pages/report/report.wxss b/miniprogram/pages/report/report.wxss new file mode 100644 index 0000000..c22c4ff --- /dev/null +++ b/miniprogram/pages/report/report.wxss @@ -0,0 +1,58 @@ +/* pages/report/report.wxss */ +canvas { + width: 100%; +} +Page { + background-color: #efefef; +} +.title { + width:100%; + margin:auto; + overflow:hidden; + position: fixed; + top:0; + z-index: 100; + background-image:url(https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3ac79f3df8dcd10095b44a9e7f8b4710b9122f60.jpg); + /* background-image:url(https://powerrain.cn/styleDay/images/title_bg.png); */ + color: #fff; +} + +.title_text { + text-align: center; + margin-top:30px; + color: #fff; + font-size: 40rpx; +} + +.title_bg { + width:100%; + height:170px; + text-align:center; + line-height:50px; + position: fixed; + top:0; + z-index: -99; +} + +.title_bg:after { + width: 120%; + height: 170px; + position: fixed; + left: -10%; + top:0; + z-index: -100; + content: ''; + border-radius: 0 0 50% 50%; + background-image:url(https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3ac79f3df8dcd10095b44a9e7f8b4710b9122f60.jpg); + /* background-image:url(https://powerrain.cn/styleDay/images/title_bg.png); */ +} + +.box_select { + height:auto; + width:650rpx; + background-color: #fff; + margin:0 auto; + border-radius: 20rpx; + margin-bottom:60rpx; + box-shadow: 0 1px 4px rgba(0,0,0,0.3),0 0 40px rgba(0,0,0,0.1) inset; +} \ No newline at end of file diff --git a/miniprogram/pages/report/utils/wxcharts.js b/miniprogram/pages/report/utils/wxcharts.js new file mode 100644 index 0000000..1d54ec1 --- /dev/null +++ b/miniprogram/pages/report/utils/wxcharts.js @@ -0,0 +1,2048 @@ +/* + * charts for WeChat small app v1.0 + * + * https://github.com/xiaolin3303/wx-charts + * 2016-11-28 + * + * Designed and built with all the love of Web + */ + +'use strict'; + +var config = { + yAxisWidth: 15, + yAxisSplit: 5, + xAxisHeight: 15, + xAxisLineHeight: 15, + legendHeight: 15, + yAxisTitleWidth: 15, + padding: 12, + columePadding: 3, + fontSize: 10, + dataPointShape: ['diamond', 'circle', 'triangle', 'rect'], + colors: ['#00c1c8', '#0092ff', '#ff2788', '#fee449', '#f15c80', '#8085e9'], + pieChartLinePadding: 25, + pieChartTextPadding: 15, + xAxisTextPadding: 3, + titleColor: '#333333', + titleFontSize: 20, + subtitleColor: '#999999', + subtitleFontSize: 15, + toolTipPadding: 3, + toolTipBackground: '#000000', + toolTipOpacity: 0.7, + toolTipLineHeight: 14, + radarGridCount: 3, + radarLabelTextMargin: 15 +}; + +// Object.assign polyfill +// https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign +function assign(target, varArgs) { + if (target == null) { + // TypeError if undefined or null + throw new TypeError('Cannot convert undefined or null to object'); + } + + var to = Object(target); + + for (var index = 1; index < arguments.length; index++) { + var nextSource = arguments[index]; + + if (nextSource != null) { + // Skip over if undefined or null + for (var nextKey in nextSource) { + // Avoid bugs when hasOwnProperty is shadowed + if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; +} + +var util = { + toFixed: function toFixed(num, limit) { + limit = limit || 2; + if (this.isFloat(num)) { + num = num.toFixed(limit); + } + return num; + }, + isFloat: function isFloat(num) { + return num % 1 !== 0; + }, + approximatelyEqual: function approximatelyEqual(num1, num2) { + return Math.abs(num1 - num2) < 1e-10; + }, + isSameSign: function isSameSign(num1, num2) { + return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2; + }, + isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) { + return this.isSameSign(p1.x, p2.x); + }, + isCollision: function isCollision(obj1, obj2) { + obj1.end = {}; + obj1.end.x = obj1.start.x + obj1.width; + obj1.end.y = obj1.start.y - obj1.height; + obj2.end = {}; + obj2.end.x = obj2.start.x + obj2.width; + obj2.end.y = obj2.start.y - obj2.height; + var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y; + + return !flag; + } +}; + +function findRange(num, type, limit) { + if (isNaN(num)) { + throw new Error('[wxCharts] unvalid series data!'); + } + limit = limit || 10; + type = type ? type : 'upper'; + var multiple = 1; + while (limit < 1) { + limit *= 10; + multiple *= 10; + } + if (type === 'upper') { + num = Math.ceil(num * multiple); + } else { + num = Math.floor(num * multiple); + } + while (num % limit !== 0) { + if (type === 'upper') { + num++; + } else { + num--; + } + } + + return num / multiple; +} + +function calValidDistance(distance, chartData, config, opts) { + + var dataChartAreaWidth = opts.width - config.padding - chartData.xAxisPoints[0]; + var dataChartWidth = chartData.eachSpacing * opts.categories.length; + var validDistance = distance; + if (distance >= 0) { + validDistance = 0; + } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) { + validDistance = dataChartAreaWidth - dataChartWidth; + } + return validDistance; +} + +function isInAngleRange(angle, startAngle, endAngle) { + function adjust(angle) { + while (angle < 0) { + angle += 2 * Math.PI; + } + while (angle > 2 * Math.PI) { + angle -= 2 * Math.PI; + } + + return angle; + } + + angle = adjust(angle); + startAngle = adjust(startAngle); + endAngle = adjust(endAngle); + if (startAngle > endAngle) { + endAngle += 2 * Math.PI; + if (angle < startAngle) { + angle += 2 * Math.PI; + } + } + + return angle >= startAngle && angle <= endAngle; +} + +function calRotateTranslate(x, y, h) { + var xv = x; + var yv = h - y; + + var transX = xv + (h - yv - xv) / Math.sqrt(2); + transX *= -1; + + var transY = (h - yv) * (Math.sqrt(2) - 1) - (h - yv - xv) / Math.sqrt(2); + + return { + transX: transX, + transY: transY + }; +} + +function createCurveControlPoints(points, i) { + + function isNotMiddlePoint(points, i) { + if (points[i - 1] && points[i + 1]) { + return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y, points[i + 1].y); + } else { + return false; + } + } + + var a = 0.2; + var b = 0.2; + var pAx = null; + var pAy = null; + var pBx = null; + var pBy = null; + if (i < 1) { + pAx = points[0].x + (points[1].x - points[0].x) * a; + pAy = points[0].y + (points[1].y - points[0].y) * a; + } else { + pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a; + pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a; + } + + if (i > points.length - 3) { + var last = points.length - 1; + pBx = points[last].x - (points[last].x - points[last - 1].x) * b; + pBy = points[last].y - (points[last].y - points[last - 1].y) * b; + } else { + pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b; + pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b; + } + + // fix issue https://github.com/xiaolin3303/wx-charts/issues/79 + if (isNotMiddlePoint(points, i + 1)) { + pBy = points[i + 1].y; + } + if (isNotMiddlePoint(points, i)) { + pAy = points[i].y; + } + + return { + ctrA: { x: pAx, y: pAy }, + ctrB: { x: pBx, y: pBy } + }; +} + +function convertCoordinateOrigin(x, y, center) { + return { + x: center.x + x, + y: center.y - y + }; +} + +function avoidCollision(obj, target) { + if (target) { + // is collision test + while (util.isCollision(obj, target)) { + if (obj.start.x > 0) { + obj.start.y--; + } else if (obj.start.x < 0) { + obj.start.y++; + } else { + if (obj.start.y > 0) { + obj.start.y++; + } else { + obj.start.y--; + } + } + } + } + return obj; +} + +function fillSeriesColor(series, config) { + var index = 0; + return series.map(function (item) { + if (!item.color) { + item.color = config.colors[index]; + index = (index + 1) % config.colors.length; + } + return item; + }); +} + +function getDataRange(minData, maxData) { + var limit = 0; + var range = maxData - minData; + if (range >= 10000) { + limit = 1000; + } else if (range >= 1000) { + limit = 100; + } else if (range >= 100) { + limit = 10; + } else if (range >= 10) { + limit = 5; + } else if (range >= 1) { + limit = 1; + } else if (range >= 0.1) { + limit = 0.1; + } else { + limit = 0.01; + } + return { + minRange: findRange(minData, 'lower', limit), + maxRange: findRange(maxData, 'upper', limit) + }; +} + +function measureText(text) { + var fontSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10; + + // wx canvas 未实现measureText方法, 此处自行实现 + text = String(text); + var text = text.split(''); + var width = 0; + text.forEach(function (item) { + if (/[a-zA-Z]/.test(item)) { + width += 7; + } else if (/[0-9]/.test(item)) { + width += 5.5; + } else if (/\./.test(item)) { + width += 2.7; + } else if (/-/.test(item)) { + width += 3.25; + } else if (/[\u4e00-\u9fa5]/.test(item)) { + width += 10; + } else if (/\(|\)/.test(item)) { + width += 3.73; + } else if (/\s/.test(item)) { + width += 2.5; + } else if (/%/.test(item)) { + width += 8; + } else { + width += 10; + } + }); + return width * fontSize / 10; +} + +function dataCombine(series) { + return series.reduce(function (a, b) { + return (a.data ? a.data : a).concat(b.data); + }, []); +} + +function getSeriesDataItem(series, index) { + var data = []; + series.forEach(function (item) { + if (item.data[index] !== null && typeof item.data[index] !== 'undefinded') { + var seriesItem = {}; + seriesItem.color = item.color; + seriesItem.name = item.name; + seriesItem.data = item.format ? item.format(item.data[index]) : item.data[index]; + data.push(seriesItem); + } + }); + + return data; +} + + + +function getMaxTextListLength(list) { + var lengthList = list.map(function (item) { + return measureText(item); + }); + return Math.max.apply(null, lengthList); +} + +function getRadarCoordinateSeries(length) { + var eachAngle = 2 * Math.PI / length; + var CoordinateSeries = []; + for (var i = 0; i < length; i++) { + CoordinateSeries.push(eachAngle * i); + } + + return CoordinateSeries.map(function (item) { + return -1 * item + Math.PI / 2; + }); +} + +function getToolTipData(seriesData, calPoints, index, categories) { + var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; + + var textList = seriesData.map(function (item) { + return { + text: option.format ? option.format(item, categories[index]) : item.name + ': ' + item.data, + color: item.color + }; + }); + var validCalPoints = []; + var offset = { + x: 0, + y: 0 + }; + calPoints.forEach(function (points) { + if (typeof points[index] !== 'undefinded' && points[index] !== null) { + validCalPoints.push(points[index]); + } + }); + validCalPoints.forEach(function (item) { + offset.x = Math.round(item.x); + offset.y += item.y; + }); + + offset.y /= validCalPoints.length; + return { textList: textList, offset: offset }; +} + +function findCurrentIndex(currentPoints, xAxisPoints, opts, config) { + var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + + var currentIndex = -1; + if (isInExactChartArea(currentPoints, opts, config)) { + xAxisPoints.forEach(function (item, index) { + if (currentPoints.x + offset > item) { + currentIndex = index; + } + }); + } + + return currentIndex; +} + +function isInExactChartArea(currentPoints, opts, config) { + return currentPoints.x < opts.width - config.padding && currentPoints.x > config.padding + config.yAxisWidth + config.yAxisTitleWidth && currentPoints.y > config.padding && currentPoints.y < opts.height - config.legendHeight - config.xAxisHeight - config.padding; +} + +function findRadarChartCurrentIndex(currentPoints, radarData, count) { + var eachAngleArea = 2 * Math.PI / count; + var currentIndex = -1; + if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) { + var fixAngle = function fixAngle(angle) { + if (angle < 0) { + angle += 2 * Math.PI; + } + if (angle > 2 * Math.PI) { + angle -= 2 * Math.PI; + } + return angle; + }; + + var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x); + angle = -1 * angle; + if (angle < 0) { + angle += 2 * Math.PI; + } + + var angleList = radarData.angleList.map(function (item) { + item = fixAngle(-1 * item); + + return item; + }); + + angleList.forEach(function (item, index) { + var rangeStart = fixAngle(item - eachAngleArea / 2); + var rangeEnd = fixAngle(item + eachAngleArea / 2); + if (rangeEnd < rangeStart) { + rangeEnd += 2 * Math.PI; + } + if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) { + currentIndex = index; + } + }); + } + + return currentIndex; +} + +function findPieChartCurrentIndex(currentPoints, pieData) { + var currentIndex = -1; + if (isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) { + var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x); + angle = -angle; + for (var i = 0, len = pieData.series.length; i < len; i++) { + var item = pieData.series[i]; + if (isInAngleRange(angle, item._start_, item._start_ + item._proportion_ * 2 * Math.PI)) { + currentIndex = i; + break; + } + } + } + + return currentIndex; +} + +function isInExactPieChartArea(currentPoints, center, radius) { + return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2); +} + +function splitPoints(points) { + var newPoints = []; + var items = []; + points.forEach(function (item, index) { + if (item !== null) { + items.push(item); + } else { + if (items.length) { + newPoints.push(items); + } + items = []; + } + }); + if (items.length) { + newPoints.push(items); + } + + return newPoints; +} + +function calLegendData(series, opts, config) { + if (opts.legend === false) { + return { + legendList: [], + legendHeight: 0 + }; + } + var padding = 5; + var marginTop = 8; + var shapeWidth = 15; + var legendList = []; + var widthCount = 0; + var currentRow = []; + series.forEach(function (item) { + var itemWidth = 3 * padding + shapeWidth + measureText(item.name || 'undefinded'); + if (widthCount + itemWidth > opts.width) { + legendList.push(currentRow); + widthCount = itemWidth; + currentRow = [item]; + } else { + widthCount += itemWidth; + currentRow.push(item); + } + }); + if (currentRow.length) { + legendList.push(currentRow); + } + + return { + legendList: legendList, + legendHeight: legendList.length * (config.fontSize + marginTop) + padding + }; +} + +function calCategoriesData(categories, opts, config) { + var result = { + angle: 0, + xAxisHeight: config.xAxisHeight + }; + + var _getXAxisPoints = getXAxisPoints(categories, opts, config), + eachSpacing = _getXAxisPoints.eachSpacing; + + // get max length of categories text + + + var categoriesTextLenth = categories.map(function (item) { + return measureText(item); + }); + + var maxTextLength = Math.max.apply(this, categoriesTextLenth); + + if (maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) { + result.angle = 45 * Math.PI / 180; + result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle); + } + + return result; +} + +function getRadarDataPoints(angleList, center, radius, series, opts) { + var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1; + + var radarOption = opts.extra.radar || {}; + radarOption.max = radarOption.max || 0; + var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series))); + + var data = []; + series.forEach(function (each) { + var listItem = {}; + listItem.color = each.color; + listItem.data = []; + each.data.forEach(function (item, index) { + var tmp = {}; + tmp.angle = angleList[index]; + + tmp.proportion = item / maxData; + tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center); + listItem.data.push(tmp); + }); + + data.push(listItem); + }); + + return data; +} + +function getPieDataPoints(series) { + var process = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + + var count = 0; + var _start_ = 0; + series.forEach(function (item) { + item.data = item.data === null ? 0 : item.data; + count += item.data; + }); + series.forEach(function (item) { + item.data = item.data === null ? 0 : item.data; + item._proportion_ = item.data / count * process; + }); + series.forEach(function (item) { + item._start_ = _start_; + _start_ += 2 * item._proportion_ * Math.PI; + }); + + return series; +} + +function getPieTextMaxLength(series) { + series = getPieDataPoints(series); + var maxLength = 0; + series.forEach(function (item) { + var text = item.format ? item.format(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%'; + maxLength = Math.max(maxLength, measureText(text)); + }); + + return maxLength; +} + +function fixColumeData(points, eachSpacing, columnLen, index, config, opts) { + return points.map(function (item) { + if (item === null) { + return null; + } + item.width = (eachSpacing - 2 * config.columePadding) / columnLen; + + if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) { + // customer column width + item.width = Math.min(item.width, +opts.extra.column.width); + } else { + // default width should less tran 25px + // don't ask me why, I don't know + item.width = Math.min(item.width, 25); + } + item.x += (index + 0.5 - columnLen / 2) * item.width; + + return item; + }); +} + +function getXAxisPoints(categories, opts, config) { + var yAxisTotalWidth = config.yAxisWidth + config.yAxisTitleWidth; + var spacingValid = opts.width - 2 * config.padding - yAxisTotalWidth; + var dataCount = opts.enableScroll ? Math.min(5, categories.length) : categories.length; + var eachSpacing = spacingValid / dataCount; + + var xAxisPoints = []; + var startX = config.padding + yAxisTotalWidth; + var endX = opts.width - config.padding; + categories.forEach(function (item, index) { + xAxisPoints.push(startX + index * eachSpacing); + }); + if (opts.enableScroll === true) { + xAxisPoints.push(startX + categories.length * eachSpacing); + } else { + xAxisPoints.push(endX); + } + + return { xAxisPoints: xAxisPoints, startX: startX, endX: endX, eachSpacing: eachSpacing }; +} + +function getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) { + var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1; + + var points = []; + var validHeight = opts.height - 2 * config.padding - config.xAxisHeight - config.legendHeight; + data.forEach(function (item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.x = xAxisPoints[index] + Math.round(eachSpacing / 2); + var height = validHeight * (item - minRange) / (maxRange - minRange); + height *= process; + point.y = opts.height - config.xAxisHeight - config.legendHeight - Math.round(height) - config.padding; + points.push(point); + } + }); + + return points; +} + +function getYAxisTextList(series, opts, config) { + var data = dataCombine(series); + // remove null from data + data = data.filter(function (item) { + return item !== null; + }); + var minData = Math.min.apply(this, data); + var maxData = Math.max.apply(this, data); + if (typeof opts.yAxis.min === 'number') { + minData = Math.min(opts.yAxis.min, minData); + } + if (typeof opts.yAxis.max === 'number') { + maxData = Math.max(opts.yAxis.max, maxData); + } + + // fix issue https://github.com/xiaolin3303/wx-charts/issues/9 + if (minData === maxData) { + var rangeSpan = maxData || 1; + minData -= rangeSpan; + maxData += rangeSpan; + } + + var dataRange = getDataRange(minData, maxData); + var minRange = dataRange.minRange; + var maxRange = dataRange.maxRange; + + var range = []; + var eachRange = (maxRange - minRange) / config.yAxisSplit; + + for (var i = 0; i <= config.yAxisSplit; i++) { + range.push(minRange + eachRange * i); + } + return range.reverse(); +} + +function calYAxisData(series, opts, config) { + + var ranges = getYAxisTextList(series, opts, config); + var yAxisWidth = config.yAxisWidth; + var rangesFormat = ranges.map(function (item) { + item = util.toFixed(item, 2); + item = opts.yAxis.format ? opts.yAxis.format(Number(item)) : item; + yAxisWidth = Math.max(yAxisWidth, measureText(item) + 5); + return item; + }); + if (opts.yAxis.disabled === true) { + yAxisWidth = 0; + } + + return { rangesFormat: rangesFormat, ranges: ranges, yAxisWidth: yAxisWidth }; +} + +function drawPointShape(points, color, shape, context) { + context.beginPath(); + context.setStrokeStyle("#ffffff"); + context.setLineWidth(1); + context.setFillStyle(color); + + if (shape === 'diamond') { + points.forEach(function (item, index) { + if (item !== null) { + context.moveTo(item.x, item.y - 4.5); + context.lineTo(item.x - 4.5, item.y); + context.lineTo(item.x, item.y + 4.5); + context.lineTo(item.x + 4.5, item.y); + context.lineTo(item.x, item.y - 4.5); + } + }); + } else if (shape === 'circle') { + points.forEach(function (item, index) { + if (item !== null) { + context.moveTo(item.x + 3.5, item.y); + context.arc(item.x, item.y, 4, 0, 2 * Math.PI, false); + } + }); + } else if (shape === 'rect') { + points.forEach(function (item, index) { + if (item !== null) { + context.moveTo(item.x - 3.5, item.y - 3.5); + context.rect(item.x - 3.5, item.y - 3.5, 7, 7); + } + }); + } else if (shape === 'triangle') { + points.forEach(function (item, index) { + if (item !== null) { + context.moveTo(item.x, item.y - 4.5); + context.lineTo(item.x - 4.5, item.y + 4.5); + context.lineTo(item.x + 4.5, item.y + 4.5); + context.lineTo(item.x, item.y - 4.5); + } + }); + } + context.closePath(); + context.fill(); + context.stroke(); +} + +function drawRingTitle(opts, config, context) { + var titlefontSize = opts.title.fontSize || config.titleFontSize; + var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize; + var title = opts.title.name || ''; + var subtitle = opts.subtitle.name || ''; + var titleFontColor = opts.title.color || config.titleColor; + var subtitleFontColor = opts.subtitle.color || config.subtitleColor; + var titleHeight = title ? titlefontSize : 0; + var subtitleHeight = subtitle ? subtitlefontSize : 0; + var margin = 5; + if (subtitle) { + var textWidth = measureText(subtitle, subtitlefontSize); + var startX = (opts.width - textWidth) / 2 + (opts.subtitle.offsetX || 0); + var startY = (opts.height - config.legendHeight + subtitlefontSize) / 2; + if (title) { + startY -= (titleHeight + margin) / 2; + } + context.beginPath(); + context.setFontSize(subtitlefontSize); + context.setFillStyle(subtitleFontColor); + context.fillText(subtitle, startX, startY); + context.stroke(); + context.closePath(); + } + if (title) { + var _textWidth = measureText(title, titlefontSize); + var _startX = (opts.width - _textWidth) / 2 + (opts.title.offsetX || 0); + var _startY = (opts.height - config.legendHeight + titlefontSize) / 2; + if (subtitle) { + _startY += (subtitleHeight + margin) / 2; + } + context.beginPath(); + context.setFontSize(titlefontSize); + context.setFillStyle(titleFontColor); + context.fillText(title, _startX, _startY); + context.stroke(); + context.closePath(); + } +} + +function drawPointText(points, series, config, context) { + // 绘制数据文案 + var data = series.data; + + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle('#666666'); + points.forEach(function (item, index) { + if (item !== null) { + var formatVal = series.format ? series.format(data[index]) : data[index]; + context.fillText(formatVal, item.x - measureText(formatVal) / 2, item.y - 2); + } + }); + context.closePath(); + context.stroke(); +} + +function drawRadarLabel(angleList, radius, centerPosition, opts, config, context) { + var radarOption = opts.extra.radar || {}; + radius += config.radarLabelTextMargin; + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(radarOption.labelColor || '#666666'); + angleList.forEach(function (angle, index) { + var pos = { + x: radius * Math.cos(angle), + y: radius * Math.sin(angle) + }; + var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition); + var startX = posRelativeCanvas.x; + var startY = posRelativeCanvas.y; + if (util.approximatelyEqual(pos.x, 0)) { + startX -= measureText(opts.categories[index] || '') / 2; + } else if (pos.x < 0) { + startX -= measureText(opts.categories[index] || ''); + } + context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2); + }); + context.stroke(); + context.closePath(); +} + +function drawPieText(series, opts, config, context, radius, center) { + var lineRadius = radius + config.pieChartLinePadding; + var textObjectCollection = []; + var lastTextObject = null; + + var seriesConvert = series.map(function (item) { + var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2); + var text = item.format ? item.format(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%'; + var color = item.color; + return { arc: arc, text: text, color: color }; + }); + seriesConvert.forEach(function (item) { + // line end + var orginX1 = Math.cos(item.arc) * lineRadius; + var orginY1 = Math.sin(item.arc) * lineRadius; + + // line start + var orginX2 = Math.cos(item.arc) * radius; + var orginY2 = Math.sin(item.arc) * radius; + + // text start + var orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding; + var orginY3 = orginY1; + + var textWidth = measureText(item.text); + var startY = orginY3; + + if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, { x: orginX3 })) { + if (orginX3 > 0) { + startY = Math.min(orginY3, lastTextObject.start.y); + } else if (orginX1 < 0) { + startY = Math.max(orginY3, lastTextObject.start.y); + } else { + if (orginY3 > 0) { + startY = Math.max(orginY3, lastTextObject.start.y); + } else { + startY = Math.min(orginY3, lastTextObject.start.y); + } + } + } + + if (orginX3 < 0) { + orginX3 -= textWidth; + } + + var textObject = { + lineStart: { + x: orginX2, + y: orginY2 + }, + lineEnd: { + x: orginX1, + y: orginY1 + }, + start: { + x: orginX3, + y: startY + }, + width: textWidth, + height: config.fontSize, + text: item.text, + color: item.color + }; + + lastTextObject = avoidCollision(textObject, lastTextObject); + textObjectCollection.push(lastTextObject); + }); + + textObjectCollection.forEach(function (item) { + var lineStartPoistion = convertCoordinateOrigin(item.lineStart.x, item.lineStart.y, center); + var lineEndPoistion = convertCoordinateOrigin(item.lineEnd.x, item.lineEnd.y, center); + var textPosition = convertCoordinateOrigin(item.start.x, item.start.y, center); + context.setLineWidth(1); + context.setFontSize(config.fontSize); + context.beginPath(); + context.setStrokeStyle(item.color); + context.setFillStyle(item.color); + context.moveTo(lineStartPoistion.x, lineStartPoistion.y); + var curveStartX = item.start.x < 0 ? textPosition.x + item.width : textPosition.x; + var textStartX = item.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5; + context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y); + context.moveTo(lineStartPoistion.x, lineStartPoistion.y); + context.stroke(); + context.closePath(); + context.beginPath(); + context.moveTo(textPosition.x + item.width, textPosition.y); + context.arc(curveStartX, textPosition.y, 2, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + context.beginPath(); + context.setFillStyle('#666666'); + context.fillText(item.text, textStartX, textPosition.y + 3); + context.closePath(); + context.stroke(); + + context.closePath(); + }); +} + +function drawToolTipSplitLine(offsetX, opts, config, context) { + var startY = config.padding; + var endY = opts.height - config.padding - config.xAxisHeight - config.legendHeight; + context.beginPath(); + context.setStrokeStyle('#cccccc'); + context.setLineWidth(1); + context.moveTo(offsetX, startY); + context.lineTo(offsetX, endY); + context.stroke(); + context.closePath(); +} + +function drawToolTip(textList, offset, opts, config, context) { + var legendWidth = 4; + var legendMarginRight = 5; + var arrowWidth = 8; + var isOverRightBorder = false; + offset = assign({ + x: 0, + y: 0 + }, offset); + offset.y -= 8; + var textWidth = textList.map(function (item) { + return measureText(item.text); + }); + + var toolTipWidth = legendWidth + legendMarginRight + 4 * config.toolTipPadding + Math.max.apply(null, textWidth); + var toolTipHeight = 2 * config.toolTipPadding + textList.length * config.toolTipLineHeight; + + // if beyond the right border + if (offset.x - Math.abs(opts._scrollDistance_) + arrowWidth + toolTipWidth > opts.width) { + isOverRightBorder = true; + } + + // draw background rect + context.beginPath(); + context.setFillStyle(opts.tooltip.option.background || config.toolTipBackground); + context.setGlobalAlpha(config.toolTipOpacity); + if (isOverRightBorder) { + context.moveTo(offset.x, offset.y + 10); + context.lineTo(offset.x - arrowWidth, offset.y + 10 - 5); + context.lineTo(offset.x - arrowWidth, offset.y + 10 + 5); + context.moveTo(offset.x, offset.y + 10); + context.fillRect(offset.x - toolTipWidth - arrowWidth, offset.y, toolTipWidth, toolTipHeight); + } else { + context.moveTo(offset.x, offset.y + 10); + context.lineTo(offset.x + arrowWidth, offset.y + 10 - 5); + context.lineTo(offset.x + arrowWidth, offset.y + 10 + 5); + context.moveTo(offset.x, offset.y + 10); + context.fillRect(offset.x + arrowWidth, offset.y, toolTipWidth, toolTipHeight); + } + + context.closePath(); + context.fill(); + context.setGlobalAlpha(1); + + // draw legend + textList.forEach(function (item, index) { + context.beginPath(); + context.setFillStyle(item.color); + var startX = offset.x + arrowWidth + 2 * config.toolTipPadding; + var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding; + if (isOverRightBorder) { + startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding; + } + context.fillRect(startX, startY, legendWidth, config.fontSize); + context.closePath(); + }); + + // draw text list + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle('#ffffff'); + textList.forEach(function (item, index) { + var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight; + if (isOverRightBorder) { + startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight; + } + var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding; + context.fillText(item.text, startX, startY + config.fontSize); + }); + context.stroke(); + context.closePath(); +} + +function drawYAxisTitle(title, opts, config, context) { + var startX = config.xAxisHeight + (opts.height - config.xAxisHeight - measureText(title)) / 2; + context.save(); + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(opts.yAxis.titleFontColor || '#333333'); + context.translate(0, opts.height); + context.rotate(-90 * Math.PI / 180); + context.fillText(title, startX, config.padding + 0.5 * config.fontSize); + context.stroke(); + context.closePath(); + context.restore(); +} + +function drawColumnDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + + var _calYAxisData = calYAxisData(series, opts, config), + ranges = _calYAxisData.ranges; + + var _getXAxisPoints = getXAxisPoints(opts.categories, opts, config), + xAxisPoints = _getXAxisPoints.xAxisPoints, + eachSpacing = _getXAxisPoints.eachSpacing; + + var minRange = ranges.pop(); + var maxRange = ranges.shift(); + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + + series.forEach(function (eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts); + + // 绘制柱状数据图 + context.beginPath(); + context.setFillStyle(eachSeries.color); + points.forEach(function (item, index) { + if (item !== null) { + var startX = item.x - item.width / 2 + 1; + var height = opts.height - item.y - config.padding - config.xAxisHeight - config.legendHeight; + context.moveTo(startX, item.y); + context.rect(startX, item.y, item.width - 2, height); + } + }); + context.closePath(); + context.fill(); + }); + series.forEach(function (eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts); + if (opts.dataLabel !== false && process === 1) { + drawPointText(points, eachSeries, config, context); + } + }); + context.restore(); + return { + xAxisPoints: xAxisPoints, + eachSpacing: eachSpacing + }; +} + +function drawAreaDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + + var _calYAxisData2 = calYAxisData(series, opts, config), + ranges = _calYAxisData2.ranges; + + var _getXAxisPoints2 = getXAxisPoints(opts.categories, opts, config), + xAxisPoints = _getXAxisPoints2.xAxisPoints, + eachSpacing = _getXAxisPoints2.eachSpacing; + + var minRange = ranges.pop(); + var maxRange = ranges.shift(); + var endY = opts.height - config.padding - config.xAxisHeight - config.legendHeight; + var calPoints = []; + + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + + if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) { + drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context); + } + + series.forEach(function (eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + + var splitPointList = splitPoints(points); + + splitPointList.forEach(function (points) { + // 绘制区域数据 + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setFillStyle(eachSeries.color); + context.setGlobalAlpha(0.6); + context.setLineWidth(2); + if (points.length > 1) { + var firstPoint = points[0]; + var lastPoint = points[points.length - 1]; + + context.moveTo(firstPoint.x, firstPoint.y); + if (opts.extra.lineStyle === 'curve') { + points.forEach(function (item, index) { + if (index > 0) { + var ctrlPoint = createCurveControlPoints(points, index - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y); + } + }); + } else { + points.forEach(function (item, index) { + if (index > 0) { + context.lineTo(item.x, item.y); + } + }); + } + + context.lineTo(lastPoint.x, endY); + context.lineTo(firstPoint.x, endY); + context.lineTo(firstPoint.x, firstPoint.y); + } else { + var item = points[0]; + context.moveTo(item.x - eachSpacing / 2, item.y); + context.lineTo(item.x + eachSpacing / 2, item.y); + context.lineTo(item.x + eachSpacing / 2, endY); + context.lineTo(item.x - eachSpacing / 2, endY); + context.moveTo(item.x - eachSpacing / 2, item.y); + } + context.closePath(); + context.fill(); + context.setGlobalAlpha(1); + }); + + if (opts.dataPointShape !== false) { + var shape = config.dataPointShape[seriesIndex % config.dataPointShape.length]; + drawPointShape(points, eachSeries.color, shape, context); + } + }); + if (opts.dataLabel !== false && process === 1) { + series.forEach(function (eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + drawPointText(points, eachSeries, config, context); + }); + } + + context.restore(); + + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawLineDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + + var _calYAxisData3 = calYAxisData(series, opts, config), + ranges = _calYAxisData3.ranges; + + var _getXAxisPoints3 = getXAxisPoints(opts.categories, opts, config), + xAxisPoints = _getXAxisPoints3.xAxisPoints, + eachSpacing = _getXAxisPoints3.eachSpacing; + + var minRange = ranges.pop(); + var maxRange = ranges.shift(); + var calPoints = []; + + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + + if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) { + drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context); + } + + series.forEach(function (eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + var splitPointList = splitPoints(points); + + splitPointList.forEach(function (points, index) { + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(2); + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + if (opts.extra.lineStyle === 'curve') { + points.forEach(function (item, index) { + if (index > 0) { + var ctrlPoint = createCurveControlPoints(points, index - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y); + } + }); + } else { + points.forEach(function (item, index) { + if (index > 0) { + context.lineTo(item.x, item.y); + } + }); + } + context.moveTo(points[0].x, points[0].y); + } + context.closePath(); + context.stroke(); + }); + + if (opts.dataPointShape !== false) { + var shape = config.dataPointShape[seriesIndex % config.dataPointShape.length]; + drawPointShape(points, eachSeries.color, shape, context); + } + }); + if (opts.dataLabel !== false && process === 1) { + series.forEach(function (eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + drawPointText(points, eachSeries, config, context); + }); + } + + context.restore(); + + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawToolTipBridge(opts, config, context, process) { + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) { + drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context); + } + context.restore(); +} + +function drawXAxis(categories, opts, config, context) { + var _getXAxisPoints4 = getXAxisPoints(categories, opts, config), + xAxisPoints = _getXAxisPoints4.xAxisPoints, + startX = _getXAxisPoints4.startX, + endX = _getXAxisPoints4.endX, + eachSpacing = _getXAxisPoints4.eachSpacing; + + var startY = opts.height - config.padding - config.xAxisHeight - config.legendHeight; + var endY = startY + config.xAxisLineHeight; + + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) { + context.translate(opts._scrollDistance_, 0); + } + + context.beginPath(); + context.setStrokeStyle(opts.xAxis.gridColor || "#cccccc"); + + if (opts.xAxis.disableGrid !== true) { + if (opts.xAxis.type === 'calibration') { + xAxisPoints.forEach(function (item, index) { + if (index > 0) { + context.moveTo(item - eachSpacing / 2, startY); + context.lineTo(item - eachSpacing / 2, startY + 4); + } + }); + } else { + xAxisPoints.forEach(function (item, index) { + context.moveTo(item, startY); + context.lineTo(item, endY); + }); + } + } + context.closePath(); + context.stroke(); + + // 对X轴列表做抽稀处理 + var validWidth = opts.width - 2 * config.padding - config.yAxisWidth - config.yAxisTitleWidth; + var maxXAxisListLength = Math.min(categories.length, Math.ceil(validWidth / config.fontSize / 1.5)); + var ratio = Math.ceil(categories.length / maxXAxisListLength); + + categories = categories.map(function (item, index) { + return index % ratio !== 0 ? '' : item; + }); + + if (config._xAxisTextAngle_ === 0) { + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(opts.xAxis.fontColor || '#666666'); + categories.forEach(function (item, index) { + var offset = eachSpacing / 2 - measureText(item) / 2; + context.fillText(item, xAxisPoints[index] + offset, startY + config.fontSize + 5); + }); + context.closePath(); + context.stroke(); + } else { + categories.forEach(function (item, index) { + context.save(); + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(opts.xAxis.fontColor || '#666666'); + var textWidth = measureText(item); + var offset = eachSpacing / 2 - textWidth; + + var _calRotateTranslate = calRotateTranslate(xAxisPoints[index] + eachSpacing / 2, startY + config.fontSize / 2 + 5, opts.height), + transX = _calRotateTranslate.transX, + transY = _calRotateTranslate.transY; + + context.rotate(-1 * config._xAxisTextAngle_); + context.translate(transX, transY); + context.fillText(item, xAxisPoints[index] + offset, startY + config.fontSize + 5); + context.closePath(); + context.stroke(); + context.restore(); + }); + } + + context.restore(); +} + +function drawYAxisGrid(opts, config, context) { + var spacingValid = opts.height - 2 * config.padding - config.xAxisHeight - config.legendHeight; + var eachSpacing = Math.floor(spacingValid / config.yAxisSplit); + var yAxisTotalWidth = config.yAxisWidth + config.yAxisTitleWidth; + var startX = config.padding + yAxisTotalWidth; + var endX = opts.width - config.padding; + + var points = []; + for (var i = 0; i < config.yAxisSplit; i++) { + points.push(config.padding + eachSpacing * i); + } + points.push(config.padding + eachSpacing * config.yAxisSplit + 2); + + context.beginPath(); + context.setStrokeStyle(opts.yAxis.gridColor || "#cccccc"); + context.setLineWidth(1); + points.forEach(function (item, index) { + context.moveTo(startX, item); + context.lineTo(endX, item); + }); + context.closePath(); + context.stroke(); +} + +function drawYAxis(series, opts, config, context) { + if (opts.yAxis.disabled === true) { + return; + } + + var _calYAxisData4 = calYAxisData(series, opts, config), + rangesFormat = _calYAxisData4.rangesFormat; + + var yAxisTotalWidth = config.yAxisWidth + config.yAxisTitleWidth; + + var spacingValid = opts.height - 2 * config.padding - config.xAxisHeight - config.legendHeight; + var eachSpacing = Math.floor(spacingValid / config.yAxisSplit); + var startX = config.padding + yAxisTotalWidth; + var endX = opts.width - config.padding; + var endY = opts.height - config.padding - config.xAxisHeight - config.legendHeight; + + // set YAxis background + context.setFillStyle(opts.background || '#ffffff'); + if (opts._scrollDistance_ < 0) { + context.fillRect(0, 0, startX, endY + config.xAxisHeight + 5); + } + context.fillRect(endX, 0, opts.width, endY + config.xAxisHeight + 5); + + var points = []; + for (var i = 0; i <= config.yAxisSplit; i++) { + points.push(config.padding + eachSpacing * i); + } + + context.stroke(); + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(opts.yAxis.fontColor || '#666666'); + rangesFormat.forEach(function (item, index) { + var pos = points[index] ? points[index] : endY; + context.fillText(item, config.padding + config.yAxisTitleWidth, pos + config.fontSize / 2); + }); + context.closePath(); + context.stroke(); + + if (opts.yAxis.title) { + drawYAxisTitle(opts.yAxis.title, opts, config, context); + } +} + +function drawLegend(series, opts, config, context) { + if (!opts.legend) { + return; + } + // each legend shape width 15px + // the spacing between shape and text in each legend is the `padding` + // each legend spacing is the `padding` + // legend margin top `config.padding` + + var _calLegendData = calLegendData(series, opts, config), + legendList = _calLegendData.legendList; + + var padding = 5; + var marginTop = 8; + var shapeWidth = 15; + legendList.forEach(function (itemList, listIndex) { + var width = 0; + itemList.forEach(function (item) { + item.name = item.name || 'undefined'; + width += 3 * padding + measureText(item.name) + shapeWidth; + }); + var startX = (opts.width - width) / 2 + padding; + var startY = opts.height - config.padding - config.legendHeight + listIndex * (config.fontSize + marginTop) + padding + marginTop; + + context.setFontSize(config.fontSize); + itemList.forEach(function (item) { + switch (opts.type) { + case 'line': + context.beginPath(); + context.setLineWidth(1); + context.setStrokeStyle(item.color); + context.moveTo(startX - 2, startY + 5); + context.lineTo(startX + 17, startY + 5); + context.stroke(); + context.closePath(); + context.beginPath(); + context.setLineWidth(1); + context.setStrokeStyle('#ffffff'); + context.setFillStyle(item.color); + context.moveTo(startX + 7.5, startY + 5); + context.arc(startX + 7.5, startY + 5, 4, 0, 2 * Math.PI); + context.fill(); + context.stroke(); + context.closePath(); + break; + case 'pie': + case 'ring': + context.beginPath(); + context.setFillStyle(item.color); + context.moveTo(startX + 7.5, startY + 5); + context.arc(startX + 7.5, startY + 5, 7, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + break; + default: + context.beginPath(); + context.setFillStyle(item.color); + context.moveTo(startX, startY); + context.rect(startX, startY, 15, 10); + context.closePath(); + context.fill(); + } + startX += padding + shapeWidth; + context.beginPath(); + context.setFillStyle(opts.extra.legendTextColor || '#333333'); + context.fillText(item.name, startX, startY + 9); + context.closePath(); + context.stroke(); + startX += measureText(item.name) + 2 * padding; + }); + }); +} +function drawPieDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + + var pieOption = opts.extra.pie || {}; + series = getPieDataPoints(series, process); + var centerPosition = { + x: opts.width / 2, + y: (opts.height - config.legendHeight) / 2 + }; + var radius = Math.min(centerPosition.x - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, centerPosition.y - config.pieChartLinePadding - config.pieChartTextPadding); + if (opts.dataLabel) { + radius -= 10; + } else { + radius -= 2 * config.padding; + } + series = series.map(function (eachSeries) { + eachSeries._start_ += (pieOption.offsetAngle || 0) * Math.PI / 180; + return eachSeries; + }); + series.forEach(function (eachSeries) { + context.beginPath(); + context.setLineWidth(2); + context.setStrokeStyle('#ffffff'); + context.setFillStyle(eachSeries.color); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, radius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI); + context.closePath(); + context.fill(); + if (opts.disablePieStroke !== true) { + context.stroke(); + } + }); + + if (opts.type === 'ring') { + var innerPieWidth = radius * 0.6; + if (typeof opts.extra.ringWidth === 'number' && opts.extra.ringWidth > 0) { + innerPieWidth = Math.max(0, radius - opts.extra.ringWidth); + } + context.beginPath(); + context.setFillStyle(opts.background || '#ffffff'); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + } + + if (opts.dataLabel !== false && process === 1) { + // fix https://github.com/xiaolin3303/wx-charts/issues/132 + var valid = false; + for (var i = 0, len = series.length; i < len; i++) { + if (series[i].data > 0) { + valid = true; + break; + } + } + + if (valid) { + drawPieText(series, opts, config, context, radius, centerPosition); + } + } + + if (process === 1 && opts.type === 'ring') { + drawRingTitle(opts, config, context); + } + + return { + center: centerPosition, + radius: radius, + series: series + }; +} + +function drawRadarDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + + var radarOption = opts.extra.radar || {}; + var coordinateAngle = getRadarCoordinateSeries(opts.categories.length); + var centerPosition = { + x: opts.width / 2, + y: (opts.height - config.legendHeight) / 2 + }; + + var radius = Math.min(centerPosition.x - (getMaxTextListLength(opts.categories) + config.radarLabelTextMargin), centerPosition.y - config.radarLabelTextMargin); + + radius -= config.padding; + + // draw grid + context.beginPath(); + context.setLineWidth(1); + context.setStrokeStyle(radarOption.gridColor || "#cccccc"); + coordinateAngle.forEach(function (angle) { + var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition); + context.moveTo(centerPosition.x, centerPosition.y); + context.lineTo(pos.x, pos.y); + }); + context.stroke(); + context.closePath(); + + // draw split line grid + + var _loop = function _loop(i) { + var startPos = {}; + context.beginPath(); + context.setLineWidth(1); + context.setStrokeStyle(radarOption.gridColor || "#cccccc"); + coordinateAngle.forEach(function (angle, index) { + var pos = convertCoordinateOrigin(radius / config.radarGridCount * i * Math.cos(angle), radius / config.radarGridCount * i * Math.sin(angle), centerPosition); + if (index === 0) { + startPos = pos; + context.moveTo(pos.x, pos.y); + } else { + context.lineTo(pos.x, pos.y); + } + }); + context.lineTo(startPos.x, startPos.y); + context.stroke(); + context.closePath(); + }; + + for (var i = 1; i <= config.radarGridCount; i++) { + _loop(i); + } + + var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process); + radarDataPoints.forEach(function (eachSeries, seriesIndex) { + // 绘制区域数据 + context.beginPath(); + context.setFillStyle(eachSeries.color); + context.setGlobalAlpha(0.6); + eachSeries.data.forEach(function (item, index) { + if (index === 0) { + context.moveTo(item.position.x, item.position.y); + } else { + context.lineTo(item.position.x, item.position.y); + } + }); + context.closePath(); + context.fill(); + context.setGlobalAlpha(1); + + if (opts.dataPointShape !== false) { + var shape = config.dataPointShape[seriesIndex % config.dataPointShape.length]; + var points = eachSeries.data.map(function (item) { + return item.position; + }); + drawPointShape(points, eachSeries.color, shape, context); + } + }); + // draw label text + drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context); + + return { + center: centerPosition, + radius: radius, + angleList: coordinateAngle + }; +} + +function drawCanvas(opts, context) { + context.draw(); +} + +var Timing = { + easeIn: function easeIn(pos) { + return Math.pow(pos, 3); + }, + + easeOut: function easeOut(pos) { + return Math.pow(pos - 1, 3) + 1; + }, + + easeInOut: function easeInOut(pos) { + if ((pos /= 0.5) < 1) { + return 0.5 * Math.pow(pos, 3); + } else { + return 0.5 * (Math.pow(pos - 2, 3) + 2); + } + }, + + linear: function linear(pos) { + return pos; + } +}; + +function Animation(opts) { + this.isStop = false; + opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration; + opts.timing = opts.timing || 'linear'; + + var delay = 17; + + var createAnimationFrame = function createAnimationFrame() { + if (typeof requestAnimationFrame !== 'undefined') { + return requestAnimationFrame; + } else if (typeof setTimeout !== 'undefined') { + return function (step, delay) { + setTimeout(function () { + var timeStamp = +new Date(); + step(timeStamp); + }, delay); + }; + } else { + return function (step) { + step(null); + }; + } + }; + var animationFrame = createAnimationFrame(); + var startTimeStamp = null; + var _step = function step(timestamp) { + if (timestamp === null || this.isStop === true) { + opts.onProcess && opts.onProcess(1); + opts.onAnimationFinish && opts.onAnimationFinish(); + return; + } + if (startTimeStamp === null) { + startTimeStamp = timestamp; + } + if (timestamp - startTimeStamp < opts.duration) { + var process = (timestamp - startTimeStamp) / opts.duration; + var timingFunction = Timing[opts.timing]; + process = timingFunction(process); + opts.onProcess && opts.onProcess(process); + animationFrame(_step, delay); + } else { + opts.onProcess && opts.onProcess(1); + opts.onAnimationFinish && opts.onAnimationFinish(); + } + }; + _step = _step.bind(this); + + animationFrame(_step, delay); +} + +// stop animation immediately +// and tigger onAnimationFinish +Animation.prototype.stop = function () { + this.isStop = true; +}; + +function drawCharts(type, opts, config, context) { + var _this = this; + + var series = opts.series; + var categories = opts.categories; + series = fillSeriesColor(series, config); + + var _calLegendData = calLegendData(series, opts, config), + legendHeight = _calLegendData.legendHeight; + + config.legendHeight = legendHeight; + + var _calYAxisData = calYAxisData(series, opts, config), + yAxisWidth = _calYAxisData.yAxisWidth; + + config.yAxisWidth = yAxisWidth; + if (categories && categories.length) { + var _calCategoriesData = calCategoriesData(categories, opts, config), + xAxisHeight = _calCategoriesData.xAxisHeight, + angle = _calCategoriesData.angle; + + config.xAxisHeight = xAxisHeight; + config._xAxisTextAngle_ = angle; + } + if (type === 'pie' || type === 'ring') { + config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(series); + } + + var duration = opts.animation ? 1000 : 0; + this.animationInstance && this.animationInstance.stop(); + switch (type) { + case 'line': + this.animationInstance = new Animation({ + timing: 'easeIn', + duration: duration, + onProcess: function onProcess(process) { + drawYAxisGrid(opts, config, context); + + var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process), + xAxisPoints = _drawLineDataPoints.xAxisPoints, + calPoints = _drawLineDataPoints.calPoints, + eachSpacing = _drawLineDataPoints.eachSpacing; + + _this.chartData.xAxisPoints = xAxisPoints; + _this.chartData.calPoints = calPoints; + _this.chartData.eachSpacing = eachSpacing; + drawXAxis(categories, opts, config, context); + drawLegend(opts.series, opts, config, context); + drawYAxis(series, opts, config, context); + drawToolTipBridge(opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'column': + this.animationInstance = new Animation({ + timing: 'easeIn', + duration: duration, + onProcess: function onProcess(process) { + drawYAxisGrid(opts, config, context); + + var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process), + xAxisPoints = _drawColumnDataPoints.xAxisPoints, + eachSpacing = _drawColumnDataPoints.eachSpacing; + + _this.chartData.xAxisPoints = xAxisPoints; + _this.chartData.eachSpacing = eachSpacing; + drawXAxis(categories, opts, config, context); + drawLegend(opts.series, opts, config, context); + drawYAxis(series, opts, config, context); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'area': + this.animationInstance = new Animation({ + timing: 'easeIn', + duration: duration, + onProcess: function onProcess(process) { + drawYAxisGrid(opts, config, context); + + var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process), + xAxisPoints = _drawAreaDataPoints.xAxisPoints, + calPoints = _drawAreaDataPoints.calPoints, + eachSpacing = _drawAreaDataPoints.eachSpacing; + + _this.chartData.xAxisPoints = xAxisPoints; + _this.chartData.calPoints = calPoints; + _this.chartData.eachSpacing = eachSpacing; + drawXAxis(categories, opts, config, context); + drawLegend(opts.series, opts, config, context); + drawYAxis(series, opts, config, context); + drawToolTipBridge(opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'ring': + case 'pie': + this.animationInstance = new Animation({ + timing: 'easeInOut', + duration: duration, + onProcess: function onProcess(process) { + _this.chartData.pieData = drawPieDataPoints(series, opts, config, context, process); + drawLegend(opts.series, opts, config, context); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'radar': + this.animationInstance = new Animation({ + timing: 'easeInOut', + duration: duration, + onProcess: function onProcess(process) { + _this.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process); + drawLegend(opts.series, opts, config, context); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + } +} + +// simple event implement + +function Event() { + this.events = {}; +} + +Event.prototype.addEventListener = function (type, listener) { + this.events[type] = this.events[type] || []; + this.events[type].push(listener); +}; + +Event.prototype.trigger = function () { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var type = args[0]; + var params = args.slice(1); + if (!!this.events[type]) { + this.events[type].forEach(function (listener) { + try { + listener.apply(null, params); + } catch (e) { + console.error(e); + } + }); + } +}; + +var Charts = function Charts(opts) { + opts.title = opts.title || {}; + opts.subtitle = opts.subtitle || {}; + opts.yAxis = opts.yAxis || {}; + opts.xAxis = opts.xAxis || {}; + opts.extra = opts.extra || {}; + opts.legend = opts.legend === false ? false : true; + opts.animation = opts.animation === false ? false : true; + var config$$1 = assign({}, config); + config$$1.yAxisTitleWidth = opts.yAxis.disabled !== true && opts.yAxis.title ? config$$1.yAxisTitleWidth : 0; + config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : config$$1.pieChartLinePadding; + config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding; + + this.opts = opts; + this.config = config$$1; + this.context = wx.createCanvasContext(opts.canvasId); + // store calcuated chart data + // such as chart point coordinate + this.chartData = {}; + this.event = new Event(); + this.scrollOption = { + currentOffset: 0, + startTouchX: 0, + distance: 0 + }; + + drawCharts.call(this, opts.type, opts, config$$1, this.context); +}; + +Charts.prototype.updateData = function () { + var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + this.opts.series = data.series || this.opts.series; + this.opts.categories = data.categories || this.opts.categories; + + this.opts.title = assign({}, this.opts.title, data.title || {}); + this.opts.subtitle = assign({}, this.opts.subtitle, data.subtitle || {}); + + drawCharts.call(this, this.opts.type, this.opts, this.config, this.context); +}; + +Charts.prototype.stopAnimation = function () { + this.animationInstance && this.animationInstance.stop(); +}; + +Charts.prototype.addEventListener = function (type, listener) { + this.event.addEventListener(type, listener); +}; + +Charts.prototype.getCurrentDataIndex = function (e) { + var touches = e.touches && e.touches.length ? e.touches : e.changedTouches; + if (touches && touches.length) { + var _touches$ = touches[0], + x = _touches$.x, + y = _touches$.y; + + if (this.opts.type === 'pie' || this.opts.type === 'ring') { + return findPieChartCurrentIndex({ x: x, y: y }, this.chartData.pieData); + } else if (this.opts.type === 'radar') { + return findRadarChartCurrentIndex({ x: x, y: y }, this.chartData.radarData, this.opts.categories.length); + } else { + return findCurrentIndex({ x: x, y: y }, this.chartData.xAxisPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset)); + } + } + return -1; +}; + +Charts.prototype.showToolTip = function (e) { + var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (this.opts.type === 'line' || this.opts.type === 'area') { + var index = this.getCurrentDataIndex(e); + var currentOffset = this.scrollOption.currentOffset; + + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + if (index > -1) { + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length === 0) { + drawCharts.call(this, opts.type, opts, this.config, this.context); + } else { + var _getToolTipData = getToolTipData(seriesData, this.chartData.calPoints, index, this.opts.categories, option), + textList = _getToolTipData.textList, + offset = _getToolTipData.offset; + + opts.tooltip = { + textList: textList, + offset: offset, + option: option + }; + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + } else { + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + } +}; + +Charts.prototype.scrollStart = function (e) { + if (e.touches[0] && this.opts.enableScroll === true) { + this.scrollOption.startTouchX = e.touches[0].x; + } +}; + +Charts.prototype.scroll = function (e) { + // TODO throtting... + if (e.touches[0] && this.opts.enableScroll === true) { + var _distance = e.touches[0].x - this.scrollOption.startTouchX; + var currentOffset = this.scrollOption.currentOffset; + + var validDistance = calValidDistance(currentOffset + _distance, this.chartData, this.config, this.opts); + + this.scrollOption.distance = _distance = validDistance - currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset + _distance, + animation: false + }); + + drawCharts.call(this, opts.type, opts, this.config, this.context); + } +}; + +Charts.prototype.scrollEnd = function (e) { + if (this.opts.enableScroll === true) { + var _scrollOption = this.scrollOption, + currentOffset = _scrollOption.currentOffset, + distance = _scrollOption.distance; + + this.scrollOption.currentOffset = currentOffset + distance; + this.scrollOption.distance = 0; + } +}; + +module.exports = Charts; diff --git a/miniprogram/pages/welcome/welcome.js b/miniprogram/pages/welcome/welcome.js new file mode 100644 index 0000000..525dce7 --- /dev/null +++ b/miniprogram/pages/welcome/welcome.js @@ -0,0 +1,66 @@ +// pages/welcome/welcome.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/miniprogram/pages/welcome/welcome.json b/miniprogram/pages/welcome/welcome.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/miniprogram/pages/welcome/welcome.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/pages/welcome/welcome.wxml b/miniprogram/pages/welcome/welcome.wxml new file mode 100644 index 0000000..42d0c04 --- /dev/null +++ b/miniprogram/pages/welcome/welcome.wxml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/miniprogram/pages/welcome/welcome.wxss b/miniprogram/pages/welcome/welcome.wxss new file mode 100644 index 0000000..9c41cfe --- /dev/null +++ b/miniprogram/pages/welcome/welcome.wxss @@ -0,0 +1,15 @@ +/* pages/welcome/welcome.wxss */ +.allPage { + height: 100%; + width:100%; + overflow: hidden; +} +.welcome { + width: 100%; + height: 350rpx; + position: fixed; + bottom: 0px; +} +page { + background-color: #890000; +} diff --git a/miniprogram/sitemap.json b/miniprogram/sitemap.json new file mode 100644 index 0000000..ca02add --- /dev/null +++ b/miniprogram/sitemap.json @@ -0,0 +1,7 @@ +{ + "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", + "rules": [{ + "action": "allow", + "page": "*" + }] +} \ No newline at end of file diff --git a/pages/index/index.js b/pages/index/index.js deleted file mode 100644 index ef9f6ce..0000000 --- a/pages/index/index.js +++ /dev/null @@ -1,157 +0,0 @@ -// pages/index/index.js -const App = getApp(); -Page({ - - /** - * 页面的初始数据 - */ - data: { - right_num:0, - grade:0, - title: "主题团日知识竞答", - allData: [ - { - pngAdd: "https://gss0.baidu.com/-fo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/9d82d158ccbf6c81962c9e57b13eb13533fa4071.jpg", - // pngAdd: "http://powerrain.cn/styleDay/images/question_1.png", - question: "问题一:以下哪一项不是四信的内容?", - answers: [ - { name: 0, value: 'A:信念' }, - { name: 1, value: 'B:信仰' }, - { name: 2, value: 'C:信任' }, - { name: 3, value: 'D:信心' }, - ], - userAnswer:"", - rightAnswer:3, - illustrate:"‘信心’应为‘信赖’", - classState:"" - }, - { - pngAdd: "https://gss0.baidu.com/-Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3801213fb80e7becbff3b15e222eb9389b506b60.jpg", - // pngAdd: "http://powerrain.cn/styleDay/images/question_2.png", - question: "问题二:关于以下说法,哪一项是不正确的?", - answers: [ - { name: 0, value: 'A:要成为新时代青年马克思主义者, 必须坚定对共产主义和中国特色社会主义的执着信仰' }, - { name: 1, value: 'B:要成为新时代青年马克思主义者, 只须练就高强的本领。' }, - { name: 2, value: 'C:要成为新时代青年马克思主义者, 必须常葆对人民群众的赤子之心' }, - { name: 3, value: 'D:要成为新时代青年马克思主义者, 必须树立为实现中华民族伟大复兴的中国梦而奋斗的使命担当' }, - ], - userAnswer: "", - rightAnswer: 1, - illustrate: "要成为新时代青年马克思主义者,必须练就高强的本领,“既要政治过硬, 也要本领高强, 这是党的十九大报告对全党的要求, 对于青年马克思主义者来讲也是完全适用的", - classState: "" - }, - { - pngAdd: "https://gss0.baidu.com/-vo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/b90e7bec54e736d1c23a3eb796504fc2d5626960.jpg", - // pngAdd: "http://powerrain.cn/styleDay/images/question_3.png", - question: "问题三:马克思主义之所以是科学,仅仅在于它不再把自己的理论建立在主观臆想的基础上,而是建立在对现实社会进行科学研究的基础之上。", - answers: [ - { name: 0, value: 'A:正确' }, - { name: 1, value: 'B:错误' }, - ], - userAnswer: "", - rightAnswer: 1, - illustrate: "马克思主义之所以是科学,首先在于它不再把自己的理论建立在主观臆想的基础上,而是建立在对现实社会进行科学研究的基础之上。马克思主义之所以为科学,还在于它不断吸收科学研究的最新成果,而不是故步自封、自视为穷尽一切真理的宗教教义。", - classState: "" - }, - { - pngAdd: "https://gss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/4e4a20a4462309f7381b1fad7f0e0cf3d7cad61d.jpg", - // pngAdd: "http://powerrain.cn/styleDay/images/question_4.png", - question: "问题四:习主席曾言,办好中国的事情,关键在党。", - answers: [ - { name: 0, value: 'A:正确' }, - { name: 1, value: 'B:错误' }, - ], - userAnswer: "", - rightAnswer: 0, - illustrate: "习主席确实这么说的。", - classState: "" - } - ], - disabled: true - }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad: function (options) { - // wx.clearStorage(); - this.setData({ - navH: App.globalData.navHeight - }) - for (let i = 0; i < this.data.allData.length; i++) { - var j = i.toString(); - var info = wx.getStorageSync(j) - var str = "allData[" + i + "].userAnswer" - this.setData({ - [str]: parseInt(info) - }) - // this.data.allData[i].userAnswer = parseInt(info); - } - for (let i = 0; i < this.data.allData.length; i++) { - if (this.data.allData[i].userAnswer != this.data.allData[i].rightAnswer){ - var str = "allData[" + i + "].classState"; - this.setData({ - [str]: "item_error" - }) - }else { - var str = "allData[" + i + "].classState"; - this.setData({ - [str]: "item_right", - right_num:this.data.right_num+1 - }) - } - } - this.setData({ - grade:this.data.right_num*25 - }) - }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { - - }, - - /** - * 生命周期函数--监听页面显示 - */ - onShow: function () { - - }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide: function () { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload: function () { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh: function () { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom: function () { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage: function () { - - }, -}) \ No newline at end of file diff --git a/project.config.json b/project.config.json index e796f7c..5f1041b 100644 --- a/project.config.json +++ b/project.config.json @@ -1,5 +1,8 @@ { "description": "项目配置文件", + "cloud": true, + "cloudfunctionRoot": "cloudfunctions/", + "miniprogramRoot": "miniprogram/", "packOptions": { "ignore": [] }, @@ -8,16 +11,19 @@ "es6": true, "postcss": true, "minified": true, - "newFeature": true + "newFeature": true, + "autoAudits": false }, "compileType": "miniprogram", - "libVersion": "2.4.1", + "libVersion": "2.5.0", "appid": "wx0df150c438e4c8f0", "projectname": "styleDay", "debugOptions": { "hidedInDevtools": [] }, "isGameTourist": false, + "simulatorType": "wechat", + "simulatorPluginLibVersion": {}, "condition": { "search": { "current": -1,