Merge branch 'bjxz-dev' of http://139.9.66.234:18023/dhp/zhgdyun into bjxz-rain
This commit is contained in:
commit
2f15f42eeb
@ -20,6 +20,7 @@ var COMPANY = ""; //通用
|
||||
// COMPANY = 'shjg'//上海优益(上海建工)
|
||||
COMPANY = "agjt"; //鞍钢集团
|
||||
// COMPANY = 'zkax' //中科安信
|
||||
// COMPANY = 'hfqc' //乌丹站舍(合肥启程)
|
||||
|
||||
var PROJECT = {
|
||||
local_test: "common", // 普通版
|
||||
@ -53,6 +54,8 @@ if (COMPANY == "longguang") {
|
||||
mqttUrl = "ws://zhgdmqtt.loganwy.com:80/mqtt";
|
||||
} else if (COMPANY == "henan") {
|
||||
mqttUrl = "ws://182.90.224.147:8083/mqtt";
|
||||
} else if (COMPANY == "hfqc") {
|
||||
mqttUrl = "ws://192.168.100.4:8083/mqtt";
|
||||
}
|
||||
var enabledProjectV2 = 2; //是否用精益建造版 1:精益建造版(黑色) 2: 最初版(白色) 3:数据看板UI蓝色版(白色) 4:湛蓝色
|
||||
var CONSTRUCTIONSTAGE = [{
|
||||
|
||||
@ -29,6 +29,7 @@ export const xmglXzHikvisionSyncRetryAPI = data => post('xmgl/xzHikvisionSync/re
|
||||
|
||||
|
||||
//详情
|
||||
export const getTrainRecordsByWorkerIdApi = data => post('xmgl/workerInfo/getTrainRecordsByWorkerId', data); //获取 安全教育列表数据
|
||||
export const getWorkerInfoData = data => post('xmgl/workerInfo/viewWorkerInfoDetail', data); //获取 人员 详细所有信息
|
||||
export const getRegisterWorkerInfoData = data => post('xmgl/xzWorkerInfoAuditRecord/viewWorkerInfoDetail', data); //获取 人员登记培训 详细所有信息
|
||||
export const addContractApi = data => post('xmgl/workerContract/add', data); //新增合同信息
|
||||
|
||||
@ -73,7 +73,7 @@ export const getSelectEnterpriseScoreList = data => post('xmgl/hiddenDangerInspe
|
||||
|
||||
|
||||
//验证身份证
|
||||
// export const getAnswerWorkerInfoList = data => post('xmgl/safeEducationQuestionAnswer/getAnswerWorkerInfo', data);
|
||||
export const getAnswerWorkerInfoOriginList = data => post('xmgl/safeEducationQuestionAnswer/getAnswerWorkerInfo', data);
|
||||
export const getAnswerWorkerInfoList = data => post('xmgl/xzWorkerInfoAuditRecord/queryByCard', data);
|
||||
|
||||
|
||||
@ -82,7 +82,7 @@ export const getSelectSafeEducationQuestionInfoList = data => post('xmgl/safeEdu
|
||||
|
||||
|
||||
//考试成功
|
||||
// export const addSafeEducationQuestionAnswer = data => post('xmgl/safeEducationQuestionAnswer/add', data);
|
||||
export const addSafeEducationQuestionAnswerOrigin = data => post('xmgl/safeEducationQuestionAnswer/add', data);
|
||||
export const addSafeEducationQuestionAnswer = data => post('xmgl/xzWorkerInfoAuditRecord/submit', data);
|
||||
|
||||
// 责任区域
|
||||
|
||||
@ -148,7 +148,7 @@
|
||||
<div
|
||||
class="width_100"
|
||||
@click="goto3"
|
||||
v-if="dataCenter1 != 1"
|
||||
v-if="$store.state.userInfo.systemLogoConfig.showFileCenter == 1"
|
||||
:title="dataCenter"
|
||||
>
|
||||
<!-- <img src="@/assets/images/zlzx.png" width="15px" height="15px" /> -->
|
||||
@ -210,7 +210,6 @@ export default {
|
||||
COMPANY: COMPANY,
|
||||
projectType: "",
|
||||
loginData: "",
|
||||
dataCenter1: 0,
|
||||
seeEquipment: "",
|
||||
projectBackground: "项目后台",
|
||||
enterpriseBackground: "企业后台",
|
||||
@ -236,7 +235,6 @@ export default {
|
||||
this.projectType = PROJECT_TYPE;
|
||||
this.loginData = JSON.parse(localStorage.getItem("systemInfo"));
|
||||
this.seeEquipment = this.$store.state.userInfo.seeEquipment;
|
||||
// this.getModuleList();
|
||||
console.log("seeEquipment------", this.seeEquipment);
|
||||
console.log(" this.loginData===================", this.loginData);
|
||||
if (this.loginData.headerConfiguration != "") {
|
||||
@ -267,16 +265,6 @@ export default {
|
||||
// console.log('企业后台',this.enterpriseBackground)
|
||||
},
|
||||
methods: {
|
||||
// 获取全部模块
|
||||
getModuleList() {
|
||||
let allModuleList = this.$store.state.userInfo.menuAuthority.moduleList;
|
||||
for(let i = 0;i<allModuleList.length;i++){
|
||||
if(allModuleList[i].modulePath == '/companyAdmin/docManage'){ // 筛选资料中心
|
||||
this.dataCenter1 = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
// 修改密码
|
||||
updatePw() {
|
||||
this.$router.push({
|
||||
|
||||
@ -331,8 +331,11 @@ router.beforeEach((to, form, next) => {
|
||||
'/entryCodeDetail',
|
||||
'/entryCode',
|
||||
'/authentication',
|
||||
'/authenticationOrigin',
|
||||
'/test',
|
||||
'/testOrigin',
|
||||
'/videoLearning',
|
||||
'/videoLearningOrigin',
|
||||
'/pages/projectEnd/safetyEducation/authentication',
|
||||
'/companyAdmin/docManage',
|
||||
]
|
||||
|
||||
@ -3414,6 +3414,25 @@ const routes2 = [{
|
||||
component: () =>
|
||||
import ("@/views/projectFront/examination/videoLearning.vue"),
|
||||
},
|
||||
//扫二维码路由(原始)
|
||||
{
|
||||
path: "/authenticationOrigin",
|
||||
name: "安全教育_考试_原始",
|
||||
component: () =>
|
||||
import ("@/views/projectFront/examinationOrigin/authentication.vue"),
|
||||
},
|
||||
{
|
||||
path: "/testOrigin",
|
||||
name: "安全教育_考试提示_原始",
|
||||
component: () =>
|
||||
import ("@/views/projectFront/examinationOrigin/test.vue"),
|
||||
},
|
||||
{
|
||||
path: "/videoLearningOrigin",
|
||||
name: "安全教育_考试视频_原始",
|
||||
component: () =>
|
||||
import ("@/views/projectFront/examinationOrigin/videoLearning.vue"),
|
||||
},
|
||||
//准入二维码-验证
|
||||
{
|
||||
path: "/entryCode",
|
||||
|
||||
@ -55,7 +55,7 @@ export default new Vuex.Store({
|
||||
UPLOADURL: 'http://192.168.34.221:9111/upload/image/', // 郭圣雄本地
|
||||
FILEURL: 'http://192.168.34.221:9111/image/', //郭圣雄本地
|
||||
// WORKFLOWURL: "http://192.168.34.138:88/#/workspace/forms", //坤工作流地址(本地)
|
||||
WORKFLOWURL: "http://192.168.34.129:88/#/workspace/forms", //罗峰工作流地址(本地)
|
||||
// WORKFLOWURL: "http://192.168.34.129:88/#/workspace/forms", //罗峰工作流地址(本地)
|
||||
// UPLOADURL:'http://182.90.224.237:51234/upload/image/',// 郭圣雄远程
|
||||
// FILEURL:'http://182.90.224.237:51234/image/',//郭圣雄远程
|
||||
// UPLOADURL: 'http://42.180.188.17:11211/upload/image', //测试
|
||||
|
||||
@ -141,6 +141,21 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="12">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="是否显示资料中心" prop="showFileCenter">
|
||||
<el-switch
|
||||
v-model="form.showFileCenter"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
>
|
||||
</el-switch>
|
||||
{{ form.showFileCenter == 1 ? '是' : '否' }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="12">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="是否开启施工人员资质证书到期预警" prop="isOpenCertificateExpireWarn">
|
||||
@ -299,6 +314,7 @@ export default {
|
||||
projectBackground: '', //项目后台
|
||||
equipmentChina: '', //设备中台
|
||||
dataCenter: '', //资料中心
|
||||
showFileCenter: 0, // 是否显示资料中心
|
||||
projectFront: '', // 项目前台
|
||||
isShowProjectFront: 0, // 是否显示项目前台
|
||||
isOpenCertificateExpireWarn: 0, // 是否开启施工人员资质证书到期预警
|
||||
|
||||
@ -147,6 +147,22 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="12">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="是否显示资料中心" prop="showFileCenter">
|
||||
<el-switch
|
||||
v-model="form.showFileCenter"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
@change='switchChange'
|
||||
>
|
||||
</el-switch>
|
||||
{{ form.showFileCenter == 1 ? '是' : '否' }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="12">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="是否开启施工人员资质证书到期预警" prop="isOpenCertificateExpireWarn">
|
||||
@ -339,6 +355,7 @@ export default {
|
||||
certificateExpireWarnAheadDay: 0, // 提前多少天
|
||||
defaultApprovalCompanySn: "", // 默认审批用户注册企业
|
||||
dataCenter: '', //资料中心
|
||||
showFileCenter: 0, // 是否显示资料中心
|
||||
loginTimeOut:1,
|
||||
zoomType:0,
|
||||
|
||||
|
||||
@ -283,9 +283,10 @@ export default {
|
||||
phoneNumber: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入",
|
||||
message: "请输入正确的手机号格式",
|
||||
trigger: "blur",
|
||||
},
|
||||
pattern: /^1(3|4|5|6|7|8|9)\d{9}$/,
|
||||
}
|
||||
],
|
||||
remark: [
|
||||
{
|
||||
|
||||
@ -68,7 +68,7 @@
|
||||
<el-button class="expintBtn" size="mini" type="primary" plain @click="editSuccess(scope.$index, scope.row)" v-if="scope.row.isEdit">
|
||||
保存
|
||||
</el-button>
|
||||
<el-button class="expintBtn" size="mini" type="danger" @click="scope.row.isEdit = false" v-if="scope.row.isEdit">
|
||||
<el-button class="expintBtn" size="mini" type="danger" @click="cancelData(scope.$index,scope.row)" v-if="scope.row.isEdit">
|
||||
取消
|
||||
</el-button>
|
||||
</template>
|
||||
@ -217,6 +217,14 @@ export default {
|
||||
})
|
||||
})
|
||||
},
|
||||
// 取消按钮
|
||||
cancelData(index,row){
|
||||
if(row.id){
|
||||
this.ruleList[index].isEdit = false;
|
||||
} else {
|
||||
this.ruleList.splice(index,1)
|
||||
}
|
||||
},
|
||||
//获取列表数据
|
||||
getProgressListData() {
|
||||
getExamPointListApi({
|
||||
|
||||
182
src/views/projectFront/examinationOrigin/authentication.vue
Normal file
182
src/views/projectFront/examinationOrigin/authentication.vue
Normal file
@ -0,0 +1,182 @@
|
||||
<template>
|
||||
<div class="fullHeight">
|
||||
<img src="@/assets/images/onlineTest_bg.png" class="onlineTest_bg" />
|
||||
<div class="centerBox">
|
||||
<!-- <img src="@/assets/images/aqjy.png" class="aqjyImg" /> -->
|
||||
<div class="inputContent">
|
||||
<input
|
||||
class="inputBox"
|
||||
type="text"
|
||||
v-model="idCard"
|
||||
placeholder="请输入身份证号码"
|
||||
/>
|
||||
</div>
|
||||
<div type="primary" class="btn submitBtn big" @click="verifyFn">
|
||||
<span>开始培训</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getAnswerWorkerInfoOriginList } from '@/assets/js/api/safeManage.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
idCard: '',
|
||||
projectSn: '',
|
||||
eduId: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
console.log('收到的参数 :', this.$route.query)
|
||||
this.projectSn = this.$route.query.projectSn
|
||||
this.eduId = this.$route.query.eduId
|
||||
},
|
||||
methods: {
|
||||
verifyFn() {
|
||||
if (this.idCard == '') {
|
||||
this.$message.error('请输入身份证号码')
|
||||
return
|
||||
}
|
||||
getAnswerWorkerInfoOriginList({
|
||||
idCard: this.idCard,
|
||||
projectSn: this.projectSn
|
||||
}).then((result) => {
|
||||
if (result.result) {
|
||||
// this.$message({
|
||||
// message: '验证成功!',
|
||||
// type: 'success'
|
||||
// })
|
||||
// this.$message.success('验证成功!')
|
||||
setTimeout(() => {
|
||||
this.$router.push({
|
||||
path: '/videoLearningOrigin',
|
||||
query: {
|
||||
eduId: this.eduId,
|
||||
workerId: result.result.id
|
||||
}
|
||||
})
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang='less' scoped>
|
||||
.onlineTest_bg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.fullHeight {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.centerBox {
|
||||
position: absolute;
|
||||
left: 5%;
|
||||
bottom: 50px;
|
||||
// transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
width: 90%;
|
||||
}
|
||||
// .aqjyImg {
|
||||
// width: 50rem;
|
||||
// height: 40rem;
|
||||
// margin-bottom: 15rem;
|
||||
// }
|
||||
.inputContent {
|
||||
/* position: fixed;
|
||||
bottom: 10%;
|
||||
left: 0; */
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.inputBox {
|
||||
// margin-top: 30rem;
|
||||
background-color: white;
|
||||
border-radius: 8px;
|
||||
padding: 12px;
|
||||
width: 100%;
|
||||
font-size: 16px;
|
||||
display: inline-block;
|
||||
// margin-right: 2rem;
|
||||
border: 1px solid rgba(63, 83, 110, 0.5);
|
||||
/* margin-left: 2rem; */
|
||||
}
|
||||
.submitBtn {
|
||||
// margin: -55rem -13rem;
|
||||
// position: fixed;
|
||||
// bottom: 10rem;
|
||||
/* left: 20px; */
|
||||
width: 100%;
|
||||
background: #4181fe;
|
||||
height: 44px;
|
||||
border: none;
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
border-radius: 10px;
|
||||
line-height: 44px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
// .onlineTest_bg {
|
||||
// width: 100%;
|
||||
// height: 180rem;
|
||||
// margin-top: -83rem;
|
||||
// }
|
||||
// .fullHeight {
|
||||
// width: 100%;
|
||||
// height: 100%;
|
||||
// }
|
||||
// .centerBox {
|
||||
// position: absolute;
|
||||
// left: 50%;
|
||||
// top: 90%;
|
||||
// transform: translate(-50%, -50%);
|
||||
// text-align: center;
|
||||
// }
|
||||
// .aqjyImg {
|
||||
// width: 50rem;
|
||||
// height: 40rem;
|
||||
// margin-bottom: 15rem;
|
||||
// }
|
||||
// .inputContent {
|
||||
// /* position: fixed;
|
||||
// bottom: 10%;
|
||||
// left: 0; */
|
||||
// width: 100%;
|
||||
// display: flex;
|
||||
// align-items: center;
|
||||
// justify-content: center;
|
||||
// }
|
||||
// .inputBox {
|
||||
// margin-top: 30rem;
|
||||
// background-color: white;
|
||||
// border-radius: 2rem;
|
||||
// padding: 3rem 0rem;
|
||||
// width: 80rem;
|
||||
// font-size: 6.5rem;
|
||||
// display: inline-block;
|
||||
// margin-right: 2rem;
|
||||
// border: 0.5rem solid rgba(63, 83, 110, 0.5);
|
||||
// /* margin-left: 2rem; */
|
||||
// }
|
||||
// .submitBtn {
|
||||
// margin: -55rem -13rem;
|
||||
// position: fixed;
|
||||
// bottom: 10rem;
|
||||
// /* left: 20px; */
|
||||
// width: calc(130% - 0rem);
|
||||
// background: #4181fe;
|
||||
// height: 15rem;
|
||||
// border: none;
|
||||
// color: #fff;
|
||||
// font-size: 7.5rem;
|
||||
// border-radius: 10rem;
|
||||
// line-height: 15rem;
|
||||
// }
|
||||
</style>
|
||||
80
src/views/projectFront/examinationOrigin/dialog.vue
Normal file
80
src/views/projectFront/examinationOrigin/dialog.vue
Normal file
@ -0,0 +1,80 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="dialogBox" v-show="dialogVisible">
|
||||
<div class="mask" @click="hideFn"></div>
|
||||
<div class="dialogContent">
|
||||
<!-- <div class="dialogTitle">
|
||||
<slot name="title"></slot>
|
||||
<text @click="hideFn" style="float: right;">X</text>
|
||||
</div> -->
|
||||
<!-- <div class="dialogInner"> -->
|
||||
<slot name="content"></slot>
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
canClickMask: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false
|
||||
}
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
showFn() {
|
||||
this.dialogVisible = true
|
||||
},
|
||||
hideFn() {
|
||||
if (this.canClickMask) {
|
||||
this.dialogVisible = false
|
||||
}
|
||||
},
|
||||
hideFn2() {
|
||||
this.dialogVisible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.dialogBox {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 999;
|
||||
}
|
||||
.mask {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
.dialogTitle {
|
||||
padding: 15px;
|
||||
}
|
||||
.dialogContent {
|
||||
width: calc(100% - 90px);
|
||||
position: fixed;
|
||||
left: 45px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
background-color: white;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.dialogInner {
|
||||
padding: 0 15px;
|
||||
}
|
||||
</style>
|
||||
369
src/views/projectFront/examinationOrigin/test.vue
Normal file
369
src/views/projectFront/examinationOrigin/test.vue
Normal file
@ -0,0 +1,369 @@
|
||||
<template>
|
||||
<div class="fullHeight">
|
||||
<div class="headers">
|
||||
<div class="headerName">考试</div>
|
||||
</div>
|
||||
<div class="pageContent">
|
||||
<div class="tips">交卷之前离开当前页面会导致本次考试作废!</div>
|
||||
<vue-scroll style="height: 83vh">
|
||||
<div class="blockBox" v-for="(item, index) in courseDetail.questionList" :key="index">
|
||||
<div class="testTilte">
|
||||
{{ index + 1 }}、{{ item.questionName }}({{
|
||||
item.questionScore
|
||||
}}分)
|
||||
</div>
|
||||
<!-- 多选 -->
|
||||
<el-checkbox-group class="optionsBox" v-if="item.questionType == 2" v-model="form.checkboxArray[index]" @change="(e) => {
|
||||
changeChecked(e, item.questionId, index)
|
||||
}
|
||||
">
|
||||
<el-checkbox v-for="(data, index2) in item.optionList" :label="data.optionId" :key="index2">{{
|
||||
indexList[index2] }}、{{ data.optionName }}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
|
||||
<!-- 单选 -->
|
||||
<el-radio-group v-if="item.questionType == 1" v-model="form.radioArray[index]" @change="(e) => {
|
||||
changeChecked(e, item.questionId, index)
|
||||
}
|
||||
" class="optionsBox">
|
||||
|
||||
<el-radio v-for="(data, index2) in item.optionList" :key="index2" :label="data.optionId">{{ indexList[index2]
|
||||
}}、{{ data.optionName }}</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div style="height:350px"></div>
|
||||
</vue-scroll>
|
||||
<button type="primary" class="btn submitBtn big" @click="submitData()">
|
||||
交卷
|
||||
</button>
|
||||
</div>
|
||||
<dialogs ref="dialogs">
|
||||
<!-- <template v-slot:title>
|
||||
{{isAdd?'添加':'编辑'}}
|
||||
</template> -->
|
||||
<template v-slot:content>
|
||||
<div class="formBox2">
|
||||
<form @submit="submitData">
|
||||
<div class="uni-form-item">
|
||||
<div class="uni-form-label">
|
||||
<text class="star">*</text>身份证号码
|
||||
</div>
|
||||
<div class="uni-form-input">
|
||||
<input class="uni-input" placeholder-class="cl" name="idCard" v-model="idCard" placeholder="请输入" />
|
||||
</div>
|
||||
</div>
|
||||
<button form-type="submit" type="primary" class="btn submitBtn">
|
||||
提交
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</template>
|
||||
</dialogs>
|
||||
<div class="testResultBox" v-if="showResult">
|
||||
<img v-if="isQualified == 1" src="@/assets/images/Pass.png" class="resultImg" />
|
||||
<img v-else src="@/assets/images/noPass.png" class="resultImg" />
|
||||
<div class="score">
|
||||
<span>{{ score }}分</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import dialogs from '@/views/projectFront/examination/dialog.vue'
|
||||
import {
|
||||
getSelectSafeEducationQuestionInfoList,
|
||||
addSafeEducationQuestionAnswerOrigin
|
||||
} from '@/assets/js/api/safeManage.js'
|
||||
|
||||
export default {
|
||||
components: { dialogs },
|
||||
data() {
|
||||
return {
|
||||
radio: 6,
|
||||
form: {
|
||||
//单选部分渲染数据
|
||||
radioArray: [],
|
||||
checkboxArray: []
|
||||
},
|
||||
radioList: [],
|
||||
indexList: [
|
||||
'A',
|
||||
'B',
|
||||
'C',
|
||||
'D',
|
||||
'E',
|
||||
'F',
|
||||
'G',
|
||||
'H',
|
||||
'I',
|
||||
'J',
|
||||
'K',
|
||||
'L',
|
||||
'N',
|
||||
'M',
|
||||
'O',
|
||||
'P',
|
||||
'Q',
|
||||
'R',
|
||||
'S',
|
||||
'T',
|
||||
'U',
|
||||
'V',
|
||||
'W',
|
||||
'X',
|
||||
'Y',
|
||||
'Z'
|
||||
],
|
||||
courseDetail: {
|
||||
eduAddr: '',
|
||||
eduClasshour: '',
|
||||
eduContent: '',
|
||||
eduCourseName: '',
|
||||
eduPhoto: '',
|
||||
eduTeacher: '',
|
||||
eduTime: '',
|
||||
eduType: '',
|
||||
eduVideo: '',
|
||||
passScore: '',
|
||||
projectSn: '',
|
||||
questionList: [],
|
||||
totalScore: '',
|
||||
videoType: 1
|
||||
},
|
||||
eduId: '',
|
||||
selectList: [],
|
||||
idCard: '',
|
||||
workerId: '',
|
||||
score: 0,
|
||||
showResult: false,
|
||||
isQualified: 1 //1合格,2不合格
|
||||
}
|
||||
},
|
||||
created(options) {
|
||||
console.log('获取课程详细数据1516', this.$route.query)
|
||||
this.eduId = this.$route.query.eduId
|
||||
this.workerId = this.$route.query.workerId
|
||||
this.getDetailData()
|
||||
},
|
||||
|
||||
methods: {
|
||||
changeChecked(e, questionId, index) {
|
||||
console.log('optionId:' + e, 'questionId:' + questionId, 'index:' + index);
|
||||
var arr = e
|
||||
//清除之前该问题选中的选项
|
||||
for (var i = 0; i < this.selectList.length; i++) {
|
||||
if (this.selectList[i].questionId == questionId) {
|
||||
console.log(this.selectList[i].questionId == questionId);
|
||||
this.selectList.splice(i--, 1)
|
||||
}
|
||||
}
|
||||
//加上新选中的选项
|
||||
if (Array.isArray(arr)) {
|
||||
console.log('111111');
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
this.selectList.push({
|
||||
questionId: questionId,
|
||||
optionId: arr[i]
|
||||
})
|
||||
}
|
||||
} else {
|
||||
console.log('2222');
|
||||
this.selectList.push({
|
||||
questionId: questionId,
|
||||
optionId: arr
|
||||
})
|
||||
this.courseDetail.questionList[index].optionId = arr
|
||||
}
|
||||
|
||||
console.log(this.selectList)
|
||||
},
|
||||
//获取课程详细数据
|
||||
getDetailData() {
|
||||
var that = this
|
||||
getSelectSafeEducationQuestionInfoList({ eduId: this.eduId }).then(
|
||||
(result) => {
|
||||
if (result.result) {
|
||||
that.courseDetail = result.result.safeEducation
|
||||
for (var i = 0; i < this.courseDetail.questionList.length; i++) {
|
||||
let indexArry = []
|
||||
this.form.checkboxArray.push(indexArry)
|
||||
this.form.radioArray.push('')
|
||||
}
|
||||
|
||||
console.log("得到的课程详细数据 :", result.result)
|
||||
console.log("得到的checkboxArray :", this.form.checkboxArray)
|
||||
}
|
||||
}
|
||||
)
|
||||
},
|
||||
inputIdCard() {
|
||||
this.$refs.dialogs.showFn()
|
||||
},
|
||||
submitData() {
|
||||
// if(this.idCard==''){
|
||||
// uni.showToast({
|
||||
// title:'请输入身份证号码!'
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
var json = {
|
||||
eduId: this.eduId,
|
||||
workerId: this.workerId,
|
||||
// idCard:this.idCard,
|
||||
list: this.selectList
|
||||
}
|
||||
addSafeEducationQuestionAnswerOrigin(json).then((result) => {
|
||||
if (result.result) {
|
||||
this.$message.success('考试成功!')
|
||||
this.showResult = true
|
||||
this.isQualified = result.result.isQualified
|
||||
this.score = result.result.score
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.optionsBox{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
/deep/.el-radio__label{
|
||||
white-space: normal;
|
||||
}
|
||||
/deep/.el-checkbox__label{
|
||||
white-space: normal;
|
||||
}
|
||||
}
|
||||
.fullHeight{
|
||||
font-size: 16px
|
||||
}
|
||||
.tips {
|
||||
// font-size: 7rem;
|
||||
color: red;
|
||||
margin: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.blockBox {
|
||||
box-shadow: 0 4px 12px 0px rgba(212, 220, 236, 0.69);
|
||||
border-radius: 10px;
|
||||
margin: 16px;
|
||||
padding: 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.optionItem {
|
||||
/* padding-left: 20px; */
|
||||
margin-top: 10px;
|
||||
// font-size: 7rem;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.desc {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.checkbox {
|
||||
transform: scale(0.8);
|
||||
}
|
||||
|
||||
.submitBtn {
|
||||
// margin: -70rem 5rem;
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
bottom: 10px;
|
||||
left: 5%;
|
||||
width: 90%;
|
||||
background: #4181fe;
|
||||
height: 44px;
|
||||
border: none;
|
||||
color: #fff;
|
||||
/* font-size: 7.5rem; */
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.testResultBox {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 99999;
|
||||
}
|
||||
|
||||
.resultImg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
// margin: -70rem 0rem;
|
||||
}
|
||||
|
||||
.score {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border-radius: 50%;
|
||||
border: 4px solid #fdcb05;
|
||||
text-align: center;
|
||||
line-height: 200px;
|
||||
transform: translate(-50%, -50%);
|
||||
|
||||
span {
|
||||
// width: 90%;
|
||||
// position: absolute;
|
||||
// display: inline-block;
|
||||
color: #fdcb05;
|
||||
font-size: 30px
|
||||
// margin-top: -12rem;
|
||||
// margin-left: -28rem;
|
||||
}
|
||||
}
|
||||
|
||||
.headers {
|
||||
/* border-bottom: 0.5rem solid #f3f3f3; */
|
||||
height: 44px;
|
||||
color: #3d4490;
|
||||
/* font-size: 7.5rem; */
|
||||
text-align: center;
|
||||
line-height: 44px;
|
||||
/* margin-top: -55%; */
|
||||
/* background-color: pink; */
|
||||
}
|
||||
|
||||
.testTilte {
|
||||
// font-size: 6rem;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
// ::v-deep .el-checkbox__label {
|
||||
// font-size: 4rem;
|
||||
// line-height: 10rem;
|
||||
// }
|
||||
|
||||
// ::v-deep .el-checkbox__inner {
|
||||
// margin-top: -2rem;
|
||||
|
||||
// width: 4rem;
|
||||
// height: 4rem;
|
||||
// line-height: 10rem;
|
||||
|
||||
// /* border: 0.5rem solid #fff; */
|
||||
// }
|
||||
|
||||
// ::v-deep .el-radio__inner {
|
||||
// margin-top: -2rem;
|
||||
|
||||
// width: 4rem;
|
||||
// height: 4rem;
|
||||
// line-height: 10rem;
|
||||
// }
|
||||
|
||||
// ::v-deep .el-radio__label {
|
||||
// font-size: 4rem;
|
||||
// line-height: 10rem;
|
||||
// }
|
||||
</style>
|
||||
149
src/views/projectFront/examinationOrigin/videoLearning.vue
Normal file
149
src/views/projectFront/examinationOrigin/videoLearning.vue
Normal file
@ -0,0 +1,149 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="fullHeight">
|
||||
<div class="headers">
|
||||
<div class="headerName">课程学习</div>
|
||||
</div>
|
||||
|
||||
<video
|
||||
:src="$store.state.FILEURL + courseDetail.eduVideo"
|
||||
controls
|
||||
class="videoBox"
|
||||
></video>
|
||||
<div class="courseTitle">
|
||||
{{ courseDetail.eduCourseName }}
|
||||
</div>
|
||||
<div class="desc">
|
||||
课程类型:{{ educateTypeList[courseDetail.eduType - 1] }}
|
||||
</div>
|
||||
<div class="desc">试卷总分:{{ courseDetail.totalScore }}</div>
|
||||
<div class="desc">及格分数:{{ courseDetail.passScore }}</div>
|
||||
<div class="desc">创建时间:{{ courseDetail.addTime }}</div>
|
||||
<button
|
||||
type="primary"
|
||||
class="btn submitBtn big"
|
||||
@click="gotoTest"
|
||||
v-if="courseDetail.questionList.length > 0"
|
||||
>
|
||||
开始考试
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getSelectSafeEducationQuestionInfoList } from '@/assets/js/api/safeManage.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
courseDetail: {
|
||||
eduAddr: '',
|
||||
eduClasshour: '',
|
||||
eduContent: '',
|
||||
eduCourseName: '',
|
||||
eduPhoto: '',
|
||||
eduTeacher: '',
|
||||
eduTime: '',
|
||||
eduType: 1,
|
||||
eduVideo: '',
|
||||
passScore: '',
|
||||
projectSn: '',
|
||||
questionList: [],
|
||||
totalScore: '',
|
||||
addTime: ''
|
||||
},
|
||||
educateTypeList: [
|
||||
'入场三级教育',
|
||||
'定期安全教育',
|
||||
'安全技术交底',
|
||||
'VR安全教育'
|
||||
],
|
||||
eduId: '',
|
||||
workerId: ''
|
||||
}
|
||||
},
|
||||
created(options) {
|
||||
console.log('获取课程详细数据1516', this.$route.query)
|
||||
this.eduId = this.$route.query.eduId
|
||||
this.workerId = this.$route.query.workerId
|
||||
this.getDetailData()
|
||||
},
|
||||
methods: {
|
||||
gotoTest() {
|
||||
this.$router.push({
|
||||
path: '/testOrigin',
|
||||
query: {
|
||||
eduId: this.eduId,
|
||||
workerId: this.workerId
|
||||
}
|
||||
})
|
||||
},
|
||||
//获取课程详细数据
|
||||
getDetailData() {
|
||||
var that = this
|
||||
console.log('获取课程详细数据1515')
|
||||
getSelectSafeEducationQuestionInfoList({ eduId: this.eduId }).then(
|
||||
(result) => {
|
||||
if (result.result) {
|
||||
that.courseDetail = result.result.safeEducation
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.fullHeight {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
font-size: 16px;
|
||||
}
|
||||
.videoBox {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
/* margin: 0rem 0; */
|
||||
}
|
||||
.courseTitle {
|
||||
/* font-size: 7.5rem; */
|
||||
|
||||
padding: 10px 16px;
|
||||
}
|
||||
.desc {
|
||||
/* font-size: 6rem; */
|
||||
opacity: 0.6;
|
||||
padding: 10px 16px;
|
||||
}
|
||||
.submitBtn {
|
||||
/* margin: -70rem 5rem; */
|
||||
position: fixed;
|
||||
bottom: 10px;
|
||||
left: 5%;
|
||||
width: 90%;
|
||||
background: #4181fe;
|
||||
height: 44px;
|
||||
border: none;
|
||||
color: #fff;
|
||||
/* font-size: 7.5rem; */
|
||||
border-radius: 10px;
|
||||
}
|
||||
.headers {
|
||||
/* border-bottom: 0.5rem solid #f3f3f3; */
|
||||
height: 44px;
|
||||
color: #3d4490;
|
||||
/* font-size: 7.5rem; */
|
||||
text-align: center;
|
||||
line-height: 44px;
|
||||
/* margin-top: -55%; */
|
||||
/* background-color: pink; */
|
||||
}
|
||||
|
||||
/* 播放器按钮 */
|
||||
::v-deep video::-webkit-media-controls-play-button {
|
||||
/* background-image: url(play-button.png); */
|
||||
/* display: none; */
|
||||
/* width: 200rem;
|
||||
height: 200rem; */
|
||||
}
|
||||
</style>
|
||||
@ -70,18 +70,15 @@
|
||||
</el-tabs>
|
||||
<!-- v-loading="loading" -->
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
key="multipleTableValidate"
|
||||
ref="multipleTableValidate"
|
||||
class="tables"
|
||||
row-key="id"
|
||||
:data="tableList"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<!-- :reserve-selection="true" -->
|
||||
<el-table-column
|
||||
align="center"
|
||||
type="selection"
|
||||
width="55"
|
||||
>
|
||||
<el-table-column align="center" type="selection" width="55">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
@ -212,7 +209,7 @@ export default {
|
||||
multipleSelection: [],
|
||||
topicName: "topic",
|
||||
userId: "",
|
||||
isInitTable: false
|
||||
isInitTable: false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
@ -238,6 +235,17 @@ export default {
|
||||
// },
|
||||
// ];
|
||||
},
|
||||
beforeDestroy() {
|
||||
// console.log(client)
|
||||
if (client) {
|
||||
client.unsubscribe(this.topicName + this.userId, options)
|
||||
client.end()
|
||||
}
|
||||
client = null
|
||||
console.log(client)
|
||||
// client = null
|
||||
// mqttX.unsubscribe(this.topicName + this.userId);
|
||||
},
|
||||
mounted() {
|
||||
this.userId = this.$store.state.userInfo.userId;
|
||||
this.topicName = this.$store.state.userInfo.scope;
|
||||
@ -247,6 +255,7 @@ export default {
|
||||
methods: {
|
||||
// 监听mqtt下发信息然后刷新列表
|
||||
mqttMSG() {
|
||||
let that = this;
|
||||
// mqtt连接 +"/#" +workerId
|
||||
client.on("connect", (e) => {
|
||||
// console.log('连接成功:', this.topicName + this.userId)
|
||||
@ -330,37 +339,43 @@ export default {
|
||||
//获取信息
|
||||
getHikvisionPage() {
|
||||
this.loading = true;
|
||||
console.log(1111111111, this.activeName)
|
||||
getHikvisionPageApi({
|
||||
projectSn: this.projectSn,
|
||||
pageNo: this.pagInfo.pageNo,
|
||||
pageSize: this.pagInfo.pageSize,
|
||||
type: Number(this.activeName),
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.tableList = res.result.records;
|
||||
this.pagInfo.total = res.result.total;
|
||||
if (
|
||||
+res.result.total > this.pageSizeList[this.pageSizeList.length - 1] && this.pageSizeList.length == 4
|
||||
) {
|
||||
this.pageSizeList.push(+res.result.total);
|
||||
} else {
|
||||
this.pageSizeList.splice(4,1,+res.result.total);
|
||||
if(this.pagInfo.pageSize> +res.result.total){
|
||||
this.pagInfo.pageSize = +res.result.total;
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.tableList = res.result.records;
|
||||
// this.$set(this, 'tableList', res.result.records);
|
||||
// this.tableList.length = 0;
|
||||
// this.tableList.push(...res.result.records);
|
||||
this.pagInfo.total = res.result.total;
|
||||
if (
|
||||
+res.result.total >
|
||||
this.pageSizeList[this.pageSizeList.length - 1] &&
|
||||
this.pageSizeList.length == 4
|
||||
) {
|
||||
this.pageSizeList.push(+res.result.total);
|
||||
} else {
|
||||
this.pageSizeList.splice(4, 1, +res.result.total);
|
||||
if (this.pagInfo.pageSize > +res.result.total) {
|
||||
this.pagInfo.pageSize = +res.result.total;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
})
|
||||
.finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
|
||||
//切换Tab记录类型
|
||||
handleClick(val) {
|
||||
// console.log(val.name);
|
||||
this.activeName = val.name;
|
||||
this.$refs.multipleTable.clearSelection();
|
||||
this.$refs.multipleTableValidate.clearSelection();
|
||||
this.pageSizeList = JSON.parse(
|
||||
JSON.stringify(this.$store.state.PAGESIZRS)
|
||||
);
|
||||
@ -392,6 +407,26 @@ export default {
|
||||
this.getHikvisionPage();
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
msgObj() { // 为了同时监听两个值
|
||||
const { tableList, activeName } = this;
|
||||
return {
|
||||
tableList,
|
||||
activeName,
|
||||
};
|
||||
},
|
||||
},
|
||||
// watch: {
|
||||
// msgObj: {
|
||||
// handler(newVal, oldVal) {
|
||||
// //接下来在这里写将要进行的操作
|
||||
// if (newVal.activeName == oldVal.activeName && JSON.stringify(newVal.tableList) != JSON.stringify(oldVal.tableList)) {
|
||||
// this.getHikvisionPage();
|
||||
// }
|
||||
// },
|
||||
// deep: true,
|
||||
// },
|
||||
// },
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
|
||||
@ -1920,16 +1920,31 @@
|
||||
</div>
|
||||
<el-table :data="safeEducationList" style="width: 100%">
|
||||
<el-table-column
|
||||
prop="addTime"
|
||||
prop="date"
|
||||
:label="$t('message.laborMange.trainingDate')"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="eduCourseName"
|
||||
prop="subject"
|
||||
:label="$t('message.laborMange.trainingTopic')"
|
||||
>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="score"
|
||||
label="考试分数"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="isPass"
|
||||
label="是否及格"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.isPass == 1
|
||||
? "是"
|
||||
: "否"
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column
|
||||
prop="eduTime"
|
||||
:label="$t('message.laborMange.courseHours')"
|
||||
@ -2391,6 +2406,7 @@
|
||||
|
||||
<script>
|
||||
import {
|
||||
getTrainRecordsByWorkerIdApi,
|
||||
getWorkerInfoData,
|
||||
editWorkerInfo,
|
||||
addContractApi,
|
||||
@ -2518,6 +2534,7 @@ export default {
|
||||
this.getUfaceDevList();
|
||||
this.getUGroupDevList();
|
||||
this.getWorkerInfo();
|
||||
this.getSafeEducationListFn();
|
||||
this.getSafeScoreDetail();
|
||||
this.getAttendRuleList();
|
||||
this.getProjectConfig();
|
||||
@ -2740,6 +2757,16 @@ export default {
|
||||
}
|
||||
);
|
||||
},
|
||||
// 获取安全教育列表
|
||||
getSafeEducationListFn(){
|
||||
let data = {
|
||||
workerId: this.userId,
|
||||
projectSn: this.projectSn
|
||||
};
|
||||
getTrainRecordsByWorkerIdApi(data).then((res) => {
|
||||
this.safeEducationList = res.result; //安全教育
|
||||
})
|
||||
},
|
||||
//获取详情信息
|
||||
getWorkerInfo() {
|
||||
let data = {
|
||||
@ -2941,7 +2968,7 @@ export default {
|
||||
}
|
||||
});
|
||||
}
|
||||
this.safeEducationList = data.safeEducationList; //安全教育
|
||||
// this.safeEducationList = data.safeEducationList; //安全教育
|
||||
this.workExperienceList = data.workExperienceList; //从业信息
|
||||
this.badList = data.badList; //奖罚 --不良记录
|
||||
this.rewardList = data.rewardList; //奖罚 --奖励记录
|
||||
|
||||
@ -703,32 +703,32 @@ export default {
|
||||
},
|
||||
getWorkerData(data) {
|
||||
//去重,已经添加过的人员就不添加了
|
||||
|
||||
var arr = this.cardForm.list;
|
||||
var arr2 = [];
|
||||
data.forEach((item2) => {
|
||||
for(let i = 0;i<data.length;i++){
|
||||
if (arr.length > 0) {
|
||||
var onoff = true;
|
||||
arr.forEach((item) => {
|
||||
if (item.id == item2.id) {
|
||||
for(let x = 0;x<arr.length;x++){
|
||||
if (arr[x].id == data[i].id) {
|
||||
onoff = false;
|
||||
break;
|
||||
}
|
||||
if (item.workerId == item2.id) {
|
||||
if (arr[x].workerId == data[i].id) {
|
||||
onoff = false;
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (onoff) {
|
||||
item2.isQualified = "";
|
||||
item2.score = "";
|
||||
arr2.push(item2);
|
||||
data[i].isQualified = "";
|
||||
data[i].score = "";
|
||||
arr2.push(data[i]);
|
||||
}
|
||||
} else {
|
||||
item2.isQualified = "";
|
||||
item2.score = "";
|
||||
arr2.push(item2);
|
||||
data[i].isQualified = "";
|
||||
data[i].score = "";
|
||||
arr2.push(data[i]);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
this.cardForm.list = arr.concat(arr2);
|
||||
// this.cardForm.workernum = this.cardForm.list.length;
|
||||
},
|
||||
@ -830,14 +830,13 @@ export default {
|
||||
return;
|
||||
}
|
||||
this.cardForm.workernum = this.cardForm.list.length;
|
||||
let json = this.cardForm;
|
||||
let json = {...this.cardForm};
|
||||
let arr = [];
|
||||
console.log(json.list);
|
||||
json.list.forEach((element) => {
|
||||
let item = {
|
||||
isQualified: element.isQualified,
|
||||
score: element.score,
|
||||
workerId: element.id,
|
||||
workerId: element.workerId || element.id,
|
||||
projectSn: this.$store.state.projectSn,
|
||||
};
|
||||
if (!this.isAdd) {
|
||||
|
||||
@ -110,33 +110,33 @@
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="table_wrap whiteBlock">
|
||||
<vue-scroll>
|
||||
<el-table height="650" class="tables" :data="listData" lazy row-key="id" default-expand-all
|
||||
<vue-scroll style="height: 580px;">
|
||||
<el-table class="tables" :data="listData" lazy row-key="id" default-expand-all
|
||||
:tree-props="{ children: 'children' }">
|
||||
<el-table-column width="200" prop="taskName" label="分部分项工程名称" style="display: flex;align-items: center;">
|
||||
<template slot-scope="scope">
|
||||
<span :title="scope.row.taskName"
|
||||
style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;display: inline-block;width: 60%;vertical-align: middle;">
|
||||
style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;display: inline-block;width: 100px;vertical-align: middle;">
|
||||
{{ scope.row.taskName }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="qualityRegionName" label="区域" show-overflow-tooltip>
|
||||
<el-table-column width="100" align="center" prop="qualityRegionName" label="区域" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="startDate" label="计划开始时间">
|
||||
<el-table-column width="120" align="center" prop="startDate" label="计划开始时间">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="finishDate" label="计划完成时间">
|
||||
<el-table-column width="120" align="center" prop="finishDate" label="计划完成时间">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="actualStartDate" label="实际开始时间">
|
||||
<el-table-column width="120" align="center" prop="actualStartDate" label="实际开始时间">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="actualFinishDate" label="实际完成时间"></el-table-column>
|
||||
<el-table-column align="center" prop="dutyUserName" label="负责人"></el-table-column>
|
||||
<el-table-column align="center" prop="progressRatio" label="进度">
|
||||
<el-table-column width="120" align="center" prop="actualFinishDate" label="实际完成时间"></el-table-column>
|
||||
<el-table-column width="80" align="center" prop="dutyUserName" label="负责人"></el-table-column>
|
||||
<el-table-column width="80" align="center" prop="progressRatio" label="进度">
|
||||
<template slot-scope="scope">{{
|
||||
scope.row.progressRatio + "%"
|
||||
}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" align="center" label="执行状态">
|
||||
<el-table-column width="100" prop="status" align="center" label="执行状态">
|
||||
<template slot-scope="scope">
|
||||
<span :class="scope.row.status == 0
|
||||
? 'no-start' : scope.row.status == 1
|
||||
@ -154,7 +154,7 @@
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="beginWarning" align="center" label="开始预警">
|
||||
<el-table-column width="80" prop="beginWarning" align="center" label="开始预警">
|
||||
<template slot-scope="scope">
|
||||
<div style="color: #fe6565;" v-if="scope.row.beginWarning === 3">
|
||||
{{
|
||||
@ -176,7 +176,7 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="endWarning" align="center" label="结束预警">
|
||||
<el-table-column width="80" prop="endWarning" align="center" label="结束预警">
|
||||
<template slot-scope="scope">
|
||||
<div style="color: #fe6565;" v-if="scope.row.endWarning === 3">
|
||||
{{
|
||||
@ -458,6 +458,13 @@ export default {
|
||||
},
|
||||
type: "add",
|
||||
addEditRules: {
|
||||
qualityRegionId: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("message.personnelPosition.required"),
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
taskName: [
|
||||
{
|
||||
required: true,
|
||||
@ -571,7 +578,6 @@ export default {
|
||||
this.downUrl =
|
||||
this.$http.defaults.baseURL + "xmgl/progressTask/downloadTemplate";
|
||||
this.getCrewListData();
|
||||
this.getPositionList();
|
||||
this.getHierarchyEnterpriseList();
|
||||
this.getTreeList();
|
||||
},
|
||||
@ -599,6 +605,7 @@ export default {
|
||||
this.workerInfo.qualityRegionId = data.id;
|
||||
this.$refs.selectFormRef.blur();
|
||||
}
|
||||
this.$refs.addEditForm.validateField("qualityRegionId")
|
||||
},
|
||||
// 树形控件点击
|
||||
treeAreaClick(data) {
|
||||
@ -618,6 +625,10 @@ export default {
|
||||
}).then((result) => {
|
||||
if (result.success) {
|
||||
this.treeList = result.result;
|
||||
if(result.result.length > 0){
|
||||
this.treeData = result.result[0]
|
||||
}
|
||||
this.getPositionList();
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -626,6 +637,7 @@ export default {
|
||||
console.log(data);
|
||||
this.treeData = data;
|
||||
this.getProgressListData();
|
||||
this.getPositionList();
|
||||
},
|
||||
// 获取承包商列表
|
||||
getHierarchyEnterpriseList() {
|
||||
@ -652,6 +664,7 @@ export default {
|
||||
getPositionList() {
|
||||
let data = {
|
||||
projectSn: this.$store.state.projectSn,
|
||||
enterpriseId: this.treeData.enterpriseId
|
||||
};
|
||||
getQualityRegionListApi(data).then((res) => {
|
||||
console.log("res=================", res);
|
||||
@ -826,6 +839,7 @@ export default {
|
||||
close() {
|
||||
this.workerInfo = {};
|
||||
this.workerInfo.parentId = 0;
|
||||
this.selectFormVal = "";
|
||||
this.$nextTick(() => {
|
||||
this.$refs.addEditForm.clearValidate();
|
||||
});
|
||||
@ -1005,8 +1019,14 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.tables{
|
||||
min-height: 0;
|
||||
max-height: none;
|
||||
height: auto;
|
||||
}
|
||||
.table-content {
|
||||
flex: 1;
|
||||
// width: calc(100% - 370px)
|
||||
}
|
||||
|
||||
.down {
|
||||
@ -1172,8 +1192,8 @@ export default {
|
||||
.el-select-dropdown__item:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
// /deep/.cell{
|
||||
// display: flex;
|
||||
// align-items: center;
|
||||
// }
|
||||
/deep/.el-table__row td:nth-child(1) .cell{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -145,7 +145,7 @@
|
||||
<el-table-column align="center" label="操作" width="280">
|
||||
<template slot-scope="scope">
|
||||
<div class="tableBtns">
|
||||
<div v-permission="{key: 'jdsp_pass', menuPath: '/project/progressManagementAg/progressApproval'}" @click="pass(scope.row)" class="operationText" v-if="![2,3].includes(scope.row.auditType)">
|
||||
<div v-permission="{key: 'jdsp_edit', menuPath: '/project/progressManagementAg/progressApproval'}" @click="pass(scope.row)" class="operationText" v-if="![2,3].includes(scope.row.auditType)">
|
||||
<img
|
||||
src="@/assets/images/tableIcon/passIcon.png"
|
||||
width="15px"
|
||||
@ -153,7 +153,7 @@
|
||||
/>
|
||||
<span style="white-space: nowrap;color: #5678E8;">通过</span>
|
||||
</div>
|
||||
<div v-permission="{key: 'jdsp_reject', menuPath: '/project/progressManagementAg/progressApproval'}" @click="openBackDialog(scope.row)" class="operationText" v-if="![2,3].includes(scope.row.auditType)">
|
||||
<div v-permission="{key: 'jdsp_edit', menuPath: '/project/progressManagementAg/progressApproval'}" @click="openBackDialog(scope.row)" class="operationText" v-if="![2,3].includes(scope.row.auditType)">
|
||||
<img
|
||||
src="@/assets/images/tableIcon/backApply.png"
|
||||
width="15px"
|
||||
|
||||
@ -277,6 +277,7 @@ import { aiAnalyseHardWareRecordList } from "@/assets/js/api/equipmentCenter/ele
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
COMPANY: COMPANY,
|
||||
title: this.$t("message.quality.NewRootNode"),
|
||||
dialogType: 1,
|
||||
projectSn: "",
|
||||
@ -408,6 +409,11 @@ export default {
|
||||
|
||||
//编辑按钮
|
||||
editBtn(value) {
|
||||
if (value.parentRegion && value.parentRegion != '0') {
|
||||
this.form.parentRegion = value.parentRegion;
|
||||
} else {
|
||||
this.form.parentRegion = '0';
|
||||
}
|
||||
if (value.intendanceIds == "" || value.intendanceIds == null) {
|
||||
this.form.intendanceIds = null;
|
||||
} else {
|
||||
|
||||
@ -3234,11 +3234,12 @@ export default {
|
||||
|
||||
//获取去整改人 通知人 检查人 核查人下拉
|
||||
getReviewPeopleList(regionId) {
|
||||
this.addForm1.reviewId = ""; // 先清空复查人
|
||||
let data = {
|
||||
projectSn: this.projectSn,
|
||||
// enterpriseTypeId: 7,
|
||||
// qualityRegionId: regionId[0].toString(),
|
||||
qualityRegionId: regionId.toString(),
|
||||
qualityRegionId: regionId[regionId.length - 1].toString(),
|
||||
// qualityRegionId: regionId.toString(),
|
||||
qualityRegionBindType: 2,
|
||||
isSupervisingRoleName: 1,
|
||||
};
|
||||
|
||||
@ -158,13 +158,11 @@ export default {
|
||||
// return timer;
|
||||
},
|
||||
refresh() {
|
||||
this.queryInfo = {
|
||||
deviceId: "",
|
||||
};
|
||||
this.queryInfo.deviceId = "";
|
||||
this.time = [];
|
||||
this.pagInfo.pageNo = 1; //页数
|
||||
this.pagInfo.pageSize = 10; //条数
|
||||
this.selectNowDate();
|
||||
// this.selectNowDate();
|
||||
this.getList();
|
||||
},
|
||||
query() {
|
||||
|
||||
@ -251,8 +251,9 @@ export default {
|
||||
refresh() {
|
||||
this.pageNo = 1;
|
||||
this.pageSize = 10;
|
||||
this.devSn = "";
|
||||
this.valueTime = [];
|
||||
this.selectNowDate();
|
||||
// this.selectNowDate();
|
||||
this.selectDustNoisePageList();
|
||||
},
|
||||
quertData() {
|
||||
|
||||
@ -3191,11 +3191,12 @@ export default {
|
||||
|
||||
//获取去整改人 通知人 检查人 核查人下拉
|
||||
getReviewPeopleList(regionId) {
|
||||
this.addForm1.reviewId = ""; // 先清空复查人
|
||||
let data = {
|
||||
projectSn: this.projectSn,
|
||||
// enterpriseTypeId: 7,
|
||||
// qualityRegionId: regionId[0].toString(),
|
||||
qualityRegionId: regionId.toString(),
|
||||
qualityRegionId: regionId[regionId.length - 1].toString(),
|
||||
// qualityRegionId: regionId.toString(),
|
||||
qualityRegionBindType: 2,
|
||||
isSupervisingRoleName: 1,
|
||||
};
|
||||
|
||||
@ -665,7 +665,7 @@ export default {
|
||||
console.log(
|
||||
'扫码进来了吗====3 :' +
|
||||
(url +
|
||||
'#/authentication?eduId=' +
|
||||
'#/authenticationOrigin?eduId=' +
|
||||
this.eduId +
|
||||
'&projectSn=' +
|
||||
this.$store.state.projectSn)
|
||||
@ -682,7 +682,7 @@ export default {
|
||||
|
||||
text:
|
||||
url +
|
||||
'#/authentication?eduId=' +
|
||||
'#/authenticationOrigin?eduId=' +
|
||||
this.eduId +
|
||||
'&projectSn=' +
|
||||
this.$store.state.projectSn, // 二维码内容
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user