master
parent
3bf173d9c0
commit
48b35dc835
|
@ -11,6 +11,7 @@
|
|||
"axios": "^0.24.0",
|
||||
"core-js": "^3.6.5",
|
||||
"element-plus": "^1.3.0-beta.1",
|
||||
"qiniu-js": "^3.4.0",
|
||||
"vue": "^3.2.0",
|
||||
"vue-axios": "^3.4.0",
|
||||
"vue-router": "^4.0.12"
|
||||
|
@ -1597,6 +1598,25 @@
|
|||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/runtime-corejs2": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmmirror.com/@babel/runtime-corejs2/download/@babel/runtime-corejs2-7.16.7.tgz",
|
||||
"integrity": "sha512-ec0BM0J/9M5Cncha++AlgvvDlk+uM+m6f7K0t74ClcYzsE8LgX4RstRreksMSCI82o3LJS//UswmA0pUWkJpqg==",
|
||||
"dependencies": {
|
||||
"core-js": "^2.6.5",
|
||||
"regenerator-runtime": "^0.13.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/runtime-corejs2/node_modules/core-js": {
|
||||
"version": "2.6.12",
|
||||
"resolved": "https://registry.npmmirror.com/core-js/download/core-js-2.6.12.tgz",
|
||||
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
|
||||
"deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.",
|
||||
"hasInstallScript": true
|
||||
},
|
||||
"node_modules/@babel/template": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmmirror.com/@babel/template/download/@babel/template-7.16.7.tgz",
|
||||
|
@ -11373,6 +11393,26 @@
|
|||
"teleport": ">=0.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/qiniu-js": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/qiniu-js/download/qiniu-js-3.4.0.tgz",
|
||||
"integrity": "sha1-NpgN4HvkurIp7AGToywzGKokt0g=",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/runtime-corejs2": "^7.10.2",
|
||||
"querystring": "^0.2.1",
|
||||
"spark-md5": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/qiniu-js/node_modules/querystring": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmmirror.com/querystring/download/querystring-0.2.1.tgz",
|
||||
"integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==",
|
||||
"deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
|
||||
"engines": {
|
||||
"node": ">=0.4.x"
|
||||
}
|
||||
},
|
||||
"node_modules/qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmmirror.com/qs/download/qs-6.5.2.tgz",
|
||||
|
@ -11551,8 +11591,7 @@
|
|||
"node_modules/regenerator-runtime": {
|
||||
"version": "0.13.9",
|
||||
"resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz",
|
||||
"integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=",
|
||||
"dev": true
|
||||
"integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I="
|
||||
},
|
||||
"node_modules/regenerator-transform": {
|
||||
"version": "0.14.5",
|
||||
|
@ -12584,6 +12623,11 @@
|
|||
"integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/spark-md5": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/spark-md5/download/spark-md5-3.0.2.tgz",
|
||||
"integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw=="
|
||||
},
|
||||
"node_modules/spdx-correct": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.nlark.com/spdx-correct/download/spdx-correct-3.1.1.tgz",
|
||||
|
@ -16388,6 +16432,22 @@
|
|||
"regenerator-runtime": "^0.13.4"
|
||||
}
|
||||
},
|
||||
"@babel/runtime-corejs2": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmmirror.com/@babel/runtime-corejs2/download/@babel/runtime-corejs2-7.16.7.tgz",
|
||||
"integrity": "sha512-ec0BM0J/9M5Cncha++AlgvvDlk+uM+m6f7K0t74ClcYzsE8LgX4RstRreksMSCI82o3LJS//UswmA0pUWkJpqg==",
|
||||
"requires": {
|
||||
"core-js": "^2.6.5",
|
||||
"regenerator-runtime": "^0.13.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"core-js": {
|
||||
"version": "2.6.12",
|
||||
"resolved": "https://registry.npmmirror.com/core-js/download/core-js-2.6.12.tgz",
|
||||
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@babel/template": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmmirror.com/@babel/template/download/@babel/template-7.16.7.tgz",
|
||||
|
@ -24504,6 +24564,23 @@
|
|||
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
|
||||
"dev": true
|
||||
},
|
||||
"qiniu-js": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/qiniu-js/download/qiniu-js-3.4.0.tgz",
|
||||
"integrity": "sha1-NpgN4HvkurIp7AGToywzGKokt0g=",
|
||||
"requires": {
|
||||
"@babel/runtime-corejs2": "^7.10.2",
|
||||
"querystring": "^0.2.1",
|
||||
"spark-md5": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"querystring": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmmirror.com/querystring/download/querystring-0.2.1.tgz",
|
||||
"integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmmirror.com/qs/download/qs-6.5.2.tgz",
|
||||
|
@ -24650,8 +24727,7 @@
|
|||
"regenerator-runtime": {
|
||||
"version": "0.13.9",
|
||||
"resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz",
|
||||
"integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=",
|
||||
"dev": true
|
||||
"integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I="
|
||||
},
|
||||
"regenerator-transform": {
|
||||
"version": "0.14.5",
|
||||
|
@ -25537,6 +25613,11 @@
|
|||
"integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=",
|
||||
"dev": true
|
||||
},
|
||||
"spark-md5": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/spark-md5/download/spark-md5-3.0.2.tgz",
|
||||
"integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw=="
|
||||
},
|
||||
"spdx-correct": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.nlark.com/spdx-correct/download/spdx-correct-3.1.1.tgz",
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
"axios": "^0.24.0",
|
||||
"core-js": "^3.6.5",
|
||||
"element-plus": "^1.3.0-beta.1",
|
||||
"qiniu-js": "^3.4.0",
|
||||
"vue": "^3.2.0",
|
||||
"vue-axios": "^3.4.0",
|
||||
"vue-router": "^4.0.12"
|
||||
|
|
|
@ -10,6 +10,7 @@ import axios from 'axios'
|
|||
import VueAxios from 'vue-axios'
|
||||
import zhCn from 'element-plus/es/locale/lang/zh-cn'
|
||||
axios.defaults.baseURL='https://a99zg89a.xiaomy.net'
|
||||
|
||||
axios.interceptors.request.use(config => {
|
||||
|
||||
config.headers.Authorization = "Basic c2FiZXI6c2FiZXJfc2VjcmV0"
|
||||
|
@ -19,6 +20,7 @@ axios.interceptors.request.use(config => {
|
|||
return config
|
||||
})
|
||||
let app=createApp(App)
|
||||
app.config.globalProperties.$bucketName = "nianhua-test"
|
||||
app.use(router)
|
||||
app.use(ElementPlus,{locale:zhCn});
|
||||
app.use(VueAxios,axios)
|
||||
|
|
|
@ -10,6 +10,8 @@ import index from '../view/index.vue'
|
|||
import consumer from '../view/consumer.vue'
|
||||
import projectManagement from '../view/projectManagement.vue'
|
||||
import projectTopic from '../view/projectTopic.vue'
|
||||
import generateTest from '../view/generateTest.vue'
|
||||
|
||||
//配置路由
|
||||
const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
|
@ -38,7 +40,12 @@ const router = createRouter({
|
|||
name: 'projectTopic',
|
||||
component: projectTopic
|
||||
}
|
||||
|
||||
,
|
||||
{
|
||||
path: '/generateTest', //
|
||||
name: 'generateTest',
|
||||
component: generateTest
|
||||
}
|
||||
]
|
||||
})
|
||||
// 导出router
|
||||
|
|
|
@ -0,0 +1,79 @@
|
|||
<!-- <template>
|
||||
<div >
|
||||
<p>新建测试 </p>
|
||||
|
||||
<div class="generateTest">
|
||||
<p class="tit">测试信息</p>
|
||||
|
||||
<div class="generateTestCon">
|
||||
<div class="inputCss">
|
||||
<p>问题</p>
|
||||
<div>
|
||||
<el-input
|
||||
class="w-50 m-2"
|
||||
size="large"
|
||||
placeholder="请输入问题"
|
||||
></el-input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
|
||||
props: {
|
||||
msg: String,
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
|
||||
methods: {},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
.generateTest{
|
||||
min-height: 50vh;
|
||||
background: #f8fafb;
|
||||
border-radius: 3px;
|
||||
width: 80%;
|
||||
margin:auto;
|
||||
margin-top: 30px;
|
||||
|
||||
border: 1px solid #dde3e8;
|
||||
|
||||
}
|
||||
.generateTest .tit{
|
||||
font-size: 18px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #454d67;
|
||||
padding-top: 30px;
|
||||
font-weight: 600;
|
||||
padding-left: 40px;
|
||||
border-bottom: 1px solid #e4eaee;
|
||||
padding-bottom: 20px;
|
||||
margin-bottom: 60px;}
|
||||
|
||||
|
||||
.inputCss>p{
|
||||
font-size: 14px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #8e8e8e;
|
||||
line-height: 26px;
|
||||
}
|
||||
.inputCss>div{
|
||||
width: 300px
|
||||
;
|
||||
}
|
||||
.generateTestCon{
|
||||
padding:0 40px 40px 40px;}
|
||||
</style> -->
|
|
@ -0,0 +1,36 @@
|
|||
<template>
|
||||
<div class="consumer">
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavLeft from "../components/nav.vue";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
NavLeft,
|
||||
},
|
||||
props: {
|
||||
msg: String,
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
|
||||
methods: {},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
.consumer{
|
||||
width: 100%;
|
||||
min-height: 60vh;
|
||||
padding-top: 30px;
|
||||
background: #f8fafb;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #dde3e8;
|
||||
margin-top: 50px;
|
||||
}
|
||||
</style>
|
|
@ -24,10 +24,26 @@
|
|||
|
||||
<div class="">
|
||||
<p>当前已选择:</p>
|
||||
<p>题型1:<span>40</span>题</p>
|
||||
<p>题型2:<span>40</span>题</p>
|
||||
<p>题型3:<span>40</span>题</p>
|
||||
<p>题型4:<span>40</span>题</p>
|
||||
<p>
|
||||
题型1:<span>{{ libraryType1CountData.libraryType1Count }}</span
|
||||
>题
|
||||
</p>
|
||||
<p>
|
||||
题型2:<span>{{ libraryType1CountData.libraryType2Count }}</span
|
||||
>题
|
||||
</p>
|
||||
<p>
|
||||
题型3:<span>{{ libraryType1CountData.libraryType3Count }}</span
|
||||
>题
|
||||
</p>
|
||||
<p>
|
||||
题型4:<span>{{ libraryType1CountData.libraryType4Count }}</span
|
||||
>题
|
||||
</p>
|
||||
|
||||
<button class="buttonCss" type="button" @click="generateTest()">
|
||||
生成测试
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -62,39 +78,33 @@
|
|||
<div class="projectTopicAButton">
|
||||
<div class="projectTopicAButtonSearch">
|
||||
<el-input
|
||||
v-model="input2"
|
||||
v-model="inputData"
|
||||
class="w-50 m-2"
|
||||
placeholder="搜索"
|
||||
:prefix-icon="Search"
|
||||
/>
|
||||
<button class="buttonCss" @click="inputDataFun()" type="button">
|
||||
搜索
|
||||
</button>
|
||||
</div>
|
||||
<button class="buttonCss" type="button">随机选题</button>
|
||||
<button class="buttonCss" type="button">取消选题</button>
|
||||
<button class="buttonCss" @click="addProject()" type="button">
|
||||
新建
|
||||
<button class="buttonCss" type="button" @click="randomlyTopic()">
|
||||
随机选题
|
||||
</button>
|
||||
<button class="buttonCss" @click="cancelTopic()" type="button">
|
||||
取消选题
|
||||
</button>
|
||||
<button class="buttonCss" type="button">新建</button>
|
||||
<button class="buttonCss" type="button">批量导入</button>
|
||||
|
||||
<button class="buttonCss" type="button">下载导入模板</button>
|
||||
</div>
|
||||
|
||||
<div class="projectTopicTable">
|
||||
<el-table :data="tableData" style="width: 100%" max-height="500">
|
||||
<el-table-column
|
||||
align="center"
|
||||
fixed
|
||||
prop="companyName"
|
||||
label="创建部门"
|
||||
/>
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column align="center" prop="date" label="创建时间" />
|
||||
<el-table-column align="center" prop="name" label="项目" />
|
||||
<el-table-column align="center" prop="address" label="备注" />
|
||||
<el-table-column align="center" prop="testCount" label="数量" />
|
||||
<el-table-column align="center" fixed="right" label="状态">
|
||||
<el-table-column align="center" prop="id" label="序号" />
|
||||
<el-table-column align="center" prop="topic" label="题目" />
|
||||
<el-table-column align="center" fixed="right" label="选择状态">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.status == 0">已启用</div>
|
||||
<div v-else>已禁用</div>
|
||||
<div v-if="scope.row.isSelect == 0">未选</div>
|
||||
<div v-else>已选用</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" fixed="right" label="操作">
|
||||
|
@ -102,24 +112,17 @@
|
|||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click.prevent="open(scope, 1)"
|
||||
@click.prevent="open(scope)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click.prevent="open(scope, 2)"
|
||||
>
|
||||
停用
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click.prevent="topicNav(scope)"
|
||||
@click.prevent="editTitle(scope)"
|
||||
>
|
||||
编辑题库
|
||||
编辑
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -129,9 +132,8 @@
|
|||
background
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="currentPage4"
|
||||
layout="prev, pager, next, jumper"
|
||||
:total="2"
|
||||
:total="total"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
|
@ -139,7 +141,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
// 题型1
|
||||
<!-- // 题型1 -->
|
||||
<el-drawer
|
||||
v-model="drawer"
|
||||
title="编辑问题"
|
||||
|
@ -156,7 +158,30 @@
|
|||
placeholder="请输入问题"
|
||||
></el-input>
|
||||
</div>
|
||||
<!-- 题目类型 -->
|
||||
<div class="selectClass" v-if="topicType == 2 || topicType == 4">
|
||||
<div v-for="item in selectClassData" :key="item.dictValue">
|
||||
{{ item.dictValue }}
|
||||
</div>
|
||||
|
||||
<el-select
|
||||
v-model="topicData.topicType"
|
||||
class="m-2"
|
||||
placeholder="请选择类型"
|
||||
size="large"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectClassData"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictValue"
|
||||
:value="item.dictKey"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<!-- 问题 -->
|
||||
<p class="tit">答案</p>
|
||||
<div class="options">
|
||||
<p @click="options(1)" :class="[optionsIf == 1 ? 'optionsIf' : '']">
|
||||
|
@ -200,89 +225,171 @@
|
|||
size="large"
|
||||
placeholder="请输入选项内容"
|
||||
></el-input>
|
||||
|
||||
<div class="selectClass" v-if="optionsIf == 1">
|
||||
<p>选择对应类型</p>
|
||||
<el-select
|
||||
v-model="topicData.options[0].topicType"
|
||||
class="m-2"
|
||||
placeholder="请选择类型"
|
||||
size="large"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectClassData"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictValue"
|
||||
:value="item.dictValue"
|
||||
<!-- 问题对类型 -->
|
||||
<div v-if="topicType == 1 || topicType == 3">
|
||||
<div class="selectClass" v-if="optionsIf == 1">
|
||||
<p>选择对应类型</p>
|
||||
<el-select
|
||||
v-model="topicData.options[0].topicType"
|
||||
class="m-2"
|
||||
placeholder="请选择类型"
|
||||
size="large"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-option
|
||||
v-for="item in selectClassData"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictValue"
|
||||
:value="item.dictKey"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="selectClass" v-if="optionsIf == 2">
|
||||
<p>选择对应类型</p>
|
||||
<el-select
|
||||
v-model="topicData.options[1].topicType"
|
||||
class="m-2"
|
||||
placeholder="请选择类型"
|
||||
size="large"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectClassData"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictValue"
|
||||
:value="item.dictKey"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="selectClass" v-if="optionsIf == 3">
|
||||
<p>选择对应类型</p>
|
||||
<el-select
|
||||
v-model="topicData.options[2].topicType"
|
||||
class="m-2"
|
||||
placeholder="请选择类型"
|
||||
size="large"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectClassData"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictValue"
|
||||
:value="item.dictKey"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="selectClass" v-if="optionsIf == 4">
|
||||
<p>选择对应类型</p>
|
||||
<el-select
|
||||
v-model="topicData.options[3].topicType"
|
||||
class="m-2"
|
||||
placeholder="请选择类型"
|
||||
size="large"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectClassData"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictValue"
|
||||
:value="item.dictKey"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="selectClass" v-if="optionsIf == 2">
|
||||
<p>选择对应类型</p>
|
||||
<el-select
|
||||
v-model="topicData.options[1].topicType"
|
||||
class="m-2"
|
||||
placeholder="请选择类型"
|
||||
size="large"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectClassData"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictValue"
|
||||
:value="item.dictValue"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="selectClass" v-if="optionsIf == 3">
|
||||
<p>选择对应类型</p>
|
||||
<el-select
|
||||
v-model="topicData.options[2].topicType"
|
||||
class="m-2"
|
||||
placeholder="请选择类型"
|
||||
size="large"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectClassData"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictValue"
|
||||
:value="item.dictValue"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="selectClass" v-if="optionsIf == 4">
|
||||
<p>选择对应类型</p>
|
||||
<el-select
|
||||
v-model="topicData.options[3].topicType"
|
||||
class="m-2"
|
||||
placeholder="请选择类型"
|
||||
size="large"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in selectClassData"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictValue"
|
||||
:value="item.dictValue"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<div class="selectClass" v-if="topicType == 2 || topicType == 3">
|
||||
<p>该选项对应分数</p>
|
||||
<div>
|
||||
<el-input
|
||||
v-model="topicData.score"
|
||||
class="w-50 m-2"
|
||||
size="large"
|
||||
placeholder="请输入分数"
|
||||
></el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="drawerButton">
|
||||
<el-button type="primary" @click="addprojectTopic()"
|
||||
>新建项目</el-button
|
||||
<el-button
|
||||
type="primary"
|
||||
v-if="buttonDataIF"
|
||||
@click="addprojectTopic()"
|
||||
>新建问题</el-button
|
||||
>
|
||||
<el-button @click="resetForm(ruleFormRef)">取消新建</el-button>
|
||||
<el-button type="primary" v-else @click="updTopic()"
|
||||
>编辑问题</el-button
|
||||
>
|
||||
<el-button @click="resetForm(ruleFormRef)">取消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-drawer>
|
||||
|
||||
<el-drawer
|
||||
v-model="generateTestIf"
|
||||
title="编辑问题"
|
||||
:direction="direction"
|
||||
:before-close="handleClose"
|
||||
>
|
||||
<div class="elementUldrawer">
|
||||
<div class="nameProject">
|
||||
<p class="tit">项目名称:</p>
|
||||
<p>{{ generateTestData.name }}</p>
|
||||
</div>
|
||||
<div>
|
||||
<p class="tit">发起单位</p>
|
||||
<el-input
|
||||
v-model="generateTestData.companyName"
|
||||
class="w-50 m-2"
|
||||
size="large"
|
||||
placeholder="请输入单位"
|
||||
></el-input>
|
||||
</div>
|
||||
<div>
|
||||
<p class="tit">答题时长</p>
|
||||
<el-input
|
||||
v-model="generateTestData.testDuration"
|
||||
class="w-50 m-2"
|
||||
size="large"
|
||||
placeholder="请输入问题"
|
||||
></el-input>
|
||||
</div>
|
||||
<div>
|
||||
<p class="tit">测试说明</p>
|
||||
|
||||
<el-input
|
||||
v-model="generateTestData.note"
|
||||
:autosize="{ minRows: 6, maxRows: 4 }"
|
||||
type="textarea"
|
||||
placeholder="请输入测试说明"
|
||||
>
|
||||
</el-input>
|
||||
</div>
|
||||
<div>
|
||||
<p class="tit">测试封面</p>
|
||||
<div class="imgFm">
|
||||
<input type="file" @change="upLoad($event)" />
|
||||
<img :src="imgData" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<p class="tit">只允许添加该测试白名单的人参加测试</p>
|
||||
<el-switch v-model="generateTestData.isAllowWhiteList" />
|
||||
</div>
|
||||
<div class="">
|
||||
<el-button type="primary" @click="determineGenerateTest()"
|
||||
>确定</el-button
|
||||
>
|
||||
|
||||
<el-button>取消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-drawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavLeft from "../components/nav.vue";
|
||||
import { ElMessageBox, ElMessage } from "element-plus";
|
||||
import * as qiniu from "qiniu-js";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
@ -294,15 +401,38 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
drawer: false,
|
||||
generateTestIf: false,
|
||||
topicType: 1,
|
||||
total: "",
|
||||
fileImgData: "",
|
||||
generateTestData: {
|
||||
name: "",
|
||||
companyName: "",
|
||||
projectId: "",
|
||||
note: "",
|
||||
coverImg: "",
|
||||
isAllowWhiteList: false,
|
||||
testDuration: "",
|
||||
},
|
||||
|
||||
inputData: "",
|
||||
libraryType1CountData: {
|
||||
libraryType1Count: 0,
|
||||
libraryType2Count: 0,
|
||||
libraryType3Count: 0,
|
||||
libraryType4Count: 0,
|
||||
},
|
||||
buttonDataIF: true,
|
||||
TopicPageData: {
|
||||
current: 1,
|
||||
libraryType: "topic_type_1",
|
||||
size: 5,
|
||||
size: 10,
|
||||
projectId: "",
|
||||
},
|
||||
topicData: {
|
||||
createTime: "",
|
||||
projectId: "",
|
||||
score: "",
|
||||
libraryType: "topic_type_1",
|
||||
options: [
|
||||
{
|
||||
|
@ -310,9 +440,9 @@ export default {
|
|||
createTime: "",
|
||||
|
||||
libraryType: "",
|
||||
optionIndex: 0,
|
||||
optionIndex: "",
|
||||
optionIndexEn: "",
|
||||
score: 0,
|
||||
score: "",
|
||||
topicId: 0,
|
||||
topicType: "",
|
||||
topicTypeValue: "",
|
||||
|
@ -320,11 +450,11 @@ export default {
|
|||
{
|
||||
content: "",
|
||||
createTime: "",
|
||||
id: 0,
|
||||
id: "",
|
||||
libraryType: "",
|
||||
optionIndex: 0,
|
||||
optionIndex: "",
|
||||
optionIndexEn: "",
|
||||
score: 0,
|
||||
score: "",
|
||||
topicId: 0,
|
||||
topicType: "",
|
||||
topicTypeValue: "",
|
||||
|
@ -332,11 +462,11 @@ export default {
|
|||
{
|
||||
content: "",
|
||||
createTime: "",
|
||||
id: 0,
|
||||
id: "",
|
||||
libraryType: "",
|
||||
optionIndex: 0,
|
||||
optionIndex: "",
|
||||
optionIndexEn: "",
|
||||
score: 0,
|
||||
score: "",
|
||||
topicId: 0,
|
||||
topicType: "",
|
||||
topicTypeValue: "",
|
||||
|
@ -344,11 +474,11 @@ export default {
|
|||
{
|
||||
content: "",
|
||||
createTime: "",
|
||||
id: 0,
|
||||
id: "",
|
||||
libraryType: "",
|
||||
optionIndex: 0,
|
||||
optionIndex: "",
|
||||
optionIndexEn: "",
|
||||
score: 0,
|
||||
score: "",
|
||||
topicId: 0,
|
||||
topicType: "",
|
||||
topicTypeValue: "",
|
||||
|
@ -357,6 +487,7 @@ export default {
|
|||
topic: "",
|
||||
topicType: "",
|
||||
},
|
||||
imgData: "https://nianhua.test.joymido.com/",
|
||||
projectData: {},
|
||||
labelPosition: "top",
|
||||
tableData: [],
|
||||
|
@ -368,12 +499,116 @@ export default {
|
|||
},
|
||||
mounted() {
|
||||
this.projectData = JSON.parse(localStorage.topicData);
|
||||
console.log(this.projectData);
|
||||
this.generateTestData.name = this.projectData.name;
|
||||
this.generateTestData.companyName = this.projectData.companyName;
|
||||
this.getProject();
|
||||
},
|
||||
methods: {
|
||||
// 分页
|
||||
|
||||
upLoad(e) {
|
||||
let that = this;
|
||||
let key = null;
|
||||
this.axios
|
||||
|
||||
.get("http://101.200.157.76:12306/ding/file/getQiniuToken", {
|
||||
params: { bucketName: "nianhua-test" },
|
||||
})
|
||||
.then(function (data) {
|
||||
var config = {
|
||||
useCdnDomain: true,
|
||||
};
|
||||
// 设置文件的配置
|
||||
var putExtra = {
|
||||
fname: "",
|
||||
params: {},
|
||||
mimeType: null,
|
||||
};
|
||||
console.log(e.target.files[0], data.data.data.token);
|
||||
let observable = qiniu.upload(
|
||||
e.target.files[0],
|
||||
key,
|
||||
data.data.data.token,
|
||||
putExtra,
|
||||
config
|
||||
);
|
||||
// var observable = qiniu.upload({ file, key, token, putExtra, config })
|
||||
// 设置实例的监听对象
|
||||
var observer = {
|
||||
// 接收上传进度信息
|
||||
// 接收上传错误信息
|
||||
error(err) {
|
||||
console.log(err);
|
||||
},
|
||||
complete(res) {
|
||||
that.imgData += res.key;
|
||||
},
|
||||
};
|
||||
// 上传开始
|
||||
observable.subscribe(observer);
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
handleCurrentChange(data) {
|
||||
this.TopicPageData.current = data;
|
||||
this.getProject();
|
||||
},
|
||||
|
||||
options(num) {
|
||||
this.optionsIf = num;
|
||||
},
|
||||
// 搜索
|
||||
inputDataFun() {
|
||||
this.getProject(this.inputData);
|
||||
},
|
||||
// 新建测试
|
||||
generateTest() {
|
||||
this.generateTestIf = true;
|
||||
},
|
||||
// 确定新增测试
|
||||
determineGenerateTest() {
|
||||
this.generateTestData.coverImg = this.imgData;
|
||||
if (this.generateTestData.isAllowWhiteList) {
|
||||
this.generateTestData.isAllowWhiteList = "1";
|
||||
} else {
|
||||
this.generateTestData.isAllowWhiteList = "0";
|
||||
}
|
||||
console.log();
|
||||
this.axios
|
||||
.post("hysc/test/addTest",this.generateTestData)
|
||||
.then(function (data) {
|
||||
console.log(data)
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
// 删除提示
|
||||
open(obj) {
|
||||
let that = this;
|
||||
ElMessageBox.confirm("是否确定删除", {
|
||||
confirmButtonText: "取消",
|
||||
cancelButtonText: "确定",
|
||||
type: "提示",
|
||||
})
|
||||
.then(() => {
|
||||
ElMessage({
|
||||
type: "delet",
|
||||
message: "已取消",
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
that.projectTopicDelete(obj.row.id);
|
||||
ElMessage({
|
||||
type: "tiyong",
|
||||
message: "删除成功",
|
||||
});
|
||||
});
|
||||
},
|
||||
// 题库切换
|
||||
topicTypes(num) {
|
||||
this.topicType = num;
|
||||
if (this.topicType == 1) {
|
||||
|
@ -389,10 +624,98 @@ export default {
|
|||
this.TopicPageData.libraryType = "topic_type_4";
|
||||
this.topicData.libraryType = "topic_type_4";
|
||||
}
|
||||
this.getProject();
|
||||
},
|
||||
projectTopicDelete(id) {
|
||||
let that = this;
|
||||
this.axios
|
||||
.post("/hysc/library/delTopic", {
|
||||
id: id,
|
||||
})
|
||||
.then(function () {
|
||||
that.getProject();
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
editTitle(data) {
|
||||
this.addCation();
|
||||
this.drawer = true;
|
||||
this.buttonDataIF = false;
|
||||
this.topicData = { ...data.row };
|
||||
},
|
||||
|
||||
updTopic() {
|
||||
let that = this;
|
||||
this.axios
|
||||
.post("/hysc/library/updTopic", this.topicData)
|
||||
.then(function () {
|
||||
that.getProject();
|
||||
that.drawer = false;
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
// 取消选题
|
||||
cancelTopic() {
|
||||
let param = new URLSearchParams();
|
||||
param.append("libraryType", this.TopicPageData.libraryType);
|
||||
param.append("projectId", this.projectData.id);
|
||||
let that = this;
|
||||
this.axios
|
||||
.get("/hysc/library/cancelRandomTopic", {
|
||||
params: param,
|
||||
})
|
||||
.then(function () {
|
||||
// that.libraryType1CountData={...response.data.data}
|
||||
that.getProject();
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
// 随机选题
|
||||
randomlyTopic() {
|
||||
let param = new URLSearchParams();
|
||||
param.append("libraryType", this.TopicPageData.libraryType);
|
||||
param.append("projectId", this.projectData.id);
|
||||
let that = this;
|
||||
this.axios
|
||||
.get("/hysc/library/randomTopic", {
|
||||
params: param,
|
||||
})
|
||||
.then(function (response) {
|
||||
that.libraryType1CountData = { ...response.data.data };
|
||||
that.getProject();
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
// 新增题目
|
||||
addprojectTopic() {
|
||||
console.log(123);
|
||||
if (this.topicType == 1 || this.topicType == 3) {
|
||||
for (let index = 0; index < this.topicData.options.length; index++) {
|
||||
for (
|
||||
let key = index + 1;
|
||||
key < this.topicData.options.length;
|
||||
key++
|
||||
) {
|
||||
if (
|
||||
this.topicData.options[index].topicType ==
|
||||
this.topicData.options[key].topicType
|
||||
) {
|
||||
this.$alert("选项类型不能相同请重新添加", "类型错误", {
|
||||
confirmButtonText: "确定",
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.axios
|
||||
.post("/hysc/library/addTopic", this.topicData)
|
||||
.then(function (response) {
|
||||
|
@ -420,7 +743,7 @@ export default {
|
|||
})
|
||||
.then(function (response) {
|
||||
console.log(response.data.data);
|
||||
that.selectClassData = response.data.data;
|
||||
that.selectClassData = { ...response.data.data };
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
|
@ -445,7 +768,7 @@ export default {
|
|||
params: param,
|
||||
})
|
||||
.then(function (response) {
|
||||
console.log(response.data.data);
|
||||
console.log(response.data.data, "123");
|
||||
that.selectClassData = response.data.data;
|
||||
})
|
||||
.catch(function (error) {
|
||||
|
@ -453,20 +776,25 @@ export default {
|
|||
});
|
||||
},
|
||||
// 获取列表数据
|
||||
getProject() {
|
||||
getProject(input) {
|
||||
let param = new URLSearchParams();
|
||||
// let that = this;
|
||||
|
||||
let that = this;
|
||||
if (input) {
|
||||
param.append("topic", input);
|
||||
}
|
||||
param.append("current", this.TopicPageData.current);
|
||||
param.append("libraryType", this.TopicPageData.libraryType);
|
||||
param.append("size", this.TopicPageData.size);
|
||||
param.append("projectId", this.projectData.id);
|
||||
|
||||
this.axios
|
||||
.get("/hysc/library/getTopicPage", {
|
||||
params: param,
|
||||
})
|
||||
.then(function (response) {
|
||||
console.log(response.data.data);
|
||||
// that.selectClassData = response.data.data;
|
||||
that.tableData = response.data.data.records;
|
||||
that.total = response.data.data.total;
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
|
@ -612,8 +940,13 @@ export default {
|
|||
.projectTopicAButton > .projectTopicAButtonSearch {
|
||||
margin-right: 60px;
|
||||
}
|
||||
.projectTopicAButtonSearch {
|
||||
display: flex;
|
||||
}
|
||||
.projectTopicAButtonSearch button {
|
||||
margin-left: 20px;
|
||||
}
|
||||
.elementUldrawer > div > .tit {
|
||||
width: 150px;
|
||||
height: 19px;
|
||||
font-size: 14px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
|
@ -640,4 +973,45 @@ export default {
|
|||
border-bottom: 2px solid #0544a4;
|
||||
color: #0544a4;
|
||||
}
|
||||
.score {
|
||||
display: flex;
|
||||
}
|
||||
.score .tit {
|
||||
font-size: 18px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #515151;
|
||||
width: 30%;
|
||||
line-height: 20px;
|
||||
}
|
||||
.nameProject {
|
||||
display: flex;
|
||||
}
|
||||
.nameProject > :nth-child(2) {
|
||||
font-size: 14px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #000;
|
||||
margin-top: 36px;
|
||||
margin-bottom: 11px;
|
||||
line-height: 20px;
|
||||
}
|
||||
.imgFm {
|
||||
width: 200px;
|
||||
position: relative;
|
||||
border: 1px solid #ddd;
|
||||
height: 200px;
|
||||
}
|
||||
.imgFm input {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.imgFm img {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
|
Loading…
Reference in New Issue