This commit is contained in:
wyw 2026-03-04 17:29:37 +08:00
parent c715cf7eb7
commit 2c582c53df
2 changed files with 111 additions and 29 deletions

View File

@ -3,44 +3,61 @@
<view class="card">
<view class="background"></view>
<view>
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" :model="model" class="demo-ruleForm">
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" :model="model"
class="demo-ruleForm">
<u-form-item label="培训名称:" prop="NAME" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.NAME" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.NAME" border="none" slot="right"
inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训类型:" prop="Nav_LaunchUser.NAME" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.Nav_TrainType.NAME" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.Nav_TrainType.NAME" border="none"
slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训级别:" prop="LEVEL" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.LEVEL_SHOW" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.LEVEL_SHOW" border="none"
slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="组织部门:" prop="Nav_Notify.Nav_LaunchDepartment.NAME" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.Nav_LaunchDepartment.NAME" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.Nav_LaunchDepartment.NAME"
border="none" slot="right" 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.TRAIN_TIME" border="none" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.TRAIN_TIME" border="none" inputAlign="right" disabled
disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训地点:" prop="Nav_Notify.TRAIN_ADDR" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.TRAIN_ADDR" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.TRAIN_ADDR" border="none"
slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训学时:" prop="Nav_Notify.HOURS" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.HOURS" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.HOURS" border="none" slot="right"
inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训老师:" prop="Nav_Notify.TRAIN_TEACHER" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.TRAIN_TEACHER" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.TRAIN_TEACHER" border="none"
slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训形式:" prop="" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.TRAINTYPE_SHOW" border="none" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.TRAINTYPE_SHOW" border="none"
inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="考核方式:" prop="Nav_TrainCheckType.NAME" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.CHECKTYPE_SHOW" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.CHECKTYPE_SHOW" border="none"
slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训课件:" prop="trainCour" borderBottom>
<u-textarea autoHeight v-html="model.trainCour" border="none" disabled></u-textarea>
</u-form-item>
<u-form-item label="培训内容:" prop="TRAINCONTENT" borderBottom>
<u-textarea autoHeight v-html="model.TRAINCONTENT" border="none" disabled></u-textarea>
</u-form-item>
<view class="upload-title">附件</view>
<full-upload v-model="model.Nav_Files" :listProp='listPropUpload' :listPropVal='listPropValUpload' :isShowBtn="false"></full-upload>
<full-upload v-model="model.Nav_Files" :listProp='listPropUpload' :listPropVal='listPropValUpload'
:isShowBtn="false"></full-upload>
<u-form-item label="审阅意见:" prop="TRAIN_PLAN" borderBottom>
<u--input v-model="model.STATUS>2?'已阅':''" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.STATUS>2?'已阅':''" border="none" slot="right" inputAlign="right"
disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="请假人员:" prop="LeaveUsers" borderBottom>
<u-textarea autoHeight v-html="model.LeaveUsers" border="none" disabled></u-textarea>
@ -50,15 +67,19 @@
</u-form-item>
<u-form-item label="培训人员:" prop="Users">
</u-form-item>
<rich-text autoHeight v-html="model.Users" border="none" disabled style="font-size: 14px;"></rich-text>
<rich-text autoHeight v-html="model.Users" border="none" disabled
style="font-size: 14px;"></rich-text>
<view style="margin-top: 10px;">
<u-button type="primary" class="bottom" v-if='isLoadOK&&tableKey!=1&&model.Nav_Notify.CHECKTYPE == 51' @click="openTest(model.ID)">查看试卷</u-button>
<u-button type="primary" class="bottom"
v-if='isLoadOK&&tableKey!=1&&model.Nav_Notify.CHECKTYPE == 51'
@click="openTest(model.ID)">查看试卷</u-button>
</view>
</u--form>
</view>
<view class="bottom-button" v-if='isLoadOK&&tableKey==1&&model.STATUS==1'>
<u-button type="primary" class="bottom" color="#3d4b70" @click="onTableBtnAgree" :disabled="isAgree">签到</u-button>
<u-button type="primary" class="bottom" color="#3d4b70" @click="onTableBtnAgree"
:disabled="isAgree">签到</u-button>
</view>
<view class="bottom-button" v-if='isLoadOK&&tableKey==1&&model.STATUS==2'>
<u-button type="primary" class="bottom" color="#3d4b70" @click="onTableBtnAudit">审核</u-button>
@ -66,12 +87,12 @@
</view>
</view>
</template>
<script>
import {
initFilter,
extendRule,
extendInclude
extendInclude,
getArryPropShow
} from '../../../../utils/common'
import {
getRequest,
@ -149,6 +170,7 @@
const json = initFilter(this.ORG_ID, "", "", 1)
extendRule(json, 'ID', 1, this.model.ID);
extendInclude(json, 'Nav_Notify');
extendInclude(json, "Nav_Notify.Nav_ListCour.Nav_Cour")
extendInclude(json, 'Nav_Notify.Nav_TrainContentList.Nav_Point');
extendInclude(json, 'Nav_Notify.Nav_LaunchDepartment');
extendInclude(json, 'Nav_Notify.Nav_LaunchUser');
@ -161,9 +183,14 @@
this.model = res
//
let trainContent = '';
let trainCour = '';
let MissUsers = '';
let LeaveUsers = '';
let Users = '';
if (res.Nav_Notify.Nav_ListCour && res.Nav_Notify.Nav_ListCour.length > 0) {
trainCour = getArryPropShow(res.Nav_Notify.Nav_ListCour, 'Nav_Cour.NAME', "<br/>")
}
if (res.Nav_Notify.Nav_TrainContentList && res.Nav_Notify.Nav_TrainContentList.length > 0) {
for (let i = 0; i < res.Nav_Notify.Nav_TrainContentList.length; i++) {
trainContent += (i + 1) + "." + res.Nav_Notify.Nav_TrainContentList[i].Nav_Point.NAME +
@ -203,15 +230,19 @@
}
}
this.model.Nav_Notify.LEVEL_SHOW= res.Nav_Notify.LEVEL !== undefined ? this.enumsData['FMDepartmentType'].find(item => item.code === res.Nav_Notify.LEVEL)?.name : '';
this.model.Nav_Notify.TRAINTYPE_SHOW = res.Nav_Notify.TRAINTYPE !== undefined ? this.enumsData['TrainType'].find(item => item.code === res.Nav_Notify.TRAINTYPE)?.name : '';
this.model.Nav_Notify.CHECKTYPE_SHOW = res.Nav_Notify.CHECKTYPE !== undefined ? this.enumsData['PlanCheckType'].find(item => item.code === res.Nav_Notify.CHECKTYPE)?.name : '';
this.model.Nav_Notify.LEVEL_SHOW = res.Nav_Notify.LEVEL !== undefined ? this.enumsData[
'FMDepartmentType'].find(item => item.code === res.Nav_Notify.LEVEL)?.name : '';
this.model.Nav_Notify.TRAINTYPE_SHOW = res.Nav_Notify.TRAINTYPE !== undefined ? this.enumsData[
'TrainType'].find(item => item.code === res.Nav_Notify.TRAINTYPE)?.name : '';
this.model.Nav_Notify.CHECKTYPE_SHOW = res.Nav_Notify.CHECKTYPE !== undefined ? this.enumsData[
'PlanCheckType'].find(item => item.code === res.Nav_Notify.CHECKTYPE)?.name : '';
this.model.TRAIN_MODEL = this.returnModel(this.model.Nav_Notify.TRAIN_MODEL);
// this.model.LEVEL = this.transLevel(this.model.Nav_Notify.LEVEL);
this.model.TRAIN_TIME = this.model.Nav_Notify.TRAIN_START_TIME?.substring(0, 16) + "~" + this
.model.Nav_Notify
.TRAIN_END_TIME?.substring(0, 16);
this.model.TRAINCONTENT = trainContent;
this.model.trainCour = trainCour;
this.model.MissUsers = MissUsers;
this.model.LeaveUsers = LeaveUsers;
this.model.Users = Users;

View File

@ -44,6 +44,21 @@
<u--input v-model="score" disabled disabledColor="#fff" border="none"
inputAlign="right"></u--input>
</u-form-item>
<!-- <view class="video">
<uni-card margin="0" :is-shadow="true">
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" ref="wForm"
errorType="border-bottom">
<video id="myVideo" @ended="onEnd()" @timeupdate="onTimeUpdate"
src='https://sps.cxtc.com:3199/BT/VIDEO/20251226/251226100216835841.mp4'
controls></video>
</u--form>
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" ref="wForm"
errorType="border-bottom">
<video id="myVideo" @ended="onEnd()" @timeupdate="onTimeUpdate"
src='https://sps.cxtc.com:3199/BT/VIDEO/20251226/12345.mp4' controls></video>
</u--form>
</uni-card>
</view> -->
</u--form>
</uni-card>
</view>
@ -143,20 +158,27 @@
radiovalue1: "错误",
checkbox: [],
TaskID: '',
EDIT_ID: '',
SelUsrNAME: '',
ORG_ID: uni.getStorageSync('orgId')
ORG_ID: uni.getStorageSync('orgId'),
filepath: 'https://sps.cxtc.com:3199/BT/VIDEO/20251226/251226100216835841.mp4'
}
},
onLoad(option) {
this.TaskID = option.taskID ? option.taskID : '';
this.model.ID = option.ID ? option.ID : '';
this.EDIT_ID = option.ID ? option.ID : '';
this.tableKey = option.tableKey ? option.tableKey : '0'
this.loadData();
},
methods: {
loadData() {
let json = initFilter(this.ORG_ID);
if (this.TaskID) {
extendRule(json, 'TEXT_ID', 1, this.model.ID);
} else {
extendRule(json, 'RECORD_ID', 1, this.model.ID);
}
extendInclude(json, 'Nav_User');
getRequest(json, "/SE/SETrainRecord/GetUsers").then(res => {
if (res && res.length > 0) {
@ -183,8 +205,16 @@
if (!SelUsrID) {
return;
}
const json = initFilter(this.ORG_ID, "", "")
var scort = 'Nav_Test.TYPE'
if (!this.TaskID) {
scort = 'TEXT_ID'
}
const json = initFilter(this.ORG_ID, "", scort, 1)
if (this.TaskID) {
extendRule(json, 'TEXT_ID', 1, this.model.ID);
} else {
extendRule(json, 'RECORD_ID', 1, this.model.ID);
}
extendRule(json, 'USER_ID', 1, SelUsrID);
extendInclude(json, 'Nav_Record');
extendInclude(json, 'Nav_Record.Nav_Notify');
@ -390,7 +420,8 @@
Nav_Config: JSON.parse(JSON.stringify(this.config)),
Nav_Papers: JSON.parse(JSON.stringify(this.papers)),
TaskID: this.TaskID,
ORG_ID: this.ORG_ID
ORG_ID: this.ORG_ID,
TEXT_ID: this.EDIT_ID, //this.props.data.id
}
for (let i = 0; i < data.Nav_Papers.length; i++) {
if (data.Nav_Papers[i].ANSWER == 0) {
@ -399,13 +430,33 @@
}
}
getRequest(data, "/SE/SETrainRecord/SavePapers").then(res => {
if (res) {
uni.$showMsgFunc('操作成功!', () => {
if (res && res.IsOperateSuccessful) {
var icon = 'success'
var duration = 1000
if (!res.IsPass) {
icon = 'error'
duration = 2000
}
uni.$showMsgFunc(res.Msg, () => {
uni.navigateBack()
}, 'success', 1000)
}, icon, duration)
}
})
},
onTimeUpdate(e) {
const currentTime = e.detail.currentTime;
if (currentTime > this.lastTime + 1) {
uni.$showErrorInfo('禁止快进');
const videoContext = uni.createVideoContext('myVideo', this)
videoContext.seek(this.lastTime);
} else {
this.lastTime = currentTime;
}
},
//
onEnd() {
this.isVodeoEnd = true
},
}
}
</script>