Browse Source

修改部分ui

chillqi 3 years ago
parent
commit
3fedf1b663

+ 1 - 1
src/api/_prefix.js

@@ -5,7 +5,7 @@ export const API_MODULE = '/api'
 export const USER_MODULE= `${API_MODULE}/user`
 //文件模块
 export const FILE_MODULE= `${API_MODULE}/files`
-export const SQUARE_MODULE= `${API_MODULE}/square`
+export const SQUARE_MODULE= `${API_MODULE}/squares`
 //ml模块
 export const ML_MODULE= `${API_MODULE}/ml`
 export const CONFIG_MODULE = `${ML_MODULE}/configs`

+ 2 - 7
src/api/file.js

@@ -61,6 +61,7 @@ export const GetAllFile = userId => {
  * @returns
  */
 export const getFileDetail = payload => {
+    console.log(payload)
     const {fileInfoId, userId} = payload;
     return axios.get(`${FILE_MODULE}/${fileInfoId}`,{
         params:{
@@ -69,9 +70,6 @@ export const getFileDetail = payload => {
     }).then( res => {
         return res;
     })
-    // return axios.get(`${MOCK}/files/:fileInfoId`).then( res => {
-    //     return res;
-    // })
 }
 
 /**
@@ -83,9 +81,6 @@ export const deleteFile = fileId => {
     return axios.delete(`${FILE_MODULE}/${fileId}`).then( res => {
         return res;
     });
-    // return axios.delete(`${MOCK}/files/:fileInfoId`).then( res => {
-    //     return res;
-    // });
 }
 
 /**
@@ -110,8 +105,8 @@ export const analysisFile = (fieldIds,funcId) => {
 
 /**
  *  获得文件描述信息 GET /get/detail
- * @param {*} fileId 文件Id
  * @returns
+ * @param payload
  */
 export const getFileDescribe = payload => {
     const {fileInfoId, userId} = payload;

+ 4 - 4
src/api/square.js

@@ -23,10 +23,10 @@ export const sharedModelList = userId => {
     )
 }
 
-export const shareFile = (userId,fileId) => {
-    return axios.post(`${SQUARE_MODULE}/shareFile`, {
-        userId, fileId
-    }).then( res => {
+export const shareFile = payload => {
+    const {userId, fileId} = payload;
+    console.log(typeof payload.userId)
+    return axios.post(`${SQUARE_MODULE}/shareFile?userId=${userId}&fileId=${fileId}`).then( res => {
         return res;
     });
 }

+ 10 - 10
src/router/index.js

@@ -169,16 +169,16 @@ router.beforeEach((to, from, next) => {
     document.title = `${to.meta.title} | vue-manage-system`;
     const role = localStorage.getItem('ms_username');
 
-    // if (!role && to.path !== '/login') {
-    //     next('/login');
-    // } else if (to.meta.permission) {
-    //     // 如果是管理员权限则可进入,这里只是简单的模拟管理员权限而已
-    //     role === 'admin'
-    //         ? next()
-    //         : next('/403');
-    // } else {
-    //     next();
-    // }
+    if (!role && to.path !== '/login') {
+        next('/login');
+    } else if (to.meta.permission) {
+        // 如果是管理员权限则可进入,这里只是简单的模拟管理员权限而已
+        role === 'admin'
+            ? next()
+            : next('/403');
+    } else {
+        next();
+    }
     next();
 });
 

+ 10 - 4
src/views/Square.vue

@@ -7,7 +7,7 @@
         </div>
 
         <el-tabs type="border-card" class="main">
-            <el-tab-pane label="共享文件">
+            <el-tab-pane label="文件广场">
                 <div v-for="index in sharedFileList" :key="index.id">
                     <el-card shadow="hover"
                              style="margin-bottom: 10px; border-radius: 5px; border-color: #606266; color: #606266">
@@ -46,12 +46,15 @@
                             <el-table-column label="数据类型">
                                 <template #default="scope">{{ scope.row.dataType }}</template>
                             </el-table-column>
+                            <el-table-column label="众数">
+                                <template #default="scope">{{ scope.row.majority }}</template>
+                            </el-table-column>
                         </el-table>
                     </el-card>
                 </div>
             </el-tab-pane>
 
-            <el-tab-pane label="共享模型">
+            <el-tab-pane label="模型广场">
                 <div v-for="index in sharedModelList" :key="index.id">
                     <el-card shadow="hover"
                              style="margin-bottom: 10px; border-radius: 5px; border-color: #606266; color: #606266">
@@ -122,6 +125,9 @@
                             <el-table-column label="数据类型">
                                 <template #default="scope">{{ scope.row.dataType }}</template>
                             </el-table-column>
+                            <el-table-column label="众数">
+                                <template #default="scope">{{ scope.row.majority }}</template>
+                            </el-table-column>
                         </el-table>
                     </el-card>
                 </div>
@@ -276,7 +282,6 @@
                 }).then(res => {
                     this.sharedFileList = res.list;
                 })
-
             },
 
             getSharedModelList() {
@@ -285,9 +290,10 @@
                 }).then(res => {
                     this.sharedModelList = res.list;
                 })
-
             },
 
+
+
             handleCollectFile(fileId) {
 
             },

+ 23 - 13
src/views/file/FileDetail.vue

@@ -3,7 +3,7 @@
     <div class="crumbs">
       <el-breadcrumb separator="/">
         <el-breadcrumb-item  :to="{ path: '/fileList' }">
-          <i class="el-icon-lx-file"></i> 我的文件
+          <i class="el-icon-lx-file"></i> 文件列表
         </el-breadcrumb-item>
         <el-breadcrumb-item>
           <i class="el-icon-lx-cascades"></i> 文件详情
@@ -12,14 +12,13 @@
     </div>
     <div class="container">
       <div class="handle-box">
-        <el-button plain icon="el-icon-lx-file" @click="handleFileSelect" >选择文件</el-button>
+        <el-button type="success" size="small" icon="el-icon-plus" @click="handleAnalysis">统计分析配置</el-button>
 
-        <el-button type="success" icon="el-icon-plus" @click="handleAnalysis">统计分析配置</el-button>
+        <el-button type="primary" size="small" icon="el-icon-plus" @click="createConfig">AI模型配置</el-button>
 
-        <el-button type="primary" icon="el-icon-plus" @click="createConfig">AI模型配置</el-button>
-
-        <el-button type="primary" icon="el-icon-thumb" @click="getFeature">自动特征选择</el-button>
+        <el-button type="primary" size="small" @click="getFeature">自动特征选择</el-button>
 
+        <el-button type="primary" size="small" @click="handleAnalysisByHand">文件分析</el-button>
       </div>
 
       <el-table :data="tableData"
@@ -39,7 +38,10 @@
           <template #default="scope">{{ scope.row.dataType }}</template>
         </el-table-column>
         <el-table-column label="空值率">
-          <template #default="scope">{{ scope.row.nullRate }}</template>
+          <template #default="scope">{{ handleNullRate(scope.row.nullRate) }}</template>
+        </el-table-column>
+        <el-table-column label="众数">
+          <template #default="scope">{{ scope.row.majority }}</template>
         </el-table-column>
       </el-table>
       <div class="pagination">
@@ -139,11 +141,6 @@ export default {
     let analysisData=reactive([])
     const pageTotal = ref(0);
 
-    //跳转到文件列表
-    const handleFileSelect=()=>{
-      router.push('/fileList')
-    }
-
     // 获取表格数据
     const getData = () => {
       const route=useRoute()
@@ -261,10 +258,22 @@ export default {
         else ElMessage.error(`生成配置失败`+res.msg);
       })
     }
+
     const handleSelectChange=val=>{
       selectData.value=val;
     };
 
+    const handleAnalysisByHand=()=>{
+      getFileDescribe(fileId, localStorage.getItem("ms_userId"))
+        .then(res=>{
+          getData();
+        })
+    };
+
+    const handleNullRate=(val)=>{
+      return val + "%";
+    };
+
     return {
       query,
       AnalysisMethodName,
@@ -288,7 +297,8 @@ export default {
       handleSearch,
       handlePageChange,
       handleAnalysis,
-      handleFileSelect,
+      handleNullRate,
+      handleAnalysisByHand
     };
   },
 };

+ 18 - 25
src/views/file/FileList.vue

@@ -8,7 +8,7 @@
 
     <div class="container">
       <router-link to="/upload">
-        <el-button type="primary" size="large">上传文件</el-button>
+        <el-button type="primary" size="medium">添加文件</el-button>
       </router-link>
 
       <el-table
@@ -18,21 +18,19 @@
 
             <el-table-column label="文件名">
               <template #default="scope">
-                <span class="message-title">{{scope.row.fileName}}</span>
+                <el-button type="text" class="message-title" @click="handleFileDetail(scope.row.id)">
+                  {{scope.row.fileName}}</el-button>
               </template>
             </el-table-column>
 
             <el-table-column width="300" label="操作">
               <template #default="scope">
-                <!----------------------------todo------------------------------->
-                <!----------------------------获取文件详细信息、跳转到响应页面;删除文件------------------------------->
                 <div style="display:flex; width: 100%;">
-                  <el-button size="small" style="margin-right: 10px"
+                  <el-button type="text" style="margin-right: 10px"
                              @click="handleFileDetail(scope.row.id)">查看</el-button>
-                  <el-button size="small" type="warning" style="margin-right: 10px"
+                  <el-button type="text" style="margin-right: 10px; color: #e6a23c"
                              @click="handleShareDialog(scope.row.id);shareDialogVisible=true">分享</el-button>
-                  <!--  scope.$index 是数组下标,这里再传一个fileId             handleFileDelete(scope.$index,scope.row.fileId)   -->
-                  <el-button size="small" type="danger"
+                  <el-button type="text" style="color: red"
                              @click="handleDeleteDialog(scope.row.id);deleteDialogVisible=true">删除</el-button>
                 </div>
               </template>
@@ -49,10 +47,10 @@
       <span>确认要共享该文件到广场吗?</span>
       <template #footer>
       <span class="dialog-footer">
-        <el-button @click="shareDialogVisible = false;">
-          取消
+        <el-button @click="shareDialogVisible = false;" size="medium">
+          再想想
         </el-button>
-        <el-button type="warning" @click="shareDialogVisible = false;handleFileShare()">
+        <el-button type="warning" @click="shareDialogVisible = false;handleFileShare()" size="medium">
           确认
         </el-button>
       </span>
@@ -68,10 +66,10 @@
       <span>确认要删除该文件吗?</span>
       <template #footer>
       <span class="dialog-footer">
-        <el-button @click="deleteDialogVisible = false;toDeleteFileId=0;">
-          取消
+        <el-button @click="deleteDialogVisible = false;toDeleteFileId=0;" size="medium">
+          再想想
         </el-button>
-        <el-button type="danger" @click="deleteDialogVisible = false;toDeleteFileId=0;handleFileDelete()">
+        <el-button type="danger" @click="deleteDialogVisible = false;toDeleteFileId=0;handleFileDelete()" size="medium">
           确认
         </el-button>
       </span>
@@ -98,13 +96,6 @@ export default {
     let userId = localStorage.getItem("ms_userId");
     let state = reactive({
       fileList: [],
-      picList:[
-        {
-          date: "2018-04-19 20:00:00",
-          picId: "1",
-          picName:"图片1"
-        }
-      ],
     });
     let shareDialogVisible=ref(false);
     let toShareFileId=ref(0);
@@ -116,9 +107,7 @@ export default {
     const getFileList=(userId)=>{
       GetAllFile(userId).then(res=>{
         if(res.msg === '成功'){
-          console.log(res)
           state.fileList=res.result;
-          console.log(state.fileList)
         }
         else{
           console.log("getFileList Error!");
@@ -144,7 +133,12 @@ export default {
     }
 
     const handleFileShare = ()=>{
-      shareFile(toShareFileId).then(res=>{
+      const payload ={
+        userId: localStorage.getItem("ms_userId"),
+        fileId: toShareFileId
+      }
+      shareFile(payload).then(res=>{
+        console.log(res);
         if(res.msg === '成功'){
           ElMessage.success("分享成功!")
           getFileList(userId);
@@ -162,7 +156,6 @@ export default {
 
     //删除对应文件
     const handleFileDelete = () => {
-      console.log("fileId:"+toDeleteFileId)
       deleteFile(toDeleteFileId).then(res=>{
         if(res.msg === '成功'){
           ElMessage.success("删除成功!")

+ 3 - 1
src/views/ml/ModelList.vue

@@ -62,7 +62,9 @@
             <div v-else>
               <el-button type="text" style="color: gray">暂未成功训练</el-button>
             </div>
-            <el-button type="text" class="yellow" @click="handleShare(scope.$index, scope.row)">分享</el-button>
+            <div>
+              <el-button type="text" class="yellow" @click="handleShare(scope.$index, scope.row)">分享</el-button>
+            </div>
             <el-button type="text" class="red" @click="handleDelete(scope.$index, scope.row)">删除</el-button>
           </template>
         </el-table-column>

+ 17 - 12
src/views/user/Login.vue

@@ -7,8 +7,8 @@
             v-if="this.loginOrRegister === 0">
                 <el-form-item prop="organization">
                     <el-select v-model="param.organization" placeholder="请选择机构" style="width: 300px">
-                        <el-option value="1" label="南京大学软件学院"></el-option>
-                        <el-option value="2" label="南京大学商学院"></el-option>
+                        <el-option value="南京大学软件学院" label="南京大学软件学院"></el-option>
+                        <el-option value="南京大学商学院" label="南京大学商学院"></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item prop="username">
@@ -109,26 +109,35 @@ export default {
         };
 
         const submitLoginForm = () => {
+           if (param.organization === "" || param.userName === "" || param.password === "") {
+               ElMessage.warning("信息尚未填写完整");
+               return;
+           }
            login(param).then(res => {
                if (res.msg === '成功') {
-                   ElMessage.success("登录成功");
                    localStorage.setItem("ms_username", param.userName);
                    localStorage.setItem("ms_userId", res.result.id);
+                   ElMessage.success("登录成功,欢迎进入AI系统");
                    router.push("/fileList");
                } else {
-                   ElMessage.success("登录失败");
+                   ElMessage.error("信息错误,登录失败");
                }
            })
         };
 
         const submitRegisterForm = () => {
+            if (param.organization === "" || param.userName === "" || param.password === "") {
+                ElMessage.warning("信息尚未填写完整");
+                return;
+            }
             register(param).then(res => {
                 if (res.msg === '成功') {
-                    ElMessage.success("注册成功");
                     localStorage.setItem("ms_username", param.userName);
-                    router.push("/");
+                    localStorage.setItem("ms_userId", res.result.id);
+                    ElMessage.success("注册成功,欢迎进入AI系统");
+                    router.push("/fileList");
                 } else {
-                    ElMessage.success("注册失败");
+                    ElMessage.error("用户名已存在,注册失败");
                 }
             })
         };
@@ -139,7 +148,7 @@ export default {
         return {
             param,
             rules,
-            //login,
+
             submitLoginForm,
             submitRegisterForm
         };
@@ -150,10 +159,6 @@ export default {
             loginOrRegister: 0
         }
     },
-
-    methods: {
-
-    }
 };
 
 </script>