|
|
@@ -16,25 +16,58 @@
|
|
|
<el-table-column prop="configName" label="配置名"></el-table-column>
|
|
|
<el-table-column prop="fileId" label="文件id"></el-table-column>
|
|
|
<el-table-column label="查看历史分析">
|
|
|
+ <template #default="scope">
|
|
|
<el-button type="text" icon="el-icon-circle-check" class="yellow"
|
|
|
- @click="handleTrainRes(scope.$index, scope.row)">查看分析结果</el-button>
|
|
|
+ @click="handleAnalysisResult(scope.row.id)">查看分析结果</el-button>
|
|
|
+ </template>
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column label="操作" width="180" align="center">
|
|
|
<template #default="scope">
|
|
|
-
|
|
|
<el-button type="text" icon="el-icon-mouse"
|
|
|
- @click="editUseModel(scope.$index, scope.row)">分析
|
|
|
+ @click="startAnalysis(scope.$index)">分析
|
|
|
</el-button>
|
|
|
-
|
|
|
<el-button type="text" icon="el-icon-delete" class="red"
|
|
|
- @click="handleDelete(scope.row.id)"
|
|
|
- >删除</el-button>
|
|
|
-
|
|
|
+ @click="handleDelete(scope.row.id)">删除</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+
|
|
|
</el-table>
|
|
|
|
|
|
+ <el-dialog title="新建统计分析配置" v-model="analysisVisible" width="50%">
|
|
|
+ <el-form label-width="150px">
|
|
|
+ <el-form-item label="配置拥有字段数:" >
|
|
|
+ {{selectConfigLen}}
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="分析方法" required>
|
|
|
+ <el-select v-model="analysisType" placeholder="分析方法" class="handle-select mr10" @change="changeMethodMsg">
|
|
|
+ <el-option key="1" label="数据分布" value="1"></el-option>
|
|
|
+ <el-option key="2" label="散点图" value="2"></el-option>
|
|
|
+ <el-option key="3" label="数据统计" value="3"></el-option>
|
|
|
+ <el-option key="4" label="偏度-峰度" value="4"></el-option>
|
|
|
+ <el-option key="5" label="皮尔森相关系数" value="5"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-alert type="info" show-icon style="height: 40px;">{{methodMsg}}</el-alert>
|
|
|
+ <el-form-item label="方法和字段要求" required>
|
|
|
+ <text>皮尔森相关系数需要两个int/double字段,散点图可以传入2-3个字段,其他的方法只需一个字段。除了数据分布可以传入string字段,其他方法请传入int/double字段</text>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="配置拥有字段" required>
|
|
|
+ <el-table :data="selectConfigCol" border class="table" header-cell-class-name="table-header" >
|
|
|
+ <el-table-column label="字段名">
|
|
|
+ <template #default="scope"><span>{{scope.row}}</span></template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <template #footer>
|
|
|
+ <span class="dialog-footer">
|
|
|
+ <el-button @click="analysisVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="analysis">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
|
|
|
</div>
|
|
|
|
|
|
@@ -45,18 +78,42 @@
|
|
|
import {ref} from "vue";
|
|
|
import {deleteAnalysisConfig, getAnalysisConfig} from "../../api/analysisConfig";
|
|
|
import {ElMessage, ElMessageBox} from "element-plus";
|
|
|
+import {visualize} from "../../api/analysis";
|
|
|
+import {train} from "../../api/model";
|
|
|
+import {useRouter} from "vue-router";
|
|
|
|
|
|
export default {
|
|
|
name: "Analysis",
|
|
|
setup(){
|
|
|
const tableData = ref([]);
|
|
|
const pageTotal = ref(0);
|
|
|
+ let analysisVisible = ref(false);
|
|
|
+ let selectConfigLen = ref();
|
|
|
+ let selectConfigId = ref();
|
|
|
+ let analysisType = ref();
|
|
|
+ let selectConfigCol = ref([]);
|
|
|
+ let methodMsg=ref("不同方法仅适用于特定特征字段");
|
|
|
+ const router = useRouter();
|
|
|
+
|
|
|
+ const changeMethodMsg=()=>{
|
|
|
+ let value = analysisType.value;
|
|
|
+ if(value==='1'){
|
|
|
+ methodMsg.value="数据分布无特殊限制"
|
|
|
+ }else if(value==='2'){
|
|
|
+ methodMsg.value="散点图可以传入2-3个int/double字段"
|
|
|
+ }else if(value==='3'){
|
|
|
+ methodMsg.value="请传入1个int/double字段"
|
|
|
+ }else if(value==='4'){
|
|
|
+ methodMsg.value="请传入1个int/double字段"
|
|
|
+ }else if(value==='5'){
|
|
|
+ methodMsg.value="请传入2个int/double字段"
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
const getPage=()=> {
|
|
|
getAnalysisConfig({
|
|
|
uid: 1
|
|
|
}).then(res => {
|
|
|
- console.log("res",res);
|
|
|
tableData.value = res.result.configVOList;
|
|
|
})
|
|
|
};
|
|
|
@@ -77,13 +134,87 @@ export default {
|
|
|
});
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
+ };
|
|
|
+
|
|
|
+ const handleAnalysisResult = (configId) => {
|
|
|
+ router.push({
|
|
|
+ path:'analysisHistory',
|
|
|
+ query:{
|
|
|
+ configId: configId,
|
|
|
+ }
|
|
|
+ })
|
|
|
+ };
|
|
|
+
|
|
|
+ const startAnalysis = (index) => {
|
|
|
+ selectConfigId = tableData.value[index].id;
|
|
|
+ selectConfigLen.value = tableData.value[index].chosenColumn.length;
|
|
|
+ selectConfigCol.value = tableData.value[index].chosenColumn;
|
|
|
+ analysisVisible.value = true;
|
|
|
+ };
|
|
|
+
|
|
|
+ const analysis = () => {
|
|
|
+ const payload={
|
|
|
+ userId: 1,
|
|
|
+ configId: selectConfigId,
|
|
|
+ func: analysisType.value,
|
|
|
+ }
|
|
|
+ if (payload.func !== undefined){
|
|
|
+ analysisVisible.value = false;
|
|
|
+ ElMessageBox( {
|
|
|
+ title: "确定要分析吗?",
|
|
|
+ showCancelButton: true,
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ beforeClose: (action, instance, done) => {
|
|
|
+ if (action === 'confirm') {
|
|
|
+ instance.confirmButtonLoading = true
|
|
|
+ instance.confirmButtonText = '分析中...'
|
|
|
+ visualize(payload).then(res => {
|
|
|
+ instance.confirmButtonLoading = false
|
|
|
+ if (res.msg === '成功'){
|
|
|
+ ElMessageBox({
|
|
|
+ title: '数据分析',
|
|
|
+ message: `数据分析成功`,
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ })
|
|
|
+ getPage();
|
|
|
+ done()
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ ElMessage.error("数据分析失败!失败码:"+res.code);
|
|
|
+ done()
|
|
|
+ }
|
|
|
+ }).catch(err=>{
|
|
|
+ console.log(err)
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ done()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ })
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ alert("请选择数据分析方法!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return{
|
|
|
tableData,
|
|
|
pageTotal,
|
|
|
+ analysisVisible,
|
|
|
+ selectConfigLen,
|
|
|
+ analysisType,
|
|
|
+ selectConfigCol,
|
|
|
+ methodMsg,
|
|
|
+ selectConfigId,
|
|
|
+ router,
|
|
|
getPage,
|
|
|
handleDelete,
|
|
|
+ handleAnalysisResult,
|
|
|
+ startAnalysis,
|
|
|
+ analysis,
|
|
|
+ changeMethodMsg,
|
|
|
};
|
|
|
}
|
|
|
}
|