master
tangyi 2022-01-13 18:52:22 +08:00
parent 3bf173d9c0
commit 48b35dc835
7 changed files with 712 additions and 132 deletions

89
package-lock.json generated
View File

@ -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",

View File

@ -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"

View File

@ -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)

View File

@ -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

79
src/view/generateTest.vue Normal file
View File

@ -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> -->

36
src/view/newTest.vue Normal file
View File

@ -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>

View File

@ -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>