|
@@ -0,0 +1,64 @@
|
|
|
+import { defineComponent, ref } from 'vue';
|
|
|
+import styles from './index.module.less';
|
|
|
+import { NTabs, NTabPane, NSpace, NButton } from 'naive-ui';
|
|
|
+import { useRoute } from 'vue-router';
|
|
|
+import { getTabsCache, setTabsCaches } from '@/hooks/use-async';
|
|
|
+import CDatePicker from '/src/components/CDatePicker';
|
|
|
+import TrainData from '@/views/home/components/trainData';
|
|
|
+import PracticeData from '@/views/home/components/practiceData';
|
|
|
+import PracticeRanking from '@/views/home/components/practiceRanking';
|
|
|
+export default defineComponent({
|
|
|
+ name: 'data-module',
|
|
|
+ setup() {
|
|
|
+ const activeTab = ref('attendclass');
|
|
|
+ const route = useRoute();
|
|
|
+ getTabsCache((val: any) => {
|
|
|
+ if (val.form.tabName) {
|
|
|
+ activeTab.value = val.form.tabName;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ const setTabs = (val: any) => {
|
|
|
+ setTabsCaches(val, 'tabName', route);
|
|
|
+ };
|
|
|
+ return () => (
|
|
|
+ <div>
|
|
|
+ <div class={styles.listWrap}>
|
|
|
+ <NTabs
|
|
|
+ onUpdate:value={(val: any) => setTabs(val)}
|
|
|
+ class={styles.customTabs}
|
|
|
+ v-model:value={activeTab.value}
|
|
|
+ size="large"
|
|
|
+ animated
|
|
|
+ pane-wrapper-style="margin: 0 -4px"
|
|
|
+ pane-style="padding-left: 4px; padding-right: 4px; box-sizing: border-box;"
|
|
|
+ v-Slots={{
|
|
|
+ suffix:()=><>
|
|
|
+ <div class={styles.homeStudyInfoDate}>
|
|
|
+ <NSpace>
|
|
|
+ <CDatePicker separator={'-'} type="daterange"></CDatePicker>
|
|
|
+ <NButton type="primary" class={styles.searchBtn}>
|
|
|
+ 搜索
|
|
|
+ </NButton>
|
|
|
+ <NButton type="primary" ghost class={styles.resetBtn}>
|
|
|
+ 重置
|
|
|
+ </NButton>
|
|
|
+ </NSpace>
|
|
|
+ </div>
|
|
|
+ </>
|
|
|
+ }}>
|
|
|
+ <NTabPane name="training " tab="训练统计">
|
|
|
+ <TrainData></TrainData>
|
|
|
+ </NTabPane>
|
|
|
+ <NTabPane name="practice" tab="练习数据">
|
|
|
+ <PracticeData></PracticeData>
|
|
|
+ </NTabPane>
|
|
|
+ <NTabPane name="ranking" tab="练习排行">
|
|
|
+ <PracticeRanking></PracticeRanking>
|
|
|
+ </NTabPane>
|
|
|
+ </NTabs>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ }
|
|
|
+});
|