Commit ac133a1f authored by 陈帅's avatar 陈帅

fix #2173 Wrong rendering logic

parent d247ab26
...@@ -27,7 +27,8 @@ class WaterWave extends PureComponent { ...@@ -27,7 +27,8 @@ class WaterWave extends PureComponent {
componentDidUpdate(props) { componentDidUpdate(props) {
const { percent } = this.props; const { percent } = this.props;
if (props.percent !== percent) { if (props.percent !== percent) {
this.renderChart(); // 不加这个会造成绘制缓慢
this.renderChart('update');
} }
} }
...@@ -49,10 +50,11 @@ class WaterWave extends PureComponent { ...@@ -49,10 +50,11 @@ class WaterWave extends PureComponent {
} }
}; };
renderChart() { renderChart(type) {
const { percent, color = '#1890FF' } = this.props; const { percent, color = '#1890FF' } = this.props;
const data = percent / 100; const data = percent / 100;
const self = this; const self = this;
cancelAnimationFrame(this.timer);
if (!this.node || (data !== 0 && !data)) { if (!this.node || (data !== 0 && !data)) {
return; return;
...@@ -60,7 +62,6 @@ class WaterWave extends PureComponent { ...@@ -60,7 +62,6 @@ class WaterWave extends PureComponent {
const canvas = this.node; const canvas = this.node;
const ctx = canvas.getContext('2d'); const ctx = canvas.getContext('2d');
const canvasWidth = canvas.width; const canvasWidth = canvas.width;
const canvasHeight = canvas.height; const canvasHeight = canvas.height;
const radius = canvasWidth / 2; const radius = canvasWidth / 2;
...@@ -115,7 +116,7 @@ class WaterWave extends PureComponent { ...@@ -115,7 +116,7 @@ class WaterWave extends PureComponent {
const gradient = ctx.createLinearGradient(0, 0, 0, canvasHeight); const gradient = ctx.createLinearGradient(0, 0, 0, canvasHeight);
gradient.addColorStop(0, '#ffffff'); gradient.addColorStop(0, '#ffffff');
gradient.addColorStop(1, '#1890FF'); gradient.addColorStop(1, color);
ctx.fillStyle = gradient; ctx.fillStyle = gradient;
ctx.fill(); ctx.fill();
ctx.restore(); ctx.restore();
...@@ -123,7 +124,7 @@ class WaterWave extends PureComponent { ...@@ -123,7 +124,7 @@ class WaterWave extends PureComponent {
function render() { function render() {
ctx.clearRect(0, 0, canvasWidth, canvasHeight); ctx.clearRect(0, 0, canvasWidth, canvasHeight);
if (circleLock) { if (circleLock && type !== 'update') {
if (arcStack.length) { if (arcStack.length) {
const temp = arcStack.shift(); const temp = arcStack.shift();
ctx.lineTo(temp[0], temp[1]); ctx.lineTo(temp[0], temp[1]);
...@@ -145,7 +146,7 @@ class WaterWave extends PureComponent { ...@@ -145,7 +146,7 @@ class WaterWave extends PureComponent {
ctx.restore(); ctx.restore();
ctx.clip(); ctx.clip();
ctx.fillStyle = '#1890FF'; ctx.fillStyle = color;
} }
} else { } else {
if (data >= 0.85) { if (data >= 0.85) {
...@@ -180,7 +181,6 @@ class WaterWave extends PureComponent { ...@@ -180,7 +181,6 @@ class WaterWave extends PureComponent {
} }
self.timer = requestAnimationFrame(render); self.timer = requestAnimationFrame(render);
} }
render(); render();
} }
......
...@@ -21,7 +21,6 @@ const havePermissionAsync = new Promise(resolve => { ...@@ -21,7 +21,6 @@ const havePermissionAsync = new Promise(resolve => {
setTimeout(() => resolve(), 300); setTimeout(() => resolve(), 300);
}); });
export default
@Secured(havePermissionAsync) @Secured(havePermissionAsync)
@connect(({ monitor, loading }) => ({ @connect(({ monitor, loading }) => ({
monitor, monitor,
...@@ -153,3 +152,5 @@ class Monitor extends PureComponent { ...@@ -153,3 +152,5 @@ class Monitor extends PureComponent {
); );
} }
} }
export default Monitor;
...@@ -37,7 +37,6 @@ const links = [ ...@@ -37,7 +37,6 @@ const links = [
}, },
]; ];
export default
@connect(({ user, project, activities, chart, loading }) => ({ @connect(({ user, project, activities, chart, loading }) => ({
currentUser: user.currentUser, currentUser: user.currentUser,
project, project,
...@@ -253,3 +252,5 @@ class Workplace extends PureComponent { ...@@ -253,3 +252,5 @@ class Workplace extends PureComponent {
); );
} }
} }
export default Workplace;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment