2024-05-19 11:28:13 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="fullHeight">
|
|
|
|
|
|
<div v-show="!isExamManage">
|
|
|
|
|
|
<!-- header -->
|
|
|
|
|
|
<div class="searchBox whiteBlock">
|
|
|
|
|
|
<el-form :inline="true" size="medium" class="demo-form-inline">
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<el-form-item label="科目" prop="name">
|
|
|
|
|
|
<el-select v-model="name" placeholder="请选择" clearable>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-option v-for="item in subjectNameList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="试题名称" prop="questionName">
|
2024-05-22 01:48:04 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="questionName" suffix-icon="el-icon-search" clearable></el-input>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item>
|
|
|
|
|
|
<el-button class="expintBtn" suffix-icon="el-icon-search" size="medium" type="primary" @click="getRecordList()">
|
|
|
|
|
|
查询
|
|
|
|
|
|
</el-button>
|
2024-05-22 01:48:04 +08:00
|
|
|
|
<el-button class="expintBtn" size="medium" type="primary" @click="addExam()">
|
|
|
|
|
|
新增考试
|
|
|
|
|
|
</el-button>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- table -->
|
|
|
|
|
|
<div class="table_wrap whiteBlock" style="height: 677px">
|
|
|
|
|
|
<el-table class="tables" :data="listData" height="200">
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<el-table-column width="200" align="center" prop="name" label="考试科目"></el-table-column>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-table-column align="center" prop="name" label="试题名称"></el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="radio" label="单选题"></el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="multi" label="多选题"></el-table-column>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-table-column align="center" prop="duration" label="考试时长(分钟)"></el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="passLine" label="及格分数"></el-table-column>
|
|
|
|
|
|
<el-table-column align="center" width="" prop="createTime" label="上传时间"></el-table-column>
|
|
|
|
|
|
<el-table-column width="240px" label="操作" align="center">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<template slot-scope="scope">
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<div style="display:flex;justify-content:center">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<div @click="editExam(scope.row)" style="margin-left:10px;" class="operationText">
|
|
|
|
|
|
<img src="@/assets/images/icon-edit.png" width="15px" height="15px" />
|
|
|
|
|
|
<span style="white-space: nowrap;display:flex;align-items:center">编辑</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div @click="examDetail(scope.row)" style="margin-left:10px;" class="operationText">
|
|
|
|
|
|
<img src="@/assets/images/icon-detail.png" width="15px" height="15px" />
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<span style="white-space: nowrap;display:flex;align-items:center">试题详情</span>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</div>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-button size="mini" type="text" style="color:#ec4b52;margin-left:10px;font-size:14px" class="delete-btn" icon="el-icon-delete" @click.native.stop="removeExam(scope.row) ">
|
|
|
|
|
|
<span style="color:black">删除</span>
|
|
|
|
|
|
</el-button>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
<el-pagination class="pagerBox" @size-change="sizeChange" @current-change="currentChange" :current-page="pagInfo.pageNo" :page-sizes="$store.state.PAGESIZRS" :page-size="pagInfo.pageSize" layout="total, sizes, prev, pager, next" :total="Number(pagInfo.total)" background></el-pagination>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- 新增 -->
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-dialog :modal-append-to-body="false" :title="title" :visible.sync="dialogVisible" width="660px">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<div class="dialogContainer">
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<!-- <div class="dialogLeft"> -->
|
2024-05-22 01:48:04 +08:00
|
|
|
|
<el-form :model="examForm" ref="examForm" :rules="examRules" label-width="100px" class="demo-ruleForm">
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<el-form-item label="考试科目" prop="subjectId" >
|
|
|
|
|
|
<el-select v-model="examForm.subjectId" placeholder="请选择">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-option :label="item.name" :value="item.id" v-for="(item,i) in examSubjectList" :key="i"></el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<el-form-item label="试卷名称" prop="name" >
|
|
|
|
|
|
<el-input v-model="examForm.name"></el-input>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</el-form-item>
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<el-form-item label="考试时间" prop="duration" >
|
|
|
|
|
|
<el-input-number :min="0" :controls="false" :precision="0" style="width: 190px" v-model="examForm.duration"></el-input-number>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<span style="margin-left: 10px;color:#a6a7b2;">分钟</span>
|
|
|
|
|
|
</el-form-item>
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<el-form-item label="及格分数线" prop="passLine" >
|
|
|
|
|
|
<el-input-number :min="0" :max="100" :controls="false" :precision="0" style="width: 190px" v-model="examForm.passLine"></el-input-number>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<span style="margin-left: 10px;color:#a6a7b2;">分</span>
|
|
|
|
|
|
</el-form-item>
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<el-form-item label="备注" prop="remark">
|
|
|
|
|
|
<el-input type="textarea" rows="3" :show-word-limit="true" v-model="examForm.remark"></el-input>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</el-form-item>
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<el-form-item label="抽题模式" prop="checkQuestionType" >
|
|
|
|
|
|
<el-radio-group v-model="examForm.checkQuestionType" @input="handleDialog">
|
2024-05-22 01:48:04 +08:00
|
|
|
|
<div style="display:flex">
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<!-- <div @click="dialogVisible2 = true"> -->
|
|
|
|
|
|
<div @click="openDoor">
|
|
|
|
|
|
<el-radio :label="1">手动抽题</el-radio>
|
2024-05-22 01:48:04 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div style="margin-left:10px" @click="dialogVisible3 = true">
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<el-radio :label="2">随机抽题</el-radio>
|
2024-05-22 01:48:04 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</el-radio-group>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<!-- @click="submitForm('examForm')" -->
|
|
|
|
|
|
</el-form>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<!-- </div> -->
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="dialogFooter">
|
|
|
|
|
|
<el-button @click="dialogVisible = false"><i class="el-icon-circle-close"></i> 取 消</el-button>
|
|
|
|
|
|
<el-button type="primary" @click="submitBtn('examForm')"><i class="el-icon-circle-check"></i> 确 定</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 新增-手动抽题 -->
|
|
|
|
|
|
<el-dialog :modal-append-to-body="false" :title="'手动抽题'" :visible.sync="dialogVisible2" width="1200px">
|
|
|
|
|
|
<div class="dialogContainer2">
|
|
|
|
|
|
<div class="d2Left">
|
|
|
|
|
|
<el-tree
|
|
|
|
|
|
:data="level1CompanyData"
|
|
|
|
|
|
:highlight-current="true"
|
|
|
|
|
|
:check-on-click-node="false"
|
|
|
|
|
|
:props="defaultProps1"
|
|
|
|
|
|
style="margin-top: 10px;"
|
|
|
|
|
|
ref="groupTreeList"
|
|
|
|
|
|
@node-click="onNodeClick"
|
|
|
|
|
|
:current-node-key="currentNodekey"
|
|
|
|
|
|
node-key="id">
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<span class="custom-tree-node" slot-scope="{ node }">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<span style="width: 100%;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;" class="courseName" :title="node.label">
|
|
|
|
|
|
{{ node.label }}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</el-tree>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="d2Right">
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-table class="tables" height="500px" ref="questionListTable" :data="questionList" style="min-height:425px">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-table-column type="selection" align="center" width="55"></el-table-column>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-table-column align="" prop="questionName" label="题干内容">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<el-tooltip class="item" effect="dark" :content="scope.row.questionName" placement="left">
|
|
|
|
|
|
<span style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">{{ scope.row.questionName }}</span>
|
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-table-column align="center" width="80px" label="题目类型">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<div>{{ scope.row.type && typeArr[scope.row.type - 1].name }}</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-table-column prop="difficulty" align="center" width="80px" label="难易程度">
|
2024-05-23 22:27:06 +08:00
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<div>{{ scope.row.difficulty && levelArr[scope.row.difficulty - 1].name }}</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="score" align="center" width="80px" label="分数"></el-table-column>
|
|
|
|
|
|
<el-table-column prop="options" align="center" width="80px" label="试题答案"></el-table-column>
|
|
|
|
|
|
<el-table-column prop="createTime" align="center" width="170px" label="创建时间"></el-table-column>
|
|
|
|
|
|
<el-table-column prop="isEnable" align="center" width="100px" label="状态">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<div :style="scope.row.isEnable == 1 ? 'color: green' : 'color: red'">{{ scope.row.isEnable == 1 ? "已应用" : "未应用" }}</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</el-table>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<!-- <el-pagination class="pagerBox" @size-change="sizeChange" @current-change="currentChange" :current-page="question.pageNo" :page-sizes="$store.state.PAGESIZRS" :page-size="question.pageSize" layout="total, sizes, prev, pager, next" :total="Number(question.total)" background></el-pagination> -->
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="dialogFooter">
|
2024-05-22 01:48:04 +08:00
|
|
|
|
<el-button @click="cancel2()"><i class="el-icon-circle-close"></i> 取 消</el-button>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-button type="primary" @click="submitBtn2('1')"><i class="el-icon-circle-check"></i> 确 定</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 新增-随机抽题 -->
|
|
|
|
|
|
<el-dialog :modal-append-to-body="false" :title="'随机抽题'" :visible.sync="dialogVisible3" width="1200px">
|
|
|
|
|
|
<div class="dialogContainer3">
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div style="margin-left:56px;margin-bottom:20px">
|
2024-05-23 23:04:48 +08:00
|
|
|
|
<el-radio-group v-model="randomQuestion.radio" @input="handleSelect" clearable>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-radio label="0">从指定科目类型中选择</el-radio>
|
|
|
|
|
|
<el-radio label="1">从全部题库中选择</el-radio>
|
|
|
|
|
|
</el-radio-group><br>
|
2024-05-23 23:04:48 +08:00
|
|
|
|
<el-select v-model="randomQuestion.name" :disabled="isDisabled" size="mini" placeholder="请选择" style="margin-top: 5px" clearable>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-option :label="item.name" :value="item.id" v-for="(item,i) in subjectNameList" :key="i"></el-option>
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<!-- <el-option v-for="item in subjectNameList" :key="item.value" :label="item.name" :value="item.value"></el-option> -->
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</el-select>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div>单选题:
|
2024-05-23 23:04:48 +08:00
|
|
|
|
<el-select v-model="randomQuestion.examSingle.diffculty" @change="singleChange" size="mini" placeholder="请选择难易程度" style="margin-top: 5px" clearable>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-option v-for="item in levelArr" :key="item.value" :label="item.name" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select>
|
2024-05-23 23:04:48 +08:00
|
|
|
|
<el-select ref="singleRef" v-model="randomQuestion.examSingle.count" size="mini" placeholder="请选择" style="margin-top: 5px;margin-left:5px" clearable>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-option v-for="item in radioDataList" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select> 道 当前题库单选题{{radioDataList.length}}道
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>多选题:
|
2024-05-23 23:04:48 +08:00
|
|
|
|
<el-select v-model="randomQuestion.examMultiple.diffculty" @change="multipleChange" size="mini" placeholder="请选择难易程度" style="margin-top: 5px" clearable>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-option v-for="item in levelArr" :key="item.value" :label="item.name" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select>
|
2024-05-23 23:04:48 +08:00
|
|
|
|
<el-select v-model="randomQuestion.examMultiple.count" size="mini" placeholder="请选择" style="margin-top: 5px;margin-left:5px" clearable>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-option v-for="item in checkDataList" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select> 道 当前题库多选题{{checkDataList.length}}道
|
|
|
|
|
|
</div>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<!-- <div>单选题:
|
|
|
|
|
|
<el-select v-model="randomQuestion.examSingle.diffculty" size="mini" placeholder="请选择难易程度" style="margin-top: 5px">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-option v-for="item in levelArr" :key="item.value" :label="item.name" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-select v-model="randomQuestion.examSingle.count" size="mini" placeholder="请选择" style="margin-top: 5px;margin-left:5px">
|
|
|
|
|
|
<el-option v-for="item in radioDataList" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select> 道 当前题库单选题{{radioDataList.length}}道
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</div>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<div>多选题:
|
|
|
|
|
|
<el-select v-model="randomQuestion.examMultiple.diffculty" size="mini" placeholder="请选择难易程度" style="margin-top: 5px">
|
|
|
|
|
|
<el-option v-for="item in levelArr" :key="item.value" :label="item.name" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
<el-select v-model="randomQuestion.examMultiple.count" size="mini" placeholder="请选择" style="margin-top: 5px;margin-left:5px">
|
|
|
|
|
|
<el-option v-for="item in checkDataList" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select> 道 当前题库多选题{{checkDataList.length}}道
|
|
|
|
|
|
</div> -->
|
|
|
|
|
|
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="dialogFooter" style="margin-top:30px">
|
2024-05-22 01:48:04 +08:00
|
|
|
|
<el-button @click="cancel3()"><i class="el-icon-circle-close"></i> 取 消</el-button>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-button type="primary" @click="submitBtn3('0')"><i class="el-icon-circle-check"></i> 确 定</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 考试详情 -->
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-dialog :modal-append-to-body="false" :title="'试卷详情'" :visible.sync="dialogVisible4" width="1200px">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<div class="dialogContainer4">
|
|
|
|
|
|
<div class="d4Top">
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<div class="topTitle"><div class="beforeTitle"></div>
|
|
|
|
|
|
<div class="">基本信息</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div style="width:80%;display:grid;grid-gap:20px;grid-template-columns: repeat(2, 1fr);">
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<p style="margin-bottom: 10px; margin-left:20px;width:50%">科目名称:{{examDetailInfo.name}}</p>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<p style="margin-bottom: 10px; margin-left:20px;width:50%">试题名称:{{examDetailInfo.name}}</p>
|
|
|
|
|
|
<p style="margin-bottom: 10px; margin-left:20px;width:50%">考试时长:{{examDetailInfo.duration}}</p>
|
|
|
|
|
|
<p style="margin-bottom: 10px; margin-left:20px;width:50%">及格分数:{{examDetailInfo.passLine}}</p>
|
2024-05-22 01:48:04 +08:00
|
|
|
|
<p style="margin-bottom: 10px; margin-left:20px;width:200%">考试备注:{{examDetailInfo.remark}}</p>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<!-- <p style="margin-bottom: 10px; margin-left:20px"><span style="color: #ea3941">* </span>考试周期:{{examDetailInfo.beginTime}}至{{examDetailInfo.endTime}}</p> -->
|
|
|
|
|
|
</div>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="d4Bottom">
|
|
|
|
|
|
<div class="bottomTitle">
|
|
|
|
|
|
<div class="beforeTitle"></div>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<div class="">试题详情</div>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</div>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-table class="tables" :data="examDetailInfo.topiceExamInfoList" height="200" style="min-height:300px">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-table-column align="center" type="index" label="序号"></el-table-column>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-table-column align="center" prop="questionName" label="试题内容" ></el-table-column>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-table-column align="center" prop="questionType" label="题型" width="100">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<div>{{ typeArr[scope.row.type - 1].name }}</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-table-column align="center" prop="optionList" label="选项">
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<template slot-scope="scope">
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<div style="margin-left:10px">
|
|
|
|
|
|
<div v-for="(item,i) in scope.row.optionList" :key="i">
|
2024-05-22 01:48:04 +08:00
|
|
|
|
<p style="padding-right:0px;">{{item.optionCode}}、{{item.optionDesc}}</p>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
</div>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2024-05-23 22:27:06 +08:00
|
|
|
|
<el-table-column align="center" prop="score" label="分数" width="100"></el-table-column>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
<el-table-column align="center" prop="options" label="答案"></el-table-column>
|
|
|
|
|
|
|
2024-05-19 11:28:13 +08:00
|
|
|
|
</el-table>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- <div class="dialogFooter">
|
|
|
|
|
|
<el-button @click="dialogVisible3 = false"><i class="el-icon-circle-close"></i> 取 消</el-button>
|
|
|
|
|
|
<el-button type="primary" @click="submitBtn3('0')"><i class="el-icon-circle-check"></i> 确 定</el-button>
|
|
|
|
|
|
</div> -->
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- 考试管理 -->
|
|
|
|
|
|
<div class="examManageContainer" v-show="isExamManage">
|
|
|
|
|
|
<div class="searchBox whiteBlock">
|
|
|
|
|
|
<div class="emcHeaderInfo">
|
|
|
|
|
|
<div class="emcTitle">
|
|
|
|
|
|
<div style="display:flex">
|
|
|
|
|
|
<div class="beforeTitle"></div>
|
|
|
|
|
|
<div class="">考试管理</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div><el-button type="primary" size="mini" plain @click="isExamManage = !isExamManage">返 回</el-button></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="emcHeader">
|
|
|
|
|
|
<div class="">试题总分:{{examManageInfo.examTotalScore}}分</div>
|
|
|
|
|
|
<div class="headerItem">及格分数线:{{examManageInfo.passLine}}分</div>
|
|
|
|
|
|
<div class="headerItem">考题数量:{{examManageInfo.radio + examManageInfo.multi}}题</div>
|
|
|
|
|
|
<div class="headerItem">考试有效期:{{examManageInfo.beginTime}}至{{examManageInfo.endTime}}</div>
|
|
|
|
|
|
<div class="headerItem">目前参考人数:{{examManageInfo.joinCount}}人</div>
|
|
|
|
|
|
<div class="headerItem">目前缺考人数:{{examManageInfo.noJoinCount}}人</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="table_wrap whiteBlock" style="height: 677px">
|
|
|
|
|
|
<!-- 考试管理Tab -->
|
|
|
|
|
|
<el-tabs v-model="emActiveTab" @tab-click="handleEmTab" style="padding: 0 15px;">
|
|
|
|
|
|
<el-tab-pane :label="'考试记录'" name="examRecord"></el-tab-pane>
|
|
|
|
|
|
<!-- <el-tab-pane :label="'数据分析'" name="dataAnalysis"></el-tab-pane> -->
|
|
|
|
|
|
</el-tabs>
|
|
|
|
|
|
<div v-show="emActiveTab === 'examRecord'">
|
|
|
|
|
|
<el-form :inline="true" size="medium" class="demo-form-inline" style="margin-left:20px">
|
|
|
|
|
|
<el-form-item label="姓名">
|
|
|
|
|
|
<el-input placeholder="请输入"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="选择日期">
|
|
|
|
|
|
<el-date-picker type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item>
|
|
|
|
|
|
<el-button class="expintBtn" size="medium" plain type="primary">查询</el-button>
|
|
|
|
|
|
<el-button class="expintBtn" size="medium" type="primary">导出明细</el-button>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
<el-table class="tables" style="min-height:500px" :data="listData" height="200" max-height="530px">
|
2024-05-23 20:28:46 +08:00
|
|
|
|
<el-table-column width="200" align="center" prop="name" label="科目"></el-table-column>
|
2024-05-19 11:28:13 +08:00
|
|
|
|
<el-table-column align="center" prop="questionName" label="试题名称"></el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="examCycle" label="考试周期"></el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="examPersonCount" label="考试人数"></el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="examSingle" label="单选题"></el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="examMultiple" label="多选题"></el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="examJudge" label="判断题"></el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="uploadPerson" label="上传人"></el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="uploadTime" label="上传时间"></el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
<el-pagination class="pagerBox" style="margin-top: 10px" @size-change="examSizeChange" @current-change="examCurrentChange" :current-page="examPagInfo.pageNo" :page-sizes="$store.state.PAGESIZRS" :page-size="examPagInfo.pageSize" layout="total, sizes, prev, pager, next" :total="Number(examPagInfo.total)" background></el-pagination>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
import {
|
|
|
|
|
|
getSubdivisionProjectApi, //所有分部分项工程, 以父子节点形式呈现
|
|
|
|
|
|
addSubdivisionProjectApi, //新增
|
|
|
|
|
|
upSubdivisionProjectApi, //修改
|
|
|
|
|
|
delSubdivisionProjectApi, //
|
|
|
|
|
|
} from '@/assets/js/api/quality'
|
|
|
|
|
|
import { filterAnswer } from "@/util/nowDate/index";
|
|
|
|
|
|
import {
|
|
|
|
|
|
listExamSubjectApi,
|
|
|
|
|
|
getWorkerInfoListApi,
|
2024-05-21 19:11:51 +08:00
|
|
|
|
// getTeamInfoListApi,
|
2024-05-19 11:28:13 +08:00
|
|
|
|
getDepartmentListApi,
|
|
|
|
|
|
addCourseApi,
|
|
|
|
|
|
pageCourseApi,
|
|
|
|
|
|
pageQuestionBankApi,
|
2024-05-21 19:11:51 +08:00
|
|
|
|
getQuestionOption,
|
2024-05-19 11:28:13 +08:00
|
|
|
|
addPaperApi,
|
2024-05-21 19:11:51 +08:00
|
|
|
|
editPaperApi,
|
2024-05-19 11:28:13 +08:00
|
|
|
|
pagePaperApi,
|
|
|
|
|
|
detailIdPaperApi,
|
2024-05-21 19:11:51 +08:00
|
|
|
|
pageRecordApi,
|
|
|
|
|
|
delPaperApi,
|
|
|
|
|
|
getRandomQuestionApi
|
2024-05-19 11:28:13 +08:00
|
|
|
|
} from '@/assets/js/api/examSystem/examSystem'
|
|
|
|
|
|
|
|
|
|
|
|
import {
|
|
|
|
|
|
dateFormat
|
|
|
|
|
|
} from '@/util/nowDate/index'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
|
mounted() {},
|
|
|
|
|
|
data() {
|
|
|
|
|
|
const generateData = _ => {
|
|
|
|
|
|
const data = [];
|
|
|
|
|
|
for (let i = 1; i <= 15; i++) {
|
|
|
|
|
|
data.push({
|
|
|
|
|
|
key: i,
|
|
|
|
|
|
label: `备选项 ${ i }`,
|
|
|
|
|
|
// disabled: i % 4 === 0
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
return data;
|
|
|
|
|
|
};
|
|
|
|
|
|
return {
|
|
|
|
|
|
title:"",
|
|
|
|
|
|
levelArr: [
|
|
|
|
|
|
{ name: "简单", value: 1 },
|
|
|
|
|
|
{ name: "一般", value: 2 },
|
|
|
|
|
|
{ name: "困难", value: 3 },
|
|
|
|
|
|
],
|
|
|
|
|
|
typeArr: [
|
|
|
|
|
|
{ name: "单选题", value: 1 },
|
|
|
|
|
|
{ name: "多选题", value: 2 },
|
|
|
|
|
|
],
|
|
|
|
|
|
ruleForm:{},
|
|
|
|
|
|
defaultProps1: {
|
|
|
|
|
|
// children: "list",
|
|
|
|
|
|
children: "children",
|
|
|
|
|
|
label: "name",
|
|
|
|
|
|
// label: "label",
|
|
|
|
|
|
},
|
|
|
|
|
|
isDisabled: true, //随机抽题select选择器开关
|
|
|
|
|
|
randomQuestion:{
|
|
|
|
|
|
examSingle:{
|
2024-05-21 19:11:51 +08:00
|
|
|
|
diffculty:"",
|
|
|
|
|
|
count: null
|
2024-05-19 11:28:13 +08:00
|
|
|
|
},
|
|
|
|
|
|
examMultiple:{
|
2024-05-21 19:11:51 +08:00
|
|
|
|
diffculty:"",
|
|
|
|
|
|
count: null
|
2024-05-19 11:28:13 +08:00
|
|
|
|
},
|
|
|
|
|
|
examJudge:{},
|
|
|
|
|
|
radio:"1",
|
2024-05-23 20:28:46 +08:00
|
|
|
|
name:"",
|
2024-05-19 11:28:13 +08:00
|
|
|
|
},
|
|
|
|
|
|
emActiveTab: 'examRecord',
|
2024-05-23 20:28:46 +08:00
|
|
|
|
examManageInfo:{examTotalScore:'100',passLine: 60,questionCount: '100', examPeriod: '2024-05-12 00:00:00-2024-06-01 00:00:00', joinCount: '100',noJoinCount: '2'},
|
2024-05-19 11:28:13 +08:00
|
|
|
|
isExamManage: false, // 考试管理开关
|
2024-05-22 18:34:36 +08:00
|
|
|
|
examInfoList: [], // 考试信息列表
|
2024-05-19 11:28:13 +08:00
|
|
|
|
activeTab: '1', // 考试信息列表Tab
|
|
|
|
|
|
examDetailInfo:{}, // 考试基本信息
|
2024-05-22 18:34:36 +08:00
|
|
|
|
level1CompanyData: [],
|
2024-05-19 11:28:13 +08:00
|
|
|
|
defaultProps: { // 随机抽题左边树形映射数据
|
|
|
|
|
|
children: "children",
|
|
|
|
|
|
label: "workerName",
|
|
|
|
|
|
},
|
2024-05-22 18:34:36 +08:00
|
|
|
|
questionList: [],
|
2024-05-23 20:28:46 +08:00
|
|
|
|
name: '', // 科目名字
|
2024-05-19 11:28:13 +08:00
|
|
|
|
questionName: '', // 试题名称
|
|
|
|
|
|
data: generateData(),
|
|
|
|
|
|
value: [1],
|
|
|
|
|
|
renderFunc(h, option) {
|
|
|
|
|
|
return <span>{ option.key } - { option.label }</span>;
|
|
|
|
|
|
},
|
2024-05-23 20:28:46 +08:00
|
|
|
|
examForm: {
|
|
|
|
|
|
subjectId:'',
|
|
|
|
|
|
name:'',
|
|
|
|
|
|
duration:'',
|
|
|
|
|
|
passLine:'',
|
|
|
|
|
|
remark:'',
|
|
|
|
|
|
checkQuestionType:'',
|
|
|
|
|
|
questions:[]
|
|
|
|
|
|
},
|
2024-05-19 11:28:13 +08:00
|
|
|
|
subjectNameList: [
|
|
|
|
|
|
{ value: '选项1', label: '黄金糕' },
|
|
|
|
|
|
{ value: '选项2', label: '双皮奶' },
|
|
|
|
|
|
{ value: '选项3', label: '蚵仔煎' },
|
|
|
|
|
|
{ value: '选项4', label: '龙须面' },
|
|
|
|
|
|
{ value: '选项5', label: '北京烤鸭' }
|
|
|
|
|
|
],
|
|
|
|
|
|
pagInfo: {
|
|
|
|
|
|
//公用分页
|
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
|
total: 0,
|
|
|
|
|
|
},
|
|
|
|
|
|
examPagInfo:{
|
|
|
|
|
|
//公用分页
|
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
|
total: 0,
|
|
|
|
|
|
},
|
|
|
|
|
|
examDetailPagInfo:{
|
|
|
|
|
|
//公用分页
|
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
|
total: 0,
|
|
|
|
|
|
},
|
|
|
|
|
|
projectSn: '',
|
|
|
|
|
|
dialogVisible: false, //新增弹窗
|
|
|
|
|
|
dialogVisible2: false, //新增二级弹窗
|
|
|
|
|
|
dialogVisible3: false, //新增三级弹窗
|
|
|
|
|
|
dialogVisible4: false, //考试详情弹窗
|
|
|
|
|
|
workerInfo: {
|
|
|
|
|
|
children: [],
|
|
|
|
|
|
id: '',
|
|
|
|
|
|
level: 0,
|
|
|
|
|
|
parentId: '',
|
|
|
|
|
|
},
|
|
|
|
|
|
listData: [],
|
|
|
|
|
|
listData3: [
|
|
|
|
|
|
{ ruleType: '1', symbol: '+', ruleScore: 3 },
|
|
|
|
|
|
{ ruleType: '', symbol: '', ruleScore: '' },
|
|
|
|
|
|
],
|
2024-05-22 01:48:04 +08:00
|
|
|
|
examRules:{
|
2024-05-23 20:28:46 +08:00
|
|
|
|
subjectId: [
|
2024-05-22 01:48:04 +08:00
|
|
|
|
{
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
message: '必填',
|
2024-05-23 20:28:46 +08:00
|
|
|
|
trigger: 'change',
|
2024-05-22 01:48:04 +08:00
|
|
|
|
},
|
|
|
|
|
|
],
|
2024-05-23 20:28:46 +08:00
|
|
|
|
name: [
|
2024-05-22 01:48:04 +08:00
|
|
|
|
{
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
message: '必填',
|
2024-05-23 20:28:46 +08:00
|
|
|
|
trigger: 'change',
|
2024-05-22 01:48:04 +08:00
|
|
|
|
},
|
|
|
|
|
|
],
|
2024-05-23 20:28:46 +08:00
|
|
|
|
duration: [
|
2024-05-22 01:48:04 +08:00
|
|
|
|
{
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
message: '必填',
|
|
|
|
|
|
trigger: 'blur',
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
2024-05-23 20:28:46 +08:00
|
|
|
|
passLine: [
|
2024-05-22 01:48:04 +08:00
|
|
|
|
{
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
message: '必填',
|
|
|
|
|
|
trigger: 'blur',
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
2024-05-23 20:28:46 +08:00
|
|
|
|
checkQuestionType: [
|
2024-05-22 01:48:04 +08:00
|
|
|
|
{
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
message: '必填',
|
2024-05-23 20:28:46 +08:00
|
|
|
|
trigger: 'change',
|
2024-05-19 11:28:13 +08:00
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
dialogImageUrl: '',
|
|
|
|
|
|
showBigImg: false,
|
|
|
|
|
|
examSubjectList: [], // 科目类别列表
|
|
|
|
|
|
|
2024-05-23 23:04:48 +08:00
|
|
|
|
compulsoryList: [],
|
2024-05-19 11:28:13 +08:00
|
|
|
|
|
|
|
|
|
|
addCourseForm: {}, // 新增课程表单
|
|
|
|
|
|
personType: 0, // 人员类型
|
|
|
|
|
|
|
|
|
|
|
|
personnelName:"", // 人员名称
|
|
|
|
|
|
|
|
|
|
|
|
// 题目列表
|
|
|
|
|
|
question: {
|
|
|
|
|
|
//公用分页
|
|
|
|
|
|
pageNo: 1,
|
2024-05-23 20:28:46 +08:00
|
|
|
|
pageSize: 100000,
|
2024-05-19 11:28:13 +08:00
|
|
|
|
total: 0,
|
|
|
|
|
|
},
|
|
|
|
|
|
questionSubjectId:'',
|
|
|
|
|
|
currentNodekey:"",
|
|
|
|
|
|
checkList:[],
|
|
|
|
|
|
|
|
|
|
|
|
examAddDetail:{
|
|
|
|
|
|
questions:[],
|
|
|
|
|
|
},
|
|
|
|
|
|
filterDataList:[],
|
|
|
|
|
|
radioNum:0,
|
|
|
|
|
|
checkNum:0,
|
|
|
|
|
|
radioDataList:[],
|
|
|
|
|
|
checkDataList:[],
|
2024-05-21 19:11:51 +08:00
|
|
|
|
randomQueryList:[],
|
|
|
|
|
|
randomQuestionList:[]
|
2024-05-19 11:28:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
filters: {
|
|
|
|
|
|
filterAnswerIndex(index) {
|
|
|
|
|
|
return filterAnswer(index);
|
|
|
|
|
|
},
|
2024-05-21 19:11:51 +08:00
|
|
|
|
},
|
|
|
|
|
|
computed:{
|
|
|
|
|
|
|
2024-05-19 11:28:13 +08:00
|
|
|
|
},
|
|
|
|
|
|
watch: {
|
|
|
|
|
|
dialogVisible(newV,oldV){
|
2024-05-23 20:28:46 +08:00
|
|
|
|
if(this.dialogVisible === false) {
|
|
|
|
|
|
// this.$refs.examForm.resetFields()
|
2024-05-19 11:28:13 +08:00
|
|
|
|
}
|
2024-05-23 20:28:46 +08:00
|
|
|
|
if(this.title === '新增考试') {
|
|
|
|
|
|
this.$refs.examForm.resetFields()
|
|
|
|
|
|
this.clearDialog()
|
2024-05-19 11:28:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
"randomQuestion.examSingle.diffculty"(){
|
|
|
|
|
|
console.log(this.randomQuestion.examSingle.diffculty,this.filterDataList);
|
|
|
|
|
|
this.radioDataList = this.filterDataList.filter(item => item.type == 1 && item.difficulty == this.randomQuestion.examSingle.diffculty).map((item,index) => {
|
|
|
|
|
|
return {
|
|
|
|
|
|
value: index+1,
|
|
|
|
|
|
lable: index+1,
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
"randomQuestion.examMultiple.diffculty"(){
|
|
|
|
|
|
this.checkDataList = this.filterDataList.filter(item => item.type == 2 && item.difficulty == this.randomQuestion.examMultiple.diffculty).map((item,index) => {
|
|
|
|
|
|
return {
|
|
|
|
|
|
value: index+1,
|
|
|
|
|
|
lable: index+1,
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
2024-05-23 20:28:46 +08:00
|
|
|
|
"randomQuestion.name"(){
|
|
|
|
|
|
console.log(this.randomQuestion.name);
|
2024-05-19 11:28:13 +08:00
|
|
|
|
this.clearFilter();
|
|
|
|
|
|
this.getList({
|
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
|
pageSize: 99999,
|
|
|
|
|
|
questionName: "",
|
2024-05-23 20:28:46 +08:00
|
|
|
|
questionSubjectId: this.randomQuestion.name,
|
2024-05-19 11:28:13 +08:00
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
created() {
|
|
|
|
|
|
this.projectSn = this.$store.state.projectSn
|
|
|
|
|
|
this.getRecordList()
|
|
|
|
|
|
|
|
|
|
|
|
this.userEnterpriseId = this.$store.state.userInfo.userEnterpriseId;
|
|
|
|
|
|
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
this.getExamSubjectList()
|
|
|
|
|
|
// this.userEnterpriseId = "1706588724057112577";//测试用
|
2024-05-21 19:11:51 +08:00
|
|
|
|
// this.loadData() // 查询班组及部门
|
2024-05-19 11:28:13 +08:00
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
2024-05-22 01:48:04 +08:00
|
|
|
|
cancel2(){
|
2024-05-23 23:04:48 +08:00
|
|
|
|
// this.examForm.checkQuestionType = null
|
2024-05-22 01:48:04 +08:00
|
|
|
|
this.dialogVisible2 = false
|
|
|
|
|
|
},
|
|
|
|
|
|
cancel3(){
|
2024-05-23 23:04:48 +08:00
|
|
|
|
// this.examForm.checkQuestionType = null
|
2024-05-22 01:48:04 +08:00
|
|
|
|
this.dialogVisible3 = false
|
|
|
|
|
|
},
|
2024-05-21 19:11:51 +08:00
|
|
|
|
singleChange(){
|
|
|
|
|
|
// 清空选中的值
|
|
|
|
|
|
this.randomQuestion.examSingle.count = null
|
|
|
|
|
|
},
|
|
|
|
|
|
multipleChange(){
|
|
|
|
|
|
this.randomQuestion.examMultiple.count = null
|
|
|
|
|
|
},
|
|
|
|
|
|
getRandomQuestion(){
|
|
|
|
|
|
this.randomQueryList = []
|
|
|
|
|
|
let singleRandom = {
|
|
|
|
|
|
type:1,
|
|
|
|
|
|
number:this.randomQuestion.examSingle.count,
|
|
|
|
|
|
difficulty:this.randomQuestion.examSingle.diffculty,
|
2024-05-23 20:28:46 +08:00
|
|
|
|
subjectId:this.randomQuestion.examSingle.name,
|
2024-05-21 19:11:51 +08:00
|
|
|
|
}
|
|
|
|
|
|
let multipleRandom = {
|
|
|
|
|
|
type:2,
|
|
|
|
|
|
number:this.randomQuestion.examMultiple.count?this.randomQuestion.examMultiple.count:'',
|
|
|
|
|
|
difficulty:this.randomQuestion.examMultiple.diffculty?this.randomQuestion.examMultiple.diffculty:'',
|
2024-05-23 20:28:46 +08:00
|
|
|
|
subjectId:this.randomQuestion.examMultiple.name?this.randomQuestion.examMultiple.name:'',
|
2024-05-21 19:11:51 +08:00
|
|
|
|
}
|
|
|
|
|
|
this.randomQueryList.push(singleRandom)
|
|
|
|
|
|
this.randomQueryList.push(multipleRandom)
|
|
|
|
|
|
console.log(this.randomQueryList)
|
|
|
|
|
|
getRandomQuestionApi(this.randomQueryList).then((res) =>{
|
|
|
|
|
|
if(res.success){
|
|
|
|
|
|
this.randomQuestionList = res.result
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
removeExam(obj){
|
|
|
|
|
|
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(() => {
|
|
|
|
|
|
// alert('还未对接口')
|
|
|
|
|
|
delPaperApi({ id: obj.id }).then((res) => {
|
|
|
|
|
|
if (res.success) {
|
2024-05-22 01:48:04 +08:00
|
|
|
|
// this.getRecordList()
|
2024-05-21 19:11:51 +08:00
|
|
|
|
this.$message.success('删除成功')
|
2024-05-22 01:48:04 +08:00
|
|
|
|
this.refreshFn()
|
2024-05-21 19:11:51 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: 'error',
|
|
|
|
|
|
message: res.message,
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(() => {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: 'info',
|
|
|
|
|
|
message: '已取消删除',
|
|
|
|
|
|
})
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
2024-05-19 11:28:13 +08:00
|
|
|
|
clearFilter(){
|
|
|
|
|
|
this.randomQuestion.examSingle.diffculty = "";
|
2024-05-21 19:11:51 +08:00
|
|
|
|
this.randomQuestion.examSingle.count= null;
|
2024-05-19 11:28:13 +08:00
|
|
|
|
this.randomQuestion.examMultiple.diffculty= "";
|
2024-05-21 19:11:51 +08:00
|
|
|
|
this.randomQuestion.examMultiple.count= null;
|
2024-05-19 11:28:13 +08:00
|
|
|
|
this.radioDataList = [];
|
|
|
|
|
|
this.filterDataList = [];
|
|
|
|
|
|
},
|
|
|
|
|
|
getList(row) {
|
|
|
|
|
|
pageQuestionBankApi({
|
|
|
|
|
|
pageNo: row ? row.pageNo : this.question.pageNo,
|
|
|
|
|
|
pageSize: row ? row.pageSize : this.question.pageSize,
|
|
|
|
|
|
questionName: "",
|
|
|
|
|
|
subjectId: row ? row.questionSubjectId : this.questionSubjectId,
|
2024-05-23 20:28:46 +08:00
|
|
|
|
isEnable:1
|
2024-05-19 11:28:13 +08:00
|
|
|
|
}).then((result) => {
|
|
|
|
|
|
if (result.success) {
|
|
|
|
|
|
console.log(result);
|
|
|
|
|
|
if(row){
|
|
|
|
|
|
console.log("我是~~~~~~~");
|
|
|
|
|
|
this.filterDataList = result.result.records;
|
|
|
|
|
|
}else {
|
|
|
|
|
|
this.questionList = result.result.records;
|
|
|
|
|
|
this.question.total = result.result.total
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-05-21 19:11:51 +08:00
|
|
|
|
})
|
|
|
|
|
|
},
|
2024-05-19 11:28:13 +08:00
|
|
|
|
getExamSubjectList() { // 获取科目类别列表
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
sn: this.projectSn,
|
|
|
|
|
|
}
|
|
|
|
|
|
// listTreeExamSubjectApi(data).then((res) => {
|
|
|
|
|
|
listExamSubjectApi(data).then((res) => {
|
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
|
this.examSubjectList = res.result
|
|
|
|
|
|
this.level1CompanyData = res.result
|
|
|
|
|
|
this.subjectNameList = res.result
|
|
|
|
|
|
// console.log('==========考试科目列表==========',this.listData)
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
handleClose(){ // 关闭弹框
|
|
|
|
|
|
this.clearObj()
|
|
|
|
|
|
this.dialogVisible = false
|
|
|
|
|
|
},
|
|
|
|
|
|
clearObj(){ //清空表单
|
|
|
|
|
|
this.addCourseForm = {}
|
|
|
|
|
|
},
|
|
|
|
|
|
handleEmTab(val){
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
gotoExamManage(val){
|
|
|
|
|
|
console.log(val);
|
|
|
|
|
|
|
|
|
|
|
|
this.examManageInfo = val;
|
|
|
|
|
|
|
|
|
|
|
|
pageRecordApi({
|
|
|
|
|
|
pageNo: this.examPagInfo.pageNo,
|
|
|
|
|
|
pageSize: this.examPagInfo.pageSize,
|
|
|
|
|
|
id: val.id,
|
|
|
|
|
|
}).then((result) => {
|
|
|
|
|
|
if (result.success) {
|
|
|
|
|
|
console.log(result);
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.isExamManage = true;
|
|
|
|
|
|
},
|
2024-05-21 19:11:51 +08:00
|
|
|
|
async examDetail(val) {
|
2024-05-19 11:28:13 +08:00
|
|
|
|
console.log("~~~~~~~~~~~~~~",val);
|
|
|
|
|
|
this.examDetailInfo = val;
|
2024-05-21 19:11:51 +08:00
|
|
|
|
// await pageQuestionBankApi({
|
|
|
|
|
|
await getQuestionOption({
|
|
|
|
|
|
// pageNo: 1,
|
|
|
|
|
|
// pageSize: 10000,
|
2024-05-19 11:28:13 +08:00
|
|
|
|
id: val.id,
|
2024-05-21 19:11:51 +08:00
|
|
|
|
projectSn: this.projectSn
|
|
|
|
|
|
}).then((result) => {
|
|
|
|
|
|
if (result.success) {
|
|
|
|
|
|
this.examDetailInfo.topiceExamInfoList = result.result;
|
|
|
|
|
|
console.log(this.examDetailInfo.topiceExamInfoList,'11111111111111111111111')
|
|
|
|
|
|
this.dialogVisible4 = true
|
|
|
|
|
|
}
|
2024-05-19 11:28:13 +08:00
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
//新增按钮
|
|
|
|
|
|
async addExam() { // 打开弹窗
|
|
|
|
|
|
this.personType = 1
|
|
|
|
|
|
this.title = "新增考试";
|
|
|
|
|
|
this.dialogVisible = true
|
|
|
|
|
|
},
|
2024-05-23 20:28:46 +08:00
|
|
|
|
openDoor(){
|
|
|
|
|
|
// this.examForm.questions = this.examForm.questions.split(',')
|
2024-05-23 23:04:48 +08:00
|
|
|
|
if(this.title === '编辑考试'){
|
|
|
|
|
|
let tempStr = this.examForm.questions.split(',')
|
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
|
for(let i=0;i<this.questionList.length;i++){
|
|
|
|
|
|
for(let j = 0;j<tempStr.length;j++){
|
|
|
|
|
|
if(tempStr[j] == this.questionList[i].id){
|
|
|
|
|
|
this.$refs.questionListTable.toggleRowSelection(this.questionList[i],true)
|
|
|
|
|
|
}
|
2024-05-23 20:28:46 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-05-23 23:04:48 +08:00
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
this.dialogVisible2 = true
|
2024-05-23 20:28:46 +08:00
|
|
|
|
},
|
|
|
|
|
|
//编辑按钮
|
2024-05-19 11:28:13 +08:00
|
|
|
|
async editExam(row) { // 打开弹窗
|
|
|
|
|
|
this.personType = 1
|
|
|
|
|
|
this.title = "编辑考试";
|
2024-05-23 20:28:46 +08:00
|
|
|
|
// console.log(row);
|
2024-05-23 22:27:06 +08:00
|
|
|
|
this.examForm = JSON.parse(JSON.stringify(row))
|
2024-05-23 20:28:46 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-05-19 11:28:13 +08:00
|
|
|
|
|
|
|
|
|
|
console.log(this.examForm);
|
|
|
|
|
|
this.dialogVisible = true
|
|
|
|
|
|
},
|
|
|
|
|
|
//删除按钮
|
|
|
|
|
|
deleteBefore(val) {
|
|
|
|
|
|
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(() => {
|
|
|
|
|
|
// delSubdivisionProjectApi({ id: val }).then((res) => {
|
|
|
|
|
|
// this.$message({
|
|
|
|
|
|
// type: 'success',
|
|
|
|
|
|
// message: '删除成功!',
|
|
|
|
|
|
// })
|
|
|
|
|
|
// this.getRecordList()
|
|
|
|
|
|
// })
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(() => {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: 'info',
|
|
|
|
|
|
message: '已取消删除',
|
|
|
|
|
|
})
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
//获取列表数据
|
|
|
|
|
|
getRecordList() {
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
projectSn: this.projectSn,
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
pagePaperApi({
|
2024-05-21 19:11:51 +08:00
|
|
|
|
pageNo: this.pagInfo.pageNo,
|
|
|
|
|
|
pageSize: this.pagInfo.pageSize,
|
|
|
|
|
|
name: this.questionName,
|
2024-05-23 20:28:46 +08:00
|
|
|
|
subjectId:this.name,
|
2024-05-21 19:11:51 +08:00
|
|
|
|
}).then((result) => {
|
|
|
|
|
|
if (result.success) {
|
|
|
|
|
|
console.log(result);
|
|
|
|
|
|
this.listData = result.result.records
|
|
|
|
|
|
this.pagInfo.total = result.result.total
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
2024-05-19 11:28:13 +08:00
|
|
|
|
},
|
|
|
|
|
|
//新增/编辑
|
|
|
|
|
|
submitBtn() {
|
|
|
|
|
|
|
|
|
|
|
|
console.log(this.compulsoryList)
|
|
|
|
|
|
this.$refs.examForm.validate((valid) => {
|
|
|
|
|
|
if (valid) {
|
|
|
|
|
|
let examInfo = {
|
2024-05-23 20:28:46 +08:00
|
|
|
|
checkQuestionType:this.examForm.checkQuestionType,
|
|
|
|
|
|
name:this.examForm.name,
|
|
|
|
|
|
duration:this.examForm.duration,
|
|
|
|
|
|
passLine:this.examForm.passLine,
|
2024-05-19 11:28:13 +08:00
|
|
|
|
projectSn:this.$store.state.projectSn,
|
2024-05-23 20:28:46 +08:00
|
|
|
|
subjectId:this.examForm.subjectId,
|
|
|
|
|
|
remark:this.examForm.remark,
|
|
|
|
|
|
questions:this.examForm.checkQuestionType == 1 ? this.examForm.questions.map(item => item.id).join(',') : this.randomQuestionList.map(item => item.id).join(','),
|
2024-05-19 11:28:13 +08:00
|
|
|
|
examRecordList:this.compulsoryList.map(item => {
|
|
|
|
|
|
return {
|
|
|
|
|
|
id:item.id,
|
|
|
|
|
|
}
|
|
|
|
|
|
}),
|
2024-05-23 20:28:46 +08:00
|
|
|
|
radio:this.examForm.checkQuestionType == 1 ? this.examForm.questions.filter(item => item.type == 1).length : this.randomQuestion.examSingle.count,
|
|
|
|
|
|
multi:this.examForm.checkQuestionType == 1 ? this.examForm.questions.filter(item => item.type == 2).length : this.randomQuestion.examMultiple.count,
|
2024-05-19 11:28:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (this.title == '新增考试') {
|
|
|
|
|
|
addPaperApi(examInfo).then((res) => {
|
|
|
|
|
|
this.$message.success('新增成功')
|
|
|
|
|
|
this.handleClose()
|
|
|
|
|
|
this.getRecordList()
|
|
|
|
|
|
})
|
|
|
|
|
|
} else {
|
2024-05-21 19:11:51 +08:00
|
|
|
|
examInfo.id = this.examForm.id
|
|
|
|
|
|
editPaperApi(examInfo).then((res) => {
|
|
|
|
|
|
if(res.success){
|
|
|
|
|
|
this.$message.success('编辑成功')
|
|
|
|
|
|
this.handleClose()
|
|
|
|
|
|
this.getRecordList()
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
2024-05-19 11:28:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return false
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
// 手动抽题/随机抽题dialog开关
|
|
|
|
|
|
handleDialog(val){
|
2024-05-23 20:28:46 +08:00
|
|
|
|
// if(val === '1'){
|
|
|
|
|
|
if(val === 1){
|
2024-05-19 11:28:13 +08:00
|
|
|
|
this.currentNodekey = this.subjectNameList[0].id;
|
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
|
this.$refs.groupTreeList.setCurrentKey(this.subjectNameList[0].id) // 默认选中节点第一个
|
|
|
|
|
|
})
|
|
|
|
|
|
this.questionSubjectId = this.subjectNameList[0].id;
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
this.dialogVisible2 = false
|
|
|
|
|
|
this.dialogVisible2 = true
|
|
|
|
|
|
}
|
2024-05-23 20:28:46 +08:00
|
|
|
|
// if(val === '2'){
|
|
|
|
|
|
if(val === 2){
|
2024-05-19 11:28:13 +08:00
|
|
|
|
this.dialogVisible3 = false;
|
|
|
|
|
|
if(this.randomQuestion.radio == 1) {
|
|
|
|
|
|
this.getList({
|
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
|
pageSize: 99999,
|
|
|
|
|
|
questionName: '',
|
|
|
|
|
|
subjectId: '',
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
this.dialogVisible3 = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
onNodeClick(e) {
|
|
|
|
|
|
console.log(e);
|
|
|
|
|
|
this.questionSubjectId = e.id;
|
|
|
|
|
|
this.getList()
|
|
|
|
|
|
},
|
|
|
|
|
|
// 随机抽题下拉框select开关
|
|
|
|
|
|
handleSelect(val){
|
2024-05-23 23:04:48 +08:00
|
|
|
|
this.randomQuestion.name = ''
|
2024-05-19 11:28:13 +08:00
|
|
|
|
this.clearFilter();
|
|
|
|
|
|
if(val === '0') {
|
|
|
|
|
|
this.isDisabled = false
|
|
|
|
|
|
}
|
|
|
|
|
|
if(val === '1') {
|
|
|
|
|
|
this.isDisabled = true
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
clearDialog(){
|
2024-05-23 20:28:46 +08:00
|
|
|
|
this.examForm = {
|
|
|
|
|
|
subjectId:'',
|
|
|
|
|
|
name:'',
|
|
|
|
|
|
duration:'',
|
|
|
|
|
|
passLine:'',
|
|
|
|
|
|
remark:'',
|
|
|
|
|
|
checkQuestionType:'',
|
|
|
|
|
|
}
|
2024-05-19 11:28:13 +08:00
|
|
|
|
},
|
|
|
|
|
|
//切换条数
|
|
|
|
|
|
sizeChange(val) {
|
|
|
|
|
|
this.pagInfo.pageSize = val
|
2024-05-22 01:48:04 +08:00
|
|
|
|
this.getRecordList()
|
2024-05-19 11:28:13 +08:00
|
|
|
|
},
|
|
|
|
|
|
//切换页数
|
|
|
|
|
|
currentChange(val) {
|
|
|
|
|
|
this.pagInfo.pageNo = val
|
2024-05-22 01:48:04 +08:00
|
|
|
|
this.getRecordList()
|
2024-05-19 11:28:13 +08:00
|
|
|
|
},
|
|
|
|
|
|
//切换条数
|
|
|
|
|
|
examSizeChange(val) {
|
|
|
|
|
|
this.examPagInfo.pageSize = val
|
|
|
|
|
|
},
|
|
|
|
|
|
//切换页数
|
|
|
|
|
|
examCurrentChange(val) {
|
|
|
|
|
|
this.examPagInfo.pageNo = val
|
|
|
|
|
|
},
|
|
|
|
|
|
//切换条数
|
|
|
|
|
|
examDetailSizeChange(val) {
|
|
|
|
|
|
this.examDetailPagInfo.pageSize = val
|
|
|
|
|
|
},
|
|
|
|
|
|
//切换页数
|
|
|
|
|
|
examDetailCurrentChange(val) {
|
|
|
|
|
|
this.examDetailPagInfo.pageNo = val
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
handleChange(value, direction, movedKeys) {
|
|
|
|
|
|
console.log(value, direction, movedKeys);
|
|
|
|
|
|
},
|
|
|
|
|
|
submitBtn2(){
|
2024-05-23 20:28:46 +08:00
|
|
|
|
this.examForm.questions = this.$refs.questionListTable.selection;
|
2024-05-19 11:28:13 +08:00
|
|
|
|
this.dialogVisible2 = false;
|
|
|
|
|
|
},
|
|
|
|
|
|
submitBtn3(){
|
2024-05-21 19:11:51 +08:00
|
|
|
|
this.getRandomQuestion()
|
2024-05-19 11:28:13 +08:00
|
|
|
|
this.dialogVisible3 = false;
|
|
|
|
|
|
},
|
2024-05-22 01:48:04 +08:00
|
|
|
|
refreshFn(){
|
|
|
|
|
|
this.pagInfo.pageNo = 1
|
|
|
|
|
|
this.getRecordList()
|
|
|
|
|
|
}
|
2024-05-19 11:28:13 +08:00
|
|
|
|
},
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
2024-05-21 19:11:51 +08:00
|
|
|
|
.fixOption{
|
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
|
}
|
2024-05-19 11:28:13 +08:00
|
|
|
|
//examManage
|
|
|
|
|
|
.examManageContainer{
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
.emcHeaderInfo{
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
.emcTitle{
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
.beforeTitle{
|
|
|
|
|
|
height: 16px;
|
|
|
|
|
|
width: 3px;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
background-color: #4181EF;
|
|
|
|
|
|
margin-right: 13px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.emcHeader{
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
.headerItem{
|
|
|
|
|
|
margin-left: 25px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//examManage
|
|
|
|
|
|
|
|
|
|
|
|
// dialog4
|
|
|
|
|
|
.dialogContainer4{
|
|
|
|
|
|
// width: 100%;
|
2024-05-21 19:11:51 +08:00
|
|
|
|
height: 550px;
|
2024-05-19 11:28:13 +08:00
|
|
|
|
padding: 0 20px;
|
|
|
|
|
|
.d4Top{
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 33%;
|
|
|
|
|
|
.topTitle{
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: flex-start;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-bottom: 30px;
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
.beforeTitle{
|
|
|
|
|
|
height: 16px;
|
|
|
|
|
|
width: 3px;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
background-color: #4181EF;
|
|
|
|
|
|
margin-right: 13px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.d4Bottom{
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 67%;
|
|
|
|
|
|
.bottomTitle{
|
|
|
|
|
|
border-top: 1px solid #f3f5fc;
|
|
|
|
|
|
border-bottom: 1px solid #f3f5fc;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: flex-start;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-bottom: 30px;
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
height: 40px;
|
|
|
|
|
|
.beforeTitle{
|
|
|
|
|
|
height: 16px;
|
|
|
|
|
|
width: 3px;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
background-color: #4181EF;
|
|
|
|
|
|
margin-right: 13px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.tabItem{
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
|
&.active{
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #4181EF;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// dialog4
|
|
|
|
|
|
|
|
|
|
|
|
// dialog3
|
|
|
|
|
|
.dialogContainer3{
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
// dialog3
|
|
|
|
|
|
|
|
|
|
|
|
// dialog2
|
|
|
|
|
|
.dialogContainer2{
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
width:100%;
|
2024-05-21 19:11:51 +08:00
|
|
|
|
height:545px;
|
2024-05-19 11:28:13 +08:00
|
|
|
|
.d2Left{
|
|
|
|
|
|
width: 25%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
// background-color: darkred;
|
|
|
|
|
|
}
|
|
|
|
|
|
.d2Right{
|
|
|
|
|
|
width: 75%;
|
2024-05-21 19:11:51 +08:00
|
|
|
|
height: 90%;
|
2024-05-19 11:28:13 +08:00
|
|
|
|
// background-color: darkblue;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// dialog2
|
|
|
|
|
|
|
|
|
|
|
|
// dialog
|
|
|
|
|
|
.transfer-footer {
|
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
|
padding: 6px 5px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.dialogContainer{
|
|
|
|
|
|
width:100%;
|
2024-05-21 19:11:51 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
// justify-content: space-between;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
height:475px;
|
2024-05-19 11:28:13 +08:00
|
|
|
|
/deep/ .el-dialog__body{
|
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.dialogLeft{
|
2024-05-21 19:11:51 +08:00
|
|
|
|
width:100%;
|
2024-05-19 11:28:13 +08:00
|
|
|
|
height:100%;
|
2024-05-22 01:48:04 +08:00
|
|
|
|
/deep/ .el-textarea .el-input__count{
|
|
|
|
|
|
margin: -50px -10px -40px -50px;
|
|
|
|
|
|
background-color: rgb(1, 1, 1, 0);
|
|
|
|
|
|
}
|
2024-05-19 11:28:13 +08:00
|
|
|
|
// background-color: darkred;
|
|
|
|
|
|
/deep/ .el-upload-dragger {
|
|
|
|
|
|
width: 230px;
|
|
|
|
|
|
height: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
/deep/ .el-input {
|
|
|
|
|
|
width: 230px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/deep/ .el-textarea {
|
|
|
|
|
|
width: 230px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/deep/ .el-date-editor--daterange.el-input__inner {
|
|
|
|
|
|
width: 230px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/deep/ .el-upload-dragger .el-icon-upload{
|
|
|
|
|
|
margin: 0 0 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
/deep/ .el-upload__tip{
|
|
|
|
|
|
margin: 0 0 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
/deep/ .el-upload--picture-card{
|
|
|
|
|
|
width: 100px;
|
|
|
|
|
|
height: 100px;
|
|
|
|
|
|
line-height: 102px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.dialogRight{
|
|
|
|
|
|
|
|
|
|
|
|
width:65%;
|
|
|
|
|
|
height:95.9%;
|
|
|
|
|
|
// background-color: darkblue;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
.transLeft{
|
|
|
|
|
|
width:50%;
|
|
|
|
|
|
height:100%;
|
|
|
|
|
|
// background-color: darkred;
|
|
|
|
|
|
border: 1px solid #d7dbe9;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
.tlOne{
|
|
|
|
|
|
margin: 5px 5px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.tlTwo{
|
|
|
|
|
|
margin: 0 5px;
|
|
|
|
|
|
margin-bottom: 5px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
.tlThree{
|
|
|
|
|
|
// border: 1px solid;
|
|
|
|
|
|
height: 480px;
|
|
|
|
|
|
.dialog-tree{
|
|
|
|
|
|
margin:0px 0px;
|
|
|
|
|
|
.treeStyle();
|
|
|
|
|
|
/deep/.el-tree-node__content{
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
/deep/.el-tree-node__content > label.el-checkbox{
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.transMid{
|
|
|
|
|
|
width:10%;
|
|
|
|
|
|
height:100%;
|
|
|
|
|
|
.transBtn{
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.transRight{
|
|
|
|
|
|
width:40%;
|
|
|
|
|
|
height:100%;
|
|
|
|
|
|
border: 1px solid #d7dbe9;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: space-around;
|
|
|
|
|
|
.trItem{
|
|
|
|
|
|
// background-color: blue;
|
|
|
|
|
|
height:98%;
|
|
|
|
|
|
margin: 0 5px;
|
|
|
|
|
|
.trItemInner{
|
|
|
|
|
|
border: 1px solid #d7dbe9;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
height: 95.8%;
|
|
|
|
|
|
margin: 5px 0px;
|
|
|
|
|
|
.innerOne{
|
|
|
|
|
|
margin: 5px 5px;
|
|
|
|
|
|
height: 20px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.innerTwo{
|
|
|
|
|
|
margin: 5px 5px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.innerThree{
|
|
|
|
|
|
margin: 0 5px;
|
|
|
|
|
|
// border: 1px solid;
|
|
|
|
|
|
height: 172px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.dialogFooter{
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
//dialog
|
|
|
|
|
|
|
|
|
|
|
|
.greenSpan {
|
|
|
|
|
|
color: green;
|
|
|
|
|
|
}
|
|
|
|
|
|
.detailIcon {
|
|
|
|
|
|
background: url(~@/assets/images/projectImg/numBgc.png);
|
|
|
|
|
|
}
|
|
|
|
|
|
.down {
|
|
|
|
|
|
text-decoration: none;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
.expintBtn {
|
|
|
|
|
|
display: inline-block !important;
|
|
|
|
|
|
margin-right: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.table_wrap {
|
|
|
|
|
|
height: 800px;
|
|
|
|
|
|
overflow: auto;
|
|
|
|
|
|
margin-top: -15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.treeStyle(){
|
|
|
|
|
|
/deep/.el-tree {
|
|
|
|
|
|
font-size: 15px;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
|
.el-tree-node {
|
|
|
|
|
|
white-space: normal;
|
|
|
|
|
|
&:focus > .el-tree-node__content {
|
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
|
}
|
|
|
|
|
|
&.is-current > .el-tree-node__content {
|
|
|
|
|
|
background-color: rgba(81, 129, 246, 0.14);
|
|
|
|
|
|
color: #5181f6;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.el-tree-node__content {
|
|
|
|
|
|
// height: 32px;
|
|
|
|
|
|
padding: 7px 0;
|
|
|
|
|
|
height: auto;
|
|
|
|
|
|
line-height: 16px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
// margin-bottom: 7px;
|
|
|
|
|
|
&:hover {
|
|
|
|
|
|
background-color: rgba(81, 129, 246, 0.14);
|
|
|
|
|
|
color: #5181f6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.videoName {
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.projectName {
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
width: calc(100% - 55px);
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
}
|
|
|
|
|
|
.companyName2 {
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
width: 192px;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.el-tree-node__expand-icon {
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
padding: 0 6px;
|
|
|
|
|
|
&.is-leaf {
|
|
|
|
|
|
color: transparent !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.treeTitle {
|
|
|
|
|
|
background-color: #f7f7f7;
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|
|
|
|
|
|
|