jy-safe-app/pages/apply/subPages/SCWB/2WBanswerPageShow.vue

266 lines
11 KiB
Vue
Raw Permalink Normal View History

2025-10-14 15:17:30 +08:00
<template>
<view class="page-wrap">
<view class="background"></view>
<view class="card">
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" :model="model" class="demo-ruleForm">
<view style="position: relative;">
<view style="position: absolute;left: -10px;color: #3d4b70;top: -3px;">*</view>
</view>
<view style="font-size: 15px; font-weight: bold;color: #3d4b70;margin-bottom: 10px;">基本信息</view>
<u-form-item label="培训名称:" prop="NAME" borderBottom>
<u--input v-if="model.Nav_Parent" v-model="model.Nav_Parent.NAME" border="none" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="项目名称" prop="Nav_Parent.Nav_Project.NAME" borderBottom>
<u--input v-if="model.Nav_Parent&&model.Nav_Parent.Nav_Project" disabled disabledColor="#ffffff" v-model="model.Nav_Parent.Nav_Project.NAME" border="none" inputAlign="right"
fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="外包单位名称" prop="Nav_Parent.Nav_Project.UNIT_NAME" borderBottom>
<u--input v-if="model.Nav_Parent&&model.Nav_Parent.Nav_Project" disabled disabledColor="#ffffff" v-model="model.Nav_Parent.Nav_Project.UNIT_NAME" border="none" inputAlign="right"
fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训部门:" prop="Nav_Parent.Nav_LaunchDepartment.NAME" borderBottom>
<u--input v-if="model.Nav_Parent&&model.Nav_Parent.Nav_Department" v-model="model.Nav_Parent.Nav_Department.NAME" border="none" inputAlign="right" disabled disabledColor="#ffffff"
fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训老师:" prop="Nav_Parent.TRAIN_TEACHER" borderBottom>
<u--input v-if="model.Nav_Parent&&model.Nav_Parent.Nav_User" v-model="model.Nav_Parent.Nav_User.NAME" border="none" inputAlign="right" disabled disabledColor="#ffffff"
fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训形式" borderBottom>
<u--input disabled disabledColor="#ffffff" v-model="model.TRAIN_TYPE_SHOW" border="none" inputAlign="right" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训地点:" prop="Nav_Parent.TRAIN_ADDR" borderBottom>
<u--input v-if="model" v-model="model.TRAIN_ADDR" border="none" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训开始时间:" prop="TRAIN_TIME" borderBottom>
<u--input v-model="model.START_TIME" border="none" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训结束时间:" prop="TRAIN_TIME" borderBottom>
<u--input v-model="model.END_TIME" border="none" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训学时:" prop="Nav_Parent.HOURS" borderBottom>
<u--input v-if="model" v-model="model.TOTAL_TIME" border="none" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训内容:" prop="TRAIN_CONTENT">
</u-form-item>
<u-textarea autoHeight v-html="model.TRAIN_CONTENT" border="none" disabled></u-textarea>
<view class="upload-title">附件:</view>
<full-upload v-model="model.Nav_Files" :listProp='listPropUpload' :listPropVal='listPropValUpload' :isShowBtn="false"></full-upload>
<!-- <u-form-item label="培训人员:" prop="Users" borderBottom>
</u-form-item>
<rich-text autoHeight v-html="model.Users" border="none" disabled></rich-text> -->
<button type="primary" class="bottom" v-if='isLoadOK&&model.IS_CREATE_TEST&&false' @click="openTest(model.ID)">查看试卷</button>
</u--form>
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" errorType="border-bottom" ref="sForm" class="sub-form" style="margin-top: 10px;">
<view style="position: relative;">
<view style="position: absolute;left: -10px;color: #3d4b70;top: -3px;">*</view>
</view>
<view style="font-size: 15px; font-weight: bold;color: #3d4b70;margin-bottom: 10px;">培训人员</view>
<uni-collapse :border="false" accordion>
<view v-for="(item, index) in model.Nav_Users" :key="index">
<uni-collapse-item :title="item.Nav_User.NAME + ' 分数:' + item.SCORE+'【'+transEXAMINATION_RESULTS(item.EXAMINATION_RESULTS) +'】'">
<view style="margin: 0px 10px;">
<u-form-item label="姓名:" prop="Nav_User.NAME" borderBottom>
<u--input disabled disabledColor="#fff" fontSize="14px" v-model="item.Nav_User.NAME" border="none" inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="性别:" prop="Nav_User.NAME" borderBottom>
<u--input disabled disabledColor="#fff" fontSize="14px" v-model="item.Nav_User.SEX" border="none" inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="手机号:" prop="Nav_User.NAME" borderBottom>
<u--input disabled disabledColor="#fff" fontSize="14px" v-model="item.Nav_User.PHONE" border="none" inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="考核结果:" prop="EXAMINATION_RESULTS_SHOW" borderBottom>
<u--input disabled disabledColor="#fff" fontSize="14px" v-model="item.EXAMINATION_RESULTS_SHOW" border="none" inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="分数:" prop="SCORE" borderBottom>
<u--input disabled disabledColor="#fff" fontSize="14px" v-model="item.SCORE" border="none" inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="查看试卷:" prop="Nav_User.NAME" borderBottom @click="openTest(item.ID,item.USER_ID)">
<u--input disabled disabledColor="#fff" fontSize="14px" border="none" inputAlign="right"></u--input>
<u-icon style="margin-left: 4px;" name="arrow-right" size="12"></u-icon>
</u-form-item>
<u-form-item label="附件:" prop="SCORE">
<!-- <u--input disabled disabledColor="#fff" fontSize="14px" v-model="item.SCORE" border="none" inputAlign="right"></u--input> -->
</u-form-item>
<full-upload v-model="item.Nav_Files" :listProp='listPropUpload' :listPropVal='listPropValUpload' :isShowBtn="false"></full-upload>
</view>
</uni-collapse-item>
</view>
</uni-collapse>
</u--form>
</view>
<view class="bottom-button">
<u-button color="#3d4b70" type="primary" class="bottom" v-if='isLoadOK&&tableKey==1&&isView' @click="onTableBtnAgree" :disabled="isAgree">确认</u-button>
<!--审核 = WB008_CONFIRMPAGE 审阅 -->
<u-button color="#3d4b70" type="primary" class="bottom" v-if='isLoadOK&&tableKey==1&&isApprove' @click="onTableBtnAudit">审阅</u-button>
</view>
</view>
</template>
<script>
import {
initFilter,
extendRule,
extendInclude
} from '../../../../utils/common'
import {
getRequest,
} from '../../../../services/apply/FOServices/FOServices'
import '../../../../utils/showMsg.js'
import color from '../../../../uni_modules/uview-ui/libs/config/color'
import config from '../../../../config/common'
import {
SubmitTrainRecord
} from '../../../../services/apply/subPages/scWB';
export default {
data() {
return {
model: {
Nav_Parent: {
NAME: '',
Nav_Project: {
NAME: '',
UNIT_NAME: '',
},
Nav_Department: {
NAME: '',
}
},
Nav_Users: [{
SCORE: 0,
EXAMINATION_RESULTS: '',
EXAMINATION_RESULTS_SHOW: '',
Nav_User: {
NAME: ''
}
}]
},
TaskID: "",
tableKey: '0',
isLoadOK: false,
ORG_ID: uni.getStorageSync('orgId'),
listPropUpload: ['RECORD_ID'],
listPropValUpload: [],
isAgree: false,
isApprove: false,
isView: false,
formCode: ''
}
},
onLoad(option) {
this.ID = option.ID
this.model.ID = option.ID;
this.TaskID = option.taskID;
this.tableKey = option.tableKey ? option.tableKey : '0'
this.formCode = option.FORMCODE ? option.FORMCODE : ''
this.loadData()
},
methods: {
transEXAMINATION_RESULTS(EXAMINATION_RESULTS) {
if (EXAMINATION_RESULTS == 0) {
return ' 不合格';
}
if (EXAMINATION_RESULTS == 1) {
return ' 合格';
}
},
loadData() {
const json = initFilter(this.ORG_ID, this.model.ID, null, null, null)
// extendRule(json, 'ID', 1, this.model.ID);
extendInclude(json, 'Nav_Parent.Nav_User');
extendInclude(json, 'Nav_Parent.Nav_Department');
extendInclude(json, 'Nav_Parent.Nav_Project');
extendInclude(json, 'Nav_Files.Nav_ImgFile');
getRequest(json, "/WB/WBOutsourceTrainRecord/GetPersonCheck").then(res => {
this.model = res
//数据组装
let Users = '';
let users0 = res.Nav_Users;
if (users0 && users0.length > 0) {
for (let i = 0; i < users0.length; i++) {
if (users0[i].SIGN_STATUS !== 1) {
Users += (Users.length > 0 ? " " : "") +
"<view style='color:#E35D58;background-color:rgba(227,93,88,0.2);padding:5px;line-height:30px;white-space:nowrap;'>" +
users0[i].Nav_User.NAME + " 分数:" + users0[i].SCORE + "</view></br>";
} else {
Users += (Users.length > 0 ? " " : "") +
"<text style='padding:5px;line-height:30px;white-space:nowrap;'>" +
users0[i].Nav_User.NAME + " 分数:" + users0[i].SCORE + "</text></br>";
}
}
}
if (res.TRAIN_TYPE.indexOf('1') > -1 && res.TRAIN_TYPE.indexOf('2') > -1) {
this.Traintype = 3
this.model.TRAIN_TYPE_SHOW = '线上、线下'
} else if (res.TRAIN_TYPE.indexOf('1') > -1) {
this.Traintype = 1
this.model.TRAIN_TYPE_SHOW = '线上'
} else if (res.TRAIN_TYPE.indexOf('2') > -1) {
this.Traintype = 2
this.model.TRAIN_TYPE_SHOW = '线下'
}
this.model.TRAIN_TIME = this.model.START_TIME?.substring(0, 16) + "~" + this
.model.END_TIME?.substring(0, 16);
this.model.Users = Users
this.model.Nav_Users.forEach(e => {
e.EXAMINATION_RESULTS_SHOW = this.transEXAMINATION_RESULTS(e.EXAMINATION_RESULTS)
})
if (res.STATUS >= 3 && this.formCode !== 'SE050_SHOWPRINT' && this.tableKey !== undefined) {
this.isApprove = true
}
let userid = uni.getStorageSync('appInfo').User.ID
if (res.STATUS == 1 && res.Nav_Users.find(it => it.USER_ID == userid)) {
this.isView = true
}
this.isLoadOK = true;
})
},
openTest(id,userid) {
uni.navigateTo({
url: '1WBanswerPageEdit?ID=' + id+ "&USER_ID=" + userid
})
},
onTableBtnAgree() {
this.isAgree = true;
const json = initFilter(this.ORG_ID, "", "", 1)
json.Keyword = this.ID;
json.Parameter1 = this.TaskID;
getRequest(json, "/WB/WBOutsourceTrainRecord/SignIn").then(res => {
if (res) {
uni.$showMsgFunc('操作成功!', () => {
uni.navigateBack()
}, 'success', 1000)
}
})
},
onTableBtnAudit() {
const json = initFilter(this.ORG_ID, this.ID)
json.Parameter1 = this.TaskID;
SubmitTrainRecord(json).then(res => {
if (res) {
uni.$showMsgFunc('操作成功!', () => {
uni.navigateBack()
}, 'success', 1000)
}
})
}
},
computed: {
}
}
</script>
<style>
/* @import url("@/style/css/editTemplate.css"); */
@import url("../../../../style/css/newTemplate.css");
</style>