HZH 5 years ago
parent
commit
84b7857d7f

+ 18 - 0
src/main/frontend/src/api/user.js

@@ -19,3 +19,21 @@ export function addUser(user) {
         data: user
     }).then(res => res.data)
 }
+
+//修改用户
+export function updateUser(user) {
+    return axios({
+        method: 'post',
+        url: '/user/updatePassword',
+        data: user
+    }).then(res => res.data)
+}
+
+//删除用户
+export function deleteUser(uid) {
+    return axios({
+        method: 'post',
+        url: '/user/deleteStudent',
+        params: {uid: uid}
+    }).then(res => res)
+}

+ 13 - 2
src/main/frontend/src/components/MainPage/AbilityTest.vue

@@ -279,7 +279,8 @@
               {{item.name}}
             </p>
             <br/>
-            <button @click="startTest(item)">马上进入</button>
+            <button @click="startTest(item)" v-if="!item.showReport">马上进入</button>
+            <button @click="checkReport(item)" v-if="item.showReport">查看报告</button>
           </div>
         </div>
       </div>
@@ -297,12 +298,19 @@ export default {
       testState: {
         type: 1
       },
-      paperList: []
+      paperList: [],
     };
   },
   created() {
     getPaperList("1", "").then(data => {
       this.paperList = data;
+      this.paperList.forEach((item) => {
+        checkFirstTest(item.id, this.$store.state.loginUser.id).then(res => {
+          if (res.result) {
+            this.$set(item,'showReport',true);
+          }
+        });
+      })
     });
   },
   methods: {
@@ -316,6 +324,9 @@ export default {
           this.$router.push({ path: "/app/guidePage/" + item.id });
         }
       });
+    },
+    checkReport(item){
+      this.$router.push({ path: "/app/testResult/" + item.id + '/' + this.$store.state.loginUser.id});
     }
   }
 };

+ 88 - 0
src/main/frontend/src/components/TestResult2.vue

@@ -0,0 +1,88 @@
+<style lang="scss" scoped>
+.result{
+  width: 100%;
+  height: 100%;
+  position: relative;
+  .top-part {
+    width: 80%;
+    height: 80px;
+    margin: 0 auto;
+    position: relative;
+    text-align: center;
+    z-index: 4;
+     &>img {
+      width: 180px;
+      height: 70px;
+      position: absolute;
+      left: 0;
+      top: 10px;
+    }
+  }
+  .result-page{
+    width: 100%;
+    height: calc(100% - 80px);
+    background-size: cover;
+    padding: 20px;
+    .ad{
+      font-size: 20px;
+      color: #5F8CDE;
+      text-align: center;
+      margin-top: 40px;
+    }
+  }
+}
+
+.bt-type3{
+  border: solid 1px #27A4D4;
+  background: none;
+  padding: 10px;
+  color: #27A4D4;
+  border-radius: 8px;
+  position: absolute;
+  top:20px;
+  left: 20px;
+}
+</style>
+<template>
+<div class="result">
+    <div class="top-part">
+        <!-- <img src="@/images/index/LOGO.png"> -->
+    </div>
+    <div class="result-page">
+        <Knowledge></Knowledge>
+        <div class="ad">
+          <p>扫码获取精准学习资料</p>
+          <img src="@/images/report/group6Y.png">
+        </div>
+        <button @click="goBack" class="bt-type3">返回主页</button>
+    </div>
+</div>
+</template>
+
+<script>
+import Knowledge from '@/components/report/Knowledge'; 
+
+export default {
+  name: 'TestResult2',
+  components: {
+    Knowledge
+  },
+  data () {
+      return {
+        data: {
+          result: 0,
+          totalScore: 100
+        }
+	    }
+  },
+  created() {
+    this.data.result = this.$route.params.result;
+    this.data.totalScore = this.$route.params.totalScore;
+  },
+  methods: {
+    goBack(){
+      this.$router.replace({path: '/app/mainPage/abilityTest'})
+    }
+  }
+}
+</script>

+ 96 - 10
src/main/frontend/src/components/controlMainPage/UserList.vue

@@ -26,6 +26,19 @@ table{
     float: right;
   }
 }
+.dialog-style{
+  div{
+    text-align: center;
+    margin: 5px;
+    /deep/ .el-input{
+      display: inline-block;
+      width: 200px;
+    }
+  }
+}
+.center-text{
+  text-align: center;
+}
 </style>
 <template>
 <div>
@@ -66,9 +79,9 @@ table{
               <td>{{item.region}}</td>
               <td>{{gradeMap[item.grade]}}</td>
               <td>
-                <a>修改</a>
+                <a @click="passChange = true;changeUser.id = item.id">修改密码</a>
                 &nbsp;&nbsp;
-                <a>删除</a>
+                <a @click="visibleDelete = true;deleteId = item.id">删除</a>
               </td>
             </tr>
         </tbody>
@@ -78,17 +91,67 @@ table{
         title="编辑"
         :visible.sync="dialogVisible"
         width="500px">
-        
+        <div>
+          <label>姓名:</label>
+          <el-input name="name" v-model="user.name" placeholder="请输入姓名" required="required"></el-input>
+        </div>
+        <div>
+          <label>年级:</label>
+          <el-select v-model="user.grade" placeholder="请选择">
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div>
+          <label>手机:</label>
+          <el-input v-model="user.username" placeholder="请输入手机" required="required"></el-input>
+        </div>
+        <div>
+          <label>密码:</label>
+          <el-input placeholder="请输入密码" v-model="user.password" show-password required="required"></el-input>
+        </div>
         <span slot="footer" class="dialog-footer">
             <el-button type="primary" @click="addUser">确 定</el-button>
             <el-button type="primary" @click="dialogVisible = false">取消</el-button>
         </span>
     </el-dialog>
+    <el-dialog
+      title="提示"
+      :visible.sync="visibleDelete"
+      width="200px">
+      <p class="center-text">确认删除?</p>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="visibleDelete = false">取 消</el-button>
+        <el-button type="primary" @click="deleteUser">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      class="dialog-style"
+      title="修改密码"
+      :visible.sync="passChange"
+      width="500px">
+      <div>
+          <label>旧密码:</label>
+          <el-input placeholder="请输入旧密码" v-model="changeUser.oldPass" show-password required="required"></el-input>
+      </div>
+      <div>
+          <label>新密码:</label>
+          <el-input placeholder="请输入新密码" v-model="changeUser.newPass" show-password required="required"></el-input>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="passChange = false">取 消</el-button>
+        <el-button type="primary" @click="updateUser">确 定</el-button>
+      </span>
+    </el-dialog>
 </div>
 </template>
 
 <script>
-import { getUserList } from '@/api/user';
+import { getUserList,addUser,updateUser,deleteUser } from '@/api/user';
 
 export default {
   name: 'UserList',
@@ -96,7 +159,14 @@ export default {
   },
   data () {
       return {
+        user:{},
+        changeUser:{},
         userList:[],
+        search:{
+          name:'',
+          grade:'',
+        },
+        deleteId: -1,
         options: [{
           value: '6X',
           label: '六年级上'
@@ -122,10 +192,6 @@ export default {
           value: '9Y',
           label: '初三下'
         }],
-        search:{
-          name:'',
-          grade:'',
-        },
         gradeMap:{
           '6X':'六年级上',
           '6Y':'六年级下',
@@ -136,7 +202,9 @@ export default {
           '9X':'初三上',
           '9Y':'初三下',
         },
-        dialogVisible:false
+        dialogVisible:false,
+        visibleDelete:false,
+        passChange:false,
       }
   },
   created() {
@@ -149,7 +217,25 @@ export default {
       })
     },
     addUser(){
-
+      addUser(this.user).then((result) => {
+        alert(result.message);
+        this.dialogVisible = false
+        this.searchUser();
+      })
+    },
+    updateUser(){
+      updateUser(this.changeUser).then((result) => {
+        alert(result.message);
+        this.passChange = false
+        this.searchUser();
+      })
+    },
+    deleteUser(){
+      deleteUser(this.deleteId).then((result) => {
+        alert(result?'删除成功':'删除失败');
+        this.visibleDelete = false
+        this.searchUser();
+      })
     }
   }
 }

+ 2 - 1
src/main/frontend/src/components/doTest/doTest.js

@@ -241,7 +241,8 @@ export default {
                 if(res.result == true){
                     this.loading = false;
                     localStorage.removeItem('testPaper%' + this.$store.state.loginUser.id + '%' + this.$route.params.examId);
-                    this.$router.replace({path: '/app/testResult/' + res.t.score + '/' + 100})
+                    // this.$router.replace({path: '/app/testResult/' + res.t.score + '/' + 100})
+                    this.$router.replace({path: '/app/testResult/' + this.$route.params.examId + '/' + this.$store.state.loginUser.id})
                 }
                 else {
                     this.loading = false;

BIN
src/main/frontend/src/images/report/group6Y.png


+ 3 - 2
src/main/frontend/src/router/index.js

@@ -17,7 +17,7 @@ const UserPage = () => import(/* webpackChunkName: "group-mainPage"*/'@/componen
 
 const DoTest = () => import(/* webpackChunkName: "group-doTest"*/'@/components/DoTest');
 const RestPage = () => import(/* webpackChunkName: "group-doTest"*/'@/components/RestPage');
-const TestResult = () => import(/* webpackChunkName: "group-doTest"*/'@/components/TestResult');
+const TestResult = () => import(/* webpackChunkName: "group-doTest"*/'@/components/TestResult2');
 const GuidePage = () => import(/* webpackChunkName: "group-doTest"*/'@/components/GuidePage');
 
 const ControlApp = () => import(/* webpackChunkName: "group-controlApp"*/'@/ControlApp');
@@ -101,7 +101,8 @@ export default new Router({
           name: 'RestPage',
           component: RestPage
         },{
-          path: 'testResult/:result/:totalScore',
+        //   path: 'testResult/:result/:totalScore/:pid/:uid',
+          path: 'testResult/:pid/:uid',
           name: 'TestResult',
           component: TestResult
         }]

File diff suppressed because it is too large
+ 0 - 0
src/main/frontend/static/css/group-controlApp.227dad37.css


File diff suppressed because it is too large
+ 0 - 0
src/main/frontend/static/css/group-controlApp.766a6015.css


File diff suppressed because it is too large
+ 0 - 0
src/main/frontend/static/css/group-doTest.870ad0f1.css


+ 0 - 0
src/main/frontend/static/css/group-mainPage.0f68deb9.css → src/main/frontend/static/css/group-mainPage.9af7a1f8.css


BIN
src/main/frontend/static/img/group6Y.5948c554.png


BIN
src/main/frontend/static/img/resultPageLeft.6cfb02f5.png


+ 1 - 1
src/main/frontend/static/index.html

@@ -31,4 +31,4 @@
           if(window.confirm("您的浏览器版本过低,推荐使用IE10及以上浏览器或者chrome浏览器,点击确定下载chrome安装浏览器。若是360等浏览器,开启兼容模式")){
               window.open("/download/44.0.2403.89_chrome_installer.exe", "_blank");
           }
-      }</script><link href=/css/group-app.000700aa.css rel=prefetch><link href=/css/group-controlApp.227dad37.css rel=prefetch><link href=/css/group-doTest.06b7a58b.css rel=prefetch><link href=/css/group-mainPage.0f68deb9.css rel=prefetch><link href=/js/group-app.24429b9c.js rel=prefetch><link href=/js/group-controlApp.ea98d840.js rel=prefetch><link href=/js/group-doTest.2b7825e2.js rel=prefetch><link href=/js/group-mainPage.7f1d2861.js rel=prefetch><link href=/css/app.e9f156cc.css rel=preload as=style><link href=/css/chunk-vendors.723a90c8.css rel=preload as=style><link href=/js/app.d05f3352.js rel=preload as=script><link href=/js/chunk-vendors.2493bbd2.js rel=preload as=script><link href=/css/chunk-vendors.723a90c8.css rel=stylesheet><link href=/css/app.e9f156cc.css rel=stylesheet></head><body><noscript><strong>We're sorry but my-project doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/js/chunk-vendors.2493bbd2.js></script><script src=/js/app.d05f3352.js></script></body></html>
+      }</script><link href=/css/group-app.000700aa.css rel=prefetch><link href=/css/group-controlApp.766a6015.css rel=prefetch><link href=/css/group-doTest.870ad0f1.css rel=prefetch><link href=/css/group-mainPage.9af7a1f8.css rel=prefetch><link href=/js/group-app.24429b9c.js rel=prefetch><link href=/js/group-controlApp.0f3b260e.js rel=prefetch><link href=/js/group-doTest.482ea3cc.js rel=prefetch><link href=/js/group-mainPage.76684335.js rel=prefetch><link href=/css/app.e9f156cc.css rel=preload as=style><link href=/css/chunk-vendors.723a90c8.css rel=preload as=style><link href=/js/app.31002157.js rel=preload as=script><link href=/js/chunk-vendors.2493bbd2.js rel=preload as=script><link href=/css/chunk-vendors.723a90c8.css rel=stylesheet><link href=/css/app.e9f156cc.css rel=stylesheet></head><body><noscript><strong>We're sorry but my-project doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/js/chunk-vendors.2493bbd2.js></script><script src=/js/app.31002157.js></script></body></html>

File diff suppressed because it is too large
+ 0 - 0
src/main/frontend/static/js/app.31002157.js


File diff suppressed because it is too large
+ 0 - 0
src/main/frontend/static/js/group-controlApp.0f3b260e.js


File diff suppressed because it is too large
+ 0 - 0
src/main/frontend/static/js/group-controlApp.ea98d840.js


File diff suppressed because it is too large
+ 0 - 0
src/main/frontend/static/js/group-doTest.2b7825e2.js


File diff suppressed because it is too large
+ 0 - 0
src/main/frontend/static/js/group-doTest.482ea3cc.js


File diff suppressed because it is too large
+ 0 - 0
src/main/frontend/static/js/group-mainPage.76684335.js


+ 1 - 1
src/main/frontend/vue.config.js

@@ -13,8 +13,8 @@ module.exports = {
         proxy: {
             '/': {
                 target: 'http://localhost:8085',
-                // target: 'http://119.23.22.31:31588',
                 // target: 'http://119.23.22.31:30962',
+                // target: 'http://119.23.22.31:31588',
                 autoRewrite: true,
                 ws: false
             }

Some files were not shown because too many files changed in this diff