2025-11-25 17:49:53 +08:00

177 lines
4.3 KiB
Vue

<script lang="ts">
import { defineComponent } from "vue";
export default defineComponent({
name: "DataManage",
});
</script>
<script setup lang="ts">
import { ref, unref, onMounted } from "vue";
import LeftChat from "@/views/dataManage/index/components/Module/Chat1.vue";
import CircleChat from "@/views/dataManage/index/components/Module/Chat2.vue";
import RadarChat from "@/views/dataManage/index/components/Module/RadarChat.vue";
import DataImport from "@/views/dataManage/index/components/Module/DataImport.vue";
import DataExport from "@/views/dataManage/index/components/Module/DataExport.vue";
import TestDataset from "@/views/dataManage/index/components/Module/testDataset.vue";
import TrainDataset from "@/views/dataManage/index/components/Module/trainDataset.vue";
import { useMain } from "@/views/dataManage/index/services/index.ts";
// const { state, getImportData } = useMain();
const { dataManageServices } = useMain();
const init = async () => {
dataManageServices.dataImport.api.getImportData();
dataManageServices.statistics.api.onUpdateChat();
dataManageServices.dataset.api.getTestDataset();
dataManageServices.dataset.api.getTrainDataset();
await dataManageServices.dataExport.api.getExportData();
await dataManageServices.statistics.api.getExportData();
};
const panelStatus = ref({
rawOne: {
left: "line",
},
});
const pageRef = ref();
const chartChange = (type: string) => {
panelStatus.value.rawOne.left = type;
};
onMounted(() => {
init();
});
const prefix = "data-manage";
</script>
<template>
<div :class="prefix" ref="pageRef">
<div :class="`${prefix}-wrapper`">
<div :class="`${prefix}-grid`">
<LeftChat v-bind="dataManageServices" />
</div>
<div :class="`${prefix}-grid`">
<CircleChat v-bind="dataManageServices.statistics" />
</div>
</div>
<!-- <div :class="`${prefix}-wrapper`">
<div :class="`${prefix}-grid`">
<CircleChat v-bind="dataManageServices.statistics" />
</div>
<div :class="`${prefix}-grid ${prefix}-opacity`"></div>
</div> -->
<div :class="`${prefix}-wrapper`">
<!-- {{ dataManageServices.dataImport }} -->
<div :class="`${prefix}-grid`">
<DataImport v-bind="dataManageServices" />
</div>
</div>
<!-- <div :class="`${prefix}-wrapper`">
<div :class="`${prefix}-grid`">
<DataExport v-bind="dataManageServices.dataExport" />
</div>
</div> -->
<div :class="`${prefix}-wrapper`">
<div :class="`${prefix}-grid`">
<TestDataset v-bind="dataManageServices.dataset" :pageRef="pageRef" />
</div>
</div>
<div :class="`${prefix}-wrapper`">
<div :class="`${prefix}-grid`">
<TrainDataset v-bind="dataManageServices.dataset" :pageRef="pageRef" />
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
$prefix: "data-manage";
.#{$prefix} {
display: flex;
align-items: start;
justify-content: start;
flex-direction: column;
padding: 20px;
box-sizing: border-box;
gap: 20px;
&-wrapper {
width: 100%;
display: flex;
gap: 17px;
&:nth-child(1) {
height: 377px;
}
&:nth-child(2) {
min-height: 300px;
// max-height: 800px;
}
}
&-grid {
flex: 1;
flex-shrink: 0;
overflow: hidden;
background: rgba(255, 255, 255, 0.6);
border: 1px solid rgba(231, 239, 251, 0.5);
border-radius: 10px;
}
&-opacity {
opacity: 0;
}
.wrapper {
display: flex;
gap: 10px;
.grid {
}
}
:deep(.wrapper) {
display: flex;
gap: 10px;
width: 500px;
flex-wrap: wrap;
max-height: 600px;
overflow: auto;
}
:deep(.index-box) {
width: 150px;
// width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: start;
gap: 5px;
.index-box-circle {
width: 16px;
height: 16px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
border: 1px solid#1677ff;
color: #1677ff;
font-size: 12px;
}
.index-box-text {
line-height: 16px;
font-size: 14px;
}
}
:deep(.download-option) {
padding: 8px 4px;
cursor: pointer;
border-bottom: 1px solid #d9d9d9;
&:hover {
color: #1677ff;
}
&:last-child {
border-bottom: none;
}
}
}
</style>