icenaked 3 лет назад
Родитель
Сommit
1574d1d048
2 измененных файлов с 27 добавлено и 235 удалено
  1. 19 38
      src/api/file.js
  2. 8 197
      src/views/file/FileDetail.vue

+ 19 - 38
src/api/file.js

@@ -23,32 +23,6 @@ export const UploadFile = payload => {
     })
 }
 
-/**
- * ({
-        url: `${FILE_MODULE}/upload`,
-        method: 'post',
-        data: payload,
-        "Process-Data": false,// 告诉axios不要去处理发送的数据(重要参数)
-        "Content-Type": false,   // 告诉axios不要去设置Content-Type请求头
-    }).then(res => {
-        return res.data
-    });
- */
-
-
-//    return axios.post(`${FILE_MODULE}/upload`,
-//         payload,
-//  {
-//             headers:{
-//                 'Content-Type': "multipart/form-data",
-//                 // 'Content-Type': "false",
-//                 // 'Process-Data': 'false',
-//             }
-//         }
-
- //    ).then(res => {
- //        return res.data;
- //    });
 
 /**
  *  获得文件列表 GET /get/all
@@ -69,18 +43,6 @@ export const GetAllFile = userId => {
     //     });
 }
 
-// 直接返回数据
-// return Promise.resolve({
-//     "timestamp": 1649397417317,
-//     "status": 200,
-//     "data": [
-//         {
-//             "fileId": "1",
-//             "fileName": "event_data"
-//         }
-//     ]
-// })
-
 /**
  *  获得文件具体信息 GET /get/detail
  * @param {*} fileId 文件Id
@@ -114,3 +76,22 @@ export const deleteFile = fileId => {
     // });
 }
 
+
+/**
+ *  获得文件描述信息 GET /get/detail
+ * @param {*} fileId 文件Id
+ * @returns
+ */
+export const getFileDescribe = payload => {
+    const {fileInfoId, userId} = payload;
+    return axios.get(`${FILE_MODULE}/describe/${fileInfoId}`,{
+        params:{
+            userId: userId
+        }
+    }).then( res => {
+        return res;
+    })
+    // return axios.get(`${MOCK}/files/:fileInfoId`).then( res => {
+    //     return res;
+    // })
+}

+ 8 - 197
src/views/file/FileDetail.vue

@@ -26,8 +26,8 @@
                 @selection-change="handleSelectChange"
       >
         <el-table-column width="50" type="selection"></el-table-column>
-        <el-table-column label="字段id">
-          <template #default="scope"><span>{{ scope.row.id }}</span></template>
+        <el-table-column label="序号">
+          <template #default="scope"><span>{{ scope.$index + 1 }}</span></template>
         </el-table-column>
         <el-table-column label="字段名">
           <template #default="scope"><span>{{ scope.row.fieldName }}</span></template>
@@ -50,19 +50,10 @@
         <el-form-item label="配置名" required>
           <el-input v-model="analysisConfName"></el-input>
         </el-form-item>
-<!--        <el-form-item label="分析方法" required>-->
-<!--          <el-select v-model="form.type" 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.valueOf()}}</el-alert>
         <el-form-item label="方法和字段要求" required>
-          <text>皮尔森相关系数需要两个int/double字段,散点图可以传入2-3个字段,其他的方法只需一个字段。除了数据分布可以传入string字段,其他方法请传入int/double字段</text>
+          <text>皮尔森相关系数需要2个int/double字段,散点图可以传入2个字段,其他的方法只需一个字段。除了数据分布可以传入string字段,其他方法请传入int/double字段</text>
         </el-form-item>
         <el-form-item label="已选择字段" required>
           <el-table :data="selectData" border class="table"  header-cell-class-name="table-header" >
@@ -80,54 +71,12 @@
       </template>
     </el-dialog>
 
-    <!--数理函数分析结果-->
-    <el-dialog title="数理函数分析结果" v-model="resultVisible" width="50%">
-      <el-form label-width="120px">
-        <el-form-item label="分析方法" required>
-            {{ AnalysisMethodName[parseInt(form.type)-1] }}
-        </el-form-item>
-        <el-form-item label="已选择字段" required>
-          <el-table :data="selectData" border class="table"  header-cell-class-name="table-header" >
-            <el-table-column label="字段名">
-              <template #default="scope"><span>{{ scope.row.fieldName }}</span></template>
-            </el-table-column>
-          </el-table>
-        </el-form-item>
-        <el-form-item label="分析结果" required>
-          <el-table :data="analysisData" border class="table"  header-cell-class-name="table-header" >
-            <el-table-column label="分析指标" prop="attribute">
-              <template #default="scope"><span>{{ scope.row.attribute }}</span></template>
-            </el-table-column>
-            <el-table-column label="指标数值" prop="value">
-              <template #default="scope"><span>{{ scope.row.value }}</span></template>
-            </el-table-column>
-          </el-table>
-        </el-form-item>
-      </el-form>
-      <template #footer>
-                <span class="dialog-footer">
-                    <el-button @click="resultVisible = false">取 消</el-button>
-                </span>
-      </template>
-    </el-dialog>
-
     <el-dialog title="新建AI模型配置" v-model="configCreate" width="50%">
       <el-form label-width="120px">
         <el-form-item label="配置名" required>
           <el-input v-model="form.name"></el-input>
         </el-form-item>
-<!--        <el-form-item label="模型类别" required>-->
-<!--          <el-select v-model="form.type" placeholder="模型类别" class="handle-select mr10" @change="selectModelTypeChange">-->
-<!--            <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="K-均值" value="5"></el-option>-->
-<!--            <el-option key="6" label="多层感知器分类器" value="6"></el-option>-->
-<!--            <el-option key="7" label="朴素贝叶斯" value="7"></el-option>-->
-<!--            <el-option key="8" label="随机森林回归" value="8"></el-option>-->
-<!--          </el-select>-->
-<!--        </el-form-item>-->
+
         <el-form-item label="模型类别" required>
           <el-select v-model="form.type" placeholder="学习类型" class="handle-select mr10">
             <el-option key="1" label="监督学习" value="SUPERVISED_LEARNING"></el-option>
@@ -146,13 +95,6 @@
             </el-table-column>
           </el-table>
         </el-form-item>
-<!--        <el-form-item label="标签字段" v-if="labelTip===1">-->
-<!--          <el-table :data="selectData" border class="table" header-cell-class-name="table-header">-->
-<!--            <el-table-column label="字段名">-->
-<!--              <template #default="scope"><span>{{ scope.row.fieldName }}</span></template>-->
-<!--            </el-table-column>-->
-<!--          </el-table>-->
-<!--        </el-form-item>-->
 
       </el-form>
       <template #footer>
@@ -168,10 +110,9 @@
 <script>
 import {ref, reactive} from "vue";
 import { ElMessage, ElMessageBox } from "element-plus";
-import {getFileDetail} from "../../api/file";
+import {getFileDescribe, getFileDetail} from "../../api/file";
 import {useRoute}from "vue-router";
 import {useRouter}from "vue-router";
-import { toRaw } from '@vue/reactivity'
 import {addConfig,getFeatureSelection} from "../../api/config";
 import {addAnalysisConfig} from "../../api/analysisConfig";
 
@@ -202,39 +143,24 @@ export default {
 
     // 获取表格数据
     const getData = () => {
-      console.log('555')
       const route=useRoute()
       if(route.query.fileId!=null) {
         const payload ={
           fileInfoId: route.query.fileId,
           userId: 1
         }
-        console.log('555')
         getFileDetail(payload).then(res => {
           tableData.value = res.result.fileFields;
           fileId=route.query.fileId
         })
-
+        // getFileDescribe(payload).then(res=>{
+        //   console.log("describe: "+JSON.stringify(res.result))
+        // })
       }
 
     };
     getData();
 
-    const getFeature=()=>{
-      if(selectData.value.length===0){ElMessage.error("请先选择目标字段");return;}
-      if(selectData.value.length>1){ElMessage.error("目标字段仅可选择一个");return;}
-      getFeatureSelection({"fileId":fileId,"fieldName":selectData.value[0].fieldName}).then(
-          res=>{
-            console.log(res)
-            res=res.data
-            for(let i=0;i<res.length;i++){
-              selectData.value.unshift(res[i])
-            }
-            createConfig()
-          }
-
-      )
-    }
     // 查询操作
     const handleSearch = () => {
       query.pageIndex = 1;
@@ -246,32 +172,15 @@ export default {
       getData();
     };
 
-    // 删除操作
-    const handleDelete = (index) => {
-      // 二次确认删除
-      ElMessageBox.confirm("确定要删除吗?", "提示", {
-        type: "warning",
-      })
-          .then(() => {
-            ElMessage.success("删除成功");
-            tableData.value.splice(index, 1);
-            //todo:
-          })
-          .catch(() => {});
-    };
-
     // 表格编辑时弹窗和保存
     let analysisVisible = ref(false);
     let form = reactive({
       name: "",
       type: "",
       needLabel: "",
-      // classification:"",
-      // feature:"",
     });
     let analysisConfName = ref();
 
-    let idx = -1;
     const handleAnalysis = () => {
       if (selectData.value.length<1){
         ElMessage.warning("至少选择一个字段!");
@@ -299,111 +208,19 @@ export default {
       })
     };
 
-    const changeMethodMsg=(value)=>{
-      console.log(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 startAnalysis = () => {
-      analysisVisible.value = false;
-      //todo: 数理分析相关
-
-      console.log(form.type);
-      console.log(toRaw(selectData.value));
-      let selectList=[];
-      let fieldIds=[];
-      for (var i=0; i<selectData.value.length;i++){
-        //selectList.push(JSON.parse(JSON.stringify(selectData.value[i])))
-        fieldIds.push(selectData.value[i].id);
-        //console.log(selectData.value[i].id)
-        //console.log(selectData.value[i])
-        //console.log(JSON.parse(JSON.stringify(selectData.value[i])))
-      }
-      //console.log(selectList)
-      console.log(fieldIds);
-      if (form.type=="1"||form.type=="2"){
-        router.push({
-          path:"/FileAnalysis",
-          query:{
-            fieldIds:JSON.stringify(fieldIds),
-            funcId:form.type
-          }
-        });
-        return ;
-      };
-      analysisFile(JSON.stringify(fieldIds),form.type).then(res=>{
-        console.log(res.data)
-        if (res.status!=200){
-          ElMessageBox.confirm("分析产生错误,请检查您的分析方法和字段选择是否合理", "错误", {
-            type: "error",
-          })
-              .then(()=>{
-
-              })
-              .catch(() => {});
-        }else{
-          analysisData.length=0
-          console.log(form.type);
-          switch (form.type){
-            case "1":
-              break;
-            case "2":
-              break;
-            case "3":
-              analysisData.push({attribute:"最大值",value:res.data.frame_index.max});
-              analysisData.push({attribute:"方差",value:res.data.frame_index.variance});
-              analysisData.push({attribute:"平均值",value:res.data.frame_index.mean});
-              analysisData.push({attribute:"标准方差",value:res.data.frame_index.stddev});
-              console.log(analysisData)
-              break;
-            case "4":
-              analysisData.push({attribute:"偏度",value:res.data[fieldIds[0]].skewness});
-              analysisData.push({attribute:"峰度",value:res.data[fieldIds[0]].kurtosis});
-              console.log(analysisData)
-              break;
-            case "5":
-              analysisData.push({attribute:"皮尔森相关系数",value:res.data.Corr});
-              console.log(analysisData)
-              break;
-          }
-
-          resultVisible.value=true;
-        }
-      });
-
-    };
     let resultVisible= ref(false);
     let featureTip=ref(0);
     let labelTip = ref(0);
 
-    const selectModelTypeChange=(selectValue)=>{
-      if(selectValue==="8")featureTip.value=2;
-      else featureTip.value=1;
-    }
-    // const selectLabelChange=(selectValue)=>{
-    //   if(selectValue === "SUPERVISED_LEARNING") labelTip.value=1;
-    //   else labelTip.value=2;
-    // }
     const configCreate = ref(false);
     const createConfig =() => {
       if (selectData.value.length<=1){
         ElMessage.warning("至少选择两个字段!");
         return ;
       }
-      const fieldTable = ref(null)
       configCreate.value = true;
     };
     const saveConfig=()=>{
-      const route=useRoute()
       const payload={
         fileInfoId:selectData.value[0].fileInfoId,
         userId:1,
@@ -447,23 +264,17 @@ export default {
       configCreate,
       createConfig,
       saveConfig,
-      getFeature,
       selectData,
       analysisData,
       featureTip,
       labelTip,
       methodMsg,
-      selectModelTypeChange,
       getData,
-      //selectLabelChange,
       createAnalysisConfig,
       handleSelectChange,
       handleSearch,
       handlePageChange,
-      handleDelete,
       handleAnalysis,
-      startAnalysis,
-      changeMethodMsg,
       handleFileSelect,
     };
   },