培训通知 培训记录调整

This commit is contained in:
yunkexin 2026-01-12 15:03:09 +08:00
parent 0b3c28c8da
commit f56c7e195f
5 changed files with 187 additions and 319 deletions

View File

@ -17,13 +17,13 @@
<u--input disabled disabledColor="#fff" v-model="model.END_TIME" placeholder="请选择时间" border="none" inputAlign="right" fontSize="14px"></u--input>
<u-icon style="margin-left: 4px;" name="arrow-down" size="12"></u-icon>
</u-form-item>
<u-form-item required label="参与部门" @click="handleShowSheet({title: '参与部门', name: 'Nav_JoinDepartment'})" borderBottom>
<u-form-item required label="参与部门" @click="handleShowSheet({title: '参与部门', name: 'Nav_JoinDepartment'})" >
<u-icon name="arrow-down" size="12" slot="right"></u-icon>
</u-form-item>
<view class="tag-view" v-if="model.Nav_JoinDepartment">
<uni-tag class="tag" v-for="(i, k) in model.Nav_JoinDepartment.filter(i => !i.IS_DELETED)" :key="k" :inverted="true" :text="i.Nav_Department.NAME" type="primary" />
</view>
<u-form-item required label="调查内容" @click="handleShowSheet({title: '调查内容', name: 'Nav_Points'})" borderBottom>
<u-form-item required label="调查内容" @click="handleShowSheet({title: '调查内容', name: 'Nav_Points'})" >
<u-icon name="arrow-down" size="12" slot="right"></u-icon>
</u-form-item>
<view class="tag-view" v-if="model.Nav_Points">
@ -38,13 +38,10 @@
<query-selector :multiple="selectorInfo.isMultiple" :show="selectorInfo.showPopup" :title="selectorInfo.title" :lists="selectorInfo.dataLists" :defaultChecked="selectorInfo.defaultChecked"
@search="handleSearch" @select="handleSelected" @close="selectorInfo.showPopup=false" :total="selectorInfo.totalCount" />
<u-picker :show="comPickerInfo.showSheet" :columns="comPickerInfo.columns" @confirm="onConfirmPicker" @close="comPickerInfo.showSheet=false" @cancel="comPickerInfo.showSheet=false" keyName="NAME"></u-picker>
<u-modal :show="showDelModalIndex >= 0" @confirm="confirmDel" @cancel="cacelDel" :showCancelButton="true" title="确认删除?"></u-modal>
<people-selector :defaultChecked="peopleSelectOption.defaultChecked" :show="peopleSelectOption.showSelector" @select="handleSelectorPeople" @close="peopleSelectOption.showSelector = false">
</people-selector>
<u-datetime-picker :show="dateTimePickerInfo.showCheckDate" v-model='dateTimePickerInfo.defaultDateTime' @confirm="handleCheckDate" @close="dateTimePickerInfo.showCheckDate = false"
@cancel="dateTimePickerInfo.showCheckDate = false" :mode="dateTimePickerInfo.mode"></u-datetime-picker>
<query-selector :show="showPopupMonitor" :total="curTotalMonitor" :lists="monitorLists" :defaultValue="currentOperateMonitor.NAME" @close="handleClosePopupMonitor" @search="handleSearchMonitor"
@select="handleSelectedMonitor" />
</view>
</view>
</template>
@ -85,76 +82,15 @@
return {
showDelModalIndex: undefined,
showDelModalIndex1: undefined,
subsectionList: ['无隐患', '有隐患', '不涉及'],
isMultiple: false,
defaultChecked: [],
RiskLevel: ['一般', '重大'],
showPopupUnit: false,
UnitDefaultIndex: [0],
RiskLevelDefaultIndex: [0],
UnitLists: [],
showPopupRiskLevel: false,
TypeLists: [],
showPopupType: false,
TypeDefaultIndex: [0],
PeriodLists: [],
showPopupPeriod: false,
PeriodDefaultIndex: [0],
LevelLists: [],
showPopupStep: false,
showPopupLevel: false,
curTotalStep: 0,
stepLists: [],
LevelDefaultIndex: [0],
showPopupDate: false,
listPropUpload: ['NOTIFY_ID'],
listPropValUpload: [],
ORG_ID: uni.getStorageSync('orgId'),
checkListData: {},
monitorLists: [],
currentOperateMonitor: {},
showPopupMonitor: false,
curTotalMonitor: 0,
model: {
Nav_ApplyUser: {
NAME: ''
},
Nav_ApplyDepartment: {
NAME: ''
},
Nav_ProductionUnit: {
NAME: ''
},
Nav_OperationStep: {
NAME: ''
},
Nav_FireDepartment: {
NAME: ''
},
Nav_FireUser: {
NAME: ''
},
Nav_SafeUser: {
NAME: ''
},
Nav_Area: {
NAME: ''
},
Nav_Type: {
NAME: ''
},
IS_HOLIDAY: false,
IS_HOLIDAYName: '否',
EVALUATE_LEVEL: '',
EVALUATE_LEVELName: '',
JOB_LOCATION: '',
JOB_CONTENT: '',
JOB_DATE: '',
JOB_END_DATE: '',
Nav_Users: [],
Nav_Risks: [],
Nav_Details: [],
Nav_Files: []
Nav_JoinDepartment: [],
Nav_Points: [],
NAME:'',
END_TIME:'',
},
peopleSelectOption: {
showSelector: false,
@ -194,24 +130,8 @@
name: ''
},
dateTime: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
stepsText: ['发起', '归档'],
stepsPage: 0,
stepsPageList: 0,
Pu: '',
Check_Type_ID: '',
TypeListres: {},
TaskID: '',
poparr: '',
currentOperateStep: {},
chooseCheckContent: '',
chooseCheckArea: '',
currentOperateArea: {},
areaLists: [],
curTotalArea: 0,
showPopupArea: false,
nowIndex: {},
nowName: '',
newCheckList: false,
stepLoad: true,
enumsData: {}, //
enumsText: {} //
@ -445,9 +365,9 @@
delete this.modelEdit.Nav_ProductionUnit
delete this.modelEdit.Nav_SafeUser
delete this.modelEdit.Nav_Type
if(this.model.Nav_Risks&&this.model.Nav_Risks.length>0){
this.model.Nav_Risks.map(item=>{
delete item.Nav_Risk
if(this.model.Nav_JoinDepartment&&this.model.Nav_JoinDepartment.length>0){
this.model.Nav_JoinDepartment.map(item=>{
delete item.Nav_Department
})
}
if (this.modelEdit.Nav_Users && this.modelEdit.Nav_Users.length > 0) {

View File

@ -12,7 +12,7 @@
<u-icon style="margin-left: 4px;" slot="right" name="arrow-down" size="12">
</u-icon>
</u-form-item>
<u-form-item required label="培训级别" prop="LEVEL" borderBottom @click="handleShowSheet({title: '层级', name: 'LEVEL'})">
<u-form-item required label="培训级别" prop="LEVEL_SHOW" borderBottom @click="handleShowSheet({title: '层级', name: 'FMDepartmentType'})">
<u--input :value="model.LEVEL_SHOW" placeholder="请选择层级" border="none" inputAlign="right" disabled disabledColor="#fff" fontSize="14px"></u--input>
<u-icon style="margin-left: 4px;" slot="right" name="arrow-down" size="12"></u-icon>
</u-form-item>
@ -35,11 +35,11 @@
<u-form-item required label="培训老师" prop="TRAIN_TEACHER" borderBottom>
<u--input v-model="model.TRAIN_TEACHER" border="none" slot="right" placeholder="请填写培训老师" inputAlign="right" fontSize="14px"></u--input>
</u-form-item>
<u-form-item required label="培训形式" prop="TRAIN_MODEL" borderBottom @click="handleShowSheet({title: '培训形式', name: 'TrainType'})">
<u-form-item required label="培训形式" prop="TRAINTYPE_SHOW" borderBottom @click="handleShowSheet({title: '培训形式', name: 'TrainType'})">
<u--input v-model="model.TRAINTYPE_SHOW" placeholder="请选择培训形式" border="none" inputAlign="right" disabled disabledColor="#fff" fontSize="14px"></u--input>
<u-icon style="margin-left: 4px;" slot="right" name="arrow-down" size="12"></u-icon>
</u-form-item>
<u-form-item required label="考核方式" prop="Nav_TrainCheckType.NAME" borderBottom @click="handleShowSheet({title: '培训形式', name: 'PlanCheckType'})">
<u-form-item required label="考核方式" prop="CHECKTYPE_SHOW" borderBottom @click="handleShowSheet({title: '培训形式', name: 'PlanCheckType'})">
<u--input v-model="model.CHECKTYPE_SHOW" placeholder="请选择考核方式" border="none" inputAlign="right" disabled disabledColor="#fff" fontSize="14px"></u--input>
<u-icon style="margin-left: 4px;" slot="right" name="arrow-down" size="12">
</u-icon>
@ -144,7 +144,7 @@
trigger: ['blur', 'change'],
message: '请选择培训类型'
},
'LEVEL': {
'LEVEL_SHOW': {
type: 'number',
required: true,
trigger: ['blur', 'change'],
@ -170,7 +170,7 @@
message: '请填写培训地点'
},
'HOURS': {
type: 'string',
type: 'number',
required: true,
trigger: ['blur', 'change'],
message: '请填写培训学时'
@ -181,13 +181,13 @@
trigger: ['blur', 'change'],
message: '请填写培训老师'
},
'TRAIN_MODEL': {
'TRAINTYPE_SHOW': {
type: 'string',
required: true,
trigger: ['blur', 'change'],
message: '请选择培训形式'
},
'Nav_TrainCheckType.NAME': {
'CHECKTYPE_SHOW': {
type: 'string',
required: true,
trigger: ['blur', 'change'],
@ -239,7 +239,7 @@
this.TaskID = option.taskID ? option.taskID : '';
this.model.ID = option.ID ? option.ID : '';
this.tableKey = option.tableKey ? option.tableKey : '0';
this.fetchEnums(['TrainType', 'PlanCheckType']);
this.fetchEnums(['TrainType', 'PlanCheckType', 'FMDepartmentType']);
this.isAdd = option.isAdd
},
@ -515,16 +515,17 @@
extendInclude(json, "Nav_TrainContentList.Nav_Point")
extendInclude(json, "Nav_LaunchDepartment")
extendInclude(json, "Nav_TrainType")
extendInclude(json, "Nav_TrainCheckType")
extendInclude(json, "Nav_UserTeacher")
extendInclude(json, "Nav_RecordUser")
extendInclude(json, "Nav_TrainContentList")
extendInclude(json, "Nav_TrainUserList.Nav_User.Nav_Person")
extendInclude(json, "Nav_TrainUserList.Nav_User")
extendInclude(json, "Nav_TrainUserList")
extendInclude(json, "Nav_Files.Nav_ImgFile")
// TODO: id
extendRule(json, 'ID', 1, this.model.ID)
getRequest(json, "/SE/TrainNotify/Get").then(res => {
this.model = res
this.model.LEVEL_SHOW = this.transLevel(this.model.LEVEL)
this.model.LEVEL_SHOW = res.LEVEL !== undefined ? this.enumsData['FMDepartmentType'].find(item => item.code === res.LEVEL).name : '';
this.model.TRAINTYPE_SHOW = res.TRAINTYPE !== undefined ? this.enumsData['TrainType'].find(item => item.code === res.TRAINTYPE).name : '';
this.model.CHECKTYPE_SHOW = res.CHECKTYPE !== undefined ? this.enumsData['PlanCheckType'].find(item => item.code === res.CHECKTYPE).name : '';
})
@ -542,43 +543,7 @@
async handleShowSheet(p, index) {
let column = []
this.levelIndex = index;
if (p.name === 'LEVEL') {
column = [{
NAME: '部门',
ID: 0
},
{
NAME: '车间',
ID: 1
},
{
NAME: '班组',
ID: 2
},
{
NAME: '公司',
ID: 3
}
]
} else if (p.name === 'TRAIN_MODEL') {
column = [{
NAME: '讲授法',
ID: "_1_"
},
{
NAME: '视听法',
ID: "_2_"
},
{
NAME: '研讨法',
ID: "_3_"
},
{
NAME: '演示法',
ID: "_4_"
}
]
} else if (p.name === 'NEED_EVALUATION') {
if (p.name === 'NEED_EVALUATION') {
column = [{
NAME: '否',
ID: 0
@ -588,7 +553,7 @@
ID: 1
},
]
} else if (p.name == 'TrainType' || p.name == 'PlanCheckType') {
} else if (p.name == 'TrainType' || p.name == 'PlanCheckType' || p.name == 'FMDepartmentType') {
column = this.enumsData[p.name]
}
if (column.length) {
@ -608,13 +573,16 @@
name,
formIndex
} = this.comPickerInfo
if(name == 'TrainType'){
if (name == 'TrainType') {
this.model.TRAINTYPE_SHOW = e.value[0].name
this.model.TRAINTYPE = this.enumsData['TrainType'][e.indexs[0]].code
}else if(name == 'PlanCheckType'){
} else if (name == 'PlanCheckType') {
this.model.CHECKTYPE_SHOW = e.value[0].name
this.model.CHECKTYPE = this.enumsData['PlanCheckType'][e.indexs[0]].code
}else{
} else if (name == 'FMDepartmentType') {
this.model.LEVEL_SHOW = e.value[0].name
this.model.LEVEL = this.enumsData['FMDepartmentType'][e.indexs[0]].code
} else {
this.model[name] = e.value[0].ID
this.model[name + '_SHOW'] = e.value[0].NAME
}

View File

@ -1,60 +1,47 @@
<template>
<view class="todo-page">
<view class="card" >
<view class="card">
<view class="background"></view>
<view>
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" :model="model" class="demo-ruleForm">
<u-form-item label="培训名称:" prop="NAME" borderBottom>
<u--input v-model="model.NAME" border="none" slot="right" inputAlign="right" disabled
disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.NAME" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="发起时间:" prop="LAUNCH_TIME" borderBottom>
<u--input v-model="model.LAUNCH_TIME" border="none" slot="right" inputAlign="right" disabled
disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.LAUNCH_TIME" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="发起部门:" prop="Nav_LaunchDepartment.NAME" borderBottom>
<u--input v-if="model.Nav_LaunchDepartment" v-model="model.Nav_LaunchDepartment.NAME" border="none"
slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_LaunchDepartment" v-model="model.Nav_LaunchDepartment.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_LaunchUser" v-model="model.Nav_LaunchUser.NAME" border="none" slot="right"
inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_LaunchUser" v-model="model.Nav_LaunchUser.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_TrainType" v-model="model.Nav_TrainType.NAME" border="none" slot="right"
inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_TrainType" v-model="model.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-model="model.LEVEL" border="none" slot="right" inputAlign="right" disabled
disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.LEVEL_SHOW" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="开始时间:" prop="TRAIN_START_TIME" borderBottom>
<u--input v-model="model.TRAIN_START_TIME" border="none" inputAlign="right" disabled
disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.TRAIN_START_TIME" border="none" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="结束时间:" prop="TRAIN_END_TIME" borderBottom>
<u--input v-model="model.TRAIN_END_TIME" border="none" inputAlign="right" disabled
disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.TRAIN_END_TIME" border="none" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训地点:" prop="TRAIN_ADDR" borderBottom>
<u--input v-model="model.TRAIN_ADDR" border="none" slot="right" inputAlign="right" disabled
disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.TRAIN_ADDR" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训学时:" prop="HOURS" borderBottom>
<u--input v-model="model.HOURS" border="none" slot="right" inputAlign="right" disabled
disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.HOURS" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训老师:" prop="TRAIN_TEACHER" borderBottom>
<u--input v-model="model.TRAIN_TEACHER" border="none" slot="right" inputAlign="right" disabled
disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.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-model="model.TRAINTYPE_SHOW" border="none" inputAlign="right" disabled
disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.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-model="model.CHECKTYPE_SHOW" border="none"
slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
<u--input v-model="model.CHECKTYPE_SHOW" border="none" slot="right" inputAlign="right" disabled disabledColor="#ffffff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训内容:" prop="TRAINCONTENT" borderBottom>
</u-form-item>
@ -62,12 +49,11 @@
<u-form-item label="培训安排及要求:" prop="TRAIN_PLAN" borderBottom>
</u-form-item>
<u--textarea v-model="model.TRAIN_PLAN" border="none" disabled></u--textarea>
<u-form-item label="培训人员:" prop="users" >
<u-form-item label="培训人员:" prop="users">
</u-form-item>
<rich-text v-html="model.users" border="none" disabled style="font-size: 14px;"></rich-text>
<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>
</view>
@ -78,8 +64,7 @@
<u--textarea height='3em' v-model="LEAVE_REASON" placeholder="请输入请假理由"></u--textarea>
</view>
<view class="buttons">
<u-button type="primary" color="#3d4b70" class="btn first-btn" @click="onChargeUserAgree(1)"
text="参加"></u-button>
<u-button type="primary" color="#3d4b70" class="btn first-btn" @click="onChargeUserAgree(1)" text="参加"></u-button>
<u-button color="#3d4b70" :plain="true" type="warning" @click="onChargeUserAgree(2)" text="请假"></u-button>
</view>
</view>
@ -125,7 +110,7 @@
this.model.ID = option.ID;
this.TaskID = option.taskID;
this.tableKey = option.tableKey ? option.tableKey : '0'
this.fetchEnums(['TrainType', 'PlanCheckType']);
this.fetchEnums(['TrainType', 'PlanCheckType','FMDepartmentType']);
},
methods: {
async fetchEnums(enumNames) {
@ -174,7 +159,8 @@
extendInclude(json, 'Nav_LaunchDepartment');
extendInclude(json, 'Nav_LaunchUser');
extendInclude(json, 'Nav_TrainType');
extendInclude(json, 'Nav_TrainCheckType');
extendInclude(json, 'Nav_RecordUser');
// extendInclude(json, 'Nav_TrainCheckType');
extendInclude(json, 'Nav_TrainContentList');
extendInclude(json, 'Nav_TrainContentList.Nav_Point');
extendInclude(json, 'Nav_TrainUserList');
@ -210,6 +196,7 @@
this.model.LEVEL = this.transLevel(this.model.LEVEL);
this.model.TRAINCONTENT = trainContent;
this.model.users = users;
this.model.LEVEL_SHOW = res.LEVEL !== undefined ? this.enumsData['FMDepartmentType'].find(item => item.code === res.LEVEL).name : '';
this.model.TRAINTYPE_SHOW = res.TRAINTYPE !== undefined ? this.enumsData['TrainType'].find(item => item.code === res.TRAINTYPE).name : '';
this.model.CHECKTYPE_SHOW = res.CHECKTYPE !== undefined ? this.enumsData['PlanCheckType'].find(item => item.code === res.CHECKTYPE).name : '';
this.isLoadOK = true;
@ -251,8 +238,7 @@
onChargeUserAgree(type) {
if (type == 2) {
if (this.LEAVE_REASON == "" || this.LEAVE_REASON == null) {
uni.$showMsgFunc('请填写请假理由!', () => {
}, 'error', 1000);
uni.$showMsgFunc('请填写请假理由!', () => {}, 'error', 1000);
return
}
}
@ -291,16 +277,19 @@
background: #edf1fd;
z-index: -1;
}
.todo-page {
/* padding-bottom: 10px; */
overflow: hidden;
}
.card {
margin: 20px 16px 180px 16px;
padding: 20px 30px 80px 30px;
background-color: #ffffff;
border-radius: 10px;
}
.upload-title {
font-size: 14px;
color: #8e8b9c;
@ -319,6 +308,7 @@
background: #fff;
box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, .05);
}
.btn-wrap>>>.u-textarea__field {
font-size: 14px;
}
@ -336,6 +326,7 @@
.buttons .first-btn {
margin-right: 20px;
}
.demo-ruleForm>>>.u-form-item__body__left__content__label {
font-size: 14px;
color: #8e8b9c;
@ -350,6 +341,7 @@
.demo-ruleForm>>>.u-textarea__field {
font-size: 14px;
}
.demo-ruleForm>>>.u-textarea {
font-size: 14px;
}

View File

@ -3,81 +3,61 @@
<view class="card">
<view class="background"></view>
<view>
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" :model="model" :rules="rules"
ref="wForm" errorType="border-bottom" class="demo-ruleForm">
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" :model="model" :rules="rules" ref="wForm" errorType="border-bottom" class="demo-ruleForm">
<u-form-item required label="培训名称:" prop="Nav_Notify.NAME" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.NAME" border="none" slot="right"
inputAlign="right" disabled disabledColor="#fff" 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="#fff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训类型:" prop="Nav_TrainType.NAME" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.Nav_TrainType.NAME"
placeholder="培训类型" border="none" inputAlign="right" disabled
disabledColor="#fff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.Nav_TrainType.NAME" placeholder="培训类型" border="none" inputAlign="right" disabled disabledColor="#fff" fontSize="14px"></u--input>
</u-icon>
</u-form-item>
<u-form-item label="培训级别:" prop="LEVEL" borderBottom>
<u--input v-if="model.Nav_Notify" :value="model.Nav_Notify.LEVEL_SHOW" border="none"
inputAlign="right" disabled disabledColor="#fff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" :value="model.Nav_Notify.LEVEL_SHOW" border="none" inputAlign="right" disabled disabledColor="#fff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="组织部门:" prop="LEVEL" borderBottom>
<u--input v-if="model.Nav_Notify" :value="model.Nav_Notify.Nav_LaunchDepartment.NAME"
border="none" inputAlign="right" disabled disabledColor="#fff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" :value="model.Nav_Notify.Nav_LaunchDepartment.NAME" border="none" inputAlign="right" disabled disabledColor="#fff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="开始时间" required prop="Nav_Notify.TRAIN_START_TIME"
@click="showCheckDate({ name: 'TRAIN_START_TIME'})" borderBottom>
<u--input v-if="model.Nav_Notify" disabledColor="#fff"
v-model="model.Nav_Notify.TRAIN_START_TIME" disabled placeholder="请选择开始时间"
suffixIcon="arrow-down" suffixIconStyle="font-size:12px" fontSize="14px" border="none"
customStyle="margin:0px;display:flex;padding:3px 0px" inputAlign="right">
<u-form-item label="开始时间" required prop="Nav_Notify.TRAIN_START_TIME" @click="showCheckDate({ name: 'TRAIN_START_TIME'})" borderBottom>
<u--input v-if="model.Nav_Notify" disabledColor="#fff" v-model="model.Nav_Notify.TRAIN_START_TIME" disabled placeholder="请选择开始时间" suffixIcon="arrow-down" suffixIconStyle="font-size:12px"
fontSize="14px" border="none" customStyle="margin:0px;display:flex;padding:3px 0px" inputAlign="right">
</u--input>
</u-form-item>
<u-form-item label="结束时间" required prop="Nav_Notify.TRAIN_END_TIME"
@click="showCheckDate({name: 'TRAIN_END_TIME'})" borderBottom>
<u--input v-if="model.Nav_Notify" disabledColor="#fff" v-model="model.Nav_Notify.TRAIN_END_TIME" border="none"
disabled placeholder="请选择结束时间" suffixIcon="arrow-down" suffixIconStyle="font-size:12px"
fontSize="14px" customStyle="margin:0px;display:flex;padding:3px 0px" inputAlign="right">
<u-form-item label="结束时间" required prop="Nav_Notify.TRAIN_END_TIME" @click="showCheckDate({name: 'TRAIN_END_TIME'})" borderBottom>
<u--input v-if="model.Nav_Notify" disabledColor="#fff" v-model="model.Nav_Notify.TRAIN_END_TIME" border="none" disabled placeholder="请选择结束时间" suffixIcon="arrow-down"
suffixIconStyle="font-size:12px" fontSize="14px" customStyle="margin:0px;display:flex;padding:3px 0px" inputAlign="right">
</u--input>
</u-form-item>
<u-form-item label="培训地点:" prop="TRAIN_ADDR" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.TRAIN_ADDR" border="none"
slot="right" inputAlign="right" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.TRAIN_ADDR" border="none" slot="right" inputAlign="right" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训学时:" prop="HOURS" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.HOURS" type="number" border="none"
slot="right" inputAlign="right" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.HOURS" type="number" border="none" slot="right" inputAlign="right" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训老师:" prop="TRAIN_TEACHER" borderBottom>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.TRAIN_TEACHER" border="none"
slot="right" inputAlign="right" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.TRAIN_TEACHER" border="none" slot="right" inputAlign="right" fontSize="14px"></u--input>
</u-form-item>
<u-form-item label="培训形式:" prop="TRAIN_MODEL" borderBottom>
<u--input v-if="model.Nav_Notify" :value="model.Nav_Notify.TRAINTYPE_SHOW" border="none"
inputAlign="right" disabled disabledColor="#fff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" :value="model.Nav_Notify.TRAINTYPE_SHOW" border="none" inputAlign="right" disabled disabledColor="#fff" 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" inputAlign="right" disabled disabledColor="#fff" fontSize="14px"></u--input>
<u--input v-if="model.Nav_Notify" v-model="model.Nav_Notify.CHECKTYPE_SHOW" border="none" inputAlign="right" disabled disabledColor="#fff" fontSize="14px"></u--input>
</u-form-item>
<u-form-item class="custom-form-item" label="培训内容:" prop="DetailPost" :borderBottom="false">
</u-form-item>
<u-textarea v-html="model.Nav_TrainContentList_SHOW" style="font-size: 14px;"></u-textarea>
<view class="upload-title">附件</view>
<full-upload v-model="model.Nav_Files" :isShowBtn='true' :listProp='listPropUpload'
:listPropVal='listPropValUpload'></full-upload>
<full-upload v-model="model.Nav_Files" :isShowBtn='true' :listProp='listPropUpload' :listPropVal='listPropValUpload'></full-upload>
</u--form>
</view>
</view>
<u-sticky offset-top="20">
<view class="sub-form">
<view class="sub-form-wrap">
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" errorType="border-bottom"
ref="sForm">
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" errorType="border-bottom" ref="sForm">
<!-- <u-collapse :border="false" accordion> -->
<view style="margin-bottom: 16px;"
v-for="(item, index) in model.Nav_Users">
<view style="margin-bottom: 16px;" v-for="(item, index) in model.Nav_Users">
<u-form-item :label="(index+1)+'. '+ item.Nav_User.NAME">
<u-subsection activeColor="#0eacf5" mode="subsection" :list="list" :current="item.STATUS"
@change="sectionChange($event,item)"></u-subsection>
<u-subsection activeColor="#0eacf5" mode="subsection" :list="list" :current="item.STATUS" @change="sectionChange($event,item)"></u-subsection>
</u-form-item>
</view>
<!-- </u-collapse> -->
@ -85,14 +65,10 @@
</view>
</view>
</u-sticky>
<query-selector :show="showPopup" :lists="Lists" @close="handleClosePopup" @search="handleSearch"
@select="handleSelected" />
<u-picker :show="comPickerInfo.showSheet" :columns="comPickerInfo.columns" @confirm="onConfirmPicker"
@close="closePicker" @cancel="closePicker" keyName="NAME"></u-picker>
<u-datetime-picker :show="dateTimePickerInfo.showCheckDate" mode="datetime"
v-model='dateTimePickerInfo.defaultDateTime' :formatter="formatter" @confirm="handleCheckDate"
@close="dateTimePickerInfo.showCheckDate = false;"
@cancel="dateTimePickerInfo.showCheckDate = false;"></u-datetime-picker>
<query-selector :show="showPopup" :lists="Lists" @close="handleClosePopup" @search="handleSearch" @select="handleSelected" />
<u-picker :show="comPickerInfo.showSheet" :columns="comPickerInfo.columns" @confirm="onConfirmPicker" @close="closePicker" @cancel="closePicker" keyName="NAME"></u-picker>
<u-datetime-picker :show="dateTimePickerInfo.showCheckDate" mode="datetime" v-model='dateTimePickerInfo.defaultDateTime' :formatter="formatter" @confirm="handleCheckDate"
@close="dateTimePickerInfo.showCheckDate = false;" @cancel="dateTimePickerInfo.showCheckDate = false;"></u-datetime-picker>
<view class="bottom-button">
<u-button type="primary" @click="submit" color="#3d4b70">提交</u-button>
</view>
@ -171,7 +147,7 @@
this.TaskID = option.taskID ? option.taskID : '';
this.model.ID = option.ID ? option.ID : '';
this.tableKey = option.tableKey ? option.tableKey : '0';
this.fetchEnums(['TrainType', 'PlanCheckType']);
this.fetchEnums(['TrainType', 'PlanCheckType','FMDepartmentType']);
},
methods: {
async fetchEnums(enumNames) {
@ -264,25 +240,28 @@
if (this.listPropValUpload.length == 0) {
this.listPropValUpload.push(this.model.ID)
}
extendInclude(json, "Nav_Users.Nav_User")
extendInclude(json, "Nav_Notify")
extendInclude(json, "Nav_Notify.Nav_TrainType")
extendInclude(json, "Nav_Notify.Nav_LaunchDepartment")
extendInclude(json, "Nav_Notify.Nav_TrainCheckType")
extendInclude(json, "Nav_Notify.Nav_TrainContentList.Nav_Point")
extendInclude(json, "Nav_Files.Nav_ImgFile")
extendInclude(json, 'Nav_Notify');
extendInclude(json, 'Nav_Notify.Nav_TrainContentList.Nav_Point');
extendInclude(json, 'Nav_Notify.Nav_LaunchDepartment');
// extendInclude(json, 'Nav_Notify.Nav_LaunchUser');
extendInclude(json, 'Nav_Notify.Nav_TrainType');
// extendInclude(json, 'Nav_Notify.Nav_TrainCheckType');
extendInclude(json, 'Nav_Users.Nav_User');
extendInclude(json, 'Nav_Files.Nav_ImgFile');
extendInclude(json, 'Nav_Users');
extendRule(json, 'ID', 1, this.model.ID)
getRequest(json, "/SE/TrainRecord/Get").then(res => {
this.model = res
if (this.model.Nav_Notify.LEVEL == 0) {
this.model.Nav_Notify.LEVEL_SHOW = "部门";
} else if (this.model.Nav_Notify.LEVEL == 1) {
this.model.Nav_Notify.LEVEL_SHOW = "车间";
} else if (this.model.Nav_Notify.LEVEL == 2) {
this.model.Nav_Notify.LEVEL_SHOW = "班组";
} else if (this.model.Nav_Notify.LEVEL == 3) {
this.model.Nav_Notify.LEVEL_SHOW = "公司";
}
// if (this.model.Nav_Notify.LEVEL == 0) {
// this.model.Nav_Notify.LEVEL_SHOW = "";
// } else if (this.model.Nav_Notify.LEVEL == 1) {
// this.model.Nav_Notify.LEVEL_SHOW = "";
// } else if (this.model.Nav_Notify.LEVEL == 2) {
// this.model.Nav_Notify.LEVEL_SHOW = "";
// } else if (this.model.Nav_Notify.LEVEL == 3) {
// this.model.Nav_Notify.LEVEL_SHOW = "";
// }
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.TRAIN_MODEL_SHOW = "";
@ -353,6 +332,7 @@
/* padding: 16px 16px 70px; */
overflow: hidden;
}
.card {
margin: 20px 16px 40px 16px;
/* border: 1px solid #EBEEF5; */
@ -361,6 +341,7 @@
background-color: #ffffff;
border-radius: 10px;
}
.background {
position: fixed;
top: 0;
@ -370,12 +351,14 @@
background: #edf1fd;
z-index: -1;
}
.upload-title {
font-size: 14px;
color: #8e8b9c;
line-height: 22px;
padding: 8px 0px;
}
.demo-ruleForm>>>.u-form-item__body__left__content__label {
font-size: 14px;
color: #8e8b9c;
@ -394,15 +377,18 @@
.demo-ruleForm>>>.u-cell__title-text {
font-size: 14px;
}
.sub-form {
margin: 20px 16px 140px 16px;
padding: 20px 10px 10px 10px;
background-color: #ffffff;
border-radius: 10px;
}
.sub-form>>>.u-form-item__body__left__content {
margin-right: 10px;
}
.bottom-button {
position: fixed;
bottom: 0;

View File

@ -11,7 +11,7 @@
<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-model="model.LEVEL" 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>
@ -101,7 +101,7 @@
this.model.ID = option.ID;
this.TaskID = option.taskID;
this.tableKey = option.tableKey ? option.tableKey : '0'
this.fetchEnums(['TrainType', 'PlanCheckType']);
this.fetchEnums(['TrainType', 'PlanCheckType', 'FMDepartmentType']);
},
methods: {
@ -148,14 +148,15 @@
loadData() {
const json = initFilter(this.ORG_ID, "", "", 1)
extendRule(json, 'ID', 1, this.model.ID);
extendInclude(json, 'Nav_Notify');
extendInclude(json, 'Nav_Notify.Nav_TrainContentList.Nav_Point');
extendInclude(json, 'Nav_Notify.Nav_LaunchDepartment');
extendInclude(json, 'Nav_Notify.Nav_LaunchUser');
extendInclude(json, 'Nav_Notify.Nav_TrainType');
extendInclude(json, 'Nav_Notify.Nav_TrainCheckType');
extendInclude(json, 'Nav_Notify.Nav_TrainContentList');
extendInclude(json, 'Nav_Notify.Nav_TrainContentList.Nav_Point');
extendInclude(json, 'Nav_Users.Nav_User');
extendInclude(json, 'Nav_Files.Nav_ImgFile');
extendInclude(json, 'Nav_Users.Nav_User');
extendInclude(json, 'Nav_Papers');
getRequest(json, "/SE/TrainRecord/Get").then(res => {
this.model = res
//
@ -202,6 +203,7 @@
}
}
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);