Commit 272e7779 authored by 吴卿华's avatar 吴卿华

Merge remote-tracking branch 'origin/master'

parents 238a296c 83a6b852
......@@ -44,8 +44,9 @@ public class TStaningBookController extends BaseController
{
LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
SysUser user = loginUser.getUser();
tStaningBook.setUserId(user.getUserId());
startPage();
List<TStaningBook> list = tStaningBookService.selectTStaningBookList(tStaningBook,user.getDeptId());
List<TStaningBook> list = tStaningBookService.selectTStaningBookList(tStaningBook,user.getRoles().get(0).getRoleId());
return getDataTable(list);
}
......@@ -60,7 +61,7 @@ public class TStaningBookController extends BaseController
LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
SysUser user = loginUser.getUser();
startPage();
List<TStaningBook> list = tStaningBookService.selectTStaningBookList(tStaningBook,user.getDeptId());
List<TStaningBook> list = tStaningBookService.selectTStaningBookList(tStaningBook,user.getRoles().get(0).getRoleId());
ExcelUtil<TStaningBook> util = new ExcelUtil<TStaningBook>(TStaningBook.class);
return util.exportExcel(list, "隐患台账数据");
}
......@@ -83,6 +84,9 @@ public class TStaningBookController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody TStaningBook tStaningBook)
{
LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
SysUser user = loginUser.getUser();
tStaningBook.setCreateId(user.getUserId());
return toAjax(tStaningBookService.insertTStaningBook(tStaningBook));
}
......
......@@ -145,6 +145,26 @@ public class TStaningBook extends BaseEntity
private List<Long> deptList;
private Long userId;
private Long createId;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getCreateId() {
return createId;
}
public void setCreateId(Long createId) {
this.createId = createId;
}
public List<Long> getDeptList() {
return deptList;
}
......
......@@ -28,7 +28,7 @@ public interface ITStaningBookService
* @param tStaningBook 隐患台账
* @return 隐患台账集合
*/
public List<TStaningBook> selectTStaningBookList(TStaningBook tStaningBook,Long deptId);
public List<TStaningBook> selectTStaningBookList(TStaningBook tStaningBook,Long roleId);
/**
* 新增隐患台账
......
......@@ -239,7 +239,7 @@ public class LedserviceImpl {
led.AddSinglelineTextToImageTextArea(hProgram,0,1,0,"上海灵信视觉","宋体",12,0xff,0,0,0,6,8,0);
//添加数字时钟节目
led.AddProgram(hProgram, 1, 0, 1);
led.AddDigitalClockArea(hProgram,1,1,0,0,ledWidth,ledHeight,"宋体",8,0xff,0,0,0,0,0,0,0,1,1,0,0,0xff,0,0xff,0,0xff,1);
led.AddDigitalClockArea(hProgram,1,1,0,0,ledWidth,ledHeight,"宋体",9,0xff,0,0,0,1,0,1,1,1,1,1,0,0xff,0,0xff,3,0xff,0);
int errCode = led.NetWorkSend(strIp, hProgram);
led.DeleteProgram(hProgram);
......
......@@ -51,13 +51,11 @@ public class TStaningBookServiceImpl implements ITStaningBookService
* @return 隐患台账
*/
@Override
public List<TStaningBook> selectTStaningBookList(TStaningBook tStaningBook,Long deptId)
public List<TStaningBook> selectTStaningBookList(TStaningBook tStaningBook,Long roleId)
{
List<Long> oneList = new ArrayList<>();
oneList.add(deptId);
List<Long> deptIds = selectDeptIds(new ArrayList<>(),oneList);
deptIds.add(deptId);
tStaningBook.setDeptList(deptIds);
if(roleId!=3){//当角色是管理员时候查询全部
tStaningBook.setUserId(0l);
}
List<TStaningBook> list = tStaningBookMapper.selectTStaningBookList(tStaningBook);
return list;
}
......
......@@ -67,7 +67,11 @@ public class TTrainCourseServiceImpl implements ITTrainCourseService
return 0;
}
List<String> userIds = tTrainPlanMapper.selectAlluserByplanId(course.getCourseType());
tTrainCourseMapper.insertUserCourse(courseId,userIds,course.getPersonnelType());
//异常数据
if(userIds==null||userIds.size()==0){
return 0;
}
tTrainCourseMapper.insertUserCourse(courseId,userIds,course.getPersonnelType());
course.setStatus(1);
course.setReleaseTime(new Date());
return tTrainCourseMapper.updateTTrainCourse(course);
......
......@@ -37,6 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="workId" column="work_id" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
<result property="createId" column="create_id" />
<result property="isDel" column="is_del" />
<result property="deptName" column="deptName" />
</resultMap>
......@@ -57,9 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN sys_dept d ON d.`dept_id` = b.`dept_id`
<where>
<foreach collection="deptList" item="deptId" open="AND b.dept_id in (" separator="," close=")">
#{deptId}
</foreach>
<if test="userId != null and userId != 0"> and (b.escalation=#{userId}||b.rectification = #{userId}||b.create_id = #{userId} ) </if>
<if test="troubleName != null and troubleName != ''"> and b.trouble_name like concat('%', #{troubleName}, '%')</if>
<if test="findTime != null "> and b.find_time &gt; #{findTime}</if>
<if test="rectificationTime != null "> and b.find_time &lt; #{rectificationTime}</if>
......@@ -103,6 +102,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="workId != null">work_id,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
<if test="createId != null">create_id,</if>
<if test="isDel != null">is_del,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
......@@ -134,6 +134,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="workId != null">#{workId},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createId != null">#{createId},</if>
<if test="isDel != null">#{isDel},</if>
</trim>
</insert>
......@@ -169,6 +170,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="workId != null">work_id = #{workId},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createId != null">create_id = #{createId},</if>
<if test="isDel != null">is_del = #{isDel},</if>
</trim>
where book_id = #{bookId}
......
/*
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-12-27 16:04:04
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2023-01-31 16:22:00
* @FilePath: /danger-manage-web/src/api/contractTrain/contractTrain.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import request from '@/utils/request'
// 查询承包商及访客培训列表
......@@ -9,6 +17,7 @@ export function listCourse(query) {
})
}
// 查询承包商及访客培训详细
export function getCourse(contractorCourseId) {
return request({
......
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-12-19 15:23:58
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2022-12-21 16:56:26
* @LastEditTime: 2023-02-01 17:24:30
* @FilePath: /danger-manage-web/src/views/educationPlanExam/textPaper/components/Lesson-table.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -16,7 +16,10 @@
@select-all="all"
ref="multipleTable"
>
<el-table-column type="selection"></el-table-column>
<el-table-column
v-if='!disabled'
type="selection"
></el-table-column>
<el-table-column label="姓名" align="center" prop="staffName">
</el-table-column>
<el-table-column
......@@ -55,10 +58,14 @@ export default {
selectNameList: {
type: Array,
},
disabled: {
type: Boolean,
},
},
created() {
// this.listStaff();
},
data() {
return {
queryParams: {
......@@ -71,6 +78,9 @@ export default {
nameList: [],
loading: false,
};
},
mounted() {
},
methods: {
listStaff() {
......@@ -109,6 +119,11 @@ export default {
}
this.$emit("selectAll", this.nameList, allSelect);
},
selectable(row, rowIndex) {
if (!this.disabled) {
return true;
}
},
// 切换选项
toggleSelection(staffId, SeclctFlag = false) {
const item = this.nameList.find((item) => {
......
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-12-19 17:39:55
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2023-01-13 15:37:54
* @LastEditTime: 2023-02-02 10:56:52
* @FilePath: /danger-manage-web/src/views/educationPlanExam/textPaper/components/ChangePapel.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -36,13 +36,14 @@
>
</el-input>
<div>
<el-button @click="searchTable" size="mini">搜索</el-button>
<el-button @click="searchTable" size="mini">搜索</el-button>
</div>
</div>
<div class="left-middle-table">
<ChangPapelTable
ref="table"
:selectNameList.sync="selectNameList"
:disabled="disabled"
@selectOne="selectOne"
@selectAll="selectAll"
/>
......@@ -60,7 +61,7 @@
:key="item.staffId"
>
<div>{{ item.staffName }}</div>
<div class="close" @click="deleteName(item.staffId)">x</div>
<div class="close" @click="deleteName(item.staffId)">x</div>
</div>
</div>
<div class="bottom-text">已选择{{selectNameList.length}}</div>
......@@ -83,6 +84,9 @@ export default {
type: String,
default: null,
},
disabled:{
type:Boolean,
}
},
data() {
return {
......@@ -143,6 +147,7 @@ export default {
this.$refs.table.listStaff();
},
deleteName(staffId) {
if(this.disabled) return;
const index = this.selectNameList.findIndex((item) => {
return item.staffId == staffId;
});
......
......@@ -7,7 +7,7 @@
// [114.07708709377842, 38.248960473114614],
// ],
// colorNum: 1,
// fxlb: "风险区域",
// fxlb: "重大风险区域",
// bsjh: "",
// wxy: "锅炉操作",
// fxd: "锅炉点火",
......@@ -145,7 +145,7 @@ export const dangerArr = [
[114.08164030994841, 38.25079994477491],
],
data: {
fxlb: "较风险"
fxlb: "较风险"
},
colorNum: 2,
},
......@@ -160,7 +160,7 @@ export const dangerArr = [
[114.08037480953207, 38.249932590119556],
],
data: {
fxlb: "风险",
fxlb: "重大风险",
src: [jzyh, jzdhz, dxzd, dxxl, dxbz, bxdfdmj],
},
colorNum: 1,
......@@ -174,7 +174,7 @@ export const dangerArr = [
[114.08098376391818, 38.24951885572243],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -201,7 +201,7 @@ export const dangerArr = [
[114.08000932886821, 38.25149427805925],
],
data: {
fxlb: "较风险"
fxlb: "较风险"
},
colorNum: 2,
},
......@@ -215,7 +215,7 @@ export const dangerArr = [
[114.07992247747968, 38.2490596822873],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
},
{
......@@ -240,7 +240,7 @@ export const dangerArr = [
[114.07896214915758, 38.2485657203445],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -253,7 +253,7 @@ export const dangerArr = [
[114.07968503158452, 38.249621022521914],
],
data: {
fxlb: "较风险"
fxlb: "较风险"
},
colorNum: 2,
},
......@@ -266,7 +266,7 @@ export const dangerArr = [
[114.07932854865001, 38.25049906057526],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -279,7 +279,7 @@ export const dangerArr = [
[114.07929156270377, 38.24989004286162],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -293,7 +293,7 @@ export const dangerArr = [
[114.07818775308438, 38.24904718615451],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
},
{
......@@ -308,7 +308,7 @@ export const dangerArr = [
[114.07822516569071, 38.24873709204756],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
},
{
......@@ -320,7 +320,7 @@ export const dangerArr = [
[114.0778791617466, 38.24978811628299],
],
data: {
fxlb: "较风险"
fxlb: "较风险"
},
colorNum: 2,
},
......@@ -334,7 +334,7 @@ export const dangerArr = [
[114.07811902680491, 38.25084109067064],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
},
{
......@@ -346,7 +346,7 @@ export const dangerArr = [
[114.07816939918499, 38.250464604821424],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -362,7 +362,7 @@ export const dangerArr = [
[114.07655032796976, 38.24855692071795],
],
data: {
fxlb: "较风险"
fxlb: "较风险"
},
},
{
......@@ -375,7 +375,7 @@ export const dangerArr = [
[114.07645852296761, 38.249258052783055],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
},
{
......@@ -387,7 +387,7 @@ export const dangerArr = [
[114.07673177371679, 38.24999869046041],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -400,7 +400,7 @@ export const dangerArr = [
[114.07638572203807, 38.250006593486276],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -413,7 +413,7 @@ export const dangerArr = [
[114.0763611632972, 38.2506105391965],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -440,7 +440,7 @@ export const dangerArr = [
[114.07610863025666, 38.249559594773935],
],
data: {
fxlb: "较风险"
fxlb: "较风险"
},
},
{
......@@ -452,7 +452,7 @@ export const dangerArr = [
[114.07629629633044, 38.249994075703896],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -479,7 +479,7 @@ export const dangerArr = [
[114.07614690640786, 38.250982027231906],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -492,7 +492,7 @@ export const dangerArr = [
[114.07506815524074, 38.24935807751058],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -505,7 +505,7 @@ export const dangerArr = [
[114.07575424777615, 38.25022009521355],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -518,7 +518,7 @@ export const dangerArr = [
[114.07569321404614, 38.25050557141559],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -531,7 +531,7 @@ export const dangerArr = [
[114.07533109169464, 38.25112532353275],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -544,7 +544,7 @@ export const dangerArr = [
[114.07506400522227, 38.2498509809399],
],
data: {
fxlb: "较风险"
fxlb: "较风险"
},
colorNum: 2,
},
......@@ -557,7 +557,7 @@ export const dangerArr = [
[114.07507104315593, 38.249669088954406],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -571,7 +571,7 @@ export const dangerArr = [
[114.07329016901807, 38.24975956466659],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
},
{
......@@ -583,7 +583,7 @@ export const dangerArr = [
[114.07449942174725, 38.25005976641145],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......@@ -596,7 +596,7 @@ export const dangerArr = [
[114.07409377782558, 38.25057015884229],
],
data: {
fxlb: "风险"
fxlb: "重大风险"
},
colorNum: 1,
},
......
<!--
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2023-02-01 09:37:02
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2023-02-01 09:59:55
* @FilePath: /danger-manage-web/src/views/dangerScale/profile/tiops.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<div class="danger-tips">
<!-- <div>管道压力</div> -->
<div class="hasColorBox" :style="{ color: dangerColor['1'] }">
<div :style="{ backgroundColor: dangerColor['1'] }"></div>
<span>重大风险</span>
</div>
<div class="hasColorBox" :style="{ color: dangerColor[`2`] }">
<div :style="{ backgroundColor: dangerColor[`2`] }"></div>
<span>较大风险</span>
</div>
<div class="hasColorBox" :style="{ color: dangerColor[`3`] }">
<div :style="{ backgroundColor: dangerColor[`3`] }"></div>
<span>一般风险</span>
</div>
<div class="hasColorBox" :style="{ color: dangerColor[`4`] }">
<div :style="{ backgroundColor: dangerColor[`4`] }"></div>
<span>低风险</span>
</div>
</div>
</template>
<script>
export default {
name: "",
data() {
return {
dangerColor: {
1: "red",
2: "orange",
3: "yellow",
4: "blue",
},
};
},
methods: {},
};
</script>
<style lang="scss" scoped>
.danger-tips {
position: absolute;
color: #fff;
left: 10px;
top: 10px;
padding: 1px;
padding-left:10px;
width: 150px;
// background: rgba(6, 29, 51, 0.2);
.hasColorBox {
// border: 1px solid #053b6a;
padding: 2px 5px;
margin-bottom: 5px;
position:relative;
& > div {
display: inline-block;
width: 50px;
height: 20px;
margin-right: 10px;
}
& > span {
position:absolute;
display: inline-block;
width: 100px;
}
}
}
</style>
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-06-16 15:03:40
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2022-10-22 10:39:48
* @LastEditTime: 2023-02-01 09:48:47
* @FilePath: /danger-manage-web/src/views/bigwindow/index.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -20,13 +20,14 @@
>
</div> -->
<div id="mapbox"></div>
<DangerTips />
</div>
</template>
<script>
import CreateCesium, { DEVICE_PIC_TYPE } from "@/utils/cesium/cesiumClass.js";
import { dangerArr } from "@/utils/cesium/dangerArr.js";
import DangerTips from "./DangerTips.vue";
import Video from "@/components/bigWindow/video";
import Null from "@/components/bigWindow/Null";
import Danger from "@/components/bigWindow/Danger";
......@@ -42,6 +43,7 @@ export default {
name: "profile",
components: {
Editor,
DangerTips,
},
data() {
return {
......@@ -249,6 +251,7 @@ export default {
<style lang="scss" scoped>
.big-window {
width: 100%;
position:relative;
// height: calc(100vh - 84px);
height: calc(100vh - 50px);
#mapbox {
......
......@@ -11,9 +11,15 @@
size="mini"
@input="topicTypeChange"
>
<el-radio-button :label="1">单选</el-radio-button>
<el-radio-button :label="2">多选</el-radio-button>
<el-radio-button :label="3">判断</el-radio-button>
<el-radio-button :disabled="checkLock" :label="1"
>单选</el-radio-button
>
<el-radio-button :disabled="checkLock" :label="2"
>多选</el-radio-button
>
<el-radio-button :disabled="checkLock" :label="3"
>判断</el-radio-button
>
</el-radio-group>
</div>
......@@ -29,7 +35,7 @@
:rules="{
required: true,
message: '必须输入题目内容',
trigger: 'blur',
trigger: ['blur', 'change'],
}"
>
<el-input
......@@ -38,6 +44,7 @@
resize="none"
rows="4"
v-model="form.topicTitle"
:disabled="checkLock"
>
</el-input>
</el-form-item>
......@@ -55,7 +62,7 @@
:rules="{
required: true,
message: '选项内容不能为空不能为空',
trigger: 'change',
trigger: ['blur', 'change'],
}"
>
<div class="add-select flex">
......@@ -65,6 +72,7 @@
style="flex: 1; margin-right: 10px"
rows="2"
v-model="question.value"
:disabled="checkLock"
></el-input>
<div class="flex algin-items">
<div
......@@ -79,8 +87,9 @@
<el-button
size="mini"
type="danger"
v-if="index > 0"
v-if="index > 0 && form.topicType != 3"
@click.prevent="removeDomain(question)"
:disabled="checkLock"
>删除</el-button
>
</div>
......@@ -111,7 +120,11 @@
设为正确答案
</div> -->
<div style="padding-left: 30px" v-if="form.topicType != 3">
<el-button size="mini" type="primary" @click.prevent="add(addValue)"
<el-button
size="mini"
:disabled="checkLock"
type="primary"
@click.prevent="add(addValue)"
>新增选项</el-button
>
</div>
......@@ -146,6 +159,10 @@ export default {
topicId: {
type: Number,
},
// 如果是查看,就禁止修改
checkLock: {
type: Boolean,
},
},
components: {},
data() {
......@@ -171,7 +188,7 @@ export default {
console.log(res.data);
const data = res.data;
this.form = {
topicType :data.topicType,
topicType: data.topicType,
topicTitle: data.topicTitle,
questions: JSON.parse(data.topicOption),
};
......@@ -232,6 +249,7 @@ export default {
}
},
rightAnswerClick(index) {
if (this.checkLock) return;
if (this.form.topicType === 2) {
const ind = this.answerNum.indexOf(index);
if (ind < 0) {
......@@ -250,6 +268,8 @@ export default {
},
// 删除选项
removeDomain(question) {
if (this.checkLock) return;
const index = this.form.questions.indexOf(question);
console.log(index);
// 如果是正确答案,就让正确答案清空
......@@ -279,7 +299,7 @@ export default {
},
save(num = 2) {
return new Promise((resove) => {
if (this.answerNum.length<=0) {
if (this.answerNum.length <= 0) {
this.$message({
message: "警告,请设置一个正确答案",
type: "warning",
......@@ -292,8 +312,8 @@ export default {
data.topicTitle = this.form.topicTitle;
data.topicOption = JSON.stringify(this.form.questions);
data.answer = JSON.stringify(this.answerNum);
data.topicType=this.form.topicType;
console.log(data)
data.topicType = this.form.topicType;
console.log(data);
this.addQuestion(data).then((res) => {
if (res.code == 200) {
// 把修改的这个归位,变成正常添加
......@@ -323,7 +343,7 @@ export default {
});
},
reset() {
const topicType = this.form.topicType
const topicType = this.form.topicType;
this.form = {
topicType,
topicTitle: "",
......
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-12-27 09:30:19
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2022-12-28 10:29:18
* @LastEditTime: 2023-02-01 16:15:10
* @FilePath: /danger-manage-web/src/views/educationPlanExam/textPaper/components/ChangeQuestion.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -193,7 +193,8 @@ export default {
this.loading = false;
});
},
saveAndNext() {
save(num=2) {
const topicInfos = this.list
.filter((item) => item.checked)
.map((item) => {
......@@ -202,18 +203,20 @@ export default {
quan: item.changeNum,
};
});
console.log(this.courseId, topicInfos);
const data = { courseId: this.courseId, topicInfos };
console.log(data);
bachAddTopic(data).then((res) => {
console.log(res);
if (res.code == 200) {
this.$parent.$parent.componentsNumChange(2);
this.$parent.$parent.componentsNumChange(num);
this.$parent.$parent.$parent.getList();
}
});
},
saveAndNext(){
this.save(3)
},
resetClick() {},
search() {
this.getList();
......
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-09-22 10:38:49
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2023-01-13 15:59:47
* @LastEditTime: 2023-02-01 16:16:44
* @FilePath: /danger-manage-web/src/views/lessonsProgram/components/addLesson.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -24,6 +24,7 @@
:is="currentComponent"
:courseId.sync="courseId"
:topicId.sync="topicId"
:checkLock="checkLock"
ref="current"
></component>
</transition>
......@@ -32,27 +33,31 @@
<QuestionList/> -->
</div>
<div slot="footer" class="dialog-footer">
<div slot="footer" class="dialog-footer" v-if="!checkLock">
<el-button
type="primary"
v-if="this.componentsNum == 2"
v-if="this.componentsNum == 2 && !checkLock"
@click="componentsNumChange(4)"
>从题库选择</el-button
>
<el-button
type="primary"
v-if="this.componentsNum == 1 || this.componentsNum == 3"
@click="save"
>保存</el-button
v-if="this.componentsNum == 4 ||this.componentsNum==3"
@click="componentsNumChange(2)"
>返回题目列表</el-button
>
<el-button
type="primary"
v-if="this.componentsNum == 4"
@click="componentsNumChange(2)"
>返回题目列表</el-button
v-if="
this.componentsNum == 1 ||
this.componentsNum == 3 ||
this.componentsNum == 4
"
@click="save"
>保存</el-button
>
<el-button type="primary" @click="saveAndNext">{{
<el-button type="primary" @click="saveAndNext" v-if="!checkLock">{{
saveNextText
}}</el-button>
<el-button
......@@ -63,6 +68,16 @@
>
<el-button @click="dialogCancel">取消</el-button>
</div>
<div slot="footer" class="dialog-footer" v-else>
<el-button
type="primary"
v-if="this.componentsNum == 3 && checkLock"
@click="componentsNumChange(2)"
>返回题目列表</el-button
>
<el-button type="primary" @click="dialogCancel">{{ "确认" }}</el-button>
<el-button @click="dialogCancel">取消</el-button>
</div>
</el-dialog>
</template>
......@@ -72,7 +87,6 @@ import AddQuestion from "./AddQuestion";
import QuestionList from "./QuestionList";
import ChangeQuestion from "./ChangeQuestion";
export default {
name: "AnswerLesson",
props: {
......@@ -87,6 +101,9 @@ export default {
courseId: {
type: Number,
},
checkLock: {
type: Boolean,
},
},
// components: {
// Lesson,
......@@ -116,14 +133,14 @@ export default {
this.currentComponent = QuestionList;
this.title = "题目列表";
} else if(num===3) {
} else if (num === 3) {
this.currentComponent = AddQuestion;
if (this.topicId) {
this.title = "修改题目";
} else {
this.title = "新增题目";
}
}else if (num == 4) {
} else if (num == 4) {
this.currentComponent = ChangeQuestion;
this.title = "从题库选题";
}
......@@ -167,6 +184,8 @@ export default {
this.topicId = null;
}
this.$emit("update:visible", false);
// 关闭的时候归位
this.$emit("update:checkLock", false);
},
// 把ID改变了
changeCourseId(courseId) {
......
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-09-22 10:59:44
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2023-01-04 17:47:53
* @LastEditTime: 2023-02-01 15:21:15
* @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
-->
......@@ -17,34 +17,33 @@
>
<div class="top flex">
<el-form-item label="课程标题" prop="courseName">
<el-input style="width: 400px" v-model="form.courseName"></el-input>
<el-input style="width: 400px" v-model="form.courseName" :disabled="checkLock"></el-input>
</el-form-item>
<!--<el-form-item label="培训计划" prop="courseType">-->
<!--<el-select-->
<!--v-model="form.courseType"-->
<!--placeholder="请选择培训计划"-->
<!--clearable-->
<!--size="small"-->
<!--&gt;-->
<!--<el-option-->
<!--v-for="course in courseOptions"-->
<!--:key="course.planId"-->
<!--:label="course.planName"-->
<!--:value="course.planId"-->
<!--/>-->
<!--</el-select>-->
<!--<el-select-->
<!--v-model="form.courseType"-->
<!--placeholder="请选择培训计划"-->
<!--clearable-->
<!--size="small"-->
<!--&gt;-->
<!--<el-option-->
<!--v-for="course in courseOptions"-->
<!--:key="course.planId"-->
<!--:label="course.planName"-->
<!--:value="course.planId"-->
<!--/>-->
<!--</el-select>-->
<!--</el-form-item>-->
</div>
<div class="flex">
<el-form-item label="培训计划" prop="courseType">
<el-select
v-model="form.courseType"
placeholder="请选择培训计划"
clearable
size="small"
:disabled="checkLock"
>
<el-option
v-for="course in courseOptions"
......@@ -54,8 +53,18 @@
/>
</el-select>
</el-form-item>
<el-form-item label="培训时长" prop="duration" style="margin-left: 55px">
<el-input style="width: 220px" placeholder="分钟" type="number" v-model="form.duration"></el-input>
<el-form-item
label="培训时长"
prop="duration"
style="margin-left: 55px"
>
<el-input
style="width: 220px"
placeholder="分钟"
type="number"
v-model="form.duration"
:disabled="checkLock"
></el-input>
</el-form-item>
</div>
<div class="flex">
......@@ -67,6 +76,7 @@
type="datetime"
placeholder="选择日期时间"
default-time="00:00:00"
:disabled="checkLock"
/>
</el-form-item>
<el-form-item label="结束时间" prop="testEndTime">
......@@ -76,12 +86,13 @@
type="datetime"
placeholder="选择日期时间"
default-time="00:00:00"
:disabled="checkLock"
/>
</el-form-item>
</div>
<!-- </div> -->
<el-form-item label="课程内容" prop="courseConent">
<Editor v-model="form.courseConent" :min-height="192" />
<Editor v-model="form.courseConent" :min-height="192" :readOnly="checkLock"/>
<el-input
v-show="false"
disabled
......@@ -90,7 +101,7 @@
</el-form-item>
<div class="flex">
<el-form-item label="视频上传" v-if="!readOnly" prop="video">
<el-form-item label="视频上传" v-if="!readOnly" prop="video">
<FileUpload
listType="picture"
@resFun="getFileInfoVideo"
......@@ -98,6 +109,7 @@
:fileArr="fileListVideo"
:fileSize="500"
:fileType="['mp4']"
:disabled="checkLock"
/>
<el-input v-show="false" disabled v-model="form.video"></el-input>
</el-form-item>
......@@ -108,6 +120,7 @@
@remove="listRemoveFile"
:fileArr="fileListFile"
:fileType="fileType"
:disabled="checkLock"
/>
<el-input v-show="false" disabled v-model="form.enclosure"></el-input>
</el-form-item>
......@@ -133,6 +146,9 @@ export default {
courseId: {
type: Number,
},
checkLock:{
type:Boolean,
}
},
components: {
Editor,
......@@ -204,8 +220,16 @@ export default {
getLessonById(this.courseId).then((res) => {
if (res.code == 200) {
const data = res.data;
const { courseName, courseType, courseConent, video, enclosure,duration,testStartTime,testEndTime } =
data;
const {
courseName,
courseType,
courseConent,
video,
enclosure,
duration,
testStartTime,
testEndTime,
} = data;
this.form = {
courseName,
courseType,
......@@ -214,21 +238,22 @@ export default {
enclosure,
duration,
testStartTime,
testEndTime
testEndTime,
};
this.fileListVideo = [
console.log('video',video)
this.fileListVideo = video? [
{
name: courseName + "视频",
url: uploadfile,
},
];
]:[];
this.fileListFile = [
{
name: courseName + "附件",
url: uploadfile,
},
];
console.log("--",this.fileListFile);
console.log("--", this.fileListFile);
}
});
},
......@@ -280,14 +305,18 @@ export default {
message: "保存课程成功",
type: "success",
});
// 隐藏dia
this.$parent.$parent.dialogCancel()
} else if (num == 3) {
this.$message({
message: "保存课程成功,请开始录入题目",
type: "success",
});
// 跳转动态路由,并且把ID改变添加用
this.$parent.$parent.componentsNumChange(num);
this.$parent.$parent.changeCourseId(courseId);
}
this.$parent.$parent.componentsNumChange(num);
this.$parent.$parent.changeCourseId(courseId);
this.$parent.$parent.$parent.getList();
return true;
......@@ -307,7 +336,7 @@ export default {
.form-wrapper {
padding-top: 22px;
width: 100%;
height: 650px;
height: 680px;
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: 2023-01-31 14:03:36
* @LastEditTime: 2023-02-02 10:05:15
* @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
-->
......@@ -71,12 +71,21 @@
<div class="right">
<div>
<el-button
v-if="!checkLock"
@click="edit(item.topicId)"
icon="el-icon-edit"
type="text"
>修改</el-button
>
<el-button
v-if="checkLock"
@click="edit(item.topicId)"
icon="el-icon-edit"
type="text"
>查看</el-button
>
<el-button
v-if="!checkLock"
@click="deleteLesson(item.topicId)"
icon="el-icon-delete"
type="text"
......@@ -98,6 +107,7 @@
v-model="bottomFrom.singleChoiceScore"
style="width: 50px"
size="mini"
:disabled="checkLock"
></el-input>
</div>
<div></div>
......@@ -109,6 +119,7 @@
v-model="bottomFrom.multipleChoiceScore"
style="width: 50px"
size="mini"
:disabled="checkLock"
></el-input>
</div>
<div></div>
......@@ -121,6 +132,7 @@
v-model="bottomFrom.judgmentScore"
style="width: 50px"
size="mini"
:disabled="checkLock"
></el-input>
</div>
<div></div>
......@@ -133,6 +145,7 @@
v-model="bottomFrom.qualifiedNum"
style="width: 60px"
size="mini"
:disabled="checkLock"
></el-input>
</div>
<div>为合格</div>
......@@ -144,6 +157,7 @@
icon="el-icon-check"
size="mini"
type="success"
:disabled="checkLock"
>保存</el-button
>
</div>
......@@ -164,6 +178,9 @@ export default {
courseId: {
type: Number,
},
checkLock: {
type: Boolean,
},
},
components: {},
data() {
......
......@@ -131,11 +131,13 @@
prop="topicNum"
width="180"
>
<template v-slot="{ row: { topicNum, courseId } }">
<div @click="checkQuestion(courseId)" class="timuNum">
<div v-if="topicNum > 0">{{ `已录入${topicNum}题` }}</div>
<div v-else>未录入</div>
</div>
<template v-slot="{ row: { topicNum, courseId, status } }">
<span @click="checkQuestion(courseId, status)" class="timuNum">
<span v-if="topicNum > 0">
{{ status == 0 ? `已录入${topicNum}题` : "查看" }}
</span>
<span v-else>未录入</span>
</span>
</template>
</el-table-column>
<el-table-column
......@@ -153,6 +155,14 @@
@click="changeLesson(courseId)"
>修改</el-button
>
<el-button
v-if="status == 1"
size="mini"
type="text"
icon="el-icon-edit"
@click="checkLesson(courseId)"
>详情</el-button
>
<el-button
size="mini"
type="text"
......@@ -165,7 +175,7 @@
size="mini"
type="text"
icon="el-icon-delete"
@click="issueLesson(courseId)"
@click="issueDilog(courseId)"
>发布</el-button
>
</template>
......@@ -183,18 +193,68 @@
ref="Dia"
:componentsNum.sync="componentsNum"
:courseId.sync="courseId"
:checkLock.sync="checkLock"
:visible.sync="dilogFlag"
/>
<el-dialog title="发布详情" :visible.sync="issueVisible" width="60%">
<div class="detail flex">
<div class="detail-item">
单选题<span>{{ bottomFrom.singleChoiceScore }}</span
>/,<span>{{ danxs }}</span
>题,计<span class="textC">{{
danxs * bottomFrom.singleChoiceScore
}}</span
>
</div>
<div class="detail-item">
多选题<span>{{ bottomFrom.multipleChoiceScore }}</span
>/,<span>{{ duoxs }}</span> 题,计<span class="textC">{{
duoxs * bottomFrom.multipleChoiceScore
}}</span
>
</div>
<div class="detail-item">
判断提<span>{{ bottomFrom.judgmentScore }}</span
>/题,共<span>{{ pds }}</span> 题,计<span class="textC">{{
pds * bottomFrom.judgmentScore
}}</span
>
</div>
<div class="detail-item">
合格分数为<span class="textC">{{ bottomFrom.qualifiedNum }}</span
>
</div>
<div class="detail-item">
一共<span>{{ danxs + duoxs + pds }}</span
>道题,总共计<span class="textC">{{
danxs * bottomFrom.singleChoiceScore +
duoxs * bottomFrom.multipleChoiceScore +
pds * bottomFrom.judgmentScore
}}</span
>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="issueVisible = false"> </el-button>
<el-button type="primary" @click="issueLesson(issueCourseId)"
>确认发布</el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import {
getQuestion,
getLessons,
getLessonById,
issue,
deleteLesson,
} from "@/api/educationPlanExam/lessonsProgram.js";
// 获取培训计划
import { getPlanList } from "@/api/educationPlanExam/trainingProgram";
import { mapGetters, mapMutations } from "vuex";
......@@ -222,18 +282,39 @@ export default {
courseName: null,
releaseTime: "",
},
// 表单参数
form: {},
// 表单校验
dilogFlag: false,
// 发布弹框
issueVisible: false,
bottomFrom: {
singleChoiceScore: 0,
multipleChoiceScore: 0,
judgmentScore: 0,
qualifiedNum: 0,
},
issueCourseId: null,
questionList: [],
componentsNum: 1,
// 点击的id,如果是新增为空
courseId: null,
// false为编辑,true为查看,查看不允许编辑的时候
checkLock: false,
};
},
computed: {
...mapGetters(["courseOptions"]),
danxs() {
return this.questionList.filter((item) => item.topicType === 1).length;
},
duoxs() {
return this.questionList.filter((item) => item.topicType === 2).length;
},
pds() {
return this.questionList.filter((item) => item.topicType === 3).length;
},
},
created() {
this.getPlanList();
......@@ -275,21 +356,34 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
this.checkLock = false;
this.$refs.Dia.title = "新增培训课程";
this.componentsNum = 1;
this.courseId = null;
this.dilogFlag = true;
},
changeLesson(courseId) {
this.checkLock = false;
this.$refs.Dia.title = "修改培训课程";
this.componentsNum = 1;
this.courseId = courseId;
this.dilogFlag = true;
},
checkLesson(courseId) {
this.checkLock = true;
this.$refs.Dia.title = "查看培训课程";
this.componentsNum = 1;
this.courseId = courseId;
this.dilogFlag = true;
},
// 直接查看考题
checkQuestion(courseId) {
checkQuestion(courseId, status) {
// 要查看考题的id
if (status == 1) {
this.checkLock = true;
}
this.courseId = courseId;
console.log(this.courseId);
// 2代表列表组件
......@@ -331,9 +425,39 @@ export default {
})
.catch(() => {});
},
// 发布弹框
issueDilog(courseId) {
getQuestion({courseId})
.then((res) => {
this.questionList = res.rows.map((item) => {
return {
topicType: item.topicType,
topicId: item.topicId,
topicTitle: item.topicTitle,
};
});
})
.then((res) => {
return getLessonById(courseId);
})
.then((res) => {
this.bottomFrom = {
singleChoiceScore: res.data.singleChoiceScore,
multipleChoiceScore: res.data.multipleChoiceScore,
judgmentScore: res.data.judgmentScore,
qualifiedNum: res.data.qualifiedNum,
};
})
.then((res) => {
this.issueVisible = true;
this.issueCourseId = courseId;
});
//
},
// 发布
issueLesson(courseId) {
this.$confirm("请确定发布", {
this.$confirm("确定要发布吗", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
......@@ -343,14 +467,14 @@ export default {
return getLessonById(courseId);
})
.then((res) => {
if (
res.data.singleChoiceScore > 0 &&
res.data.multipleChoiceScore > 0 &&
res.data.judgmentScore > 0 &&
res.data.qualifiedNum > 0
) {
return true;
}
// if (
// res.data.singleChoiceScore >= 0 &&
// res.data.multipleChoiceScore >= 0 &&
// res.data.judgmentScore >= 0 &&
// res.data.qualifiedNum >= 0
// ) {
return true;
// }
})
.then((res) => {
if (res) {
......@@ -370,6 +494,7 @@ export default {
type: "success",
});
this.getList();
this.issueVisible = false;
}
})
.catch(() => {});
......@@ -469,4 +594,17 @@ export default {
::v-deep .el-dialog {
margin-top: 15vh !important;
}
.detail {
// position: absolute;
// bottom: -20px;
// left: 10px;
.textC {
font-weight: 800;
font-size: 18px;
}
.detail-item {
margin-right: 20px;
color: red;
}
}
</style>
......@@ -305,6 +305,12 @@ export default {
};
xhr.send();
},
openXslx(url, name) {
// window.open(`https://view.xdocin.com/view?src=${url}`);
console.log(url)
this.ky=`https://view.xdocin.com/view?src=${url}`;
this.iframeVisible=true;
},
},
};
</script>
......
......@@ -81,7 +81,7 @@
<el-button
size="mini"
type="danger"
v-if="index > 0"
v-if="index > 0 && form.topicType != 3"
@click.prevent="removeDomain(question)"
>删除</el-button
>
......
......@@ -11,9 +11,15 @@
size="mini"
@input="topicTypeChange"
>
<el-radio-button :label="1">单选</el-radio-button>
<el-radio-button :label="2">多选</el-radio-button>
<el-radio-button :label="3">判断</el-radio-button>
<el-radio-button :disabled="checkLock" :label="1"
>单选</el-radio-button
>
<el-radio-button :disabled="checkLock" :label="2"
>多选</el-radio-button
>
<el-radio-button :disabled="checkLock" :label="3"
>判断</el-radio-button
>
</el-radio-group>
</div>
<div class="right">{{ courseName }}</div>
......@@ -28,7 +34,7 @@
:rules="{
required: true,
message: '必须输入题目内容',
trigger: 'blur',
trigger: ['blur', 'change'],
}"
>
<el-input
......@@ -37,6 +43,7 @@
resize="none"
rows="4"
v-model="form.topicTitle"
:disabled="checkLock"
>
</el-input>
</el-form-item>
......@@ -54,7 +61,7 @@
:rules="{
required: true,
message: '第一项不能为空不能为空',
trigger: 'blur',
trigger: ['blur', 'change'],
}"
>
<div class="add-select flex">
......@@ -64,6 +71,7 @@
style="flex: 1; margin-right: 10px"
rows="2"
v-model="question.value"
:disabled="checkLock"
></el-input>
<div class="flex algin-items">
<div
......@@ -76,8 +84,9 @@
<el-button
size="mini"
type="danger"
v-if="index > 0"
v-if="index > 0 && form.topicType != 3"
@click.prevent="removeDomain(question)"
:disabled="checkLock"
>删除</el-button
>
</div>
......@@ -108,7 +117,11 @@
设为正确答案
</div> -->
<div style="padding-left: 30px">
<el-button size="mini" type="primary" @click.prevent="add(addValue)"
<el-button
size="mini"
type="primary"
@click.prevent="add(addValue)"
:disabled="checkLock"
>新增选项</el-button
>
</div>
......@@ -143,6 +156,9 @@ export default {
topicId: {
type: Number,
},
checkLock: {
type: Boolean,
},
},
components: {},
data() {
......@@ -229,6 +245,7 @@ export default {
}
},
rightAnswerClick(index) {
if (this.checkLock) return;
if (this.form.topicType === 2) {
const ind = this.answerNum.indexOf(index);
if (ind < 0) {
......@@ -247,6 +264,7 @@ export default {
},
// 删除选项
removeDomain(question) {
if (this.checkLock) return;
const index = this.form.questions.indexOf(question);
console.log(index);
// 如果是正确答案,就让正确答案清空
......@@ -333,9 +351,9 @@ export default {
reset() {
this.form = {
topicTitle: "",
questions: [{ value: "" }, { value: "" }, { value: "" }],
questions: [{ value: "" }, { value: "" }],
};
this.answerNum = null;
this.answerNum = [];
this.addValue = "";
},
},
......
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-12-27 09:30:19
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2022-12-28 10:29:18
* @LastEditTime: 2023-02-01 18:02:14
* @FilePath: /danger-manage-web/src/views/educationPlanExam/textPaper/components/ChangeQuestion.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -193,7 +193,7 @@ export default {
this.loading = false;
});
},
saveAndNext() {
save(num = 2) {
const topicInfos = this.list
.filter((item) => item.checked)
.map((item) => {
......@@ -202,18 +202,20 @@ export default {
quan: item.changeNum,
};
});
console.log(this.courseId, topicInfos);
const data = { courseId: this.courseId, topicInfos };
console.log(data);
bachAddTopic(data).then((res) => {
console.log(res);
if (res.code == 200) {
this.$parent.$parent.componentsNumChange(2);
this.$parent.$parent.componentsNumChange(num);
this.$parent.$parent.$parent.getList();
}
});
},
saveAndNext() {
this.save(3);
},
resetClick() {},
search() {
this.getList();
......
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-09-22 10:38:49
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2022-12-28 10:31:06
* @LastEditTime: 2023-02-01 17:34:25
* @FilePath: /danger-manage-web/src/views/lessonsProgram/components/addLesson.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -24,6 +24,7 @@
:is="currentComponent"
:courseId.sync="courseId"
:topicId.sync="topicId"
:checkLock="checkLock"
ref="current"
></component>
</transition>
......@@ -32,7 +33,7 @@
<QuestionList/> -->
</div>
<div slot="footer" class="dialog-footer">
<!-- <div slot="footer" class="dialog-footer">
<el-button
type="primary"
v-if="this.componentsNum == 2"
......@@ -62,6 +63,51 @@
>{{ "确认" }}</el-button
>
<el-button @click="dialogCancel">取消</el-button>
</div> -->
<div slot="footer" class="dialog-footer" v-if="!checkLock">
<el-button
type="primary"
v-if="this.componentsNum == 2 && !checkLock"
@click="componentsNumChange(4)"
>从题库选择</el-button
>
<el-button
type="primary"
v-if="this.componentsNum == 4 || this.componentsNum == 3"
@click="componentsNumChange(2)"
>返回题目列表</el-button
>
<el-button
type="primary"
v-if="
this.componentsNum == 1 ||
this.componentsNum == 3 ||
this.componentsNum == 4
"
@click="save"
>保存</el-button
>
<el-button type="primary" @click="saveAndNext" v-if="!checkLock">{{
saveNextText
}}</el-button>
<el-button
v-if="this.componentsNum == 2"
type="primary"
@click="dialogCancel"
>{{ "确认" }}</el-button
>
<el-button @click="dialogCancel">取消</el-button>
</div>
<div slot="footer" class="dialog-footer" v-else>
<el-button
type="primary"
v-if="this.componentsNum == 3 && checkLock"
@click="componentsNumChange(2)"
>返回题目列表</el-button
>
<el-button type="primary" @click="dialogCancel">{{ "确认" }}</el-button>
<el-button @click="dialogCancel">取消</el-button>
</div>
</el-dialog>
</template>
......@@ -86,6 +132,9 @@ export default {
courseId: {
type: Number,
},
checkLock: {
type: Boolean,
},
},
// components: {
// Lesson,
......@@ -137,11 +186,9 @@ export default {
text = "保存并录入题目";
} else if (this.componentsNum == 2) {
text = "录入考题";
} else if (this.componentsNum == 3) {
} else {
text = "保存并录入下一题";
} else {
text = "确定选择";
}
}
return text;
},
},
......@@ -168,6 +215,7 @@ export default {
this.topicId = null;
}
this.$emit("update:visible", false);
this.$emit("update:checkLock", false);
},
// 把ID改变了
changeCourseId(courseId) {
......
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-09-22 10:59:44
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2022-12-26 16:31:34
* @LastEditTime: 2023-02-01 16:58:26
* @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,7 +16,11 @@
:rules="rules"
>
<el-form-item label="考试标题" prop="courseName">
<el-input style="width: 700px" v-model="form.courseName"></el-input>
<el-input
:disabled="checkLock"
style="width: 700px"
v-model="form.courseName"
></el-input>
</el-form-item>
<div class="top flex">
<el-form-item label="开始时间" prop="testStartTime">
......@@ -27,6 +31,7 @@
type="datetime"
placeholder="选择日期时间"
default-time="00:00:00"
:disabled="checkLock"
/>
</el-form-item>
<el-form-item label="结束时间" prop="testEndTime">
......@@ -36,6 +41,7 @@
type="datetime"
placeholder="选择日期时间"
default-time="00:00:00"
:disabled="checkLock"
/>
</el-form-item>
</div>
......@@ -43,6 +49,7 @@
<ChangePapel
ref="changePaple"
:jsonSelectNameList="jsonSelectNameList"
:disabled="checkLock"
@getPeopleList="getPeopleList"
/>
</el-form-item>
......@@ -70,6 +77,9 @@ export default {
courseId: {
type: Number,
},
checkLock: {
type: Boolean,
},
},
components: {
// Editor,
......@@ -196,14 +206,17 @@ export default {
message: "保存课程成功",
type: "success",
});
this.$parent.$parent.dialogCancel();
} else if (num == 3) {
this.$message({
message: "保存课程成功,请开始录入题目",
type: "success",
});
this.$parent.$parent.componentsNumChange(num);
this.$parent.$parent.changeCourseId(courseId);
}
this.$parent.$parent.componentsNumChange(num);
this.$parent.$parent.changeCourseId(courseId);
// this.$parent.$parent.componentsNumChange(num);
// this.$parent.$parent.changeCourseId(courseId);
this.$parent.$parent.$parent.getList();
return true;
......
......@@ -2,7 +2,7 @@
* @Author: 纪泽龙 jizelong@qq.com
* @Date: 2022-09-22 17:56:05
* @LastEditors: 纪泽龙 jizelong@qq.com
* @LastEditTime: 2023-01-31 14:04:09
* @LastEditTime: 2023-02-01 17:45:09
* @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
-->
......@@ -34,13 +34,15 @@
>
</div>
<div class="detail-item">
判断提<span>{{ bottomFrom.judgmentScore }}</span>/题,共<span>{{ pds }}</span> 题,计<span
class="textC"
>{{ pds * bottomFrom.judgmentScore }}</span
判断提<span>{{ bottomFrom.judgmentScore }}</span
>/题,共<span>{{ pds }}</span> 题,计<span class="textC">{{
pds * bottomFrom.judgmentScore
}}</span
>
</div>
<div class="detail-item">
一共<span>{{ danxs + duoxs + pds }}</span>道题,总共计<span class="textC">{{
一共<span>{{ danxs + duoxs + pds }}</span
>道题,总共计<span class="textC">{{
danxs * bottomFrom.singleChoiceScore +
duoxs * bottomFrom.multipleChoiceScore +
pds * bottomFrom.judgmentScore
......@@ -70,12 +72,21 @@
<div class="right">
<div>
<el-button
v-if="!checkLock"
@click="edit(item.topicId)"
icon="el-icon-edit"
type="text"
>修改</el-button
>
<el-button
v-if="checkLock"
@click="edit(item.topicId)"
icon="el-icon-edit"
type="text"
>查看</el-button
>
<el-button
v-if="!checkLock"
@click="deleteLesson(item.topicId)"
icon="el-icon-delete"
type="text"
......@@ -106,6 +117,7 @@
v-model="bottomFrom.singleChoiceScore"
style="width: 50px"
size="mini"
:disabled="checkLock"
></el-input>
</div>
<div></div>
......@@ -117,6 +129,7 @@
v-model="bottomFrom.multipleChoiceScore"
style="width: 50px"
size="mini"
:disabled="checkLock"
></el-input>
</div>
<div></div>
......@@ -129,6 +142,7 @@
v-model="bottomFrom.judgmentScore"
style="width: 50px"
size="mini"
:disabled="checkLock"
></el-input>
</div>
<div></div>
......@@ -141,6 +155,7 @@
v-model="bottomFrom.qualifiedNum"
style="width: 60px"
size="mini"
:disabled="checkLock"
></el-input>
</div>
<div>为合格</div>
......@@ -151,6 +166,7 @@
icon="el-icon-check"
size="mini"
type="success"
:disabled="checkLock"
>保存</el-button
>
</div>
......@@ -171,6 +187,9 @@ export default {
courseId: {
type: Number,
},
checkLock: {
type: Boolean,
},
},
components: {},
data() {
......
......@@ -82,15 +82,17 @@
prop="topicNum"
width="180"
>
<template v-slot="{ row: { topicNum, courseId } }">
<div class="timuNum">
<div v-if="topicNum > 0">{{ `已录入${topicNum}题` }}</div>
<div v-else>未录入</div>
</div>
<template v-slot="{ row: { topicNum, courseId, status } }">
<span class="timuNum" @click="checkQuestion(courseId, status)">
<span v-if="topicNum > 0">
{{ status == 0 ? `已录入${topicNum}题` : "查看" }}
</span>
<span v-else>未录入</span>
</span>
</template>
</el-table-column>
<el-table-column
label="答对几题算合格"
label="合格分数"
align="center"
prop="qualifiedNum"
:formatter="formatter"
......@@ -102,17 +104,15 @@
>
<template v-slot="{ row: { status, courseId, qualifiedNum } }">
<!-- <div>{{status}}</div> -->
<el-button
:disabled="status == 1"
<!-- <el-button
v-if="status == 0"
size="mini"
type="text"
icon="el-icon-edit"
@click="checkQuestion(courseId)"
>录入考题</el-button
>
> -->
<el-button
:disabled="status == 1"
v-if="status == 0"
size="mini"
type="text"
......@@ -120,6 +120,14 @@
@click="changeLesson(courseId)"
>编辑</el-button
>
<el-button
v-if="status == 1"
size="mini"
type="text"
icon="el-icon-edit"
@click="checkLesson(courseId)"
>详情</el-button
>
<el-button
size="mini"
type="text"
......@@ -128,13 +136,12 @@
>删除</el-button
>
<el-button
:disabled="status == 1"
v-if="status == 0"
size="mini"
type="text"
icon="el-icon-delete"
@click="issueLesson(courseId, qualifiedNum)"
>发布考试</el-button
@click="issueDilog(courseId)"
>发布</el-button
>
</template>
</el-table-column>
......@@ -151,16 +158,62 @@
ref="Dia"
:componentsNum.sync="componentsNum"
:courseId.sync="courseId"
:checkLock.sync="checkLock"
:visible.sync="dilogFlag"
/>
<el-dialog title="提示" :visible.sync="issue" width="30%">
<div>123</div>
<el-dialog title="发布详情" :visible.sync="issueVisible" width="60%">
<div class="detail flex">
<div class="detail-item">
单选题<span>{{ bottomFrom.singleChoiceScore }}</span
>/,<span>{{ danxs }}</span
>题,计<span class="textC">{{
danxs * bottomFrom.singleChoiceScore
}}</span
>
</div>
<div class="detail-item">
多选题<span>{{ bottomFrom.multipleChoiceScore }}</span
>/,<span>{{ duoxs }}</span> 题,计<span class="textC">{{
duoxs * bottomFrom.multipleChoiceScore
}}</span
>
</div>
<div class="detail-item">
判断提<span>{{ bottomFrom.judgmentScore }}</span
>/题,共<span>{{ pds }}</span> 题,计<span class="textC">{{
pds * bottomFrom.judgmentScore
}}</span
>
</div>
<div class="detail-item">
合格分数为<span class="textC">{{ bottomFrom.qualifiedNum }}</span
>
</div>
<div class="detail-item">
一共<span>{{ danxs + duoxs + pds }}</span
>道题,总共计<span class="textC">{{
danxs * bottomFrom.singleChoiceScore +
duoxs * bottomFrom.multipleChoiceScore +
pds * bottomFrom.judgmentScore
}}</span
>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="issueVisible = false"> </el-button>
<el-button type="primary" @click="issueLesson(issueCourseId)"
>确认发布</el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import {
getQuestion,
getLessons,
getLessonById,
issue,
......@@ -200,14 +253,36 @@ export default {
// 表单校验
dilogFlag: false,
// 发布
issueVisible: false,
bottomFrom: {
singleChoiceScore: 0,
multipleChoiceScore: 0,
judgmentScore: 0,
qualifiedNum: 0,
},
issueCourseId: null,
questionList: [],
componentsNum: 1,
// 点击的id,如果是新增为空
courseId: null,
issue: false,
// false为编辑,true为查看,查看不允许编辑的时候
checkLock: false,
};
},
computed: {
...mapGetters(["courseOptions"]),
danxs() {
return this.questionList.filter((item) => item.topicType === 1).length;
},
duoxs() {
return this.questionList.filter((item) => item.topicType === 2).length;
},
pds() {
return this.questionList.filter((item) => item.topicType === 3).length;
},
},
created() {
// this.getPlanList();
......@@ -257,12 +332,22 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
this.checkLock = false;
this.$refs.Dia.title = "新增考试试卷";
this.componentsNum = 1;
this.courseId = null;
this.dilogFlag = true;
},
changeLesson(courseId) {
this.checkLock = false;
this.$refs.Dia.title = "修改考试试卷";
this.componentsNum = 1;
this.courseId = courseId;
this.dilogFlag = true;
},
checkLesson(courseId) {
this.checkLock = true;
this.$refs.Dia.title = "修改考试试卷";
this.componentsNum = 1;
this.courseId = courseId;
......@@ -270,8 +355,12 @@ export default {
},
// 直接查看考题
checkQuestion(courseId) {
checkQuestion(courseId, status) {
// 要查看考题的id
if (status == 1) {
this.checkLock = true;
}
this.courseId = courseId;
console.log(this.courseId);
// 2代表列表组件
......@@ -315,8 +404,39 @@ export default {
.catch(() => {});
},
// 发布
issueLesson(courseId, qualifiedNum) {
this.$confirm("请确定发布", {
issueDilog(courseId) {
getQuestion({courseId})
.then((res) => {
console.log(res)
this.questionList = res.rows.map((item) => {
return {
topicType: item.topicType,
topicId: item.topicId,
topicTitle: item.topicTitle,
};
});
})
.then((res) => {
return getLessonById(courseId);
})
.then((res) => {
this.bottomFrom = {
singleChoiceScore: res.data.singleChoiceScore ||0,
multipleChoiceScore: res.data.multipleChoiceScore||0,
judgmentScore: res.data.judgmentScore||0,
qualifiedNum: res.data.qualifiedNum||0,
};
})
.then((res) => {
this.issueVisible = true;
this.issueCourseId = courseId;
});
//
},
issueLesson(courseId) {
this.$confirm("确定要发布吗", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
......@@ -326,14 +446,14 @@ export default {
return getLessonById(courseId);
})
.then((res) => {
if (
res.data.singleChoiceScore > 0 &&
res.data.multipleChoiceScore > 0 &&
res.data.judgmentScore > 0 &&
res.data.qualifiedNum > 0
) {
return true;
}
// if (
// res.data.singleChoiceScore > 0 &&
// res.data.multipleChoiceScore > 0 &&
// res.data.judgmentScore > 0 &&
// res.data.qualifiedNum > 0
// ) {
return true;
// }
})
.then((res) => {
if (res) {
......@@ -355,6 +475,7 @@ export default {
type: "success",
});
this.getList();
this.issueVisible = false;
}
})
.catch(() => {});
......@@ -373,7 +494,7 @@ export default {
}
.timuNum {
color: #1d84ff;
// cursor: pointer;
cursor: pointer;
}
::v-deep .el-select {
width: 100%;
......@@ -381,4 +502,17 @@ export default {
::v-deep .el-dialog {
margin-top: 15vh !important;
}
.detail {
// position: absolute;
// bottom: -20px;
// left: 10px;
.textC {
font-weight: 800;
font-size: 18px;
}
.detail-item {
margin-right: 20px;
color: red;
}
}
</style>
......@@ -78,7 +78,7 @@
<el-button
size="mini"
type="danger"
v-if="index > 0"
v-if="index > 0 && form.topicType != 3"
@click.prevent="removeDomain(question)"
plain
icon="el-icon-delete"
......
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