|
@@ -1,12 +1,20 @@
|
|
|
-import { Ref, defineComponent, reactive, ref } from 'vue';
|
|
|
+import { Ref, defineComponent, onMounted, reactive, ref } from 'vue';
|
|
|
import styles from '../index.module.less';
|
|
|
import { NButton, NDataTable, NNumberAnimation } from 'naive-ui';
|
|
|
import numeral from 'numeral';
|
|
|
import { useECharts } from '@/hooks/web/useECharts';
|
|
|
import Pagination from '/src/components/pagination';
|
|
|
+import { getTimes } from '/src/utils/dateFormat';
|
|
|
+import { getTrainingStat } from '../../data-module/api';
|
|
|
export default defineComponent({
|
|
|
name: 'home-trainData',
|
|
|
- setup() {
|
|
|
+ props: {
|
|
|
+ timer: {
|
|
|
+ type: Array,
|
|
|
+ defaut: () => []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ setup(props, { expose }) {
|
|
|
const chartRef = ref<HTMLDivElement | null>(null);
|
|
|
const { setOptions } = useECharts(chartRef as Ref<HTMLDivElement>);
|
|
|
const qualifiedFlag = ref(true);
|
|
@@ -28,6 +36,14 @@ export default defineComponent({
|
|
|
studentList: [50, 100, 80, 180, 70, 99, 300],
|
|
|
payInfoList: [100, 200, 300, 450, 330, 200, 10]
|
|
|
});
|
|
|
+ const totalDateRef = ref({
|
|
|
+ qualifiedRate: 9,
|
|
|
+ qualifiedStudentCount: 1,
|
|
|
+ submitStudentCount: 3,
|
|
|
+ totalStudentCount: 11,
|
|
|
+ trainingCount: 4,
|
|
|
+ trainingRate: 27, //
|
|
|
+ } as any);
|
|
|
const state = reactive({
|
|
|
loading: false,
|
|
|
pagination: {
|
|
@@ -152,9 +168,16 @@ export default defineComponent({
|
|
|
}
|
|
|
];
|
|
|
};
|
|
|
- const getList = () => {
|
|
|
- console.log('1');
|
|
|
+ const getList = async () => {
|
|
|
+ try {
|
|
|
+ const res = await getTrainingStat({
|
|
|
+ ...getTimes(props.timer, ['startTime', 'endTime'], 'YYYY-MM-DD')
|
|
|
+ });
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ }
|
|
|
};
|
|
|
+ expose({ getList });
|
|
|
const setChart = () => {
|
|
|
setOptions({
|
|
|
tooltip: {
|
|
@@ -330,7 +353,11 @@ export default defineComponent({
|
|
|
// ]
|
|
|
});
|
|
|
};
|
|
|
- setChart();
|
|
|
+ onMounted(() => {
|
|
|
+ getList();
|
|
|
+ setChart();
|
|
|
+ });
|
|
|
+
|
|
|
return () => (
|
|
|
<>
|
|
|
<div class={styles.homeTrainData}>
|
|
@@ -339,7 +366,7 @@ export default defineComponent({
|
|
|
<div class={styles.TrainDataItem}>
|
|
|
<p class={styles.TrainDataItemTitle}>
|
|
|
<span>
|
|
|
- <NNumberAnimation from={0} to={6}></NNumberAnimation>
|
|
|
+ <NNumberAnimation from={0} to={totalDateRef.value.trainingCount}></NNumberAnimation>
|
|
|
</span>
|
|
|
次
|
|
|
</p>
|
|
@@ -348,7 +375,7 @@ export default defineComponent({
|
|
|
<div class={styles.TrainDataItem}>
|
|
|
<p class={styles.TrainDataItemTitle}>
|
|
|
<span>
|
|
|
- <NNumberAnimation from={0} to={100}></NNumberAnimation>
|
|
|
+ <NNumberAnimation from={0} to={totalDateRef.value.totalStudentCount}></NNumberAnimation>
|
|
|
</span>
|
|
|
人次
|
|
|
</p>
|
|
@@ -357,7 +384,7 @@ export default defineComponent({
|
|
|
<div class={styles.TrainDataItem}>
|
|
|
<p class={styles.TrainDataItemTitle}>
|
|
|
<span>
|
|
|
- <NNumberAnimation from={0} to={40}></NNumberAnimation>
|
|
|
+ <NNumberAnimation from={0} to={totalDateRef.value.submitStudentCount}></NNumberAnimation>
|
|
|
</span>
|
|
|
人次
|
|
|
</p>
|
|
@@ -367,7 +394,7 @@ export default defineComponent({
|
|
|
<p class={styles.TrainDataItemTitle}>
|
|
|
<span>
|
|
|
{' '}
|
|
|
- <NNumberAnimation from={0} to={30}></NNumberAnimation>
|
|
|
+ <NNumberAnimation from={0} to={totalDateRef.value.qualifiedStudentCount}></NNumberAnimation>
|
|
|
</span>
|
|
|
人次
|
|
|
</p>
|
|
@@ -376,7 +403,7 @@ export default defineComponent({
|
|
|
<div class={styles.TrainDataItem}>
|
|
|
<p class={styles.TrainDataItemTitle}>
|
|
|
<span>
|
|
|
- <NNumberAnimation from={0} to={40}></NNumberAnimation>%
|
|
|
+ <NNumberAnimation from={0} to={totalDateRef.value.trainingRate}></NNumberAnimation>%
|
|
|
</span>
|
|
|
</p>
|
|
|
<p class={styles.TrainDataItemsubTitle}>训练提交率</p>
|
|
@@ -384,7 +411,7 @@ export default defineComponent({
|
|
|
<div class={styles.TrainDataItem}>
|
|
|
<p class={styles.TrainDataItemTitle}>
|
|
|
<span>
|
|
|
- <NNumberAnimation from={0} to={30}></NNumberAnimation>%
|
|
|
+ <NNumberAnimation from={0} to={totalDateRef.value.qualifiedRate}></NNumberAnimation>%
|
|
|
</span>
|
|
|
</p>
|
|
|
<p class={styles.TrainDataItemsubTitle}>训练合格率</p>
|