12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- // components/dashboard/dashboard.js
- const app = getApp();
- import {
- linearColors,
- ladderOptions
- } from './baseData';
- Component({
- /**
- * 组件的属性列表
- */
- properties: {
- params: {
- type: Object,
- value: {
- waterStages: []
- }
- }
- },
- observers: {
- params(params) {
- let {
- username,
- userNumber,
- useAmount,
- laddertype,
- waterStages = [],
- ladderlevel
- } = params;
- const newAmount = app.$util.numberFormat(useAmount, 1);
- params.intNum = newAmount.split('.')[0] || 0;
- params.floatNum = newAmount.split('.')[1] || 0;
- const arr = [];
- params.style = linearColors[ladderlevel];
- if (userNumber && username) {
- if (laddertype && waterStages.length) {
- waterStages.forEach((v, k) => {
- arr.unshift(Object.assign({}, v, ladderOptions[k]));
- })
- const baseRate = (ladderlevel - 1) * (1 / waterStages.length);
- const {
- minValue,
- maxValue
- } = waterStages[ladderlevel - 1];
- const otherRate = (useAmount - minValue) / (maxValue - minValue) * 0.25;
- const rate = parseFloat(baseRate + otherRate);
- params.percentage = rate > 1 ? 100 : rate < 0 ? 0 : parseFloat(rate * 100 + (rate ? 1 : 3)).toFixed(2);
- this.setData({
- userInfo: params,
- waterStages: arr
- })
- } else {
- const scale = useAmount ? Math.ceil(useAmount/15)*15 : 10;
- for (let i = 3; i > 0; i--) {
- arr.push({
- maxValue: (scale * i),
- minValue: (scale * (i - 1)),
- color: '#0091FF',
- name: '用水量',
- background: 'rgba(0, 145, 255, 0.1)'
- })
- }
- const rate = useAmount ? parseFloat(useAmount / (scale * 3)) : 0;
- params.percentage = parseFloat(rate * 100 + (rate ? 1 : 3)).toFixed(2);
- this.setData({
- userInfo: params,
- waterStages: arr
- })
- }
- }
- }
- },
- /**
- * 组件的初始数据
- */
- data: {
- ec: {
- lazyLoad: true
- },
- userInfo: {},
- waterStages: []
- },
- /**
- * 组件的方法列表
- */
- methods: {
-
- }
- })
|