Kaynağa Gözat

vue 20241218 考试列表 修改

贾小兵 5 ay önce
ebeveyn
işleme
ce3de829ee

+ 9 - 0
ruoyi-ui/src/api/sim/exam.js

@@ -54,4 +54,13 @@ export function examStudentList(userId) {
         method: 'get'
     })
 }
+
+// 学生获取考试详细信息
+export function examStudentGet(userId) {
+  return request({
+      url: '/sim/real-exam/student/' + parseStrEmpty(userId),
+      method: 'get'
+  })
+}
+
 // 学生考试相关 end

+ 18 - 29
ruoyi-ui/src/views/people/exam/index.vue

@@ -2,7 +2,7 @@
   <div class="app-container">
     <el-row>
       <!--用户数据1-->
-        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
           <el-form-item label="考试名称" prop="userName">
             <el-input
               v-model="queryParams.userName"
@@ -53,8 +53,8 @@
             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
           </el-form-item>
         </el-form>
-        <!-- <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
+        <el-row :gutter="10" class="mb8">
+          <!-- <el-col :span="1.5">
             <el-button
               type="primary"
               plain
@@ -85,9 +85,9 @@
               @click="handleDelete"
               v-hasPermi="['simulator:user:remove']"
             >删除</el-button>
-          </el-col>
+          </el-col> -->
           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
-        </el-row> -->
+        </el-row>
 
         <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
           <el-table-column type="selection" width="50" align="center" />
@@ -208,21 +208,19 @@
   } */
 </style>
 <script>
-import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user";
+import { listUser,getUserProfile} from "@/api/system/user";
+import { examStudentList,examStudentGet} from "@/api/sim/exam";
 import { getToken } from "@/utils/auth";
-import Treeselect from "@riophae/vue-treeselect";
-import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
 export default {
-  // name: "Task",
+  name: "Exam",
   dicts: ['sim_equip_type'],
-  components: { Treeselect },
   data() {
     return {
+      user: {},
       multipleSelection: [],
-      selectedEquip: '',
-      selectedZjEquip: '',
-      
+      selectedEquip:'',
+      tableData:[],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -261,21 +259,6 @@ export default {
         children: "children",
         label: "label"
       },
-      // 用户导入参数
-      upload: {
-        // 是否显示弹出层(用户导入)
-        open: false,
-        // 弹出层标题(用户导入)
-        title: "",
-        // 是否禁用上传
-        isUploading: false,
-        // 是否更新已经存在的用户数据
-        updateSupport: 0,
-        // 设置上传的请求头部
-        headers: { Authorization: "Bearer " + getToken() },
-        // 上传的地址
-        url: process.env.VUE_APP_BASE_API + "/simulator/user/importData"
-      },
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -429,7 +412,13 @@ export default {
     /** 查询用户列表 */
     getList() {
       this.loading = true;
-      listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+      getUserProfile().then(response => {
+        this.user = response.data;
+        console.log(response.data.userId)
+      });
+      console.log(this.user.userId);
+      console.log('this.user.userId');
+      examStudentList(this.user.userId).then(response => {
           //将返回值注释
           this.userList = response.rows;
           this.total = response.total;

+ 40 - 20
ruoyi-ui/src/views/peoples/exams/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-row>
-      <!--用户数据1-->
+      <!--用户数据-->
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
           <el-form-item label="考试名称" prop="examCollectionName">
             <el-input
@@ -127,7 +127,6 @@
                 <dict-tag class="text-navy" :options="dict.type.sim_sim_type" :value="scope.row.simType"/>
             </template>
           </el-table-column>
-
           <el-table-column label="创建老师" align="center" key="createBy" prop="createBy" v-if="columns[5].visible" :show-overflow-tooltip="true" />
           <!-- <el-table-column label="考试状态" align="center" key="status" v-if="columns[6].visible">
             <template slot-scope="scope">
@@ -156,7 +155,6 @@
                 type="text"
                 icon="el-icon-edit"
                 @click="handleUpdate(scope.row)"
-                v-hasPermi="['simulator:user:edit']"
               >修改</el-button>
               <el-button
                 size="mini"
@@ -192,12 +190,13 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="考试时间" prop="startTime">
-              <el-date-picker type="daterange" format="yyyy-MM-dd"
+            <el-form-item label="考试时间" prop="examTime">
+              <el-date-picker type="daterange" v-model="form.examTime" format="yyyy-MM-dd"
                 value-format="yyyy-MM-dd" :style="{width: '100%'}" start-placeholder="开始时间" end-placeholder="结束时间"
                 range-separator="至" clearable></el-date-picker>
             </el-form-item>
           </el-col>
+          
           <el-col :span="8" >
             <el-form-item label="型号" prop="simType">
               <el-select v-model="form.simType"  placeholder="请选择模拟器类型" style="width: 100%;">
@@ -315,7 +314,8 @@
 
 
       <div slot="footer" class="dialog-footer" style="margin-top: 10%;">
-        <el-button type="primary" @click="submitForm">添加考试</el-button>
+        <el-button type="primary" @click="submitForm" v-if="form.examCollectionId == undefined" >添加考试</el-button>
+        <el-button type="primary" @click="submitForm" v-if="form.examCollectionId != undefined" >确定考试</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -398,7 +398,7 @@
 }
 </style>
 <script>
-import { examTearcherList,examTearcherdel,examTearcheradd,examTearcherupdate} from "@/api/sim/exam";
+import { examTearcherList,examTearcherdel,examTearcheradd,examTearcherupdate,examTearcherGet} from "@/api/sim/exam";
 import { listMajor  } from "@/api/sim/major";
 
 
@@ -609,6 +609,9 @@ export default {
       form: {
         simType:'',
         questionSettingMethod:'',
+        examTime:[],
+        startTime:'',
+        endTime:'',
       },
       defaultProps: {
         children: "children",
@@ -637,20 +640,32 @@ export default {
       // 表单校验
       rules: {
         examCollectionName: [
-          { required: true, message: "考试名称不能为空", trigger: "blur" },
+          { required: true, 
+            message: "考试名称不能为空", 
+            trigger: "blur" },
         ],
         limitDuration:[
-          { required: true, message: "考试时长不能为空", trigger: "blur" },
+          { required: true, 
+            message: "考试时长不能为空", 
+            trigger: "blur" },
         ],
         simType: [
-          { required: true, message: "模拟器型号不能为空", trigger: "change"}
+          { required: true, 
+            message: "模拟器型号不能为空", 
+            trigger: "change"}
         ],
 
         questionSettingMethod: [
-          { required: true, message: "出题方式不能为空", trigger: "change"}
+          { required: true, 
+            message: "出题方式不能为空", 
+            trigger: "change"}
         ],
-
-
+        examTime:[{
+            required: true,
+            type: 'array',
+            message: '请选择考试时间',
+            trigger: 'change'
+        }],
       }
     };
   },
@@ -994,6 +1009,7 @@ export default {
     reset() {
       this.form = {
         examCollectionId: undefined,
+        examCollectionType:3,
         // deptId: undefined,
         // userName: undefined,
         // password: undefined,
@@ -1042,16 +1058,17 @@ export default {
     handleUpdate(row) {
       this.reset();
       const examCollectionId = row.examCollectionId || this.ids;
-      // getUser(userId).then(response => {
-        // this.form = response.data;
+      examTearcherGet(examCollectionId).then(response => {
+        this.form = response.data;
+        this.form.examTime= [response.data.startTime,response.data.endTime];
         // this.postOptions = response.posts;
         // this.roleOptions = response.roles;
         // this.$set(this.form, "postIds", response.postIds);
         // this.$set(this.form, "roleIds", response.roleIds);
         this.open = true;
         this.title = "修改考试";
-        this.form.password = "";
-      // });
+        // this.form.password = "";
+      });
     },
 
     /** 当前考试查询 */
@@ -1076,6 +1093,12 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          if(this.form.examTime){
+            const start_time = this.form.examTime[0];
+            const end_time = this.form.examTime[1];
+            this.form.startTime = start_time;
+            this.form.endTime = end_time;
+          }
           if (this.form.examCollectionId != undefined) {
             examTearcherupdate(this.form).then(response => {
               this.$modal.msgSuccess("修改成功");
@@ -1083,9 +1106,6 @@ export default {
               this.getList();
             });
           } else {
-            console.log(this.form)
-            console.log('this.form')
-            return ;
             examTearcheradd(this.form).then(response => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;

+ 31 - 4
ruoyi-ui/src/views/peoples/student/index.vue

@@ -33,6 +33,21 @@
               @keyup.enter.native="handleQuery"
             />
           </el-form-item>
+          <el-form-item label="状态" prop="status">
+            <el-select
+              v-model="queryParams.status"
+              placeholder="用户状态"
+              clearable
+              style="width: 240px"
+            >
+              <el-option
+                v-for="dict in dict.type.sys_normal_disable"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
           <el-form-item label="创建时间">
             <el-date-picker
               v-model="dateRange"
@@ -94,6 +109,17 @@
           <el-table-column label="区队/班级" align="center" key="dept.deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
           <el-table-column label="专业名称" align="center" key="major.majorName" prop="major.majorName" v-if="columns[4].visible" :show-overflow-tooltip="true" />
           <el-table-column label="备注" align="center" key="remark" prop="remark" v-if="columns[5].visible" :show-overflow-tooltip="true" />
+          <el-table-column label="状态" align="center" key="status" v-if="columns[7].visible">
+            <template slot-scope="scope">
+              <el-switch
+                v-model="scope.row.status"
+                active-value="0"
+                inactive-value="1"
+                @change="handleStatusChange(scope.row)"
+              ></el-switch>
+            </template>
+          </el-table-column>
+
           <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
             <template slot-scope="scope">
               <span>{{ parseTime(scope.row.createTime) }}</span>
@@ -169,13 +195,11 @@
                   v-for="(item, index) in postOptions.slice(1)"
                   :key="item.sysDept.deptId"
                   :label="item.sysDept.deptName"
-                  :value="item.sysDept.deptName"
+                  :value="item.sysDept.deptId"
                   :v-if="!hideFirstOption"
                 ></el-option>
               </el-select>
             </el-form-item>
-
-
           </el-col>
         </el-row>
         <el-row>
@@ -210,6 +234,8 @@
 
 <script>
 import { listStudent, getStudent, delStudent, addStudent, updateStudent } from "@/api/sim/student";
+import { resetUserPwd, changeUserStatus } from "@/api/system/user";
+
 
 import { listClassMajor } from "@/api/sim/teacher";
 
@@ -276,7 +302,8 @@ export default {
         { key: 3, label: `班级名称`, visible: true },
         { key: 4, label: `专业`, visible: true },
         { key: 5, label: `备注`, visible: true },
-        { key: 6, label: `创建时间`, visible: true }
+        { key: 6, label: `创建时间`, visible: true },
+        { key: 7, label: `状态`, visible: true }
       ],
       // 表单校验
       rules: {

+ 1 - 0
ruoyi-ui/src/views/teacher/index.vue

@@ -225,6 +225,7 @@
 
 <script>
 import { listTeacher, getTeacher, delTeacher, addTeacher, updateTeacher } from "@/api/sim/teacher";
+import { resetUserPwd, changeUserStatus } from "@/api/system/user";
 import { getToken } from "@/utils/auth";
 
 export default {