|
|
@@ -2,13 +2,13 @@
|
|
|
<div class="edu-training-edit">
|
|
|
<DialogCom :title="'新增培训任务'" :close="onHide" :visible.sync="isShow" width="960px">
|
|
|
<div class="page-body">
|
|
|
- <el-form :model="formData" :rules="formDataRules" size="small" label-position="right"
|
|
|
+ <el-form :model="formData" :rules="formDataRules" size="small" ref="newTask" label-position="right"
|
|
|
label-width="120px">
|
|
|
<el-row>
|
|
|
|
|
|
<!-- 培训主题 -->
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item prop="title" label="培训主题1111">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item prop="title" label="培训主题">
|
|
|
<el-input
|
|
|
v-model="formData.title"
|
|
|
:maxlength="32"
|
|
|
@@ -18,62 +18,87 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item prop="startDate" label="开始日期">
|
|
|
- <el-date-picker v-model="formData.startDate" @change="startDateChanged"
|
|
|
- :picker-options="startDatepickerOptions"
|
|
|
- align="right" type="date" placeholder="选择开始日期">
|
|
|
+ <el-form-item prop="trainingStartDateTime" label="培训开始时间">
|
|
|
+ <el-date-picker required v-model="formData.trainingStartDateTime" :picker-options="startDatepickerOptions"
|
|
|
+ type="datetime" placeholder="选择日期" @change="startDateChanged">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item prop="endDate" label="结束日期">
|
|
|
- <el-date-picker style="width: 100%" v-model="formData.endDate" :picker-options="endDatepickerOptions"
|
|
|
- align="right" type="date"
|
|
|
- placeholder="选择结束日期">
|
|
|
+ <el-form-item prop="trainingEndDateTime" label="培训结束时间">
|
|
|
+ <el-date-picker required v-model="formData.trainingEndDateTime" :picker-options="endDatepickerOptions" @change="endDateChanged"
|
|
|
+ type="datetime" placeholder="选择日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="机构类型" prop="execOrgType">
|
|
|
- <el-select style="width: 100%" v-model="formData.execOrgType" placeholder="请选择执行机构类型"
|
|
|
- @change="execOrgTypeChanged()">
|
|
|
+ <!-- <el-col :span="12">
|
|
|
+ <el-form-item label="机构类型" prop="execOrgType">
|
|
|
+ <el-select style="width: 100%" v-model="formData.execOrgType" placeholder="请选择执行机构类型"
|
|
|
+ @change="execOrgTypeChanged()">
|
|
|
|
|
|
- <el-option v-for="dict in getUserOrgType" :key="dict.value" :label="dict.label"
|
|
|
- :value="parseInt(dict.value)"></el-option>
|
|
|
+ <el-option v-for="dict in getUserOrgType" :key="dict.value" :label="dict.label"
|
|
|
+ :value="parseInt(dict.value)"></el-option>
|
|
|
|
|
|
- </el-select>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item v-show="formData.execOrgType" label="培训机构" prop="planExecOrgIdList">
|
|
|
+ <org-tree-select
|
|
|
+ v-model="formData.planExecOrgIdList"
|
|
|
+ :queryData="formData.execOrgType"
|
|
|
+ ref="orgTreeSelect"
|
|
|
+ :enabledCheckOrgTypes="formData.execOrgType"
|
|
|
+ :disable="true">
|
|
|
+ </org-tree-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>-->
|
|
|
+ <!-- 内容 -->
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item prop="content" label="培训内容">
|
|
|
+ <k-textarea v-model="formData.content" placeholder="请输入培训内容" :length="2000"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item v-show="formData.execOrgType" label="培训机构" prop="planExecOrgIdList">
|
|
|
- <org-tree-select
|
|
|
- v-model="formData.planExecOrgIdList"
|
|
|
- :queryData="formData.execOrgType"
|
|
|
- ref="orgTreeSelect"
|
|
|
- :enabledCheckOrgTypes="formData.execOrgType"
|
|
|
- :disable="true">
|
|
|
- </org-tree-select>
|
|
|
+
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item prop="note" label="总结">
|
|
|
+ <k-textarea v-model="formData.note" placeholder="请输入总结" :length="2000"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <!-- 内容 -->
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item prop="content" label="培训内容">
|
|
|
- <k-textarea v-model="formData.content" placeholder="请输入培训内容" :length="2000"/>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item prop="absenceList" label="参与人员">
|
|
|
+ <k-select :multiple="true" style="width: 100%" v-model="formData.absenceList" url="/user/find/all"
|
|
|
+ :params="{ orgId: formData.orgId }" placeholder="请选择参与人员"
|
|
|
+ @select="absenceUserSelectChanged"></k-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item prop="absentList" label="缺席人员">
|
|
|
+ <k-select :multiple="true" style="width: 100%" v-model="formData.absentList" url="/user/find/all"
|
|
|
+ :params="{ orgId: formData.orgId }" @select="absentUserSelectChanged"
|
|
|
+ placeholder="请选择缺席人员">
|
|
|
+ </k-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
|
<el-row>
|
|
|
- <el-col :span="24">
|
|
|
+ <el-col :span="10">
|
|
|
<el-form-item label="上传文件" prop="fileList">
|
|
|
<K-file-upload ref="upload" :defaultValue="formFileListDefualtValue" v-model="formData.fileList"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="24">
|
|
|
+ <el-col :span="14">
|
|
|
<el-form-item label="">
|
|
|
<el-button type="primary" @click="showSelectFile">从学习资料中选择</el-button>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item prop="imageList" label="上传图片">
|
|
|
+ <imgUpload ref="uploadimage" type="more" :value="formData.imageList"
|
|
|
+ @input="imageListChanged"></imgUpload>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
@@ -95,7 +120,7 @@
|
|
|
|
|
|
<script>
|
|
|
import {mapState, mapMutations} from "vuex";
|
|
|
-import {getEduTask, recordEduTask} from "@/api/core/edu/eduTask";
|
|
|
+import {addEduTask, getEduTask, recordEduTask} from "@/api/core/edu/eduTask";
|
|
|
import dayjs from "dayjs";
|
|
|
import KTextarea from "@/components/common/textarea.vue";
|
|
|
import KSelect from "@/components/common/userselect.vue";
|
|
|
@@ -103,8 +128,9 @@ import imgUpload from "@/components/ImageUpload/index.vue";
|
|
|
import OrgTreeSelect from '@/components/orgTreeSelect'
|
|
|
import DialogSelectFile from "../plan/dialog.select.file.vue"
|
|
|
import KFileUpload from "@/components/K-FileUpload/index.vue";
|
|
|
+
|
|
|
export default {
|
|
|
- components: {KTextarea, KFileUpload,KSelect, imgUpload, OrgTreeSelect,DialogSelectFile},
|
|
|
+ components: {KTextarea, KFileUpload, KSelect, imgUpload, OrgTreeSelect, DialogSelectFile},
|
|
|
data() {
|
|
|
const params = this.$route.params;
|
|
|
return {
|
|
|
@@ -112,13 +138,14 @@ export default {
|
|
|
isShow: false,
|
|
|
formData: this.reset(),
|
|
|
formDataRules: {
|
|
|
- type: [{required: true, message: "请选择类型"}],
|
|
|
- content: [{required: true, message: "请输入内容"}],
|
|
|
+ title: [{required: true, message: "请输入培训主题"}],
|
|
|
+ content: [{required: true, message: "请输入培训内容"}],
|
|
|
absenceList: [{required: true, type: "array", message: "请选择参与人员"}],
|
|
|
- trainingStartDateTime: [{required: true, message: "请输入培训时间"}],
|
|
|
- trainingEndDateTime: [{required: true, message: "请输入培训时间"}],
|
|
|
+ startDate: [{required: true, message: "请输入培训时间"}],
|
|
|
+ endDate: [{required: true, message: "请输入培训时间"}],
|
|
|
note: [{required: true, message: "请输入总结"}],
|
|
|
imageList: [{required: true, message: "请上传图片"}],
|
|
|
+ fileList: [{required: true, message: "请上传文件"}],
|
|
|
},
|
|
|
startDatepickerOptions: {
|
|
|
disabledDate(time) {
|
|
|
@@ -229,16 +256,15 @@ export default {
|
|
|
},
|
|
|
fileSelected(list) {
|
|
|
if (!list) return;
|
|
|
- let tempArry=[];
|
|
|
+ let tempArry = [];
|
|
|
list.forEach(x => {
|
|
|
- tempArry=tempArry.concat(x.fileList);
|
|
|
+ tempArry = tempArry.concat(x.fileList);
|
|
|
})
|
|
|
- console.log("tempArry",tempArry,this.form.fileList);
|
|
|
- if(this.form.fileList){
|
|
|
- this.formFileListDefualtValue =this.form.fileList.concat(tempArry);
|
|
|
- }
|
|
|
- else{
|
|
|
- this.formFileListDefualtValue =tempArry;
|
|
|
+ console.log("tempArry", tempArry, this.formData.fileList);
|
|
|
+ if (this.formData.fileList) {
|
|
|
+ this.formFileListDefualtValue = this.formData.fileList.concat(tempArry);
|
|
|
+ } else {
|
|
|
+ this.formFileListDefualtValue = tempArry;
|
|
|
}
|
|
|
|
|
|
},
|
|
|
@@ -310,7 +336,7 @@ export default {
|
|
|
// if(request.imageList)
|
|
|
// request.imageList=request.imageList.split(',').map(x=>{return x;});
|
|
|
// request.taskUserList = [];
|
|
|
- recordEduTask(request).then((v) => {
|
|
|
+ addEduTask(request).then((v) => {
|
|
|
this.$emit("success", this.formData);
|
|
|
this.onHide();
|
|
|
this.$modal.msgSuccess("培训登记暂存成功");
|
|
|
@@ -318,7 +344,7 @@ export default {
|
|
|
},
|
|
|
async onSubmit() {
|
|
|
//console.log("onSubmit this.formData", this.formData)
|
|
|
- await this.$refs.perform.validate();
|
|
|
+ await this.$refs.newTask.validate();
|
|
|
//判断trainingStartDateTime大于trainingEndDateTime就返回
|
|
|
if (dayjs(this.formData.trainingStartDateTime).isAfter(dayjs(this.formData.trainingEndDateTime))) {
|
|
|
this.$message.error("培训开始时间不能大于培训结束时间!");
|
|
|
@@ -346,7 +372,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
// request.taskUserList = [];
|
|
|
- recordEduTask(request).then((v) => {
|
|
|
+ addEduTask(request).then((v) => {
|
|
|
this.$emit("success", this.formData);
|
|
|
this.onHide();
|
|
|
this.$modal.msgSuccess("培训登记提交成功");
|