Commit f7b9295f authored by 纪泽龙's avatar 纪泽龙

题库管理页面的增加删除修改。

parent a40306a3
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-06-16 14:52:17
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2022-09-20 23:37:42
* @LastEditTime: 2022-12-15 14:39:18
* @FilePath: /danger-manage-web/src/main.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
......@@ -48,11 +48,14 @@ import VueVideoPlayer from 'vue-video-player'
// require videojs style
import 'video.js/dist/video-js.css'
// import 'vue-video-player/src/custom-theme.css'
Vue.use(VueVideoPlayer, /* {
options: global default options,
events: global videojs events
} */)
// require('video.js/dist/video-js.css')
// require('vue-video-player/src/custom-theme.css')
// Vue.use(VideoPlayer)
......
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-09-22 10:59:44
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2022-09-28 17:52:32
* @LastEditTime: 2022-12-16 16:43:06
* @FilePath: /danger-manage-web/src/views/lessonsProgram/components/Lession.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -16,38 +16,40 @@
:rules="rules"
>
<div class="top flex">
<el-form-item label="课程标题" prop="courseName">
<el-input style="width: 500px" v-model="form.courseName"></el-input>
<el-form-item label="题库名称" prop="bankName">
<el-input style="width: 300px" v-model="form.bankName"></el-input>
</el-form-item>
<el-form-item label="课程类型" prop="courseType">
<el-select
v-model="form.courseType"
placeholder="请选择隐患等级"
clearable
size="small"
<el-form-item
label="归属部门"
prop="deptId"
label-width="140px"
ref="treeItem"
>
<el-option
v-for="course in courseOptions"
:key="course.planId"
:label="course.planName"
:value="course.planId"
<Treeselect
class="tree"
v-model="form.deptId"
:options="deptOptions"
:show-count="true"
placeholder="请选择归属部门"
@open="treeOpen"
@close="treeClose"
@select="select"
/>
</el-select>
</el-form-item>
</div>
<!-- </div> -->
<el-form-item label="课程内容" prop="courseConent">
<!-- <el-form-item label="课程内容" prop="courseConent">
<Editor v-model="form.courseConent" :min-height="192" />
<el-input
v-show="false"
disabled
v-model="form.courseConent"
></el-input>
</el-form-item>
</el-form-item> -->
<div class="flex">
<!-- <div class="flex">
<el-form-item label="视频上传" v-if="!readOnly" prop="video">
<FileUpload
listType="picture"
......@@ -68,7 +70,7 @@
/>
<el-input v-show="false" disabled v-model="form.enclosure"></el-input>
</el-form-item>
</div>
</div> -->
</el-form>
</div>
</template>
......@@ -83,7 +85,18 @@ import {
getLessonById,
changeLesson,
} from "@/api/educationPlanExam/lessonsProgram";
import {
listBank,
addBank,
updateBank,
getBank,
} from "@/api/system/questionBank.js";
// 所有部门
import { treeselect } from "@/api/system/dept";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "",
props: {
......@@ -94,84 +107,123 @@ export default {
components: {
Editor,
FileUpload,
Treeselect,
},
data() {
return {
form: {
courseName: "",
courseType: "",
courseConent: "",
video: "",
enclosure: "",
bankName: "",
// courseType: "",
// courseConent: "",
// video: "",
// enclosure: "",
deptId: null,
},
// 归属部门列表
deptOptions: [],
fileListVideo: [],
fileListFile: [],
readOnly: false,
rules: {
courseName: [
bankName: [
{ required: true, trigger: "blur", message: "课程名称不能为空" },
],
courseType: [
{ required: true, trigger: "change", message: "课程类型不能为空" },
],
courseConent: [
{ required: true, trigger: "blur", message: "课程内容不能为空" },
],
video: [{ required: true, trigger: "blue", message: "视频不能为空" }],
enclosure: [
{ required: true, trigger: "blur", message: "附件不能为空" },
deptId: [
{ required: true, trigger: "blur", message: "请选择所属部门" },
],
// courseType: [
// { required: true, trigger: "change", message: "课程类型不能为空" },
// ],
// courseConent: [
// { required: true, trigger: "blur", message: "课程内容不能为空" },
// ],
// video: [{ required: true, trigger: "blue", message: "视频不能为空" }],
// enclosure: [
// { required: true, trigger: "blur", message: "附件不能为空" },
// ],
},
};
},
computed: {
// 获取课程类型
...mapGetters(["courseOptions"]),
// ...mapGetters(["courseOptions"]),
},
created() {
if (this.courseId) {
this.getLessonById();
}
// 归属部门列表
this.getTreeselect();
},
mounted() {},
methods: {
// 添加课程
addLessons(data) {
console.log("this.courseId", this.courseId);
if (!this.courseId) {
console.log("添加");
return addLessons(data);
return addBank(data);
} else {
console.log("修改");
return changeLesson({ courseId: this.courseId, ...data });
return updateBank({ bankId: this.courseId, ...data });
}
},
/** 查询部门下拉树结构 */
getTreeselect() {
treeselect().then((response) => {
this.deptOptions = response.data;
console.log(this.deptOptions);
});
},
// 当树形组件打开
treeOpen() {
document.querySelector(".vue-treeselect__control").style.borderColor = "";
},
// 当属性组件关闭
treeClose(a, b) {
if (!a) {
// 手动添加报红功能,没值的时候报红
document.querySelector(".vue-treeselect__control").style.borderColor =
"red";
this.save();
} else {
document.querySelector(".vue-treeselect__control").style.borderColor =
"";
this.$refs.treeItem.clearValidate();
}
},
select() {},
// 复现
getLessonById() {
getLessonById(this.courseId).then((res) => {
getBank(this.courseId).then((res) => {
console.log("res", res);
if (res.code == 200) {
const data = res.data;
const { courseName, courseType, courseConent, video, enclosure } =
data;
this.form = {
courseName,
courseType,
courseConent,
video,
enclosure,
bankName: res.data.bankName,
deptId: res.data.deptId,
};
this.fileListVideo = [
{
name: courseName + "视频",
url: uploadfile,
},
];
this.fileListFile = [
{
name: courseName + "附件",
url: uploadfile,
},
];
// const data = res.data;
// const { bankName, courseType, courseConent, video, enclosure } =
// data;
// this.form = {
// bankName,
// courseType,
// courseConent,
// video,
// enclosure,
// };
// this.fileListVideo = [
// {
// name: bankName + "视频",
// url: uploadfile,
// },
// ];
// this.fileListFile = [
// {
// name: bankName + "附件",
// url: uploadfile,
// },
// ];
}
});
},
......@@ -207,25 +259,25 @@ export default {
},
save(num = 2) {
// 因为富文本编辑器会残留<p><br></p>,所以要清
if (this.form.courseConent === "<p><br></p>") {
this.form.courseConent = "";
}
// if (this.form.courseConent === "<p><br></p>") {
// this.form.courseConent = "";
// }
this.$refs.form.validate((valid) => {
if (valid) {
// console.log(this.form);
this.addLessons({ ...this.form }).then((res) => {
// 如果添加会传回来,就用传回来的,如果是修改本身就有,就用本身的
const courseId = res.data || this.courseId;
if (res.code == 200) {
// console.log('res',res)
const courseId = this.courseId || res;
// if (res.code == 200) {
// 这样调比较纯函数一点
if (num == 2) {
this.$message({
message: "保存课程成功",
message: "保存题库成功",
type: "success",
});
} else if (num == 3) {
this.$message({
message: "保存课程成功,请开始录入题目",
message: "保存题库成功,请开始录入题目",
type: "success",
});
}
......@@ -234,8 +286,19 @@ export default {
this.$parent.$parent.$parent.getList();
return true;
}
// }
});
} else {
if (!this.form.deptId) {
document.querySelector(
".vue-treeselect__control"
).style.borderColor = "red";
} else {
document.querySelector(
".vue-treeselect__control"
).style.borderColor = "";
this.$refs.treeItem.clearValidate();
}
}
});
},
......@@ -250,8 +313,8 @@ export default {
.form-wrapper {
padding-top: 22px;
width: 100%;
height: 550px;
overflow: hidden;
height: 100px;
// overflow: hidden;
// padding-bottom: 10px;
margin-bottom: 20px;
......
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-09-22 17:56:05
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2022-09-28 17:54:16
* @LastEditTime: 2022-12-16 10:23:13
* @FilePath: /danger-manage-web/src/views/lessonsProgram/components/QuestionList.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -10,9 +10,9 @@
<div ref="myBody" class="add-question flex">
<div class="text flex">
<div class="left">
目前有<span>{{ questionNum }}</span
目前有<span>{{ questionNum || 0}}</span
>道题
<span class="warn">温馨提示:发布课程前需要进行考试设置</span>
<!-- <span class="warn">温馨提示:发布课程前需要进行考试设置</span> -->
</div>
<div class="right">{{courseName}}</div>
</div>
......@@ -51,8 +51,9 @@
</div>
</div>
</div>
<div class="rightNum flex">
<div class="left">考试设置</div>
<!-- <div class="rightNum flex">
<div class="left">录入考题</div>
<div class="middle flex">
<div class="left-text">答对题目大于</div>
<div>
......@@ -73,7 +74,7 @@
>保存</el-button
>
</div>
</div>
</div> -->
</div>
</template>
......
......@@ -35,7 +35,7 @@ module.exports = {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: process.env.VUE_APP_TARGET,
//target: `http://192.168.31.87:8908/dangerManage`,
target: `http://192.168.2.2:8908/dangerManage`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment