Browse Source

优化生成模型部分

191250061 4 years ago
parent
commit
ac3e6cd029
3 changed files with 325 additions and 246 deletions
  1. 2 2
      package.json
  2. 228 228
      src/api/config.js
  3. 95 16
      src/views/ConfigDetail.vue

+ 2 - 2
package.json

@@ -22,8 +22,8 @@
     "wangeditor": "^4.7.4"
   },
   "devDependencies": {
-    "vite": "2.3.7",
-    "@vue/compiler-sfc": "^3.1.2"
+    "@vue/compiler-sfc": "^3.1.2",
+    "vite": "2.3.7"
   },
   "browserslist": [
     "> 1%",

+ 228 - 228
src/api/config.js

@@ -31,146 +31,146 @@ export const getAllConfig = payload => {
   const {uid} = payload;
   console.log("payload",payload);
   console.log("uid",uid);
-  return axios.get(`${CONFIG_MODULE}/get/all?userId=${uid}`).then(res => {
-
-    return res.data;
-  });
-  // return Promise.resolve({
-  //   "timestamp": 1649419361037,
-  //   "status": 200,
-  //   "data": [
-  //     {
-  //       "fileId": "1",
-  //       "fileName": "event_data",
-  //       "configId": "1",
-  //       "modelTypeId": "2",
-  //       "modelTypeName": "决策树",
-  //       "confName": "config1",
-  //       "featureList": [
-  //         {
-  //           "id": 105,
-  //           "fileInfoId": 1,
-  //           "fieldName": "road",
-  //           "aliasName": "",
-  //           "fieldDes": "",
-  //           "nullsRatio": 0.0,
-  //           "conOrDis": 0,
-  //           "fieldType": "string",
-  //           "valueInfo": "[\"R\",\"L\"]"
-  //         },
-  //         {
-  //           "id": 106,
-  //           "fileInfoId": 1,
-  //           "fieldName": "lane",
-  //           "aliasName": "",
-  //           "fieldDes": "",
-  //           "nullsRatio": 0.0,
-  //           "conOrDis": 0,
-  //           "fieldType": "string",
-  //           "valueInfo": "[\"r\",\"m\",\"l\"]"
-  //         },
-  //         {
-  //           "id": 107,
-  //           "fileInfoId": 1,
-  //           "fieldName": "vehicle_class",
-  //           "aliasName": "",
-  //           "fieldDes": "",
-  //           "nullsRatio": 0.0,
-  //           "conOrDis": 0,
-  //           "fieldType": "string",
-  //           "valueInfo": "[\"car\",\"truck\",\"bus\"]"
-  //         },
-  //         {
-  //           "id": 110,
-  //           "fileInfoId": 1,
-  //           "fieldName": "duration",
-  //           "aliasName": "",
-  //           "fieldDes": "",
-  //           "nullsRatio": 0.0,
-  //           "conOrDis": 0,
-  //           "fieldType": "string",
-  //           "valueInfo": "[\"48,60\",\"24,36\",\"36,48\",\"12,24\",\"0,12\"]"
-  //         },
-  //         {
-  //           "id": 109,
-  //           "fileInfoId": 1,
-  //           "fieldName": "event_type",
-  //           "aliasName": "",
-  //           "fieldDes": "",
-  //           "nullsRatio": 0.0,
-  //           "conOrDis": 0,
-  //           "fieldType": "string",
-  //           "valueInfo": "[\"cruise\",\"overdrive\"]"
-  //         }
-  //       ]
-  //     },
-  //     {
-  //       "fileId": "1",
-  //       "fileName": "event_data",
-  //       "configId": "3",
-  //       "modelTypeId": "9",
-  //       "modelTypeName": "K-均值",
-  //       "confName": "Kmeans-Test",
-  //       "featureList": [
-  //         {
-  //           "id": 105,
-  //           "fileInfoId": 1,
-  //           "fieldName": "road",
-  //           "aliasName": "",
-  //           "fieldDes": "",
-  //           "nullsRatio": 0.0,
-  //           "conOrDis": 0,
-  //           "fieldType": "string",
-  //           "valueInfo": "[\"R\",\"L\"]"
-  //         },
-  //         {
-  //           "id": 106,
-  //           "fileInfoId": 1,
-  //           "fieldName": "lane",
-  //           "aliasName": "",
-  //           "fieldDes": "",
-  //           "nullsRatio": 0.0,
-  //           "conOrDis": 0,
-  //           "fieldType": "string",
-  //           "valueInfo": "[\"r\",\"m\",\"l\"]"
-  //         },
-  //         {
-  //           "id": 107,
-  //           "fileInfoId": 1,
-  //           "fieldName": "vehicle_class",
-  //           "aliasName": "",
-  //           "fieldDes": "",
-  //           "nullsRatio": 0.0,
-  //           "conOrDis": 0,
-  //           "fieldType": "string",
-  //           "valueInfo": "[\"car\",\"truck\",\"bus\"]"
-  //         },
-  //         {
-  //           "id": 110,
-  //           "fileInfoId": 1,
-  //           "fieldName": "duration",
-  //           "aliasName": "",
-  //           "fieldDes": "",
-  //           "nullsRatio": 0.0,
-  //           "conOrDis": 0,
-  //           "fieldType": "string",
-  //           "valueInfo": "[\"48,60\",\"24,36\",\"36,48\",\"12,24\",\"0,12\"]"
-  //         },
-  //         {
-  //           "id": 109,
-  //           "fileInfoId": 1,
-  //           "fieldName": "event_type",
-  //           "aliasName": "",
-  //           "fieldDes": "",
-  //           "nullsRatio": 0.0,
-  //           "conOrDis": 0,
-  //           "fieldType": "string",
-  //           "valueInfo": "[\"cruise\",\"overdrive\"]"
-  //         }
-  //       ]
-  //     }
-  //   ]
-  // })
+  // return axios.get(`${CONFIG_MODULE}/get/all?userId=${uid}`).then(res => {
+  //
+  //   return res.data;
+  // });
+  return Promise.resolve({
+    "timestamp": 1649419361037,
+    "status": 200,
+    "data": [
+      {
+        "fileId": "1",
+        "fileName": "event_data",
+        "configId": "1",
+        "modelTypeId": "2",
+        "modelTypeName": "决策树",
+        "confName": "config1",
+        "featureList": [
+          {
+            "id": 105,
+            "fileInfoId": 1,
+            "fieldName": "road",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"R\",\"L\"]"
+          },
+          {
+            "id": 106,
+            "fileInfoId": 1,
+            "fieldName": "lane",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"r\",\"m\",\"l\"]"
+          },
+          {
+            "id": 107,
+            "fileInfoId": 1,
+            "fieldName": "vehicle_class",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"car\",\"truck\",\"bus\"]"
+          },
+          {
+            "id": 110,
+            "fileInfoId": 1,
+            "fieldName": "duration",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"48,60\",\"24,36\",\"36,48\",\"12,24\",\"0,12\"]"
+          },
+          {
+            "id": 109,
+            "fileInfoId": 1,
+            "fieldName": "event_type",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"cruise\",\"overdrive\"]"
+          }
+        ]
+      },
+      {
+        "fileId": "1",
+        "fileName": "event_data",
+        "configId": "3",
+        "modelTypeId": "9",
+        "modelTypeName": "K-均值",
+        "confName": "Kmeans-Test",
+        "featureList": [
+          {
+            "id": 105,
+            "fileInfoId": 1,
+            "fieldName": "road",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"R\",\"L\"]"
+          },
+          {
+            "id": 106,
+            "fileInfoId": 1,
+            "fieldName": "lane",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"r\",\"m\",\"l\"]"
+          },
+          {
+            "id": 107,
+            "fileInfoId": 1,
+            "fieldName": "vehicle_class",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"car\",\"truck\",\"bus\"]"
+          },
+          {
+            "id": 110,
+            "fileInfoId": 1,
+            "fieldName": "duration",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"48,60\",\"24,36\",\"36,48\",\"12,24\",\"0,12\"]"
+          },
+          {
+            "id": 109,
+            "fileInfoId": 1,
+            "fieldName": "event_type",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"cruise\",\"overdrive\"]"
+          }
+        ]
+      }
+    ]
+  })
 }
 
 //   console.log("uid",uid);
@@ -257,94 +257,94 @@ export const getOneConfig = payload => {
   const { configId } = payload;
   console.log("configId",configId);
   console.log("payload",payload);
-  return axios.get(`${CONFIG_MODULE}/get/one/config?configId=${configId}`).then(res => {
-
-    return res.data;});
-    // return Promise.resolve({
-    //   "timestamp": 1649473724362,
-    //   "status": 200,
-    //   "data": {
-    //     "configId": "1",
-    //     "modelTypeId": "6",
-    //     "modelTypeName": "多层感知器分类器",
-    //     "modelDes": "",
-    //     "modelDetileDes": "",
-    //     "featureList": [
-    //       {
-    //         "id": 105,
-    //         "fileInfoId": 1,
-    //         "fieldName": "road",
-    //         "aliasName": "",
-    //         "fieldDes": "",
-    //         "nullsRatio": 0.0,
-    //         "conOrDis": 0,
-    //         "fieldType": "string",
-    //         "valueInfo": "[\"R\",\"L\"]"
-    //       },
-    //       {
-    //         "id": 106,
-    //         "fileInfoId": 1,
-    //         "fieldName": "lane",
-    //         "aliasName": "",
-    //         "fieldDes": "",
-    //         "nullsRatio": 0.0,
-    //         "conOrDis": 0,
-    //         "fieldType": "string",
-    //         "valueInfo": "[\"r\",\"m\",\"l\"]"
-    //       },
-    //       {
-    //         "id": 107,
-    //         "fileInfoId": 1,
-    //         "fieldName": "vehicle_class",
-    //         "aliasName": "",
-    //         "fieldDes": "",
-    //         "nullsRatio": 0.0,
-    //         "conOrDis": 0,
-    //         "fieldType": "string",
-    //         "valueInfo": "[\"car\",\"truck\",\"bus\"]"
-    //       },
-    //       {
-    //         "id": 110,
-    //         "fileInfoId": 1,
-    //         "fieldName": "duration",
-    //         "aliasName": "",
-    //         "fieldDes": "",
-    //         "nullsRatio": 0.0,
-    //         "conOrDis": 0,
-    //         "fieldType": "string",
-    //         "valueInfo": "[\"48,60\",\"24,36\",\"36,48\",\"12,24\",\"0,12\"]"
-    //       },
-    //       {
-    //         "id": 109,
-    //         "fileInfoId": 1,
-    //         "fieldName": "event_type",
-    //         "aliasName": "",
-    //         "fieldDes": "",
-    //         "nullsRatio": 0.0,
-    //         "conOrDis": 0,
-    //         "fieldType": "string",
-    //         "valueInfo": "[\"cruise\",\"overdrive\"]"
-    //       }
-    //     ],
-    //     "modelInfos": [
-    //       {
-    //         "modelName": "event_data",
-    //         "modelDetailName": "DecisionTree",
-    //         "trainedStatus": 1
-    //       },
-    //       {
-    //         "modelName": "event_data2",
-    //         "modelDetailName": "DecisionTree",
-    //         "trainedStatus": -1
-    //       },
-    //       {
-    //         "modelName": "event_data3",
-    //         "modelDetailName": "MultilayerPerceptronClassifier",
-    //         "trainedStatus": -1
-    //       }
-    //     ]
-    //   }
-    // });
+  // return axios.get(`${CONFIG_MODULE}/get/one/config?configId=${configId}`).then(res => {
+  //
+  //   return res.data;});
+    return Promise.resolve({
+      "timestamp": 1649473724362,
+      "status": 200,
+      "data": {
+        "configId": "1",
+        "modelTypeId": "6",
+        "modelTypeName": "多层感知器分类器",
+        "modelDes": "",
+        "modelDetileDes": "",
+        "featureList": [
+          {
+            "id": 105,
+            "fileInfoId": 1,
+            "fieldName": "road",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"R\",\"L\"]"
+          },
+          {
+            "id": 106,
+            "fileInfoId": 1,
+            "fieldName": "lane",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"r\",\"m\",\"l\"]"
+          },
+          {
+            "id": 107,
+            "fileInfoId": 1,
+            "fieldName": "vehicle_class",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"car\",\"truck\",\"bus\"]"
+          },
+          {
+            "id": 110,
+            "fileInfoId": 1,
+            "fieldName": "duration",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"48,60\",\"24,36\",\"36,48\",\"12,24\",\"0,12\"]"
+          },
+          {
+            "id": 109,
+            "fileInfoId": 1,
+            "fieldName": "event_type",
+            "aliasName": "",
+            "fieldDes": "",
+            "nullsRatio": 0.0,
+            "conOrDis": 0,
+            "fieldType": "string",
+            "valueInfo": "[\"cruise\",\"overdrive\"]"
+          }
+        ],
+        "modelInfos": [
+          {
+            "modelName": "event_data",
+            "modelDetailName": "DecisionTree",
+            "trainedStatus": 1
+          },
+          {
+            "modelName": "event_data2",
+            "modelDetailName": "DecisionTree",
+            "trainedStatus": -1
+          },
+          {
+            "modelName": "event_data3",
+            "modelDetailName": "MultilayerPerceptronClassifier",
+            "trainedStatus": -1
+          }
+        ]
+      }
+    });
 
 }
 

+ 95 - 16
src/views/ConfigDetail.vue

@@ -98,16 +98,35 @@
               <el-form-item label="模型名称" required>
                 <el-input v-model="form.modelName"></el-input>
               </el-form-item>
-              <el-form-item label="模型类Id" required>
-                <el-input v-model="form.modelTypeId"></el-input>
+              <el-form-item label="MaxIter" v-model="showMaxIter" v-if="showMaxIter===true">
+                <el-input v-model="form.MaxIter"></el-input>
+              </el-form-item>
+              <el-form-item label="RegParam" v-model="showRegParam" v-if="showRegParam===true">
+                <el-input v-model="form.RegParam"></el-input>
+              </el-form-item>
+              <el-form-item label="ElasticNetParam" v-model="showElasticNetParam" v-if="showElasticNetParam===true">
+                <el-input v-model="form.ElasticNetParam"></el-input>
+              </el-form-item>
+              <el-form-item label="Category" v-model="showCategory" v-if="showCategory===true">
+                <el-input v-model="form.Category"></el-input>
+              </el-form-item>
+              <el-form-item label="TrainSetOccupy" v-model="showTrainingSetOccupy" v-if="showTrainingSetOccupy===true">
+                <el-input v-model="form.TrainingSetOccupy"></el-input>
+              </el-form-item>
+              <el-form-item label="DataSetOccupy" v-model="showTrainingDataSetOccupy" v-if="showTrainingSetOccupy===true">
+                <el-input v-model="form.TrainingDataSetOccupy"></el-input>
+              </el-form-item>
+              <el-form-item label="NumOfCluster" v-model="showNumOfCluster" v-if="showNumOfCluster===true">
+                <el-input v-model="form.NumOfCluster"></el-input>
+              </el-form-item>
+              <el-form-item label="Seed" v-model="showSeed" v-if="showSeed===true">
+                <el-input v-model="form.Seed"></el-input>
               </el-form-item>
-
-
 
             </el-form>
             <template #footer>
                 <span class="dialog-footer">
-                    <el-button @click="editVisible = false">取 消</el-button>
+                    <el-button @click="modelVisiable = false">取 消</el-button>
                     <el-button type="primary" @click="saveModel">确 定</el-button>
                 </span>
             </template>
@@ -167,17 +186,77 @@ export default {
 
     const modelData=ref([]);
     const config=ref([]);
+    const route=useRoute()
+    const showMaxIter=ref(false);
+    const showRegParam=ref(false);
+    const showElasticNetParam=ref(false);
+    const showCategory=ref(false);
+    const showTrainingSetOccupy=ref(false);
+    const showTrainingDataSetOccupy=ref(false);
+    const showNumOfCluster=ref(false);
+    const showSeed=ref(false);
+
+    let form = reactive({
+      modelTypeId:"",
+      configId:route.query.configId,
+      fileInfoId:"",
+      modelName:"",
+      MaxIter:"",
+      RegParam:"",
+      ElasticNetParam:"",
+      Category:"",
+      TrainingSetOccupy:"",
+      TrainingDataSetOccupy:"",
+      NumOfCluster:"",
+      Seed:"",
+
+
+
+
+
+    });
     // 获取表格数据
+
     const getData = () => {
-      const route=useRoute()
+
       //todo:调用获取文件具体信息获取字段列表
       // console.log("queryId",route.query.configId);
 
       if(route.query.configId!=null) {
         getOneConfig({configId:route.query.configId}).then(res => {
           // console.log("configdetail",route.query.configId);
+
           config.value=res.data;
-          console.log("config",config);
+          form.modelTypeId=config.value.modelTypeId;
+          console.log("modelId",config.value.modelTypeId);
+
+          switch (config.value.modelTypeId){
+            case '1':
+              showMaxIter.value=true;
+              showRegParam.value=true;
+              showElasticNetParam.value=true;
+              break;
+            case '2':
+              showCategory.value=true;
+              showTrainingSetOccupy.value=true;
+              break;
+            case '3'||'4':
+              showMaxIter.value=true;
+              showRegParam.value=true;
+              showElasticNetParam.value=true;
+              break;
+            case '6'||'7'||'8':
+              showCategory.value=true;
+              showTrainingDataSetOccupy.value=true;
+              break;
+            case '9':
+              showNumOfCluster.value=true;
+              showSeed.value=true;
+
+
+          }
+          console.log("form",form);
+          // console.log("config",config.value.modelTypeId);
           tableData.value = res.data.featureList;
           for (var i = 0; i < tableData.value.length; i++) {
             if (tableData.value[i].conOrDis === 1) {
@@ -215,22 +294,15 @@ export default {
 
 
     // 表格编辑时弹窗和保存
-    const editVisible = ref(false);
-    const route=useRoute()
-    let form = reactive({
-      modelTypeId:"",
-      configId:route.query.configId,
-      fileInfoId:"",
-      modelName:"",
+    const editVisible = ref(true);
 
 
 
-    });
-
     const saveModel = () => {
       modelVisiable.value = false;
       ElMessage.success(`已成功生成模型`);
       //todo: 调用Model相关接口
+      console.log("savemodel",form);
       console.log(form);
 
     };
@@ -261,7 +333,14 @@ export default {
       modelData,
       editVisible,
       form,
+      showMaxIter,
       saveModel,
+      showRegParam,
+      showElasticNetParam,
+      showCategory,
+      showTrainingSetOccupy,
+      showNumOfCluster,
+      showSeed,
       selectData,
       handleSelectChange,
       handleSearch,