lemo-crm/web/app/components/week-goal/total-completion-rate.js
2022-06-24 00:16:47 +08:00

29 lines
1.1 KiB
JavaScript

import { computed } from '@ember/object'
import Component from '@ember/component';
const WeekGoalTotalCompletionRateComponent = Component.extend({
tagName: '',
goals: [],
completed: computed('goals', 'goals.@each.goal', 'goals.@each.done', function() {
let me = this;
return me.get('goal') > 0 && me.get('goal') == me.get('done');
}),
goal: computed('goals.@each.goal', function() {
return this.get('goals').map(it => it.goal).reduce((pv, g) => pv + parseInt(g), 0);
}),
done: computed('goals.@each.done', function() {
return this.get('goals').map(it => it.done).reduce((pv, g) => pv + parseInt(g), 0);
}),
totalRate: computed('goal', 'done', function() {
let me = this;
let goal = me.get('goal');
let done = me.get('done');
let result = ((done * 1.0 / goal * 1.0) * 100).toFixed(2);
return result > 0 ? (result + '%').replace(/\.00%$/g, '%') : 0;
})
});
WeekGoalTotalCompletionRateComponent.reopenClass({
positionalParams: ['goals'],
});
export default WeekGoalTotalCompletionRateComponent;