unknown
3 months ago
37 changed files with 12938 additions and 484 deletions
-
38components/nodata/nodata.vue
-
37components/oneBtn/oneBtn.vue
-
48components/privacyRadion/privacyRadion.vue
-
73components/searchRow/searchRow.vue
-
29pages.json
-
131pages/exercises/beforeExam/beforeExam.vue
-
262pages/exercises/brushQuestions/brushQuestions - 副本 (2).vue
-
162pages/exercises/brushQuestions/brushQuestions - 副本.vue
-
7pages/exercises/brushQuestions/brushQuestions.vue
-
64pages/exercises/exam/exam.vue
-
186pages/exercises/examResults/examResults.vue
-
196pages/exercises/wrongQuestion/wrongQuestion.vue
-
7static/css/app.scss
-
BINstatic/images/avatarbg.png
-
BINstatic/images/backIcon.png
-
BINstatic/images/beforeExamebg.png
-
BINstatic/images/topbg.png
-
320uni_modules/qiun-data-charts/changelog.md
-
1618uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue
-
46uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue
-
162uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue
-
170uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue
-
173uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue
-
222uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue
-
229uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue
-
36uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue
-
422uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js
-
606uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js
-
5uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md
-
7706uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js
-
18uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.min.js
-
201uni_modules/qiun-data-charts/license.md
-
80uni_modules/qiun-data-charts/package.json
-
84uni_modules/qiun-data-charts/readme.md
-
23uni_modules/qiun-data-charts/static/app-plus/echarts.min.js
-
23uni_modules/qiun-data-charts/static/h5/echarts.min.js
-
38utils/utils.js
@ -0,0 +1,38 @@ |
|||
<template> |
|||
<view class="noDate"> |
|||
<view class="img"> |
|||
<image src="@/static/images/nodata.png" mode=""></image> |
|||
</view> |
|||
<view class="text"> |
|||
<slot> |
|||
<text>暂无数据</text> |
|||
</slot> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.noDate { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
flex-direction: column; |
|||
padding: 40rpx 0; |
|||
} |
|||
.img { |
|||
width: 396rpx;height: 227rpx; |
|||
image { |
|||
display: block; |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
} |
|||
.text { |
|||
font-size: 26rpx; |
|||
color: #999; |
|||
margin-top: 60rpx; |
|||
} |
|||
</style> |
@ -0,0 +1,37 @@ |
|||
<template> |
|||
<view class="oneBtn" :class="{hui: disabled}" @click="oneBtnClick">{{ text }}</view> |
|||
</template> |
|||
|
|||
<script setup> |
|||
defineProps({ |
|||
text: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
disabled: { |
|||
type: Boolean, |
|||
default: false |
|||
} |
|||
}) |
|||
let emit = defineEmits() |
|||
|
|||
function oneBtnClick() { |
|||
emit('oneBtnClick') |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.oneBtn { |
|||
height: 80rpx; |
|||
background: #3776FF; |
|||
border-radius: 40rpx; |
|||
text-align: center; |
|||
line-height: 80rpx; |
|||
font-size: 28rpx; |
|||
color: #fff; |
|||
|
|||
&.hui { |
|||
opacity: 0.4; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,48 @@ |
|||
<template> |
|||
<view class="radioWrap"> |
|||
<u-checkbox-group> |
|||
<u-checkbox :checked="isCheck" shape="circle" label="已阅读并同意" activeColor="#DE3A26" :labelSize="12" |
|||
@change="changeRadio">已阅读并同意</u-checkbox> |
|||
</u-checkbox-group> |
|||
<view class="privacyText"> |
|||
<text @click="goPage(2)">《用户协议》</text>和 <text @click="goPage(1)">《隐私协议》</text> |
|||
</view> |
|||
</view> |
|||
|
|||
</template> |
|||
|
|||
<script setup> |
|||
defineProps({ |
|||
isCheck: { |
|||
type: Boolean, |
|||
default: false |
|||
} |
|||
}) |
|||
let emit = defineEmits() |
|||
|
|||
function changeRadio(val) { |
|||
console.log(val) |
|||
emit('changeRadio', val) |
|||
} |
|||
function goPage(type) { |
|||
uni.navigateTo({ |
|||
url: '/pages/subPage/privacyAgreement/privacyAgreement?type=' + type |
|||
}) |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.radioWrap { |
|||
display: flex; |
|||
align-items: center; |
|||
|
|||
.privacyText { |
|||
font-size: 24rpx; |
|||
color: #888E94; |
|||
|
|||
text { |
|||
color: $themC; |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,73 @@ |
|||
<template> |
|||
<view class="searchBg"> |
|||
<view class="flex"> |
|||
<view class="searchIcon"> |
|||
<image src="@/static/images/searchIcon.png" mode=""></image> |
|||
</view> |
|||
|
|||
<view class="inputBox"> |
|||
<u-search :placeholder="placeholder" searchIcon=" " v-model="keyword" :color="'#333'" |
|||
:disabled="disable" placeholderColor="#9C9C9C" :bgColor="'transparent'" |
|||
@change="$u.debounce(searchFn, 1500)" :showAction="false" @search="$u.debounce(searchFn, 500)" |
|||
@clear="clearSearchFn"></u-search> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script setup> |
|||
defineProps({ |
|||
placeholder: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
disable: { |
|||
type: Boolean, |
|||
default: false |
|||
} |
|||
}) |
|||
import {ref} from 'vue' |
|||
let emit = defineEmits() |
|||
let keyword = ref('') |
|||
|
|||
function searchFn() { |
|||
emit('searchFn', keyword.value) |
|||
} |
|||
|
|||
function clearSearchFn() { |
|||
keyword.value = '' |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
image { |
|||
display: block; |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
|
|||
.searchBg { |
|||
background: #EFEFEF; |
|||
width: 100%; |
|||
height: 72rpx; |
|||
border-radius: 10rpx; |
|||
line-height: 72rpx; |
|||
|
|||
.flex { |
|||
height: 100%; |
|||
padding: 0 28rpx; |
|||
|
|||
.searchIcon { |
|||
width: 32rpx; |
|||
height: 32rpx; |
|||
} |
|||
|
|||
.inputBox { |
|||
flex: 1; |
|||
color: #333; |
|||
font-size: 28rpx; |
|||
margin-left: -16rpx; |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,131 @@ |
|||
<template> |
|||
<view class="content" id="beforeExam"> |
|||
<view class="topBg"> |
|||
<view class="backIcon"> |
|||
<image src="@/static/images/backIcon.png" mode="aspectFill"></image> |
|||
</view> |
|||
<view class="txt">驾驶人科目一考试系统</view> |
|||
</view> |
|||
|
|||
<view class="con"> |
|||
<view class="conBg flex"> |
|||
<view class="box"> |
|||
<view class="h6">考试须知</view> |
|||
<view class="text"> |
|||
<view class="txt">1.遵守考场纪律,服从监考人员指挥。</view> |
|||
<view class="txt">2.进入考场、手机关机。禁止抽烟,禁止吃零食。</view> |
|||
<view class="txt">3.未经工作人员允许,考生禁止随意出入考场。</view> |
|||
<view class="txt">4.考场内禁止大声喧哗,禁止随意走动。</view> |
|||
<view class="txt">5.考试中认真答题,不准交头接耳。</view> |
|||
<view class="txt">6.考试中不准冒名顶替,不准弄虚作假。</view> |
|||
<view class="txt">7.注意考场卫生,禁止随地吐痰,禁止乱扔纸屑。</view> |
|||
<view class="txt">8.爱护公物及考试设备。</view> |
|||
</view> |
|||
</view> |
|||
<view class="box"> |
|||
<view class="h6">理论考试01号考台</view> |
|||
<view class="redt">身份证号:123456789123456789</view> |
|||
<view class="redt">考生姓名:驾考学员</view> |
|||
<view class="btn">开始考试</view> |
|||
<view class="redt">点击“确认”按钮开始考试!</view> |
|||
<view class="text">操作提示:每题考试答案确定后,点击【下一题】,电脑立即判定所选答案,如选择错误,系统将提示正确答案提示后不允许修改答案。</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script setup> |
|||
import { detectOrient } from '@/utils/utils.js' |
|||
import { ref, onMounted, nextTick } from 'vue' |
|||
|
|||
onMounted(()=>{ |
|||
detectOrient('#beforeExam') |
|||
}) |
|||
|
|||
|
|||
|
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
image { |
|||
display: block; |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
#beforeExam { |
|||
.topBg { |
|||
width: 100%; |
|||
height: 146rpx; |
|||
background: url('../../../static/images/beforeExamebg.png') no-repeat; |
|||
background-size: 100% 100%; |
|||
position: relative; |
|||
.backIcon { |
|||
position: absolute; |
|||
left: 30rpx; |
|||
top: 50%; |
|||
transform: translateY(-50%); |
|||
width: 40rpx; |
|||
height: 40rpx; |
|||
} |
|||
|
|||
.txt { |
|||
font-weight: 500; |
|||
font-size: 48rpx; |
|||
color: #4298F3; |
|||
text-stroke: 2rpx #FFFFFF; |
|||
font-style: italic; |
|||
-webkit-text-stroke: 2rpx #FFFFFF; |
|||
text-align: center; |
|||
line-height: 146rpx; |
|||
} |
|||
} |
|||
.con { |
|||
padding: 30rpx; |
|||
} |
|||
.conBg { |
|||
background: #F7FBFE; |
|||
border-radius: 12rpx; |
|||
border: 1rpx solid #F0F0F0; |
|||
.box { |
|||
flex: 1; |
|||
padding: 40rpx; |
|||
&:last-child { |
|||
border-left: 1px solid #F0F0F0; |
|||
} |
|||
.h6 { |
|||
font-size: 32rpx; |
|||
color: #333; |
|||
font-weight: bold; |
|||
margin-bottom: 24rpx; |
|||
} |
|||
.redt { |
|||
font-size: 28rpx; |
|||
color: #FA2C2C; |
|||
margin-bottom: 28rpx; |
|||
} |
|||
.btn { |
|||
width: 300rpx; |
|||
height: 60rpx; |
|||
background: #3776FF; |
|||
border-radius: 30rpx; |
|||
font-size: 28rpx; |
|||
color: #fff; |
|||
text-align: center; |
|||
line-height: 60rpx; |
|||
margin: 30rpx auto; |
|||
} |
|||
.text { |
|||
font-size: 22rpx; |
|||
color: #666; |
|||
.txt { |
|||
font-size: 24rpx; |
|||
color: #333; |
|||
margin: 4rpx 0; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -1,262 +0,0 @@ |
|||
<template> |
|||
<view class="content" id="brushQuestions"> |
|||
<up-navbar leftText=" " title="" :safeAreaInsetTop="false" :autoBack="true"> |
|||
<template #center> |
|||
<view class="u-nav-slot flex"> |
|||
<view class="btn" @click="changeNav(1)" :class="{active: currentNav==1}">答题模式</view> |
|||
<view class="btn" @click="changeNav(2)" :class="{active: currentNav==2}">背题模式</view> |
|||
</view> |
|||
</template> |
|||
</up-navbar> |
|||
|
|||
<view class="con padding"> |
|||
<view class="h1_row"> |
|||
<text class="tag">单选</text> |
|||
<text class="h1">机动车驾驶人在实习期内驾驶机动车不得牵引挂车。</text> |
|||
</view> |
|||
<view class="option"> |
|||
<view class="optionItem flex"> |
|||
<view class="icon"> |
|||
<image src="@/static/logo.png" mode=""></image> |
|||
</view> |
|||
<view class="text">正确</view> |
|||
</view> |
|||
</view> |
|||
<view class="answer flex"> |
|||
<view class="ans">正确答案是:<text>B</text></view> |
|||
<view class="ans">您的答案是:<text>B</text></view> |
|||
</view> |
|||
<view class="analysis"> |
|||
<view class="tit">题目解析</view> |
|||
<view class="txt">解析解析解析解析解析解析解析解析解析解析解析解析</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="con padding"> |
|||
<view class="h1_row"> |
|||
<text class="tag">单选</text> |
|||
<text class="h1">机动车驾驶人在实习期内驾驶机动车不得牵引挂车。</text> |
|||
</view> |
|||
<view class="option"> |
|||
<view class="optionItem flex"> |
|||
<view class="icon"> |
|||
<image src="@/static/logo.png" mode=""></image> |
|||
</view> |
|||
<view class="text">正确</view> |
|||
</view> |
|||
</view> |
|||
<view class="answer flex"> |
|||
<view class="ans">正确答案是:<text>B</text></view> |
|||
<view class="ans">您的答案是:<text>B</text></view> |
|||
</view> |
|||
<view class="analysis"> |
|||
<view class="tit">题目解析</view> |
|||
<view class="txt">解析解析解析解析解析解析解析解析解析解析解析解析</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="con padding"> |
|||
<view class="h1_row"> |
|||
<text class="tag">单选</text> |
|||
<text class="h1">机动车驾驶人在实习期内驾驶机动车不得牵引挂车。</text> |
|||
</view> |
|||
<view class="option"> |
|||
<view class="optionItem flex"> |
|||
<view class="icon"> |
|||
<image src="@/static/logo.png" mode=""></image> |
|||
</view> |
|||
<view class="text">正确</view> |
|||
</view> |
|||
</view> |
|||
<view class="answer flex"> |
|||
<view class="ans">正确答案是:<text>B</text></view> |
|||
<view class="ans">您的答案是:<text>B</text></view> |
|||
</view> |
|||
<view class="analysis"> |
|||
<view class="tit">题目解析</view> |
|||
<view class="txt">解析解析解析解析解析解析解析解析解析解析解析解析</view> |
|||
</view> |
|||
</view> |
|||
<u-popup :show="show" mode="center"> |
|||
<view> |
|||
<text>出淤泥而不染,濯清涟而不妖</text> |
|||
</view> |
|||
</u-popup> |
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
currentNav: '1', |
|||
show: true, |
|||
} |
|||
}, |
|||
mounted() { |
|||
this.$nextTick(()=>{ |
|||
this.detectOrient(); |
|||
}) |
|||
|
|||
}, |
|||
methods: { |
|||
changeNav(val) { |
|||
console.log(window) |
|||
if(this.currentNav == val) return |
|||
this.currentNav = val |
|||
}, |
|||
detectOrient() { |
|||
var width = document.documentElement.clientWidth, |
|||
height = document.documentElement.clientHeight, |
|||
// $wrapper = document.getElementsByTagName('body')[0], |
|||
$wrapper = document.querySelector('#brushQuestions'), |
|||
style = ""; |
|||
if (width >= height) { // 横屏 |
|||
style += "width:" + width + "px;"; // 注意旋转后的宽高切换 |
|||
style += "height:" + height + "px;"; |
|||
style += "-webkit-transform: rotate(0); transform: rotate(0);"; |
|||
style += "-webkit-transform-origin: 0 0;"; |
|||
style += "transform-origin: 0 0;"; |
|||
console.log(1) |
|||
} else { // 竖屏 |
|||
style += "width:" + height + "px;"; |
|||
style += "height:" + width + "px;"; |
|||
style += "-webkit-transform: rotate(90deg); transform: rotate(90deg);"; |
|||
// 注意旋转中点的处理 |
|||
style += "-webkit-transform-origin: " + width / 2 + "px " + width / 2 + "px;"; |
|||
style += "transform-origin: " + width / 2 + "px " + width / 2 + "px;"; |
|||
console.log(2) |
|||
} |
|||
$wrapper.style.cssText = style; |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
uni-page-body { |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
html{ |
|||
width: 100vh; |
|||
height: 100vw; |
|||
-webkit-transform: rotate(90deg); |
|||
-webkit-transform-origin: 50vw 50vw; |
|||
transform: rotate(90deg); |
|||
transform-origin: 50vw 50vw; |
|||
|
|||
} |
|||
|
|||
image {display: block;width: 100%;height: 100%;} |
|||
.content { |
|||
padding: 0rpx 0 0rpx 0rpx; |
|||
width: 100%; |
|||
height: 100%; |
|||
overflow: auto; |
|||
.u-nav-slot { |
|||
width: 306rpx; |
|||
height: 54rpx; |
|||
border-radius: 10rpx; |
|||
border: 1px solid #333333; |
|||
display: flex; |
|||
|
|||
.btn { |
|||
font-size: 24rpx; |
|||
color: #333333; |
|||
flex: 1; |
|||
text-align: center; |
|||
line-height: 54rpx; |
|||
|
|||
&.active { |
|||
background-color: #333333; |
|||
color: #fff; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.con { |
|||
.h1_row { |
|||
margin-bottom: 50rpx; |
|||
.tag { |
|||
display: inline-block; |
|||
// width: 66px; |
|||
height: 36rpx; |
|||
line-height: 36rpx; |
|||
padding: 4rpx 6rpx; |
|||
background: #63C168; |
|||
border-radius: 6rpx; |
|||
margin-top: -2rpx; |
|||
margin-right: 16rpx; |
|||
font-size: 28rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
text.h1 { |
|||
font-size: 36rpx; |
|||
} |
|||
} |
|||
|
|||
.option { |
|||
width: 100%; |
|||
.optionItem { |
|||
margin-bottom: 50rpx; |
|||
align-items: center; |
|||
.icon { |
|||
width: 56rpx; |
|||
height: 56rpx; |
|||
margin-right: 36rpx; |
|||
image { |
|||
border-radius: 50%; |
|||
} |
|||
} |
|||
|
|||
.text { |
|||
font-size: 32rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.answer { |
|||
height: 90rpx; |
|||
background: #F4F4F4; |
|||
line-height: 90rpx; |
|||
padding: 0 30rpx; |
|||
margin-top: 20rpx; |
|||
.ans { |
|||
margin-right: 60rpx; |
|||
text { |
|||
color: red; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.analysis { |
|||
margin-top: 60rpx; |
|||
.tit { |
|||
font-weight: 700; |
|||
font-size: 32rpx; |
|||
position: relative; |
|||
padding-left: 30rpx; |
|||
&::after { |
|||
content: ''; |
|||
position: absolute; |
|||
left: 0; |
|||
top: 8rpx; |
|||
width: 6rpx; |
|||
height: 30rpx; |
|||
background: linear-gradient(0deg, #43EA80 0%, #38F8D4 100%); |
|||
border-radius: 3rpx; |
|||
} |
|||
} |
|||
|
|||
.txt { |
|||
margin-top: 39rpx; |
|||
font-size: 32rpx; |
|||
color: #333333; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -1,162 +0,0 @@ |
|||
<template> |
|||
<view class="content"> |
|||
<up-navbar leftText=" " title="" :safeAreaInsetTop="false" :autoBack="true"> |
|||
<template #center> |
|||
<view class="u-nav-slot flex"> |
|||
<view class="btn" @click="changeNav(1)" :class="{active: currentNav==1}">答题模式</view> |
|||
<view class="btn" @click="changeNav(2)" :class="{active: currentNav==2}">背题模式</view> |
|||
</view> |
|||
</template> |
|||
</up-navbar> |
|||
|
|||
<view class="con padding"> |
|||
<view class="h1_row"> |
|||
<text class="tag">单选</text> |
|||
<text class="h1">机动车驾驶人在实习期内驾驶机动车不得牵引挂车。</text> |
|||
</view> |
|||
<view class="option"> |
|||
<view class="optionItem flex"> |
|||
<view class="icon"> |
|||
<image src="@/static/logo.png" mode=""></image> |
|||
</view> |
|||
<view class="text">正确</view> |
|||
</view> |
|||
</view> |
|||
<view class="answer flex"> |
|||
<view class="ans">正确答案是:<text>B</text></view> |
|||
<view class="ans">您的答案是:<text>B</text></view> |
|||
</view> |
|||
<view class="analysis"> |
|||
<view class="tit">题目解析</view> |
|||
<view class="txt">解析解析解析解析解析解析解析解析解析解析解析解析</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
currentNav: '1' |
|||
} |
|||
}, |
|||
methods: { |
|||
changeNav(val) { |
|||
console.log(window) |
|||
if(this.currentNav == val) return |
|||
this.currentNav = val |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
image {display: block;width: 100%;height: 100%;} |
|||
.content { |
|||
padding: 120rpx 0 0 0; |
|||
.u-nav-slot { |
|||
width: 306rpx; |
|||
height: 54rpx; |
|||
border-radius: 10rpx; |
|||
border: 1px solid #333333; |
|||
display: flex; |
|||
|
|||
.btn { |
|||
font-size: 24rpx; |
|||
color: #333333; |
|||
flex: 1; |
|||
text-align: center; |
|||
line-height: 54rpx; |
|||
|
|||
&.active { |
|||
background-color: #333333; |
|||
color: #fff; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.con { |
|||
.h1_row { |
|||
margin-bottom: 50rpx; |
|||
.tag { |
|||
display: inline-block; |
|||
// width: 66px; |
|||
height: 36rpx; |
|||
line-height: 36rpx; |
|||
padding: 4rpx 6rpx; |
|||
background: #63C168; |
|||
border-radius: 6rpx; |
|||
margin-top: -2rpx; |
|||
margin-right: 16rpx; |
|||
font-size: 28rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
text.h1 { |
|||
font-size: 36rpx; |
|||
} |
|||
} |
|||
|
|||
.option { |
|||
width: 100%; |
|||
.optionItem { |
|||
margin-bottom: 50rpx; |
|||
align-items: center; |
|||
.icon { |
|||
width: 56rpx; |
|||
height: 56rpx; |
|||
margin-right: 36rpx; |
|||
image { |
|||
border-radius: 50%; |
|||
} |
|||
} |
|||
|
|||
.text { |
|||
font-size: 32rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.answer { |
|||
height: 90rpx; |
|||
background: #F4F4F4; |
|||
line-height: 90rpx; |
|||
padding: 0 30rpx; |
|||
margin-top: 20rpx; |
|||
.ans { |
|||
margin-right: 60rpx; |
|||
text { |
|||
color: red; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.analysis { |
|||
margin-top: 60rpx; |
|||
.tit { |
|||
font-weight: 700; |
|||
font-size: 32rpx; |
|||
position: relative; |
|||
padding-left: 30rpx; |
|||
&::after { |
|||
content: ''; |
|||
position: absolute; |
|||
left: 0; |
|||
top: 8rpx; |
|||
width: 6rpx; |
|||
height: 30rpx; |
|||
background: linear-gradient(0deg, #43EA80 0%, #38F8D4 100%); |
|||
border-radius: 3rpx; |
|||
} |
|||
} |
|||
|
|||
.txt { |
|||
margin-top: 39rpx; |
|||
font-size: 32rpx; |
|||
color: #333333; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,186 @@ |
|||
<template> |
|||
<view class="content"> |
|||
<u-navbar leftText=" " title="模拟考试成绩" :safeAreaInsetTop="true" :autoBack="true" :fixed="true"></u-navbar> |
|||
<view class="topCard card"> |
|||
<view class="echartBox"> |
|||
|
|||
</view> |
|||
<view class="info_row"> |
|||
<view class="avatar"> |
|||
<!-- <image src="@/static/images/backIcon.png" mode=""></image> --> |
|||
</view> |
|||
<view class="txtInfo"> |
|||
<view class="name">用户名</view> |
|||
<view class="carType">车型:C1 (科目一)</view> |
|||
</view> |
|||
<view class="resStatus">考试不级格</view> |
|||
</view> |
|||
|
|||
<view class="btnBox"> |
|||
<oneBtn text="快速提升通过率"></oneBtn> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="card"> |
|||
<view class="flex-b"> |
|||
<view class="leftT">预测考试通过率</view> |
|||
<view class="rate"><span>12</span>%</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="card"> |
|||
<view class="lab">错题分类</view> |
|||
<view class="ul"> |
|||
<view class="li" v-for="(item,index) in 4" :key="index"> |
|||
<view class="num">1</view> |
|||
<view class="txt">驾驶证和机动车管理规定</view> |
|||
<view class="rightBox"> |
|||
<view class="p">错3题</view> |
|||
<u-icon name="arrow-right" color="#D9D9D9" size="14"></u-icon> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
image { |
|||
display: block; |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
.card { |
|||
background: #FFFFFF; |
|||
padding: 20rpx; |
|||
border-radius: 20rpx; |
|||
margin-top: 20rpx; |
|||
} |
|||
.content { |
|||
width: 100%; |
|||
background-color: #F6F7FA; |
|||
padding: 100rpx 30rpx 30rpx 30rpx; |
|||
min-height: 100vh; |
|||
.topCard { |
|||
.echartBox { |
|||
|
|||
} |
|||
|
|||
.info_row { |
|||
display: flex; |
|||
align-items: center; |
|||
.avatar { |
|||
background: url('../../../static/images/avatarbg.png') no-repeat; |
|||
background-size: 100% 100%; |
|||
width: 120rpx; |
|||
height: 120rpx; |
|||
} |
|||
|
|||
.txtInfo { |
|||
width: 0; |
|||
flex: 1; |
|||
padding: 0 20rpx; |
|||
.name { |
|||
font-size: 36rpx; |
|||
color: #333; |
|||
font-weight: 600; |
|||
} |
|||
|
|||
.carType { |
|||
font-size: 28rpx; |
|||
margin-top: 14rpx; |
|||
} |
|||
} |
|||
|
|||
.resStatus { |
|||
width: 200rpx; |
|||
height: 66rpx; |
|||
background: linear-gradient(90deg, #FAE0A2 0%, #F6C86F 100%); |
|||
border-radius: 33rpx; |
|||
font-size: 28rpx; |
|||
color: #6B4229; |
|||
text-align: center; |
|||
line-height: 66rpx; |
|||
} |
|||
} |
|||
|
|||
.btnBox { |
|||
width: 100%; |
|||
padding: 70rpx 80rpx 10rpx 80rpx; |
|||
onebtn { |
|||
|
|||
} |
|||
} |
|||
} |
|||
|
|||
.card{ |
|||
|
|||
.flex-b { |
|||
padding: 20rpx 10rpx; |
|||
.leftT { |
|||
font-size: 36rpx; |
|||
font-weight: 700; |
|||
} |
|||
|
|||
.rate { |
|||
font-size: 36rpx; |
|||
color: #FF3333; |
|||
text { |
|||
font-size: 72rpx; |
|||
font-weight: 700; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.card { |
|||
.lab { |
|||
font-size: 32rpx; |
|||
} |
|||
|
|||
.ul { |
|||
padding-top: 30rpx; |
|||
.li { |
|||
width: 100%; |
|||
display: flex; |
|||
align-items: center; |
|||
padding: 34rpx 0; |
|||
.num { |
|||
height: 32rpx; |
|||
background: #F5C142; |
|||
border-radius: 50%; |
|||
padding: 0 10rpx; |
|||
color: #fff; |
|||
font-size: 24rpx; |
|||
line-height: 32rpx; |
|||
} |
|||
|
|||
.txt { |
|||
flex: 1; |
|||
width: 0; |
|||
font-size: 28rpx; |
|||
padding: 0 20rpx; |
|||
} |
|||
|
|||
.rightBox { |
|||
display: flex; |
|||
align-items: center; |
|||
.p { |
|||
font-size: 24rpx; |
|||
color: #FF3333; |
|||
margin-right: 4rpx; |
|||
} |
|||
|
|||
u-icon { |
|||
|
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,196 @@ |
|||
<template> |
|||
<view class="content"> |
|||
<up-navbar leftText=" " :leftIconColor="'#fff'" :safeAreaInsetTop="true" :autoBack="true" :bgColor="'transparent'"> |
|||
<template #center> |
|||
<view class="u-nav-slot flex"> |
|||
<view class="btn" @click="changeNav(1)" :class="{active: currentNav==1}">错题本</view> |
|||
<view class="btn" @click="changeNav(2)" :class="{active: currentNav==2}">收藏夹</view> |
|||
</view> |
|||
</template> |
|||
</up-navbar> |
|||
|
|||
<view class="card"> |
|||
<view class="h7">我的错题</view> |
|||
<view class="flex-b"> |
|||
<view class="cardBg"> |
|||
<view class="flex"> |
|||
<view class="label">全部错题</view> |
|||
<u-icon name="arrow-right" color="#fff" size="14"></u-icon> |
|||
</view> |
|||
<view class="num">2</view> |
|||
</view> |
|||
<view class="cardBg"> |
|||
<view class="flex"> |
|||
<view class="label">高频错题</view> |
|||
<u-icon name="arrow-right" color="#fff" size="14"></u-icon> |
|||
</view> |
|||
<view class="num">1</view> |
|||
</view> |
|||
</view> |
|||
<view class="flex-b"> |
|||
<view class="h8">答对题后自动移除错题</view> |
|||
<u-switch v-model="value" @change="change"></u-switch> |
|||
</view> |
|||
</view> |
|||
<view class="card"> |
|||
<view class="flex-b"> |
|||
<view class="h7">错题分类</view> |
|||
<view class="rightall"> |
|||
<u-icon name="trash" color="#ccc" size="14"></u-icon> |
|||
<view class="txt">全部移除</view> |
|||
</view> |
|||
</view> |
|||
<view class="ul"> |
|||
<view class="li" v-for="(item,index) in 4" :key="index"> |
|||
<view class="num">1</view> |
|||
<view class="txt">驾驶证和机动车管理规定</view> |
|||
<view class="rightBox"> |
|||
<view class="p">错3题</view> |
|||
<u-icon name="arrow-right" color="#D9D9D9" size="14"></u-icon> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script setup> |
|||
import { ref } from 'vue' |
|||
const value = ref(false) |
|||
const currentNav = ref(1) |
|||
|
|||
function changeNav(val) { |
|||
currentNav.value = val |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.u-nav-slot { |
|||
display: flex; |
|||
.btn { |
|||
color: #fff; |
|||
position: relative; |
|||
padding: 0 20rpx; |
|||
&.active { |
|||
&::before { |
|||
content: ''; |
|||
position: absolute; |
|||
left: 50%; |
|||
bottom: -20rpx; |
|||
width: 30rpx; |
|||
height: 4rpx; |
|||
background: #F6F7F8; |
|||
border-radius: 2rpx; |
|||
transform: translateX(-50%); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
.content { |
|||
width: 100%; |
|||
background-color: #F6F7FA; |
|||
min-height: 100vh; |
|||
padding: 100rpx 30rpx 30rpx 30rpx; |
|||
background: url('../../../static/images/topbg.png') no-repeat; |
|||
background-size: 100% 410rpx; |
|||
.card { |
|||
width: 100%; |
|||
background: #FFFFFF; |
|||
border-radius: 20rpx; |
|||
padding: 20rpx; |
|||
margin-top: 20rpx; |
|||
.h7 { |
|||
font-size: 32rpx; |
|||
font-weight: 550; |
|||
} |
|||
|
|||
.cardBg { |
|||
width: 48%; |
|||
height: 147rpx; |
|||
background: linear-gradient(125deg, #3776FF 0%, #6193FF 100%); |
|||
border-radius: 20rpx; |
|||
padding: 20rpx; |
|||
color: #fff; |
|||
margin-top: 30rpx; |
|||
&:last-child { |
|||
background: linear-gradient(125deg, #FE5656 0%, #FFC5C5 100%); |
|||
} |
|||
.flex { |
|||
.label { |
|||
font-size: 24rpx; |
|||
} |
|||
|
|||
u-icon { |
|||
|
|||
} |
|||
} |
|||
|
|||
.num { |
|||
font-weight: bold; |
|||
font-size: 48rpx; |
|||
margin-top: 20rpx; |
|||
} |
|||
} |
|||
|
|||
.flex-b { |
|||
.h8 { |
|||
font-size: 28rpx; |
|||
line-height: 120rpx; |
|||
font-weight: 550; |
|||
} |
|||
|
|||
u-switch { |
|||
|
|||
} |
|||
} |
|||
} |
|||
.rightall { |
|||
display: flex; |
|||
align-items: center; |
|||
font-size: 24rpx; |
|||
color: #ccc; |
|||
.txt { |
|||
margin-left: 6rpx; |
|||
} |
|||
} |
|||
.ul { |
|||
padding-top: 30rpx; |
|||
.li { |
|||
width: 100%; |
|||
display: flex; |
|||
align-items: center; |
|||
padding: 34rpx 0; |
|||
.num { |
|||
height: 32rpx; |
|||
background: #F5C142; |
|||
border-radius: 50%; |
|||
padding: 0 10rpx; |
|||
color: #fff; |
|||
font-size: 24rpx; |
|||
line-height: 32rpx; |
|||
} |
|||
|
|||
.txt { |
|||
flex: 1; |
|||
width: 0; |
|||
font-size: 28rpx; |
|||
padding: 0 20rpx; |
|||
} |
|||
|
|||
.rightBox { |
|||
display: flex; |
|||
align-items: center; |
|||
.p { |
|||
font-size: 24rpx; |
|||
color: #FF3333; |
|||
margin-right: 4rpx; |
|||
} |
|||
|
|||
u-icon { |
|||
|
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
After Width: 240 | Height: 242 | Size: 21 KiB |
After Width: 80 | Height: 80 | Size: 2.3 KiB |
After Width: 2800 | Height: 292 | Size: 434 KiB |
After Width: 1500 | Height: 1160 | Size: 70 KiB |
@ -0,0 +1,320 @@ |
|||
## 2.5.0-20230101(2023-01-01) |
|||
- 秋云图表组件 修改条件编译顺序,确保uniapp的cli方式的项目依赖不完整时可以正常显示 |
|||
- 秋云图表组件 恢复props属性directory的使用,以修复vue3项目中,开启echarts后,echarts目录识别错误的bug |
|||
- uCharts.js 修复区域图、混合图只有一个数据时图表显示不正确的bug |
|||
- uCharts.js 修复折线图、区域图中时间轴类别图表tooltip指示点显示不正确的bug |
|||
- uCharts.js 修复x轴使用labelCount时,并且boundaryGap = 'justify' 并且关闭Y轴显示的时候,最后一个坐标值不显示的bug |
|||
- uCharts.js 修复折线图只有一组数据时 ios16 渲染颜色不正确的bug |
|||
- uCharts.js 修复玫瑰图半径显示不正确的bug |
|||
- uCharts.js 柱状图、山峰图增加正负图功能,y轴网格如果需要显示0轴则由 min max 及 splitNumber 确定,后续版本优化自动显示0轴 |
|||
- uCharts.js 柱状图column增加 opts.extra.column.labelPosition,数据标签位置,有效值为 outside外部, insideTop内顶部, center内中间, bottom内底部 |
|||
- uCharts.js 雷达图radar增加 opts.extra.radar.labelShow,否显示各项标识文案是,默认true |
|||
- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.boxPadding,提示窗边框填充距离,默认3px |
|||
- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.fontSize,提示窗字体大小配置,默认13px |
|||
- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.lineHeight,提示窗文字行高,默认20px |
|||
- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.legendShow,是否显示左侧图例,默认true |
|||
- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.legendShape,图例形状,图例标识样式,有效值为 auto自动跟随图例, diamond◆, circle●, triangle▲, square■, rect▬, line- |
|||
- uCharts.js 标记线markLine增加 opts.extra.markLine.labelFontSize,字体大小配置,默认13px |
|||
- uCharts.js 标记线markLine增加 opts.extra.markLine.labelPadding,标签边框内填充距离,默认6px |
|||
- uCharts.js 折线图line增加 opts.extra.line.linearType,渐变色类型,可选值 none关闭渐变色,custom 自定义渐变色。使用自定义渐变色时请赋值serie.linearColor作为颜色值 |
|||
- uCharts.js 折线图line增加 serie.linearColor,渐变色数组,格式为2维数组[起始位置,颜色值],例如[[0,'#0EE2F8'],[0.3,'#2BDCA8'],[0.6,'#1890FF'],[1,'#9A60B4']] |
|||
- uCharts.js 折线图line增加 opts.extra.line.onShadow,是否开启折线阴影,开启后请赋值serie.setShadow阴影设置 |
|||
- uCharts.js 折线图line增加 serie.setShadow,阴影配置,格式为4位数组:[offsetX,offsetY,blur,color] |
|||
- uCharts.js 折线图line增加 opts.extra.line.animation,动画效果方向,可选值为vertical 垂直动画效果,horizontal 水平动画效果 |
|||
- uCharts.js X轴xAxis增加 opts.xAxis.lineHeight,X轴字体行高,默认20px |
|||
- uCharts.js X轴xAxis增加 opts.xAxis.marginTop,X轴文字距离轴线的距离,默认0px |
|||
- uCharts.js X轴xAxis增加 opts.xAxis.title,当前X轴标题 |
|||
- uCharts.js X轴xAxis增加 opts.xAxis.titleFontSize,标题字体大小,默认13px |
|||
- uCharts.js X轴xAxis增加 opts.xAxis.titleOffsetY,标题纵向偏移距离,负数为向上偏移,正数向下偏移 |
|||
- uCharts.js X轴xAxis增加 opts.xAxis.titleOffsetX,标题横向偏移距离,负数为向左偏移,正数向右偏移 |
|||
- uCharts.js X轴xAxis增加 opts.xAxis.titleFontColor,标题字体颜色,默认#666666 |
|||
|
|||
## 报错TypeError: Cannot read properties of undefined (reading 'length') |
|||
- 如果是uni-modules版本组件,请先登录HBuilderX账号; |
|||
- 在HBuilderX中的manifest.json,点击重新获取uniapp的appid,或者删除appid重新粘贴,重新运行; |
|||
- 如果是cli项目请使用码云上的非uniCloud版本组件; |
|||
- 或者添加uniCloud的依赖; |
|||
- 或者使用原生uCharts; |
|||
## 2.4.5-20221130(2022-11-30) |
|||
- uCharts.js 优化tooltip当文字很多变为左侧显示时,如果画布仍显显示不下,提示框错位置变为以左侧0位置起画 |
|||
- uCharts.js 折线图修复特殊情况下只有单点数据,并改变线宽后点变为圆形的bug |
|||
- uCharts.js 修复Y轴disabled启用后无效并报错的bug |
|||
- uCharts.js 修复仪表盘起始结束角度特殊情况下显示不正确的bug |
|||
- uCharts.js 雷达图新增参数 opts.extra.radar.radius , 自定义雷达图半径 |
|||
- uCharts.js 折线图、区域图增加tooltip指示点,opts.extra.line.activeType/opts.extra.area.activeType,可选值"none"不启用激活指示点,"hollow"空心点模式,"solid"实心点模式 |
|||
## 2.4.4-20221102(2022-11-02) |
|||
- 秋云图表组件 修复使用echarts时reload、reshow无法调用重新渲染的bug,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/40) |
|||
- 秋云图表组件 修复使用echarts时,初始化时宽高不正确的bug,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/42) |
|||
- 秋云图表组件 修复uniapp的h5使用history模式时,无法加载echarts的bug |
|||
- 秋云图表组件 小程序端@complete、@scrollLeft、@scrollRight、@getTouchStart、@getTouchMove、@getTouchEnd事件增加opts参数传出,方便一些特殊需求的交互获取数据。 |
|||
|
|||
- uCharts.js 修复calTooltipYAxisData方法内formatter格式化方法未与y轴方法同步的问题,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/43) |
|||
- uCharts.js 地图新增参数opts.series[i].fillOpacity,以透明度方式来设置颜色过度效果,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/38) |
|||
- uCharts.js 地图新增参数opts.extra.map.active,是否启用点击激活变色 |
|||
- uCharts.js 地图新增参数opts.extra.map.activeTextColor,是否启用点击激活变色 |
|||
- uCharts.js 地图新增渲染完成事件renderComplete |
|||
- uCharts.js 漏斗图修复当部分数据相同时tooltip提示窗点击错误的bug |
|||
- uCharts.js 漏斗图新增参数series.data[i].centerText 居中标签文案 |
|||
- uCharts.js 漏斗图新增参数series.data[i].centerTextSize 居中标签文案字体大小,默认opts.fontSize |
|||
- uCharts.js 漏斗图新增参数series.data[i].centerTextColor 居中标签文案字体颜色,默认#FFFFFF |
|||
- uCharts.js 漏斗图新增参数opts.extra.funnel.minSize 最小值的最小宽度,默认0 |
|||
- uCharts.js 进度条新增参数opts.extra.arcbar.direction,动画方向,可选值为cw顺时针、ccw逆时针 |
|||
- uCharts.js 混合图新增参数opts.extra.mix.line.width,折线的宽度,默认2 |
|||
- uCharts.js 修复tooltip开启horizentalLine水平横线标注时,图表显示错位的bug |
|||
- uCharts.js 优化tooltip当文字很多变为左侧显示时,如果画布仍显显示不下,提示框错位置变为以左侧0位置起画 |
|||
- uCharts.js 修复开启滚动条后X轴文字超出绘图区域后的隐藏逻辑 |
|||
- uCharts.js 柱状图、条状图修复堆叠模式不能通过{value,color}赋值单个柱子颜色的问题 |
|||
- uCharts.js 气泡图修复不识别series.textSize和series.textColor的bug |
|||
|
|||
## 报错TypeError: Cannot read properties of undefined (reading 'length') |
|||
1. 如果是uni-modules版本组件,请先登录HBuilderX账号; |
|||
2. 在HBuilderX中的manifest.json,点击重新获取uniapp的appid,或者删除appid重新粘贴,重新运行; |
|||
3. 如果是cli项目请使用码云上的非uniCloud版本组件; |
|||
4. 或者添加uniCloud的依赖; |
|||
5. 或者使用原生uCharts; |
|||
## 2.4.3-20220505(2022-05-05) |
|||
- 秋云图表组件 修复开启canvas2d后将series赋值为空数组显示加载图标时,再次赋值后画布闪动的bug |
|||
- 秋云图表组件 修复升级hbx最新版后ECharts的highlight方法报错的bug |
|||
- uCharts.js 雷达图新增参数opts.extra.radar.gridEval,数据点位网格抽希,默认1 |
|||
- uCharts.js 雷达图新增参数opts.extra.radar.axisLabel, 是否显示刻度点值,默认false |
|||
- uCharts.js 雷达图新增参数opts.extra.radar.axisLabelTofix,刻度点值小数位数,默认0 |
|||
- uCharts.js 雷达图新增参数opts.extra.radar.labelPointShow,是否显示末端刻度圆点,默认false |
|||
- uCharts.js 雷达图新增参数opts.extra.radar.labelPointRadius,刻度圆点的半径,默认3 |
|||
- uCharts.js 雷达图新增参数opts.extra.radar.labelPointColor,刻度圆点的颜色,默认#cccccc |
|||
- uCharts.js 雷达图新增参数opts.extra.radar.linearType,渐变色类型,可选值"none"关闭渐变,"custom"开启渐变 |
|||
- uCharts.js 雷达图新增参数opts.extra.radar.customColor,自定义渐变颜色,数组类型对应series的数组长度以匹配不同series颜色的不同配色方案,例如["#FA7D8D", "#EB88E2"] |
|||
- uCharts.js 雷达图优化支持series.textColor、series.textSize属性 |
|||
- uCharts.js 柱状图中温度计式图标,优化支持全圆角类型,修复边框有缝隙的bug,详见官网【演示】中的温度计图表 |
|||
- uCharts.js 柱状图新增参数opts.extra.column.activeWidth,当前点击柱状图的背景宽度,默认一个单元格单位 |
|||
- uCharts.js 混合图增加opts.extra.mix.area.gradient 区域图是否开启渐变色 |
|||
- uCharts.js 混合图增加opts.extra.mix.area.opacity 区域图透明度,默认0.2 |
|||
- uCharts.js 饼图、圆环图、玫瑰图、漏斗图,增加opts.series[0].data[i].labelText,自定义标签文字,避免formatter格式化的繁琐,详见官网【演示】中的饼图 |
|||
- uCharts.js 饼图、圆环图、玫瑰图、漏斗图,增加opts.series[0].data[i].labelShow,自定义是否显示某一个指示标签,避免因饼图类别太多导致标签重复或者居多导致图形变形的问题,详见官网【演示】中的饼图 |
|||
- uCharts.js 增加opts.series[i].legendText/opts.series[0].data[i].legendText(与series.name同级)自定义图例显示文字的方法 |
|||
- uCharts.js 优化X轴、Y轴formatter格式化方法增加形参,统一为fromatter:function(value,index,opts){} |
|||
- uCharts.js 修复横屏模式下无法使用双指缩放方法的bug |
|||
- uCharts.js 修复当只有一条数据或者多条数据值相等的时候Y轴自动计算的最大值错误的bug |
|||
- 【官网模板】增加外部自定义图例与图表交互的例子,[点击跳转](https://www.ucharts.cn/v2/#/layout/info?id=2) |
|||
|
|||
## 注意:非unimodules 版本如因更新 hbx 至 3.4.7 导致报错如下,请到码云更新非 unimodules 版本组件,[点击跳转](https://gitee.com/uCharts/uCharts/tree/master/uni-app/uCharts-%E7%BB%84%E4%BB%B6) |
|||
> Error in callback for immediate watcher "uchartsOpts": "SyntaxError: Unexpected token u in JSON at position 0" |
|||
## 2.4.2-20220421(2022-04-21) |
|||
- 秋云图表组件 修复HBX升级3.4.6.20220420版本后echarts报错的问题 |
|||
## 2.4.2-20220420(2022-04-20) |
|||
## 重要!此版本uCharts新增了很多功能,修复了诸多已知问题 |
|||
- 秋云图表组件 新增onzoom开启双指缩放功能(仅uCharts),前提需要直角坐标系类图表类型,并且ontouch为true、opts.enableScroll为true,详见实例项目K线图 |
|||
- 秋云图表组件 新增optsWatch是否监听opts变化,关闭optsWatch后,动态修改opts不会触发图表重绘 |
|||
- 秋云图表组件 修复开启canvas2d功能后,动态更新数据后画布闪动的bug |
|||
- 秋云图表组件 去除directory属性,改为自动获取echarts.min.js路径(升级不受影响) |
|||
- 秋云图表组件 增加getImage()方法及@getImage事件,通过ref调用getImage()方法获,触发@getImage事件获取当前画布的base64图片文件流。 |
|||
- 秋云图表组件 支付宝、字节跳动、飞书、快手小程序支持开启canvas2d同层渲染设置。 |
|||
- 秋云图表组件 新增加【非uniCloud】版本组件,避免有些不需要uniCloud的使用组件发布至小程序需要提交隐私声明问题,请到码云[【非uniCloud版本】](https://gitee.com/uCharts/uCharts/tree/master/uni-app/uCharts-%E7%BB%84%E4%BB%B6),或npm[【非uniCloud版本】](https://www.npmjs.com/package/@qiun/uni-ucharts)下载使用。 |
|||
- uCharts.js 新增dobuleZoom双指缩放功能 |
|||
- uCharts.js 新增山峰图type="mount",数据格式为饼图类格式,不需要传入categories,具体详见新版官网在线演示 |
|||
- uCharts.js 修复折线图当数据中存在null时tooltip报错的bug |
|||
- uCharts.js 修复饼图类当画布比较小时自动计算的半径是负数报错的bug |
|||
- uCharts.js 统一各图表类型的series.formatter格式化方法的形参为(val, index, series, opts),方便格式化时有更多参数可用 |
|||
- uCharts.js 标记线功能增加labelText自定义显示文字,增加labelAlign标签显示位置(左侧或右侧),增加标签显示位置微调labelOffsetX、labelOffsetY |
|||
- uCharts.js 修复条状图当数值很小时开启圆角后样式错误的bug |
|||
- uCharts.js 修复X轴开启disabled后,X轴仍占用空间的bug |
|||
- uCharts.js 修复X轴开启滚动条并且开启rotateLabel后,X轴文字与滚动条重叠的bug |
|||
- uCharts.js 增加X轴rotateAngle文字旋转自定义角度,取值范围(-90至90) |
|||
- uCharts.js 修复地图文字标签层级显示不正确的bug |
|||
- uCharts.js 修复饼图、圆环图、玫瑰图当数据全部为0的时候不显示数据标签的bug |
|||
- uCharts.js 修复当opts.padding上边距为0时,Y轴顶部刻度标签位置不正确的bug |
|||
|
|||
## 另外我们还开发了各大原生小程序组件,已发布至码云和npm |
|||
[https://gitee.com/uCharts/uCharts](https://gitee.com/uCharts/uCharts) |
|||
[https://www.npmjs.com/~qiun](https://www.npmjs.com/~qiun) |
|||
|
|||
## 对于原生uCharts文档我们已上线新版官方网站,详情点击下面链接进入官网 |
|||
[https://www.uCharts.cn/v2/](https://www.ucharts.cn/v2/) |
|||
## 2.3.7-20220122(2022-01-22) |
|||
## 重要!使用vue3编译,请使用cli模式并升级至最新依赖,HbuilderX编译需要使用3.3.8以上版本 |
|||
- uCharts.js 修复uni-app平台组件模式使用vue3编译到小程序报错的bug。 |
|||
## 2.3.7-20220118(2022-01-18) |
|||
## 注意,使用vue3的前提是需要3.3.8.20220114-alpha版本的HBuilder! |
|||
## 2.3.67-20220118(2022-01-18) |
|||
- 秋云图表组件 组件初步支持vue3,全端编译会有些问题,具体详见下面修改: |
|||
1. 小程序端运行时,在uni_modules文件夹的qiun-data-charts.js中搜索 new uni_modules_qiunDataCharts_js_sdk_uCharts_uCharts.uCharts,将.uCharts去掉。 |
|||
2. 小程序端发行时,在uni_modules文件夹的qiun-data-charts.js中搜索 new e.uCharts,将.uCharts去掉,变为 new e。 |
|||
3. 如果觉得上述步骤比较麻烦,如果您的项目只编译到小程序端,可以修改u-charts.js最后一行导出方式,将 export default uCharts;变更为 export default { uCharts: uCharts }; 这样变更后,H5和App端的renderjs会有问题,请开发者自行选择。(此问题非组件问题,请等待DC官方修复Vue3的小程序端) |
|||
## 2.3.6-20220111(2022-01-11) |
|||
- 秋云图表组件 修改组件 props 属性中的 background 默认值为 rgba(0,0,0,0) |
|||
## 2.3.6-20211201(2021-12-01) |
|||
- uCharts.js 修复bar条状图开启圆角模式时,值很小时圆角渲染错误的bug |
|||
## 2.3.5-20211014(2021-10-15) |
|||
- uCharts.js 增加vue3的编译支持(仅原生uCharts,qiun-data-charts组件后续会支持,请关注更新) |
|||
## 2.3.4-20211012(2021-10-12) |
|||
- 秋云图表组件 修复 mac os x 系统 mouseover 事件丢失的 bug |
|||
## 2.3.3-20210706(2021-07-06) |
|||
- uCharts.js 增加雷达图开启数据点值(opts.dataLabel)的显示 |
|||
## 2.3.2-20210627(2021-06-27) |
|||
- 秋云图表组件 修复tooltipCustom个别情况下传值不正确报错TypeError: Cannot read property 'name' of undefined的bug |
|||
## 2.3.1-20210616(2021-06-16) |
|||
- uCharts.js 修复圆角柱状图使用4角圆角时,当数值过大时不正确的bug |
|||
## 2.3.0-20210612(2021-06-12) |
|||
- uCharts.js 【重要】uCharts增加nvue兼容,可在nvue项目中使用gcanvas组件渲染uCharts,[详见码云uCharts-demo-nvue](https://gitee.com/uCharts/uCharts) |
|||
- 秋云图表组件 增加tapLegend属性,是否开启图例点击交互事件 |
|||
- 秋云图表组件 getIndex事件中增加返回uCharts实例中的opts参数,以便在页面中调用参数 |
|||
- 示例项目 pages/other/other.vue增加app端自定义tooltip的方法,详见showOptsTooltip方法 |
|||
## 2.2.1-20210603(2021-06-03) |
|||
- uCharts.js 修复饼图、圆环图、玫瑰图,当起始角度不为0时,tooltip位置不准确的bug |
|||
- uCharts.js 增加温度计式柱状图开启顶部半圆形的配置 |
|||
## 2.2.0-20210529(2021-05-29) |
|||
- uCharts.js 增加条状图type="bar" |
|||
- 示例项目 pages/ucharts/ucharts.vue增加条状图的demo |
|||
## 2.1.7-20210524(2021-05-24) |
|||
- uCharts.js 修复大数据量模式下曲线图不平滑的bug |
|||
## 2.1.6-20210523(2021-05-23) |
|||
- 秋云图表组件 修复小程序端开启滚动条更新数据后滚动条位置不符合预期的bug |
|||
## 2.1.5-2021051702(2021-05-17) |
|||
- uCharts.js 修复自定义Y轴min和max值为0时不能正确显示的bug |
|||
## 2.1.5-20210517(2021-05-17) |
|||
- uCharts.js 修复Y轴自定义min和max时,未按指定的最大值最小值显示坐标轴刻度的bug |
|||
## 2.1.4-20210516(2021-05-16) |
|||
- 秋云图表组件 优化onWindowResize防抖方法 |
|||
- 秋云图表组件 修复APP端uCharts更新数据时,清空series显示loading图标后再显示图表,图表抖动的bug |
|||
- uCharts.js 修复开启canvas2d后,x轴、y轴、series自定义字体大小未按比例缩放的bug |
|||
- 示例项目 修复format-e.vue拼写错误导致app端使用uCharts渲染图表 |
|||
## 2.1.3-20210513(2021-05-13) |
|||
- 秋云图表组件 修改uCharts变更chartData数据为updateData方法,支持带滚动条的数据动态打点 |
|||
- 秋云图表组件 增加onWindowResize防抖方法 fix by ど誓言,如尘般染指流年づ |
|||
- 秋云图表组件 H5或者APP变更chartData数据显示loading图表时,原数据闪现的bug |
|||
- 秋云图表组件 props增加errorReload禁用错误点击重新加载的方法 |
|||
- uCharts.js 增加tooltip显示category(x轴对应点位)标题的功能,opts.extra.tooltip.showCategory,默认为false |
|||
- uCharts.js 修复mix混合图只有柱状图时,tooltip的分割线显示位置不正确的bug |
|||
- uCharts.js 修复开启滚动条,图表在拖动中动态打点,滚动条位置不正确的bug |
|||
- uCharts.js 修复饼图类数据格式为echarts数据格式,series为空数组报错的bug |
|||
- 示例项目 修改uCharts.js更新到v2.1.2版本后,@getIndex方法获取索引值变更为e.currentIndex.index |
|||
- 示例项目 pages/updata/updata.vue增加滚动条拖动更新(数据动态打点)的demo |
|||
- 示例项目 pages/other/other.vue增加errorReload禁用错误点击重新加载的demo |
|||
## 2.1.2-20210509(2021-05-09) |
|||
秋云图表组件 修复APP端初始化时就传入chartData或lacaldata不显示图表的bug |
|||
## 2.1.1-20210509(2021-05-09) |
|||
- 秋云图表组件 变更ECharts的eopts配置在renderjs内执行,支持在config-echarts.js配置文件内写function配置。 |
|||
- 秋云图表组件 修复APP端报错Prop being mutated: "onmouse"错误的bug。 |
|||
- 秋云图表组件 修复APP端报错Error: Not Found:Page[6][-1,27] at view.umd.min.js:1的bug。 |
|||
## 2.1.0-20210507(2021-05-07) |
|||
- 秋云图表组件 修复初始化时就有数据或者数据更新的时候loading加载动画闪动的bug |
|||
- uCharts.js 修复x轴format方法categories为字符串类型时返回NaN的bug |
|||
- uCharts.js 修复series.textColor、legend.fontColor未执行全局默认颜色的bug |
|||
## 2.1.0-20210506(2021-05-06) |
|||
- 秋云图表组件 修复极个别情况下报错item.properties undefined的bug |
|||
- 秋云图表组件 修复极个别情况下关闭加载动画reshow不起作用,无法显示图表的bug |
|||
- 示例项目 pages/ucharts/ucharts.vue 增加时间轴折线图(type="tline")、时间轴区域图(type="tarea")、散点图(type="scatter")、气泡图demo(type="bubble")、倒三角形漏斗图(opts.extra.funnel.type="triangle")、金字塔形漏斗图(opts.extra.funnel.type="pyramid") |
|||
- 示例项目 pages/format-u/format-u.vue 增加X轴format格式化示例 |
|||
- uCharts.js 升级至v2.1.0版本 |
|||
- uCharts.js 修复 玫瑰图面积模式点击tooltip位置不正确的bug |
|||
- uCharts.js 修复 玫瑰图点击图例,只剩一个类别显示空白的bug |
|||
- uCharts.js 修复 饼图类图点击图例,其他图表tooltip位置某些情况下不准的bug |
|||
- uCharts.js 修复 x轴为矢量轴(时间轴)情况下,点击tooltip位置不正确的bug |
|||
- uCharts.js 修复 词云图获取点击索引偶尔不准的bug |
|||
- uCharts.js 增加 直角坐标系图表X轴format格式化方法(原生uCharts.js用法请使用formatter) |
|||
- uCharts.js 增加 漏斗图扩展配置,倒三角形(opts.extra.funnel.type="triangle"),金字塔形(opts.extra.funnel.type="pyramid") |
|||
- uCharts.js 增加 散点图(opts.type="scatter")、气泡图(opts.type="bubble") |
|||
- 后期计划 完善散点图、气泡图,增加markPoints标记点,增加横向条状图。 |
|||
## 2.0.0-20210502(2021-05-02) |
|||
- uCharts.js 修复词云图获取点击索引不正确的bug |
|||
## 2.0.0-20210501(2021-05-01) |
|||
- 秋云图表组件 修复QQ小程序、百度小程序在关闭动画效果情况下,v-for循环使用图表,显示不正确的bug |
|||
## 2.0.0-20210426(2021-04-26) |
|||
- 秋云图表组件 修复QQ小程序不支持canvas2d的bug |
|||
- 秋云图表组件 修复钉钉小程序某些情况点击坐标计算错误的bug |
|||
- uCharts.js 增加 extra.column.categoryGap 参数,柱状图类每个category点位(X轴点)柱子组之间的间距 |
|||
- uCharts.js 增加 yAxis.data[i].titleOffsetY 参数,标题纵向偏移距离,负数为向上偏移,正数向下偏移 |
|||
- uCharts.js 增加 yAxis.data[i].titleOffsetX 参数,标题横向偏移距离,负数为向左偏移,正数向右偏移 |
|||
- uCharts.js 增加 extra.gauge.labelOffset 参数,仪表盘标签文字径向便宜距离,默认13px |
|||
## 2.0.0-20210422-2(2021-04-22) |
|||
秋云图表组件 修复 formatterAssign 未判断 args[key] == null 的情况导致栈溢出的 bug |
|||
## 2.0.0-20210422(2021-04-22) |
|||
- 秋云图表组件 修复H5、APP、支付宝小程序、微信小程序canvas2d模式下横屏模式的bug |
|||
## 2.0.0-20210421(2021-04-21) |
|||
- uCharts.js 修复多行图例的情况下,图例在上方或者下方时,图例float为左侧或者右侧时,第二行及以后的图例对齐方式不正确的bug |
|||
## 2.0.0-20210420(2021-04-20) |
|||
- 秋云图表组件 修复微信小程序开启canvas2d模式后,windows版微信小程序不支持canvas2d模式的bug |
|||
- 秋云图表组件 修改非uni_modules版本为v2.0版本qiun-data-charts组件 |
|||
## 2.0.0-20210419(2021-04-19) |
|||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。 |
|||
## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,如仍不好用,请重启电脑; |
|||
## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。 |
|||
## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。 |
|||
## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn) |
|||
## <font color=#FF0000> 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! </font> |
|||
## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn) |
|||
## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) |
|||
- uCharts.js 修复混合图中柱状图单独设置颜色不生效的bug |
|||
- uCharts.js 修复多Y轴单独设置fontSize时,开启canvas2d后,未对应放大字体的bug |
|||
## 2.0.0-20210418(2021-04-18) |
|||
- 秋云图表组件 增加directory配置,修复H5端history模式下如果发布到二级目录无法正确加载echarts.min.js的bug |
|||
## 2.0.0-20210416(2021-04-16) |
|||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。 |
|||
## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,如仍不好用,请重启电脑; |
|||
## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。 |
|||
## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。 |
|||
## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn) |
|||
## <font color=#FF0000> 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! </font> |
|||
## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn) |
|||
## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) |
|||
- 秋云图表组件 修复APP端某些情况下报错`Not Found Page`的bug,fix by 高级bug开发技术员 |
|||
- 示例项目 修复APP端v-for循环某些情况下报错`Not Found Page`的bug,fix by 高级bug开发技术员 |
|||
- uCharts.js 修复非直角坐标系tooltip提示窗右侧超出未变换方向显示的bug |
|||
## 2.0.0-20210415(2021-04-15) |
|||
- 秋云图表组件 修复H5端发布到二级目录下echarts无法加载的bug |
|||
- 秋云图表组件 修复某些情况下echarts.off('finished')移除监听事件报错的bug |
|||
## 2.0.0-20210414(2021-04-14) |
|||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。 |
|||
## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,如仍不好用,请重启电脑; |
|||
## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。 |
|||
## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。 |
|||
## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn) |
|||
## <font color=#FF0000> 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! </font> |
|||
## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn) |
|||
## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) |
|||
- 秋云图表组件 修复H5端在cli项目下ECharts引用地址错误的bug |
|||
- 示例项目 增加ECharts的formatter用法的示例(详见示例项目format-e.vue) |
|||
- uCharts.js 增加圆环图中心背景色的配置extra.ring.centerColor |
|||
- uCharts.js 修复微信小程序安卓端柱状图开启透明色后显示不正确的bug |
|||
## 2.0.0-20210413(2021-04-13) |
|||
- 秋云图表组件 修复百度小程序多个图表真机未能正确获取根元素dom尺寸的bug |
|||
- 秋云图表组件 修复百度小程序横屏模式方向不正确的bug |
|||
- 秋云图表组件 修改ontouch时,@getTouchStart@getTouchMove@getTouchEnd的触发条件 |
|||
- uCharts.js 修复饼图类数据格式series属性不生效的bug |
|||
- uCharts.js 增加时序区域图 详见示例项目中ucharts.vue |
|||
## 2.0.0-20210412-2(2021-04-12) |
|||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。 |
|||
## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX。如仍不好用,请重启电脑,此问题已于DCloud官方确认,HBuilderX下个版本会修复。 |
|||
## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn) |
|||
## [图表组件在uniCloudAdmin中的应用 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) |
|||
- 秋云图表组件 修复uCharts在APP端横屏模式下不能正确渲染的bug |
|||
- 示例项目 增加ECharts柱状图渐变色、圆角柱状图、横向柱状图(条状图)的示例 |
|||
## 2.0.0-20210412(2021-04-12) |
|||
- 秋云图表组件 修复created中判断echarts导致APP端无法识别,改回mounted中判断echarts初始化 |
|||
- uCharts.js 修复2d模式下series.textOffset未乘像素比的bug |
|||
## 2.0.0-20210411(2021-04-11) |
|||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。 |
|||
## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,并清空小程序开发者工具缓存。 |
|||
## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn) |
|||
## [图表组件在uniCloudAdmin中的应用 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) |
|||
- uCharts.js 折线图区域图增加connectNulls断点续连的功能,详见示例项目中ucharts.vue |
|||
- 秋云图表组件 变更初始化方法为created,变更type2d默认值为true,优化2d模式下组件初始化后dom获取不到的bug |
|||
- 秋云图表组件 修复左右布局时,右侧图表点击坐标错误的bug,修复tooltip柱状图自定义颜色显示object的bug |
|||
## 2.0.0-20210410(2021-04-10) |
|||
- 修复左右布局时,右侧图表点击坐标错误的bug,修复柱状图自定义颜色tooltip显示object的bug |
|||
- 增加标记线及柱状图自定义颜色的demo |
|||
## 2.0.0-20210409(2021-04-08) |
|||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧【使用HBuilderX导入插件】即可体验,DEMO演示及在线生成工具(v2.0文档)[https://demo.ucharts.cn](https://demo.ucharts.cn) |
|||
## 图表组件在uniCloudAdmin中的应用 [UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) |
|||
- uCharts.js 修复钉钉小程序百度小程序measureText不准确的bug,修复2d模式下饼图类activeRadius为按比例放大的bug |
|||
- 修复组件在支付宝小程序端点击位置不准确的bug |
|||
## 2.0.0-20210408(2021-04-07) |
|||
- 修复组件在支付宝小程序端不能显示的bug(目前支付宝小程不能点击交互,后续修复) |
|||
- uCharts.js 修复高分屏下柱状图类,圆弧进度条 自定义宽度不能按比例放大的bug |
|||
## 2.0.0-20210407(2021-04-06) |
|||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧【使用HBuilderX导入插件】即可体验,DEMO演示及在线生成工具(v2.0文档)[https://demo.ucharts.cn](https://demo.ucharts.cn) |
|||
## 增加 通过tofix和unit快速格式化y轴的demo add by `howcode` |
|||
## 增加 图表组件在uniCloudAdmin中的应用 [UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) |
|||
## 2.0.0-20210406(2021-04-05) |
|||
# 秋云图表组件+uCharts v2.0版本同步上线,使用方法详见https://demo.ucharts.cn帮助页 |
|||
## 2.0.0(2021-04-05) |
|||
# 秋云图表组件+uCharts v2.0版本同步上线,使用方法详见https://demo.ucharts.cn帮助页 |
1618
uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
46
uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,162 @@ |
|||
<template> |
|||
<view class="container loading1"> |
|||
<view class="shape shape1"></view> |
|||
<view class="shape shape2"></view> |
|||
<view class="shape shape3"></view> |
|||
<view class="shape shape4"></view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: 'loading1', |
|||
data() { |
|||
return { |
|||
|
|||
}; |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped="true"> |
|||
.container { |
|||
width: 30px; |
|||
height: 30px; |
|||
position: relative; |
|||
} |
|||
.container.loading1 { |
|||
-webkit-transform: rotate(45deg); |
|||
transform: rotate(45deg); |
|||
} |
|||
|
|||
.container .shape { |
|||
position: absolute; |
|||
width: 10px; |
|||
height: 10px; |
|||
border-radius: 1px; |
|||
} |
|||
.container .shape.shape1 { |
|||
left: 0; |
|||
background-color: #1890FF; |
|||
} |
|||
.container .shape.shape2 { |
|||
right: 0; |
|||
background-color: #91CB74; |
|||
} |
|||
.container .shape.shape3 { |
|||
bottom: 0; |
|||
background-color: #FAC858; |
|||
} |
|||
.container .shape.shape4 { |
|||
bottom: 0; |
|||
right: 0; |
|||
background-color: #EE6666; |
|||
} |
|||
|
|||
.loading1 .shape1 { |
|||
-webkit-animation: animation1shape1 0.5s ease 0s infinite alternate; |
|||
animation: animation1shape1 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation1shape1 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(16px, 16px); |
|||
transform: translate(16px, 16px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation1shape1 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(16px, 16px); |
|||
transform: translate(16px, 16px); |
|||
} |
|||
} |
|||
.loading1 .shape2 { |
|||
-webkit-animation: animation1shape2 0.5s ease 0s infinite alternate; |
|||
animation: animation1shape2 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation1shape2 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-16px, 16px); |
|||
transform: translate(-16px, 16px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation1shape2 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-16px, 16px); |
|||
transform: translate(-16px, 16px); |
|||
} |
|||
} |
|||
.loading1 .shape3 { |
|||
-webkit-animation: animation1shape3 0.5s ease 0s infinite alternate; |
|||
animation: animation1shape3 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation1shape3 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(16px, -16px); |
|||
transform: translate(16px, -16px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation1shape3 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(16px, -16px); |
|||
transform: translate(16px, -16px); |
|||
} |
|||
} |
|||
.loading1 .shape4 { |
|||
-webkit-animation: animation1shape4 0.5s ease 0s infinite alternate; |
|||
animation: animation1shape4 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation1shape4 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-16px, -16px); |
|||
transform: translate(-16px, -16px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation1shape4 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-16px, -16px); |
|||
transform: translate(-16px, -16px); |
|||
} |
|||
} |
|||
|
|||
|
|||
</style> |
@ -0,0 +1,170 @@ |
|||
<template> |
|||
<view class="container loading2"> |
|||
<view class="shape shape1"></view> |
|||
<view class="shape shape2"></view> |
|||
<view class="shape shape3"></view> |
|||
<view class="shape shape4"></view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: 'loading2', |
|||
data() { |
|||
return { |
|||
|
|||
}; |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped="true"> |
|||
.container { |
|||
width: 30px; |
|||
height: 30px; |
|||
position: relative; |
|||
} |
|||
|
|||
.container.loading2 { |
|||
-webkit-transform: rotate(10deg); |
|||
transform: rotate(10deg); |
|||
} |
|||
.container.loading2 .shape { |
|||
border-radius: 5px; |
|||
} |
|||
.container.loading2{ |
|||
-webkit-animation: rotation 1s infinite; |
|||
animation: rotation 1s infinite; |
|||
} |
|||
|
|||
.container .shape { |
|||
position: absolute; |
|||
width: 10px; |
|||
height: 10px; |
|||
border-radius: 1px; |
|||
} |
|||
.container .shape.shape1 { |
|||
left: 0; |
|||
background-color: #1890FF; |
|||
} |
|||
.container .shape.shape2 { |
|||
right: 0; |
|||
background-color: #91CB74; |
|||
} |
|||
.container .shape.shape3 { |
|||
bottom: 0; |
|||
background-color: #FAC858; |
|||
} |
|||
.container .shape.shape4 { |
|||
bottom: 0; |
|||
right: 0; |
|||
background-color: #EE6666; |
|||
} |
|||
|
|||
|
|||
.loading2 .shape1 { |
|||
-webkit-animation: animation2shape1 0.5s ease 0s infinite alternate; |
|||
animation: animation2shape1 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation2shape1 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(20px, 20px); |
|||
transform: translate(20px, 20px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation2shape1 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(20px, 20px); |
|||
transform: translate(20px, 20px); |
|||
} |
|||
} |
|||
.loading2 .shape2 { |
|||
-webkit-animation: animation2shape2 0.5s ease 0s infinite alternate; |
|||
animation: animation2shape2 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation2shape2 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-20px, 20px); |
|||
transform: translate(-20px, 20px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation2shape2 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-20px, 20px); |
|||
transform: translate(-20px, 20px); |
|||
} |
|||
} |
|||
.loading2 .shape3 { |
|||
-webkit-animation: animation2shape3 0.5s ease 0s infinite alternate; |
|||
animation: animation2shape3 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation2shape3 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(20px, -20px); |
|||
transform: translate(20px, -20px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation2shape3 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(20px, -20px); |
|||
transform: translate(20px, -20px); |
|||
} |
|||
} |
|||
.loading2 .shape4 { |
|||
-webkit-animation: animation2shape4 0.5s ease 0s infinite alternate; |
|||
animation: animation2shape4 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation2shape4 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-20px, -20px); |
|||
transform: translate(-20px, -20px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation2shape4 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-20px, -20px); |
|||
transform: translate(-20px, -20px); |
|||
} |
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,173 @@ |
|||
<template> |
|||
<view class="container loading3"> |
|||
<view class="shape shape1"></view> |
|||
<view class="shape shape2"></view> |
|||
<view class="shape shape3"></view> |
|||
<view class="shape shape4"></view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: 'loading3', |
|||
data() { |
|||
return { |
|||
|
|||
}; |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped="true"> |
|||
.container { |
|||
width: 30px; |
|||
height: 30px; |
|||
position: relative; |
|||
} |
|||
|
|||
.container.loading3 { |
|||
-webkit-animation: rotation 1s infinite; |
|||
animation: rotation 1s infinite; |
|||
} |
|||
.container.loading3 .shape1 { |
|||
border-top-left-radius: 10px; |
|||
} |
|||
.container.loading3 .shape2 { |
|||
border-top-right-radius: 10px; |
|||
} |
|||
.container.loading3 .shape3 { |
|||
border-bottom-left-radius: 10px; |
|||
} |
|||
.container.loading3 .shape4 { |
|||
border-bottom-right-radius: 10px; |
|||
} |
|||
|
|||
.container .shape { |
|||
position: absolute; |
|||
width: 10px; |
|||
height: 10px; |
|||
border-radius: 1px; |
|||
} |
|||
.container .shape.shape1 { |
|||
left: 0; |
|||
background-color: #1890FF; |
|||
} |
|||
.container .shape.shape2 { |
|||
right: 0; |
|||
background-color: #91CB74; |
|||
} |
|||
.container .shape.shape3 { |
|||
bottom: 0; |
|||
background-color: #FAC858; |
|||
} |
|||
.container .shape.shape4 { |
|||
bottom: 0; |
|||
right: 0; |
|||
background-color: #EE6666; |
|||
} |
|||
|
|||
.loading3 .shape1 { |
|||
-webkit-animation: animation3shape1 0.5s ease 0s infinite alternate; |
|||
animation: animation3shape1 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation3shape1 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(5px, 5px); |
|||
transform: translate(5px, 5px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation3shape1 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(5px, 5px); |
|||
transform: translate(5px, 5px); |
|||
} |
|||
} |
|||
.loading3 .shape2 { |
|||
-webkit-animation: animation3shape2 0.5s ease 0s infinite alternate; |
|||
animation: animation3shape2 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation3shape2 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-5px, 5px); |
|||
transform: translate(-5px, 5px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation3shape2 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-5px, 5px); |
|||
transform: translate(-5px, 5px); |
|||
} |
|||
} |
|||
.loading3 .shape3 { |
|||
-webkit-animation: animation3shape3 0.5s ease 0s infinite alternate; |
|||
animation: animation3shape3 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation3shape3 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(5px, -5px); |
|||
transform: translate(5px, -5px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation3shape3 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(5px, -5px); |
|||
transform: translate(5px, -5px); |
|||
} |
|||
} |
|||
.loading3 .shape4 { |
|||
-webkit-animation: animation3shape4 0.5s ease 0s infinite alternate; |
|||
animation: animation3shape4 0.5s ease 0s infinite alternate; |
|||
} |
|||
|
|||
@-webkit-keyframes animation3shape4 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-5px, -5px); |
|||
transform: translate(-5px, -5px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation3shape4 { |
|||
from { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
to { |
|||
-webkit-transform: translate(-5px, -5px); |
|||
transform: translate(-5px, -5px); |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,222 @@ |
|||
<template> |
|||
<view class="container loading5"> |
|||
<view class="shape shape1"></view> |
|||
<view class="shape shape2"></view> |
|||
<view class="shape shape3"></view> |
|||
<view class="shape shape4"></view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: 'loading5', |
|||
data() { |
|||
return { |
|||
|
|||
}; |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped="true"> |
|||
.container { |
|||
width: 30px; |
|||
height: 30px; |
|||
position: relative; |
|||
} |
|||
|
|||
.container.loading5 .shape { |
|||
width: 15px; |
|||
height: 15px; |
|||
} |
|||
|
|||
.container .shape { |
|||
position: absolute; |
|||
width: 10px; |
|||
height: 10px; |
|||
border-radius: 1px; |
|||
} |
|||
.container .shape.shape1 { |
|||
left: 0; |
|||
background-color: #1890FF; |
|||
} |
|||
.container .shape.shape2 { |
|||
right: 0; |
|||
background-color: #91CB74; |
|||
} |
|||
.container .shape.shape3 { |
|||
bottom: 0; |
|||
background-color: #FAC858; |
|||
} |
|||
.container .shape.shape4 { |
|||
bottom: 0; |
|||
right: 0; |
|||
background-color: #EE6666; |
|||
} |
|||
|
|||
.loading5 .shape1 { |
|||
animation: animation5shape1 2s ease 0s infinite reverse; |
|||
} |
|||
|
|||
@-webkit-keyframes animation5shape1 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(0, 15px); |
|||
transform: translate(0, 15px); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(15px, 15px); |
|||
transform: translate(15px, 15px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(15px, 0); |
|||
transform: translate(15px, 0); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation5shape1 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(0, 15px); |
|||
transform: translate(0, 15px); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(15px, 15px); |
|||
transform: translate(15px, 15px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(15px, 0); |
|||
transform: translate(15px, 0); |
|||
} |
|||
} |
|||
.loading5 .shape2 { |
|||
animation: animation5shape2 2s ease 0s infinite reverse; |
|||
} |
|||
|
|||
@-webkit-keyframes animation5shape2 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(-15px, 0); |
|||
transform: translate(-15px, 0); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(-15px, 15px); |
|||
transform: translate(-15px, 15px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(0, 15px); |
|||
transform: translate(0, 15px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation5shape2 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(-15px, 0); |
|||
transform: translate(-15px, 0); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(-15px, 15px); |
|||
transform: translate(-15px, 15px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(0, 15px); |
|||
transform: translate(0, 15px); |
|||
} |
|||
} |
|||
.loading5 .shape3 { |
|||
animation: animation5shape3 2s ease 0s infinite reverse; |
|||
} |
|||
|
|||
@-webkit-keyframes animation5shape3 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(15px, 0); |
|||
transform: translate(15px, 0); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(15px, -15px); |
|||
transform: translate(15px, -15px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(0, -15px); |
|||
transform: translate(0, -15px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation5shape3 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(15px, 0); |
|||
transform: translate(15px, 0); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(15px, -15px); |
|||
transform: translate(15px, -15px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(0, -15px); |
|||
transform: translate(0, -15px); |
|||
} |
|||
} |
|||
.loading5 .shape4 { |
|||
animation: animation5shape4 2s ease 0s infinite reverse; |
|||
} |
|||
|
|||
@-webkit-keyframes animation5shape4 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(0, -15px); |
|||
transform: translate(0, -15px); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(-15px, -15px); |
|||
transform: translate(-15px, -15px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(-15px, 0); |
|||
transform: translate(-15px, 0); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation5shape4 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(0, -15px); |
|||
transform: translate(0, -15px); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(-15px, -15px); |
|||
transform: translate(-15px, -15px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(-15px, 0); |
|||
transform: translate(-15px, 0); |
|||
} |
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,229 @@ |
|||
<template> |
|||
<view class="container loading6"> |
|||
<view class="shape shape1"></view> |
|||
<view class="shape shape2"></view> |
|||
<view class="shape shape3"></view> |
|||
<view class="shape shape4"></view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: 'loading6', |
|||
data() { |
|||
return { |
|||
|
|||
}; |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped="true"> |
|||
.container { |
|||
width: 30px; |
|||
height: 30px; |
|||
position: relative; |
|||
} |
|||
|
|||
.container.loading6 { |
|||
-webkit-animation: rotation 1s infinite; |
|||
animation: rotation 1s infinite; |
|||
} |
|||
.container.loading6 .shape { |
|||
width: 12px; |
|||
height: 12px; |
|||
border-radius: 2px; |
|||
} |
|||
.container .shape { |
|||
position: absolute; |
|||
width: 10px; |
|||
height: 10px; |
|||
border-radius: 1px; |
|||
} |
|||
.container .shape.shape1 { |
|||
left: 0; |
|||
background-color: #1890FF; |
|||
} |
|||
.container .shape.shape2 { |
|||
right: 0; |
|||
background-color: #91CB74; |
|||
} |
|||
.container .shape.shape3 { |
|||
bottom: 0; |
|||
background-color: #FAC858; |
|||
} |
|||
.container .shape.shape4 { |
|||
bottom: 0; |
|||
right: 0; |
|||
background-color: #EE6666; |
|||
} |
|||
|
|||
|
|||
.loading6 .shape1 { |
|||
-webkit-animation: animation6shape1 2s linear 0s infinite normal; |
|||
animation: animation6shape1 2s linear 0s infinite normal; |
|||
} |
|||
|
|||
@-webkit-keyframes animation6shape1 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(0, 18px); |
|||
transform: translate(0, 18px); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(18px, 18px); |
|||
transform: translate(18px, 18px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(18px, 0); |
|||
transform: translate(18px, 0); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation6shape1 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(0, 18px); |
|||
transform: translate(0, 18px); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(18px, 18px); |
|||
transform: translate(18px, 18px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(18px, 0); |
|||
transform: translate(18px, 0); |
|||
} |
|||
} |
|||
.loading6 .shape2 { |
|||
-webkit-animation: animation6shape2 2s linear 0s infinite normal; |
|||
animation: animation6shape2 2s linear 0s infinite normal; |
|||
} |
|||
|
|||
@-webkit-keyframes animation6shape2 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(-18px, 0); |
|||
transform: translate(-18px, 0); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(-18px, 18px); |
|||
transform: translate(-18px, 18px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(0, 18px); |
|||
transform: translate(0, 18px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation6shape2 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(-18px, 0); |
|||
transform: translate(-18px, 0); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(-18px, 18px); |
|||
transform: translate(-18px, 18px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(0, 18px); |
|||
transform: translate(0, 18px); |
|||
} |
|||
} |
|||
.loading6 .shape3 { |
|||
-webkit-animation: animation6shape3 2s linear 0s infinite normal; |
|||
animation: animation6shape3 2s linear 0s infinite normal; |
|||
} |
|||
|
|||
@-webkit-keyframes animation6shape3 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(18px, 0); |
|||
transform: translate(18px, 0); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(18px, -18px); |
|||
transform: translate(18px, -18px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(0, -18px); |
|||
transform: translate(0, -18px); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation6shape3 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(18px, 0); |
|||
transform: translate(18px, 0); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(18px, -18px); |
|||
transform: translate(18px, -18px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(0, -18px); |
|||
transform: translate(0, -18px); |
|||
} |
|||
} |
|||
.loading6 .shape4 { |
|||
-webkit-animation: animation6shape4 2s linear 0s infinite normal; |
|||
animation: animation6shape4 2s linear 0s infinite normal; |
|||
} |
|||
|
|||
@-webkit-keyframes animation6shape4 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(0, -18px); |
|||
transform: translate(0, -18px); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(-18px, -18px); |
|||
transform: translate(-18px, -18px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(-18px, 0); |
|||
transform: translate(-18px, 0); |
|||
} |
|||
} |
|||
|
|||
@keyframes animation6shape4 { |
|||
0% { |
|||
-webkit-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
} |
|||
25% { |
|||
-webkit-transform: translate(0, -18px); |
|||
transform: translate(0, -18px); |
|||
} |
|||
50% { |
|||
-webkit-transform: translate(-18px, -18px); |
|||
transform: translate(-18px, -18px); |
|||
} |
|||
75% { |
|||
-webkit-transform: translate(-18px, 0); |
|||
transform: translate(-18px, 0); |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,36 @@ |
|||
<template> |
|||
<view> |
|||
<Loading1 v-if="loadingType==1"/> |
|||
<Loading2 v-if="loadingType==2"/> |
|||
<Loading3 v-if="loadingType==3"/> |
|||
<Loading4 v-if="loadingType==4"/> |
|||
<Loading5 v-if="loadingType==5"/> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import Loading1 from "./loading1.vue"; |
|||
import Loading2 from "./loading2.vue"; |
|||
import Loading3 from "./loading3.vue"; |
|||
import Loading4 from "./loading4.vue"; |
|||
import Loading5 from "./loading5.vue"; |
|||
export default { |
|||
components:{Loading1,Loading2,Loading3,Loading4,Loading5}, |
|||
name: 'qiun-loading', |
|||
props: { |
|||
loadingType: { |
|||
type: Number, |
|||
default: 2 |
|||
}, |
|||
}, |
|||
data() { |
|||
return { |
|||
|
|||
}; |
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style> |
|||
|
|||
</style> |
@ -0,0 +1,422 @@ |
|||
/* |
|||
* uCharts® |
|||
* 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台 |
|||
* Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.
|
|||
* Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
|||
* 复制使用请保留本段注释,感谢支持开源! |
|||
* |
|||
* uCharts®官方网站 |
|||
* https://www.uCharts.cn
|
|||
* |
|||
* 开源地址: |
|||
* https://gitee.com/uCharts/uCharts
|
|||
* |
|||
* uni-app插件市场地址: |
|||
* http://ext.dcloud.net.cn/plugin?id=271
|
|||
* |
|||
*/ |
|||
|
|||
// 通用配置项
|
|||
|
|||
// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性
|
|||
const color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc']; |
|||
|
|||
const cfe = { |
|||
//demotype为自定义图表类型
|
|||
"type": ["pie", "ring", "rose", "funnel", "line", "column", "area", "radar", "gauge","candle","demotype"], |
|||
//增加自定义图表类型,如果需要categories,请在这里加入您的图表类型例如最后的"demotype"
|
|||
"categories": ["line", "column", "area", "radar", "gauge", "candle","demotype"], |
|||
//instance为实例变量承载属性,option为eopts承载属性,不要删除
|
|||
"instance": {}, |
|||
"option": {}, |
|||
//下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换
|
|||
"formatter":{ |
|||
"tooltipDemo1":function(res){ |
|||
let result = '' |
|||
for (let i in res) { |
|||
if (i == 0) { |
|||
result += res[i].axisValueLabel + '年销售额' |
|||
} |
|||
let value = '--' |
|||
if (res[i].data !== null) { |
|||
value = res[i].data |
|||
} |
|||
// #ifdef H5
|
|||
result += '\n' + res[i].seriesName + ':' + value + ' 万元' |
|||
// #endif
|
|||
|
|||
// #ifdef APP-PLUS
|
|||
result += '<br/>' + res[i].marker + res[i].seriesName + ':' + value + ' 万元' |
|||
// #endif
|
|||
} |
|||
return result; |
|||
}, |
|||
legendFormat:function(name){ |
|||
return "自定义图例+"+name; |
|||
}, |
|||
yAxisFormatDemo:function (value, index) { |
|||
return value + '元'; |
|||
}, |
|||
seriesFormatDemo:function(res){ |
|||
return res.name + '年' + res.value + '元'; |
|||
} |
|||
}, |
|||
//这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type="demotype" 后,组件会调用这个花括号里的option,如果组件上还存在eopts参数,会将demotype与eopts中option合并后渲染图表。
|
|||
"demotype":{ |
|||
"color": color, |
|||
//在这里填写echarts的option即可
|
|||
|
|||
}, |
|||
//下面是自定义配置,请添加项目所需的通用配置
|
|||
"column": { |
|||
"color": color, |
|||
"title": { |
|||
"text": '' |
|||
}, |
|||
"tooltip": { |
|||
"trigger": 'axis' |
|||
}, |
|||
"grid": { |
|||
"top": 30, |
|||
"bottom": 50, |
|||
"right": 15, |
|||
"left": 40 |
|||
}, |
|||
"legend": { |
|||
"bottom": 'left', |
|||
}, |
|||
"toolbox": { |
|||
"show": false, |
|||
}, |
|||
"xAxis": { |
|||
"type": 'category', |
|||
"axisLabel": { |
|||
"color": '#666666' |
|||
}, |
|||
"axisLine": { |
|||
"lineStyle": { |
|||
"color": '#CCCCCC' |
|||
} |
|||
}, |
|||
"boundaryGap": true, |
|||
"data": [] |
|||
}, |
|||
"yAxis": { |
|||
"type": 'value', |
|||
"axisTick": { |
|||
"show": false, |
|||
}, |
|||
"axisLabel": { |
|||
"color": '#666666' |
|||
}, |
|||
"axisLine": { |
|||
"lineStyle": { |
|||
"color": '#CCCCCC' |
|||
} |
|||
}, |
|||
}, |
|||
"seriesTemplate": { |
|||
"name": '', |
|||
"type": 'bar', |
|||
"data": [], |
|||
"barwidth": 20, |
|||
"label": { |
|||
"show": true, |
|||
"color": "#666666", |
|||
"position": 'top', |
|||
}, |
|||
}, |
|||
}, |
|||
"line": { |
|||
"color": color, |
|||
"title": { |
|||
"text": '' |
|||
}, |
|||
"tooltip": { |
|||
"trigger": 'axis' |
|||
}, |
|||
"grid": { |
|||
"top": 30, |
|||
"bottom": 50, |
|||
"right": 15, |
|||
"left": 40 |
|||
}, |
|||
"legend": { |
|||
"bottom": 'left', |
|||
}, |
|||
"toolbox": { |
|||
"show": false, |
|||
}, |
|||
"xAxis": { |
|||
"type": 'category', |
|||
"axisLabel": { |
|||
"color": '#666666' |
|||
}, |
|||
"axisLine": { |
|||
"lineStyle": { |
|||
"color": '#CCCCCC' |
|||
} |
|||
}, |
|||
"boundaryGap": true, |
|||
"data": [] |
|||
}, |
|||
"yAxis": { |
|||
"type": 'value', |
|||
"axisTick": { |
|||
"show": false, |
|||
}, |
|||
"axisLabel": { |
|||
"color": '#666666' |
|||
}, |
|||
"axisLine": { |
|||
"lineStyle": { |
|||
"color": '#CCCCCC' |
|||
} |
|||
}, |
|||
}, |
|||
"seriesTemplate": { |
|||
"name": '', |
|||
"type": 'line', |
|||
"data": [], |
|||
"barwidth": 20, |
|||
"label": { |
|||
"show": true, |
|||
"color": "#666666", |
|||
"position": 'top', |
|||
}, |
|||
}, |
|||
}, |
|||
"area": { |
|||
"color": color, |
|||
"title": { |
|||
"text": '' |
|||
}, |
|||
"tooltip": { |
|||
"trigger": 'axis' |
|||
}, |
|||
"grid": { |
|||
"top": 30, |
|||
"bottom": 50, |
|||
"right": 15, |
|||
"left": 40 |
|||
}, |
|||
"legend": { |
|||
"bottom": 'left', |
|||
}, |
|||
"toolbox": { |
|||
"show": false, |
|||
}, |
|||
"xAxis": { |
|||
"type": 'category', |
|||
"axisLabel": { |
|||
"color": '#666666' |
|||
}, |
|||
"axisLine": { |
|||
"lineStyle": { |
|||
"color": '#CCCCCC' |
|||
} |
|||
}, |
|||
"boundaryGap": true, |
|||
"data": [] |
|||
}, |
|||
"yAxis": { |
|||
"type": 'value', |
|||
"axisTick": { |
|||
"show": false, |
|||
}, |
|||
"axisLabel": { |
|||
"color": '#666666' |
|||
}, |
|||
"axisLine": { |
|||
"lineStyle": { |
|||
"color": '#CCCCCC' |
|||
} |
|||
}, |
|||
}, |
|||
"seriesTemplate": { |
|||
"name": '', |
|||
"type": 'line', |
|||
"data": [], |
|||
"areaStyle": {}, |
|||
"label": { |
|||
"show": true, |
|||
"color": "#666666", |
|||
"position": 'top', |
|||
}, |
|||
}, |
|||
}, |
|||
"pie": { |
|||
"color": color, |
|||
"title": { |
|||
"text": '' |
|||
}, |
|||
"tooltip": { |
|||
"trigger": 'item' |
|||
}, |
|||
"grid": { |
|||
"top": 40, |
|||
"bottom": 30, |
|||
"right": 15, |
|||
"left": 15 |
|||
}, |
|||
"legend": { |
|||
"bottom": 'left', |
|||
}, |
|||
"seriesTemplate": { |
|||
"name": '', |
|||
"type": 'pie', |
|||
"data": [], |
|||
"radius": '50%', |
|||
"label": { |
|||
"show": true, |
|||
"color": "#666666", |
|||
"position": 'top', |
|||
}, |
|||
}, |
|||
}, |
|||
"ring": { |
|||
"color": color, |
|||
"title": { |
|||
"text": '' |
|||
}, |
|||
"tooltip": { |
|||
"trigger": 'item' |
|||
}, |
|||
"grid": { |
|||
"top": 40, |
|||
"bottom": 30, |
|||
"right": 15, |
|||
"left": 15 |
|||
}, |
|||
"legend": { |
|||
"bottom": 'left', |
|||
}, |
|||
"seriesTemplate": { |
|||
"name": '', |
|||
"type": 'pie', |
|||
"data": [], |
|||
"radius": ['40%', '70%'], |
|||
"avoidLabelOverlap": false, |
|||
"label": { |
|||
"show": true, |
|||
"color": "#666666", |
|||
"position": 'top', |
|||
}, |
|||
"labelLine": { |
|||
"show": true |
|||
}, |
|||
}, |
|||
}, |
|||
"rose": { |
|||
"color": color, |
|||
"title": { |
|||
"text": '' |
|||
}, |
|||
"tooltip": { |
|||
"trigger": 'item' |
|||
}, |
|||
"legend": { |
|||
"top": 'bottom' |
|||
}, |
|||
"seriesTemplate": { |
|||
"name": '', |
|||
"type": 'pie', |
|||
"data": [], |
|||
"radius": "55%", |
|||
"center": ['50%', '50%'], |
|||
"roseType": 'area', |
|||
}, |
|||
}, |
|||
"funnel": { |
|||
"color": color, |
|||
"title": { |
|||
"text": '' |
|||
}, |
|||
"tooltip": { |
|||
"trigger": 'item', |
|||
"formatter": "{b} : {c}%" |
|||
}, |
|||
"legend": { |
|||
"top": 'bottom' |
|||
}, |
|||
"seriesTemplate": { |
|||
"name": '', |
|||
"type": 'funnel', |
|||
"left": '10%', |
|||
"top": 60, |
|||
"bottom": 60, |
|||
"width": '80%', |
|||
"min": 0, |
|||
"max": 100, |
|||
"minSize": '0%', |
|||
"maxSize": '100%', |
|||
"sort": 'descending', |
|||
"gap": 2, |
|||
"label": { |
|||
"show": true, |
|||
"position": 'inside' |
|||
}, |
|||
"labelLine": { |
|||
"length": 10, |
|||
"lineStyle": { |
|||
"width": 1, |
|||
"type": 'solid' |
|||
} |
|||
}, |
|||
"itemStyle": { |
|||
"bordercolor": '#fff', |
|||
"borderwidth": 1 |
|||
}, |
|||
"emphasis": { |
|||
"label": { |
|||
"fontSize": 20 |
|||
} |
|||
}, |
|||
"data": [], |
|||
}, |
|||
}, |
|||
"gauge": { |
|||
"color": color, |
|||
"tooltip": { |
|||
"formatter": '{a} <br/>{b} : {c}%' |
|||
}, |
|||
"seriesTemplate": { |
|||
"name": '业务指标', |
|||
"type": 'gauge', |
|||
"detail": {"formatter": '{value}%'}, |
|||
"data": [{"value": 50, "name": '完成率'}] |
|||
}, |
|||
}, |
|||
"candle": { |
|||
"xAxis": { |
|||
"data": [] |
|||
}, |
|||
"yAxis": {}, |
|||
"color": color, |
|||
"title": { |
|||
"text": '' |
|||
}, |
|||
"dataZoom": [{ |
|||
"type": 'inside', |
|||
"xAxisIndex": [0, 1], |
|||
"start": 10, |
|||
"end": 100 |
|||
}, |
|||
{ |
|||
"show": true, |
|||
"xAxisIndex": [0, 1], |
|||
"type": 'slider', |
|||
"bottom": 10, |
|||
"start": 10, |
|||
"end": 100 |
|||
} |
|||
], |
|||
"seriesTemplate": { |
|||
"name": '', |
|||
"type": 'k', |
|||
"data": [], |
|||
}, |
|||
} |
|||
} |
|||
|
|||
export default cfe; |
@ -0,0 +1,606 @@ |
|||
/* |
|||
* uCharts® |
|||
* 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台 |
|||
* Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.
|
|||
* Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
|||
* 复制使用请保留本段注释,感谢支持开源! |
|||
* |
|||
* uCharts®官方网站 |
|||
* https://www.uCharts.cn
|
|||
* |
|||
* 开源地址: |
|||
* https://gitee.com/uCharts/uCharts
|
|||
* |
|||
* uni-app插件市场地址: |
|||
* http://ext.dcloud.net.cn/plugin?id=271
|
|||
* |
|||
*/ |
|||
|
|||
// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性
|
|||
const color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc']; |
|||
|
|||
//事件转换函数,主要用作格式化x轴为时间轴,根据需求自行修改
|
|||
const formatDateTime = (timeStamp, returnType)=>{ |
|||
var date = new Date(); |
|||
date.setTime(timeStamp * 1000); |
|||
var y = date.getFullYear(); |
|||
var m = date.getMonth() + 1; |
|||
m = m < 10 ? ('0' + m) : m; |
|||
var d = date.getDate(); |
|||
d = d < 10 ? ('0' + d) : d; |
|||
var h = date.getHours(); |
|||
h = h < 10 ? ('0' + h) : h; |
|||
var minute = date.getMinutes(); |
|||
var second = date.getSeconds(); |
|||
minute = minute < 10 ? ('0' + minute) : minute; |
|||
second = second < 10 ? ('0' + second) : second; |
|||
if(returnType == 'full'){return y + '-' + m + '-' + d + ' '+ h +':' + minute + ':' + second;} |
|||
if(returnType == 'y-m-d'){return y + '-' + m + '-' + d;} |
|||
if(returnType == 'h:m'){return h +':' + minute;} |
|||
if(returnType == 'h:m:s'){return h +':' + minute +':' + second;} |
|||
return [y, m, d, h, minute, second]; |
|||
} |
|||
|
|||
const cfu = { |
|||
//demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可
|
|||
"type":["pie","ring","rose","word","funnel","map","arcbar","line","column","mount","bar","area","radar","gauge","candle","mix","tline","tarea","scatter","bubble","demotype"], |
|||
"range":["饼状图","圆环图","玫瑰图","词云图","漏斗图","地图","圆弧进度条","折线图","柱状图","山峰图","条状图","区域图","雷达图","仪表盘","K线图","混合图","时间轴折线","时间轴区域","散点图","气泡图","自定义类型"], |
|||
//增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的"demotype"
|
|||
//自定义类型时需要注意"tline","tarea","scatter","bubble"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories
|
|||
"categories":["line","column","mount","bar","area","radar","gauge","candle","mix","demotype"], |
|||
//instance为实例变量承载属性,不要删除
|
|||
"instance":{}, |
|||
//option为opts及eopts承载属性,不要删除
|
|||
"option":{}, |
|||
//下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换
|
|||
"formatter":{ |
|||
"yAxisDemo1":function(val, index, opts){return val+'元'}, |
|||
"yAxisDemo2":function(val, index, opts){return val.toFixed(2)}, |
|||
"xAxisDemo1":function(val, index, opts){return val+'年';}, |
|||
"xAxisDemo2":function(val, index, opts){return formatDateTime(val,'h:m')}, |
|||
"seriesDemo1":function(val, index, series, opts){return val+'元'}, |
|||
"tooltipDemo1":function(item, category, index, opts){ |
|||
if(index==0){ |
|||
return '随便用'+item.data+'年' |
|||
}else{ |
|||
return '其他我没改'+item.data+'天' |
|||
} |
|||
}, |
|||
"pieDemo":function(val, index, series, opts){ |
|||
if(index !== undefined){ |
|||
return series[index].name+':'+series[index].data+'元' |
|||
} |
|||
}, |
|||
}, |
|||
//这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type="demotype" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。
|
|||
"demotype":{ |
|||
//我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置
|
|||
"type": "line", |
|||
"color": color, |
|||
"padding": [15,10,0,15], |
|||
"xAxis": { |
|||
"disableGrid": true, |
|||
}, |
|||
"yAxis": { |
|||
"gridType": "dash", |
|||
"dashLength": 2, |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"line": { |
|||
"type": "curve", |
|||
"width": 2 |
|||
}, |
|||
} |
|||
}, |
|||
//下面是自定义配置,请添加项目所需的通用配置
|
|||
"pie":{ |
|||
"type": "pie", |
|||
"color": color, |
|||
"padding": [5,5,5,5], |
|||
"extra": { |
|||
"pie": { |
|||
"activeOpacity": 0.5, |
|||
"activeRadius": 10, |
|||
"offsetAngle": 0, |
|||
"labelWidth": 15, |
|||
"border": true, |
|||
"borderWidth": 3, |
|||
"borderColor": "#FFFFFF" |
|||
}, |
|||
} |
|||
}, |
|||
"ring":{ |
|||
"type": "ring", |
|||
"color": color, |
|||
"padding": [5,5,5,5], |
|||
"rotate": false, |
|||
"dataLabel": true, |
|||
"legend": { |
|||
"show": true, |
|||
"position": "right", |
|||
"lineHeight": 25, |
|||
}, |
|||
"title": { |
|||
"name": "收益率", |
|||
"fontSize": 15, |
|||
"color": "#666666" |
|||
}, |
|||
"subtitle": { |
|||
"name": "70%", |
|||
"fontSize": 25, |
|||
"color": "#7cb5ec" |
|||
}, |
|||
"extra": { |
|||
"ring": { |
|||
"ringWidth":30, |
|||
"activeOpacity": 0.5, |
|||
"activeRadius": 10, |
|||
"offsetAngle": 0, |
|||
"labelWidth": 15, |
|||
"border": true, |
|||
"borderWidth": 3, |
|||
"borderColor": "#FFFFFF" |
|||
}, |
|||
}, |
|||
}, |
|||
"rose":{ |
|||
"type": "rose", |
|||
"color": color, |
|||
"padding": [5,5,5,5], |
|||
"legend": { |
|||
"show": true, |
|||
"position": "left", |
|||
"lineHeight": 25, |
|||
}, |
|||
"extra": { |
|||
"rose": { |
|||
"type": "area", |
|||
"minRadius": 50, |
|||
"activeOpacity": 0.5, |
|||
"activeRadius": 10, |
|||
"offsetAngle": 0, |
|||
"labelWidth": 15, |
|||
"border": false, |
|||
"borderWidth": 2, |
|||
"borderColor": "#FFFFFF" |
|||
}, |
|||
} |
|||
}, |
|||
"word":{ |
|||
"type": "word", |
|||
"color": color, |
|||
"extra": { |
|||
"word": { |
|||
"type": "normal", |
|||
"autoColors": false |
|||
} |
|||
} |
|||
}, |
|||
"funnel":{ |
|||
"type": "funnel", |
|||
"color": color, |
|||
"padding": [15,15,0,15], |
|||
"extra": { |
|||
"funnel": { |
|||
"activeOpacity": 0.3, |
|||
"activeWidth": 10, |
|||
"border": true, |
|||
"borderWidth": 2, |
|||
"borderColor": "#FFFFFF", |
|||
"fillOpacity": 1, |
|||
"labelAlign": "right" |
|||
}, |
|||
} |
|||
}, |
|||
"map":{ |
|||
"type": "map", |
|||
"color": color, |
|||
"padding": [0,0,0,0], |
|||
"dataLabel": true, |
|||
"extra": { |
|||
"map": { |
|||
"border": true, |
|||
"borderWidth": 1, |
|||
"borderColor": "#666666", |
|||
"fillOpacity": 0.6, |
|||
"activeBorderColor": "#F04864", |
|||
"activeFillColor": "#FACC14", |
|||
"activeFillOpacity": 1 |
|||
}, |
|||
} |
|||
}, |
|||
"arcbar":{ |
|||
"type": "arcbar", |
|||
"color": color, |
|||
"title": { |
|||
"name": "百分比", |
|||
"fontSize": 25, |
|||
"color": "#00FF00" |
|||
}, |
|||
"subtitle": { |
|||
"name": "默认标题", |
|||
"fontSize": 15, |
|||
"color": "#666666" |
|||
}, |
|||
"extra": { |
|||
"arcbar": { |
|||
"type": "default", |
|||
"width": 12, |
|||
"backgroundColor": "#E9E9E9", |
|||
"startAngle": 0.75, |
|||
"endAngle": 0.25, |
|||
"gap": 2 |
|||
} |
|||
} |
|||
}, |
|||
"line":{ |
|||
"type": "line", |
|||
"color": color, |
|||
"padding": [15,10,0,15], |
|||
"xAxis": { |
|||
"disableGrid": true, |
|||
}, |
|||
"yAxis": { |
|||
"gridType": "dash", |
|||
"dashLength": 2, |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"line": { |
|||
"type": "straight", |
|||
"width": 2, |
|||
"activeType": "hollow" |
|||
}, |
|||
} |
|||
}, |
|||
"tline":{ |
|||
"type": "line", |
|||
"color": color, |
|||
"padding": [15,10,0,15], |
|||
"xAxis": { |
|||
"disableGrid": false, |
|||
"boundaryGap":"justify", |
|||
}, |
|||
"yAxis": { |
|||
"gridType": "dash", |
|||
"dashLength": 2, |
|||
"data":[ |
|||
{ |
|||
"min":0, |
|||
"max":80 |
|||
} |
|||
] |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"line": { |
|||
"type": "curve", |
|||
"width": 2, |
|||
"activeType": "hollow" |
|||
}, |
|||
} |
|||
}, |
|||
"tarea":{ |
|||
"type": "area", |
|||
"color": color, |
|||
"padding": [15,10,0,15], |
|||
"xAxis": { |
|||
"disableGrid": true, |
|||
"boundaryGap":"justify", |
|||
}, |
|||
"yAxis": { |
|||
"gridType": "dash", |
|||
"dashLength": 2, |
|||
"data":[ |
|||
{ |
|||
"min":0, |
|||
"max":80 |
|||
} |
|||
] |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"area": { |
|||
"type": "curve", |
|||
"opacity": 0.2, |
|||
"addLine": true, |
|||
"width": 2, |
|||
"gradient": true, |
|||
"activeType": "hollow" |
|||
}, |
|||
} |
|||
}, |
|||
"column":{ |
|||
"type": "column", |
|||
"color": color, |
|||
"padding": [15,15,0,5], |
|||
"xAxis": { |
|||
"disableGrid": true, |
|||
}, |
|||
"yAxis": { |
|||
"data":[{"min":0}] |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"column": { |
|||
"type": "group", |
|||
"width": 30, |
|||
"activeBgColor": "#000000", |
|||
"activeBgOpacity": 0.08 |
|||
}, |
|||
} |
|||
}, |
|||
"mount":{ |
|||
"type": "mount", |
|||
"color": color, |
|||
"padding": [15,15,0,5], |
|||
"xAxis": { |
|||
"disableGrid": true, |
|||
}, |
|||
"yAxis": { |
|||
"data":[{"min":0}] |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"mount": { |
|||
"type": "mount", |
|||
"widthRatio": 1.5, |
|||
}, |
|||
} |
|||
}, |
|||
"bar":{ |
|||
"type": "bar", |
|||
"color": color, |
|||
"padding": [15,30,0,5], |
|||
"xAxis": { |
|||
"boundaryGap":"justify", |
|||
"disableGrid":false, |
|||
"min":0, |
|||
"axisLine":false |
|||
}, |
|||
"yAxis": { |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"bar": { |
|||
"type": "group", |
|||
"width": 30, |
|||
"meterBorde": 1, |
|||
"meterFillColor": "#FFFFFF", |
|||
"activeBgColor": "#000000", |
|||
"activeBgOpacity": 0.08 |
|||
}, |
|||
} |
|||
}, |
|||
"area":{ |
|||
"type": "area", |
|||
"color": color, |
|||
"padding": [15,15,0,15], |
|||
"xAxis": { |
|||
"disableGrid": true, |
|||
}, |
|||
"yAxis": { |
|||
"gridType": "dash", |
|||
"dashLength": 2, |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"area": { |
|||
"type": "straight", |
|||
"opacity": 0.2, |
|||
"addLine": true, |
|||
"width": 2, |
|||
"gradient": false, |
|||
"activeType": "hollow" |
|||
}, |
|||
} |
|||
}, |
|||
"radar":{ |
|||
"type": "radar", |
|||
"color": color, |
|||
"padding": [5,5,5,5], |
|||
"dataLabel": false, |
|||
"legend": { |
|||
"show": true, |
|||
"position": "right", |
|||
"lineHeight": 25, |
|||
}, |
|||
"extra": { |
|||
"radar": { |
|||
"gridType": "radar", |
|||
"gridColor": "#CCCCCC", |
|||
"gridCount": 3, |
|||
"opacity": 0.2, |
|||
"max": 200, |
|||
"labelShow": true |
|||
}, |
|||
} |
|||
}, |
|||
"gauge":{ |
|||
"type": "gauge", |
|||
"color": color, |
|||
"title": { |
|||
"name": "66Km/H", |
|||
"fontSize": 25, |
|||
"color": "#2fc25b", |
|||
"offsetY": 50 |
|||
}, |
|||
"subtitle": { |
|||
"name": "实时速度", |
|||
"fontSize": 15, |
|||
"color": "#1890ff", |
|||
"offsetY": -50 |
|||
}, |
|||
"extra": { |
|||
"gauge": { |
|||
"type": "default", |
|||
"width": 30, |
|||
"labelColor": "#666666", |
|||
"startAngle": 0.75, |
|||
"endAngle": 0.25, |
|||
"startNumber": 0, |
|||
"endNumber": 100, |
|||
"labelFormat": "", |
|||
"splitLine": { |
|||
"fixRadius": 0, |
|||
"splitNumber": 10, |
|||
"width": 30, |
|||
"color": "#FFFFFF", |
|||
"childNumber": 5, |
|||
"childWidth": 12 |
|||
}, |
|||
"pointer": { |
|||
"width": 24, |
|||
"color": "auto" |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
"candle":{ |
|||
"type": "candle", |
|||
"color": color, |
|||
"padding": [15,15,0,15], |
|||
"enableScroll": true, |
|||
"enableMarkLine": true, |
|||
"dataLabel": false, |
|||
"xAxis": { |
|||
"labelCount": 4, |
|||
"itemCount": 40, |
|||
"disableGrid": true, |
|||
"gridColor": "#CCCCCC", |
|||
"gridType": "solid", |
|||
"dashLength": 4, |
|||
"scrollShow": true, |
|||
"scrollAlign": "left", |
|||
"scrollColor": "#A6A6A6", |
|||
"scrollBackgroundColor": "#EFEBEF" |
|||
}, |
|||
"yAxis": { |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"candle": { |
|||
"color": { |
|||
"upLine": "#f04864", |
|||
"upFill": "#f04864", |
|||
"downLine": "#2fc25b", |
|||
"downFill": "#2fc25b" |
|||
}, |
|||
"average": { |
|||
"show": true, |
|||
"name": ["MA5","MA10","MA30"], |
|||
"day": [5,10,20], |
|||
"color": ["#1890ff","#2fc25b","#facc14"] |
|||
} |
|||
}, |
|||
"markLine": { |
|||
"type": "dash", |
|||
"dashLength": 5, |
|||
"data": [ |
|||
{ |
|||
"value": 2150, |
|||
"lineColor": "#f04864", |
|||
"showLabel": true |
|||
}, |
|||
{ |
|||
"value": 2350, |
|||
"lineColor": "#f04864", |
|||
"showLabel": true |
|||
} |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
"mix":{ |
|||
"type": "mix", |
|||
"color": color, |
|||
"padding": [15,15,0,15], |
|||
"xAxis": { |
|||
"disableGrid": true, |
|||
}, |
|||
"yAxis": { |
|||
"disabled": false, |
|||
"disableGrid": false, |
|||
"splitNumber": 5, |
|||
"gridType": "dash", |
|||
"dashLength": 4, |
|||
"gridColor": "#CCCCCC", |
|||
"padding": 10, |
|||
"showTitle": true, |
|||
"data": [] |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"mix": { |
|||
"column": { |
|||
"width": 20 |
|||
} |
|||
}, |
|||
} |
|||
}, |
|||
"scatter":{ |
|||
"type": "scatter", |
|||
"color":color, |
|||
"padding":[15,15,0,15], |
|||
"dataLabel":false, |
|||
"xAxis": { |
|||
"disableGrid": false, |
|||
"gridType":"dash", |
|||
"splitNumber":5, |
|||
"boundaryGap":"justify", |
|||
"min":0 |
|||
}, |
|||
"yAxis": { |
|||
"disableGrid": false, |
|||
"gridType":"dash", |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"scatter": { |
|||
}, |
|||
} |
|||
}, |
|||
"bubble":{ |
|||
"type": "bubble", |
|||
"color":color, |
|||
"padding":[15,15,0,15], |
|||
"xAxis": { |
|||
"disableGrid": false, |
|||
"gridType":"dash", |
|||
"splitNumber":5, |
|||
"boundaryGap":"justify", |
|||
"min":0, |
|||
"max":250 |
|||
}, |
|||
"yAxis": { |
|||
"disableGrid": false, |
|||
"gridType":"dash", |
|||
"data":[{ |
|||
"min":0, |
|||
"max":150 |
|||
}] |
|||
}, |
|||
"legend": { |
|||
}, |
|||
"extra": { |
|||
"bubble": { |
|||
"border":2, |
|||
"opacity": 0.5, |
|||
}, |
|||
} |
|||
} |
|||
} |
|||
|
|||
export default cfu; |
@ -0,0 +1,5 @@ |
|||
# uCharts JSSDK说明 |
|||
1、如不使用uCharts组件,可直接引用u-charts.js,打包编译后会`自动压缩`,压缩后体积约为`120kb`。 |
|||
2、如果120kb的体积仍需压缩,请手到uCharts官网通过在线定制选择您需要的图表。 |
|||
3、config-ucharts.js为uCharts组件的用户配置文件,升级前请`自行备份config-ucharts.js`文件,以免被强制覆盖。 |
|||
4、config-echarts.js为ECharts组件的用户配置文件,升级前请`自行备份config-echarts.js`文件,以免被强制覆盖。 |
7706
uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
18
uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.min.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,201 @@ |
|||
Apache License |
|||
Version 2.0, January 2004 |
|||
http://www.apache.org/licenses/ |
|||
|
|||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION |
|||
|
|||
1. Definitions. |
|||
|
|||
"License" shall mean the terms and conditions for use, reproduction, |
|||
and distribution as defined by Sections 1 through 9 of this document. |
|||
|
|||
"Licensor" shall mean the copyright owner or entity authorized by |
|||
the copyright owner that is granting the License. |
|||
|
|||
"Legal Entity" shall mean the union of the acting entity and all |
|||
other entities that control, are controlled by, or are under common |
|||
control with that entity. For the purposes of this definition, |
|||
"control" means (i) the power, direct or indirect, to cause the |
|||
direction or management of such entity, whether by contract or |
|||
otherwise, or (ii) ownership of fifty percent (50%) or more of the |
|||
outstanding shares, or (iii) beneficial ownership of such entity. |
|||
|
|||
"You" (or "Your") shall mean an individual or Legal Entity |
|||
exercising permissions granted by this License. |
|||
|
|||
"Source" form shall mean the preferred form for making modifications, |
|||
including but not limited to software source code, documentation |
|||
source, and configuration files. |
|||
|
|||
"Object" form shall mean any form resulting from mechanical |
|||
transformation or translation of a Source form, including but |
|||
not limited to compiled object code, generated documentation, |
|||
and conversions to other media types. |
|||
|
|||
"Work" shall mean the work of authorship, whether in Source or |
|||
Object form, made available under the License, as indicated by a |
|||
copyright notice that is included in or attached to the work |
|||
(an example is provided in the Appendix below). |
|||
|
|||
"Derivative Works" shall mean any work, whether in Source or Object |
|||
form, that is based on (or derived from) the Work and for which the |
|||
editorial revisions, annotations, elaborations, or other modifications |
|||
represent, as a whole, an original work of authorship. For the purposes |
|||
of this License, Derivative Works shall not include works that remain |
|||
separable from, or merely link (or bind by name) to the interfaces of, |
|||
the Work and Derivative Works thereof. |
|||
|
|||
"Contribution" shall mean any work of authorship, including |
|||
the original version of the Work and any modifications or additions |
|||
to that Work or Derivative Works thereof, that is intentionally |
|||
submitted to Licensor for inclusion in the Work by the copyright owner |
|||
or by an individual or Legal Entity authorized to submit on behalf of |
|||
the copyright owner. For the purposes of this definition, "submitted" |
|||
means any form of electronic, verbal, or written communication sent |
|||
to the Licensor or its representatives, including but not limited to |
|||
communication on electronic mailing lists, source code control systems, |
|||
and issue tracking systems that are managed by, or on behalf of, the |
|||
Licensor for the purpose of discussing and improving the Work, but |
|||
excluding communication that is conspicuously marked or otherwise |
|||
designated in writing by the copyright owner as "Not a Contribution." |
|||
|
|||
"Contributor" shall mean Licensor and any individual or Legal Entity |
|||
on behalf of whom a Contribution has been received by Licensor and |
|||
subsequently incorporated within the Work. |
|||
|
|||
2. Grant of Copyright License. Subject to the terms and conditions of |
|||
this License, each Contributor hereby grants to You a perpetual, |
|||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
|||
copyright license to reproduce, prepare Derivative Works of, |
|||
publicly display, publicly perform, sublicense, and distribute the |
|||
Work and such Derivative Works in Source or Object form. |
|||
|
|||
3. Grant of Patent License. Subject to the terms and conditions of |
|||
this License, each Contributor hereby grants to You a perpetual, |
|||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
|||
(except as stated in this section) patent license to make, have made, |
|||
use, offer to sell, sell, import, and otherwise transfer the Work, |
|||
where such license applies only to those patent claims licensable |
|||
by such Contributor that are necessarily infringed by their |
|||
Contribution(s) alone or by combination of their Contribution(s) |
|||
with the Work to which such Contribution(s) was submitted. If You |
|||
institute patent litigation against any entity (including a |
|||
cross-claim or counterclaim in a lawsuit) alleging that the Work |
|||
or a Contribution incorporated within the Work constitutes direct |
|||
or contributory patent infringement, then any patent licenses |
|||
granted to You under this License for that Work shall terminate |
|||
as of the date such litigation is filed. |
|||
|
|||
4. Redistribution. You may reproduce and distribute copies of the |
|||
Work or Derivative Works thereof in any medium, with or without |
|||
modifications, and in Source or Object form, provided that You |
|||
meet the following conditions: |
|||
|
|||
(a) You must give any other recipients of the Work or |
|||
Derivative Works a copy of this License; and |
|||
|
|||
(b) You must cause any modified files to carry prominent notices |
|||
stating that You changed the files; and |
|||
|
|||
(c) You must retain, in the Source form of any Derivative Works |
|||
that You distribute, all copyright, patent, trademark, and |
|||
attribution notices from the Source form of the Work, |
|||
excluding those notices that do not pertain to any part of |
|||
the Derivative Works; and |
|||
|
|||
(d) If the Work includes a "NOTICE" text file as part of its |
|||
distribution, then any Derivative Works that You distribute must |
|||
include a readable copy of the attribution notices contained |
|||
within such NOTICE file, excluding those notices that do not |
|||
pertain to any part of the Derivative Works, in at least one |
|||
of the following places: within a NOTICE text file distributed |
|||
as part of the Derivative Works; within the Source form or |
|||
documentation, if provided along with the Derivative Works; or, |
|||
within a display generated by the Derivative Works, if and |
|||
wherever such third-party notices normally appear. The contents |
|||
of the NOTICE file are for informational purposes only and |
|||
do not modify the License. You may add Your own attribution |
|||
notices within Derivative Works that You distribute, alongside |
|||
or as an addendum to the NOTICE text from the Work, provided |
|||
that such additional attribution notices cannot be construed |
|||
as modifying the License. |
|||
|
|||
You may add Your own copyright statement to Your modifications and |
|||
may provide additional or different license terms and conditions |
|||
for use, reproduction, or distribution of Your modifications, or |
|||
for any such Derivative Works as a whole, provided Your use, |
|||
reproduction, and distribution of the Work otherwise complies with |
|||
the conditions stated in this License. |
|||
|
|||
5. Submission of Contributions. Unless You explicitly state otherwise, |
|||
any Contribution intentionally submitted for inclusion in the Work |
|||
by You to the Licensor shall be under the terms and conditions of |
|||
this License, without any additional terms or conditions. |
|||
Notwithstanding the above, nothing herein shall supersede or modify |
|||
the terms of any separate license agreement you may have executed |
|||
with Licensor regarding such Contributions. |
|||
|
|||
6. Trademarks. This License does not grant permission to use the trade |
|||
names, trademarks, service marks, or product names of the Licensor, |
|||
except as required for reasonable and customary use in describing the |
|||
origin of the Work and reproducing the content of the NOTICE file. |
|||
|
|||
7. Disclaimer of Warranty. Unless required by applicable law or |
|||
agreed to in writing, Licensor provides the Work (and each |
|||
Contributor provides its Contributions) on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
|||
implied, including, without limitation, any warranties or conditions |
|||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A |
|||
PARTICULAR PURPOSE. You are solely responsible for determining the |
|||
appropriateness of using or redistributing the Work and assume any |
|||
risks associated with Your exercise of permissions under this License. |
|||
|
|||
8. Limitation of Liability. In no event and under no legal theory, |
|||
whether in tort (including negligence), contract, or otherwise, |
|||
unless required by applicable law (such as deliberate and grossly |
|||
negligent acts) or agreed to in writing, shall any Contributor be |
|||
liable to You for damages, including any direct, indirect, special, |
|||
incidental, or consequential damages of any character arising as a |
|||
result of this License or out of the use or inability to use the |
|||
Work (including but not limited to damages for loss of goodwill, |
|||
work stoppage, computer failure or malfunction, or any and all |
|||
other commercial damages or losses), even if such Contributor |
|||
has been advised of the possibility of such damages. |
|||
|
|||
9. Accepting Warranty or Additional Liability. While redistributing |
|||
the Work or Derivative Works thereof, You may choose to offer, |
|||
and charge a fee for, acceptance of support, warranty, indemnity, |
|||
or other liability obligations and/or rights consistent with this |
|||
License. However, in accepting such obligations, You may act only |
|||
on Your own behalf and on Your sole responsibility, not on behalf |
|||
of any other Contributor, and only if You agree to indemnify, |
|||
defend, and hold each Contributor harmless for any liability |
|||
incurred by, or claims asserted against, such Contributor by reason |
|||
of your accepting any such warranty or additional liability. |
|||
|
|||
END OF TERMS AND CONDITIONS |
|||
|
|||
APPENDIX: How to apply the Apache License to your work. |
|||
|
|||
To apply the Apache License to your work, attach the following |
|||
boilerplate notice, with the fields enclosed by brackets "[]" |
|||
replaced with your own identifying information. (Don't include |
|||
the brackets!) The text should be enclosed in the appropriate |
|||
comment syntax for the file format. We also recommend that a |
|||
file or class name and description of purpose be included on the |
|||
same "printed page" as the copyright notice for easier |
|||
identification within third-party archives. |
|||
|
|||
Copyright [yyyy] [name of copyright owner] |
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0 |
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
@ -0,0 +1,80 @@ |
|||
{ |
|||
"id": "qiun-data-charts", |
|||
"displayName": "秋云 ucharts echarts 高性能跨全端图表组件", |
|||
"version": "2.5.0-20230101", |
|||
"description": "uCharts 新增正负柱状图!支持H5及APP用 ucharts echarts 渲染图表,uniapp可视化首选组件", |
|||
"keywords": [ |
|||
"ucharts", |
|||
"echarts", |
|||
"f2", |
|||
"图表", |
|||
"可视化" |
|||
], |
|||
"repository": "https://gitee.com/uCharts/uCharts", |
|||
"engines": { |
|||
}, |
|||
"dcloudext": { |
|||
"sale": { |
|||
"regular": { |
|||
"price": "0.00" |
|||
}, |
|||
"sourcecode": { |
|||
"price": "0.00" |
|||
} |
|||
}, |
|||
"contact": { |
|||
"qq": "474119" |
|||
}, |
|||
"declaration": { |
|||
"ads": "无", |
|||
"data": "插件不采集任何数据", |
|||
"permissions": "无" |
|||
}, |
|||
"npmurl": "https://www.npmjs.com/~qiun", |
|||
"type": "component-vue" |
|||
}, |
|||
"uni_modules": { |
|||
"dependencies": [], |
|||
"encrypt": [], |
|||
"platforms": { |
|||
"cloud": { |
|||
"tcb": "y", |
|||
"aliyun": "y" |
|||
}, |
|||
"client": { |
|||
"App": { |
|||
"app-vue": "y", |
|||
"app-nvue": "y" |
|||
}, |
|||
"H5-mobile": { |
|||
"Safari": "y", |
|||
"Android Browser": "y", |
|||
"微信浏览器(Android)": "y", |
|||
"QQ浏览器(Android)": "y" |
|||
}, |
|||
"H5-pc": { |
|||
"Chrome": "y", |
|||
"IE": "y", |
|||
"Edge": "y", |
|||
"Firefox": "y", |
|||
"Safari": "y" |
|||
}, |
|||
"小程序": { |
|||
"微信": "y", |
|||
"阿里": "y", |
|||
"百度": "y", |
|||
"字节跳动": "y", |
|||
"QQ": "y" |
|||
}, |
|||
"快应用": { |
|||
"华为": "y", |
|||
"联盟": "y" |
|||
}, |
|||
"Vue": { |
|||
"vue2": "y", |
|||
"vue3": "y" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,84 @@ |
|||
![logo](https://img-blog.csdnimg.cn/4a276226973841468c1be356f8d9438b.png) |
|||
|
|||
|
|||
[![star](https://gitee.com/uCharts/uCharts/badge/star.svg?theme=gvp)](https://gitee.com/uCharts/uCharts/stargazers) |
|||
[![fork](https://gitee.com/uCharts/uCharts/badge/fork.svg?theme=gvp)](https://gitee.com/uCharts/uCharts/members) |
|||
[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) |
|||
[![npm package](https://img.shields.io/npm/v/@qiun/ucharts.svg?style=flat-square)](https://www.npmjs.com/~qiun) |
|||
|
|||
|
|||
## uCharts简介 |
|||
|
|||
`uCharts`是一款基于`canvas API`开发的适用于所有前端应用的图表库,开发者编写一套代码,可运行到 Web、iOS、Android(基于 uni-app / taro )、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等更多支持 canvas API 的平台。 |
|||
|
|||
## 官方网站 |
|||
|
|||
## [https://www.ucharts.cn](https://www.ucharts.cn) |
|||
|
|||
## 快速体验 |
|||
|
|||
一套代码编到多个平台,依次扫描二维码,亲自体验uCharts图表跨平台效果!其他平台请自行编译。 |
|||
|
|||
![](https://www.ucharts.cn/images/web/guide/qrcode20220224.png) |
|||
|
|||
![](https://img-blog.csdnimg.cn/7d0115593ff24ac39a224fb7c6ed72a4.png) |
|||
|
|||
## 致开发者 |
|||
|
|||
感谢各位开发者`五年`来对秋云及uCharts的支持,uCharts的进步离不开各位开发者的鼓励与贡献。为更好的帮助各位开发者使用图表工具,我们推出了新版官网,增加了在线定制、问答社区、在线配置等一些增值服务,为确保您能更好的应用图表组件,建议您先`仔细阅读官网指南`以及`常见问题`,而不是下载下来`直接使用`。如仍然不能解决,请到`官网社区`或开通会员后加入`专属VIP会员群`提问将会很快得到回答。 |
|||
|
|||
## 视频教程 |
|||
|
|||
## [uCharts新手入门教程](https://www.bilibili.com/video/BV1qA411Q7se/?share_source=copy_web&vd_source=42a1242f9aaade6427736af69eb2e1d9) |
|||
|
|||
|
|||
## 社群支持 |
|||
|
|||
uCharts官方拥有5个2000人的QQ群及专属VIP会员群支持,庞大的用户量证明我们一直在努力,请各位放心使用!uCharts的开源图表组件的开发,团队付出了大量的时间与精力,经过四来的考验,不会有比较明显的bug,请各位放心使用。如果您有更好的想法,可以在`码云提交Pull Requests`以帮助更多开发者完成需求,再次感谢各位对uCharts的鼓励与支持! |
|||
|
|||
#### 官方交流群 |
|||
- 交流群1:371774600(已满) |
|||
- 交流群2:619841586(已满) |
|||
- 交流群3:955340127(已满) |
|||
- 交流群4:641669795(已满) |
|||
- 交流群5:236294809(只能扫码加入) |
|||
|
|||
![](https://www.ucharts.cn/images/web/qq5.jpg) |
|||
|
|||
- 口令`uniapp` |
|||
|
|||
#### 专属VIP会员群 |
|||
- 开通会员后详见【账号详情】页面中顶部的滚动通知 |
|||
- 口令`您的用户ID` |
|||
|
|||
## 版权信息 |
|||
|
|||
uCharts始终坚持开源,遵循 [Apache Licence 2.0](https://www.apache.org/licenses/LICENSE-2.0.html) 开源协议,意味着您无需支付任何费用,即可将uCharts应用到您的产品中。 |
|||
|
|||
注意:这并不意味着您可以将uCharts应用到非法的领域,比如涉及赌博,暴力等方面。如因此产生纠纷或法律问题,uCharts相关方及秋云科技不承担任何责任。 |
|||
|
|||
## 合作伙伴 |
|||
|
|||
[![DIY官网](https://www.ucharts.cn/images/web/guide/links/diy-gw.png)](https://www.diygw.com/) |
|||
[![HasChat](https://www.ucharts.cn/images/web/guide/links/haschat.png)](https://gitee.com/howcode/has-chat) |
|||
[![uViewUI](https://www.ucharts.cn/images/web/guide/links/uView.png)](https://www.uviewui.com/) |
|||
[![图鸟UI](https://www.ucharts.cn/images/web/guide/links/tuniao.png)](https://ext.dcloud.net.cn/plugin?id=7088) |
|||
[![thorui](https://www.ucharts.cn/images/web/guide/links/thorui.png)](https://ext.dcloud.net.cn/publisher?id=202) |
|||
[![FirstUI](https://www.ucharts.cn/images/web/guide/links/first.png)](https://www.firstui.cn/) |
|||
[![nProUI](https://www.ucharts.cn/images/web/guide/links/nPro.png)](https://ext.dcloud.net.cn/plugin?id=5169) |
|||
[![GraceUI](https://www.ucharts.cn/images/web/guide/links/grace.png)](https://www.graceui.com/) |
|||
|
|||
|
|||
## 更新记录 |
|||
|
|||
详见官网指南中说明,[点击此处查看](https://www.ucharts.cn/v2/#/guide/index?id=100) |
|||
|
|||
|
|||
## 相关链接 |
|||
- [uCharts官网](https://www.ucharts.cn) |
|||
- [DCloud插件市场地址](https://ext.dcloud.net.cn/plugin?id=271) |
|||
- [uCharts码云开源托管地址](https://gitee.com/uCharts/uCharts) [![star](https://gitee.com/uCharts/uCharts/badge/star.svg?theme=gvp)](https://gitee.com/uCharts/uCharts/stargazers) |
|||
- [uCharts npm开源地址](https://www.ucharts.cn) |
|||
- [ECharts官网](https://echarts.apache.org/zh/index.html) |
|||
- [ECharts配置手册](https://echarts.apache.org/zh/option.html) |
|||
- [图表组件在项目中的应用 ReportPlus数据报表](https://www.ucharts.cn/v2/#/layout/info?id=1) |
23
uni_modules/qiun-data-charts/static/app-plus/echarts.min.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
23
uni_modules/qiun-data-charts/static/h5/echarts.min.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,8 +1,32 @@ |
|||
export let goPage = (url, params = {}, type = 'navigateTo') => { |
|||
uni.$u.route({ |
|||
url, |
|||
params, |
|||
type |
|||
}) |
|||
} |
|||
|
|||
export let goPage = (url, params={}, type='navigateTo')=> { |
|||
uni.$u.route({ |
|||
url, |
|||
params, |
|||
type |
|||
}) |
|||
} |
|||
export let detectOrient = (dome) => { |
|||
var width = document.documentElement.clientWidth, |
|||
height = document.documentElement.clientHeight, |
|||
// $wrapper = document.getElementsByTagName('body')[0],
|
|||
$wrapper = document.querySelector(dome), |
|||
style = ""; |
|||
if (width >= height) { // 横屏
|
|||
style += "width:" + width + "px;"; // 注意旋转后的宽高切换
|
|||
style += "height:" + height + "px;"; |
|||
style += "-webkit-transform: rotate(0); transform: rotate(0);"; |
|||
style += "-webkit-transform-origin: 0 0;"; |
|||
style += "transform-origin: 0 0;"; |
|||
console.log(1) |
|||
} else { // 竖屏
|
|||
style += "width:" + height + "px;"; |
|||
style += "height:" + width + "px;"; |
|||
style += "-webkit-transform: rotate(90deg); transform: rotate(90deg);"; |
|||
// 注意旋转中点的处理
|
|||
style += "-webkit-transform-origin: " + width / 2 + "px " + width / 2 + "px;"; |
|||
style += "transform-origin: " + width / 2 + "px " + width / 2 + "px;"; |
|||
console.log(2) |
|||
} |
|||
$wrapper.style.cssText = style; |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue