This commit is contained in:
闫晓茹 2023-04-24 11:24:10 +08:00
parent 345213f38c
commit 7057d5a9a7
3 changed files with 280 additions and 92 deletions

View File

@ -15,6 +15,15 @@ export function listTrainingCategory(query) {
params: query
})
}
// 父级项目组
export function selectTrainingParent(query) {
return request({
url: '/system/trainingItem/selectTrainingParent',
method: 'get',
params: query
})
}
// 查询学习培训项目信息详细
export function getTrainingItem(id) {
return request({

View File

@ -59,7 +59,7 @@ export default {
},
url: {
type: String,
default: "",
default: "/common/richTextPictureUrl",
},
filetypes: {
type: String,

View File

@ -130,7 +130,7 @@
}}
{{
scope.row.trainingItemType == "LEARNING_ITEM_GROUP"
? "培训项目组"
? "学习培训项目组"
: ""
}}
</template>
@ -200,6 +200,96 @@
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 父级项目组 -->
<el-dialog
title="选择父级项目组"
:visible.sync="innerVisiblepd"
width="1000px"
append-to-body
:before-close="innerVisiblecancelpd"
>
<el-form
ref="queryForm"
:model="trainingParentqueryParams"
:rules="rules"
label-width="80px"
:inline="true"
>
<el-form-item
label="分类编码"
prop="trainingItemCode"
label-width="120"
>
<el-input
v-model="trainingParentqueryParams.trainingItemCode"
placeholder="请输入分类编码"
clearable
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="trainingParentinfo"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuerylist"
>重置</el-button
>
</el-form-item>
</el-form>
<el-table
:data="trainingParentlist"
@cell-dblclick="trainingParentitemlist"
v-loading="loading"
>
<el-table-column label="请选择" width="100" align="center">
<template slot-scope="scope">
<el-button
type="primary"
style="width: 15px; height: 15px"
v-if="form.trainingParentId == scope.row.id"
circle
@click="trainingParentitemlist(scope.row)"
></el-button>
<el-button
v-else
style="width: 15px; height: 15px"
circle
@click="trainingParentitemlist(scope.row)"
></el-button>
</template>
</el-table-column>
<el-table-column
property="trainingItemCode"
label="培训分类编码"
align="center"
>
</el-table-column>
<el-table-column
property="trainingItemPrice"
label="价格"
align="center"
>
</el-table-column>
<el-table-column
property="trainingItemTitle"
label="培训分类标题"
align="center"
:show-overflow-tooltip="true"
>
</el-table-column>
</el-table>
<pagination
v-show="total3 > 0"
:total="total3"
:page.sync="trainingParentqueryParams.pageNum"
:limit.sync="trainingParentqueryParams.pageSize"
@pagination="trainingParentinfo"
/>
</el-dialog>
<!-- 培训分类 -->
<el-dialog
title="选择培训"
@ -256,7 +346,7 @@
<el-table
:data="trainingCategoryList"
@cell-dblclick="trainingCategoryList"
@cell-dblclick="nurseclick"
v-loading="loading"
>
<el-table-column label="请选择" width="100" align="center">
@ -323,6 +413,7 @@
<el-select
v-model="form.trainingItemType"
placeholder="请选择"
clearable
style="width: 250px"
:disabled="isEditFlag"
>
@ -372,7 +463,49 @@
placeholder="请输入培训项目价格"
/>
</el-form-item>
<el-form-item label="父级项目组" prop="trainingParentId">
<el-button
type=""
v-if="form.trainingItemTitle == '请选择父级项目组'"
@click="trainingParentitem()"
style="
width: 250px;
text-align: left;
height: 36px;
color: #c0c4cc;
overflow: hidden;
"
>{{ form.trainingItemTitle }}</el-button
>
<el-button
@click="trainingParentitem()"
type=""
v-else
style="
width: 250px;
text-align: left;
height: 36px;
padding-left: -10px;
overflow: hidden;
"
>{{ form.trainingItemTitle }}</el-button
>
</el-form-item>
<el-form-item label="是否可以购买" prop="buyFlag">
<el-select
v-model="form.buyFlag"
placeholder="请选择"
style="width: 250px"
>
<el-option
v-for="item in option"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="培训项目logo图片" prop="trainingItemCoverUrl">
<stationAcatar
style="width: 208px"
@ -399,24 +532,7 @@
placeholder="请输入内容"
/> -->
</el-form-item>
<el-form-item
label="是否可以购买"
prop="buyFlag"
v-if="form.trainingItemType == 'LEARNING_ITEM_GROUP'"
>
<el-select
v-model="form.buyFlag"
placeholder="请选择"
style="width: 250px"
>
<el-option
v-for="item in option"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="培训项目详情"
prop="trainingItemDetails"
@ -424,6 +540,7 @@
form.trainingItemType == 'VIDEO_LEARNING' ||
form.trainingItemType == 'LIVE_COURSES' ||
form.trainingItemType == 'LEARNING_ITEM_GROUP'
||!form.trainingItemType
"
>
<el-input
@ -445,7 +562,8 @@
prop="trainingItemContent"
v-if="
this.form.trainingItemType == 'GRAPHIC_LEARNING' ||
form.trainingItemType == 'LEARNING_ITEM_GROUP'
form.trainingItemType == 'LEARNING_ITEM_GROUP'||
!form.trainingItemType
"
>
<editor
@ -462,6 +580,7 @@
v-if="
form.trainingItemType == 'LIVE_COURSES' ||
form.trainingItemType == 'OFFLINE_TRAINING'
"
>
<el-date-picker
@ -480,6 +599,7 @@
v-if="
form.trainingItemType == 'LIVE_COURSES' ||
form.trainingItemType == 'OFFLINE_TRAINING'
"
>
<el-time-picker
@ -498,6 +618,7 @@
v-if="
form.trainingItemType == 'LIVE_COURSES' ||
form.trainingItemType == 'OFFLINE_TRAINING'
"
>
<el-time-picker
@ -514,7 +635,8 @@
<el-form-item
label="培训项目地址"
prop="trainingItemAddress"
v-if="form.trainingItemType == 'OFFLINE_TRAINING'"
v-if="form.trainingItemType == 'OFFLINE_TRAINING'
"
>
<el-input
v-model="form.trainingItemAddress"
@ -524,7 +646,8 @@
<el-form-item
label="报名须知"
prop="trainingItemNotes"
v-if="form.trainingItemType == 'OFFLINE_TRAINING'"
v-if="form.trainingItemType == 'OFFLINE_TRAINING'
"
>
<el-input
style="width: 250px"
@ -540,6 +663,8 @@
form.trainingItemType == 'LIVE_COURSES' ||
form.trainingItemType == 'GRAPHIC_LEARNING' ||
form.trainingItemType == 'OFFLINE_TRAINING'
||
!form.trainingItemType
"
>
<el-input
@ -551,7 +676,9 @@
<el-form-item
label=""
prop="itemDirectoryUrl"
v-if="form.trainingItemType == 'VIDEO_LEARNING'"
v-if="form.trainingItemType == 'VIDEO_LEARNING'
||
!form.trainingItemType"
>
<el-table
ref="trainingItemDirectoryList"
@ -629,6 +756,7 @@
import {
listTrainingItem,
listTrainingCategory,
selectTrainingParent,
getTrainingItem,
delTrainingItem,
addTrainingItem,
@ -647,9 +775,15 @@ export default {
//
isEditFlag: false,
idd: 1,
innerVisiblepd: false,
loading: true,
innerVisible: false,
trainingParentqueryParams: {
pageNum: 1,
pageSize: 10,
trainingCategoryCode: "",
trainingCategoryTitle: "",
},
trainingCategoryqueryParams: {
pageNum: 1,
pageSize: 10,
@ -674,7 +808,7 @@ export default {
},
{
value: "LEARNING_ITEM_GROUP",
label: "培训项目组",
label: "学习培训项目组",
},
{
value: "VIDEO_LEARNING",
@ -692,6 +826,7 @@ export default {
//
ids: [],
total2: 0,
total3: 0,
//
single: true,
//
@ -742,61 +877,68 @@ export default {
imgsurl: { pictureUrlList: [] },
trainingCategoryList: [],
trainingParentlist: [],
//
rules: {
// trainingCategoryId: [],
// trainingItemTitle: [
// { required: true, message: "", trigger: "blur" },
// buyFlag:[
// { required: true, message: "", trigger: "blur" },
// ],
// trainingItemPrice: [
// { required: true, message: "", trigger: "blur" },
// ],
// trainingItemCoverUrl: [
// {
// required: true,
// message: "logo",
// trigger: "blur",
// },
// ],
// trainingItemPosterUrl: [
// {
// required: true,
// message: "",
// trigger: "blur",
// },
// trainingCategoryId: [
// { required: true, message: "", trigger: "blur" },
// ],
trainingItemTitle: [
{ required: true, message: "请输入培训项目标题", trigger: "blur" },
],
trainingItemPrice: [
{ required: true, message: "请输入培训项目价格", trigger: "blur" },
],
trainingItemCoverUrl: [
{
required: true,
message: "请输入培训项目logo图片",
trigger: "blur",
},
],
trainingItemPosterUrl: [
{
required: true,
message: "请输入培训项目海报图片",
trigger: "blur",
},
],
// trainingItemType: [
// { required: true, message: "", trigger: "blur" },
// ],
// trainingItemDetails: [
// { required: true, message: "", trigger: "blur" },
// ],
// trainingItemContent: [
// { required: true, message: "", trigger: "blur" },
// ],
// trainingItemDate: [
// { required: true, message: "", trigger: "blur" },
// ],
// trainingItemStartTime: [
// {
// required: true,
// message: "",
// trigger: "blur",
// },
// ],
// trainingItemEndTime: [
// {
// required: true,
// message: "",
// trigger: "blur",
// },
// ],
// trainingItemAddress: [
// { required: true, message: "", trigger: "blur" },
// ],
// trainingItemSort: [
// { required: true, message: "", trigger: "blur" },
// ],
trainingItemDetails: [
{ required: true, message: "请输入培训项目详情", trigger: "blur" },
],
trainingItemContent: [
{ required: true, message: "请输入培训项目内容", trigger: "blur" },
],
trainingItemDate: [
{ required: true, message: "请输入培训项目日期", trigger: "blur" },
],
trainingItemStartTime: [
{
required: true,
message: "请输入培训项目开始时间",
trigger: "blur",
},
],
trainingItemEndTime: [
{
required: true,
message: "请输入培训项目结束时间",
trigger: "blur",
},
],
trainingItemAddress: [
{ required: true, message: "请输入培训项目地址", trigger: "blur" },
],
trainingItemSort: [
{ required: true, message: "请输入培训项目排序", trigger: "blur" },
],
},
};
},
@ -868,19 +1010,42 @@ export default {
};
this.info();
},
//
resetQuerylist() {
this.trainingParentqueryParams = {
pageNum: 1,
pageSize: 10,
trainingCategoryCode: "",
};
this.trainingParentinfo();
},
//
clickitem() {
this.info();
this.innerVisible = true;
},
//
trainingParentitem() {
this.trainingParentinfo();
this.innerVisiblepd = true;
},
innerVisiblecancelzx() {
this.innerVisible = false;
},
innerVisiblecancelpd() {
this.innerVisiblepd = false;
},
nurseclick(row) {
this.form.trainingCategoryId = row.id;
this.form.trainingCategoryName = row.trainingCategoryName;
this.innerVisible = false;
},
//
trainingParentitemlist(row) {
this.form.trainingParentId = row.id;
this.form.trainingItemTitle = row.trainingItemTitle;
this.innerVisiblepd = false;
},
info() {
this.loading = true;
listTrainingCategory(this.trainingCategoryqueryParams).then(
@ -891,6 +1056,16 @@ export default {
}
);
},
//
trainingParentinfo() {
this.loading = true;
selectTrainingParent(this.trainingParentqueryParams).then((response) => {
console.log(response);
this.trainingParentlist = response.rows;
this.total3 = response.total;
this.loading = false;
});
},
imgUrl(imgUrl) {
this.form.trainingCategoryPictureUrl = imgUrl;
},
@ -930,7 +1105,7 @@ export default {
id: null,
trainingCategoryName: "请选择培训分类",
trainingCategoryId: null,
trainingItemTitle: null,
trainingItemTitle: "",
trainingItemCode: null,
trainingItemPrice: null,
trainingItemCoverUrl: null,
@ -971,6 +1146,17 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
this.form = {
trainingItemDirectoryList: [
{
itemDirectoryName: null,
itemDirectoryTitle: null,
itemDirectoryUrl: null,
itemDirectoryIntroduce: null,
itemDirectorySort: null,
},
],
};
this.reset();
this.open = true;
this.isEditFlag = false;
@ -999,24 +1185,17 @@ export default {
},
/** 提交按钮 */
submitForm() {
if (this.form.trainingItemStartTime) {
this.form.trainingItemStartTimeStr = this.form.trainingItemStartTime;
} else {
this.form.trainingItemStartTimeStr = "00:00:00";
}
this.form.trainingItemDirectoryList.forEach((e) => {
if (
e.itemDirectoryIntroduce == null &&
e.itemDirectoryName == null &&
e.itemDirectoryTitle == null &&
e.itemDirectoryUrl == null &&
e.itemDirectorySort == null
) {
this.form.trainingItemDirectoryList = [];
}
});
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.trainingItemStartTime) {
this.form.trainingItemStartTimeStr =
this.form.trainingItemStartTime;
} else {
this.form.trainingItemStartTimeStr = "00:00:00";
}
if (this.form.trainingItemType == "GRAPHIC_LEARNING"||this.form.trainingItemType == "LEARNING_ITEM_GROUP") {
this.form.trainingItemDirectoryList = [];
}
if (this.form.trainingItemId != null) {
updateTrainingItem(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");