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 params: query
}) })
} }
// 父级项目组
export function selectTrainingParent(query) {
return request({
url: '/system/trainingItem/selectTrainingParent',
method: 'get',
params: query
})
}
// 查询学习培训项目信息详细 // 查询学习培训项目信息详细
export function getTrainingItem(id) { export function getTrainingItem(id) {
return request({ return request({

View File

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

View File

@ -130,7 +130,7 @@
}} }}
{{ {{
scope.row.trainingItemType == "LEARNING_ITEM_GROUP" scope.row.trainingItemType == "LEARNING_ITEM_GROUP"
? "培训项目组" ? "学习培训项目组"
: "" : ""
}} }}
</template> </template>
@ -200,6 +200,96 @@
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @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 <el-dialog
title="选择培训" title="选择培训"
@ -256,7 +346,7 @@
<el-table <el-table
:data="trainingCategoryList" :data="trainingCategoryList"
@cell-dblclick="trainingCategoryList" @cell-dblclick="nurseclick"
v-loading="loading" v-loading="loading"
> >
<el-table-column label="请选择" width="100" align="center"> <el-table-column label="请选择" width="100" align="center">
@ -323,6 +413,7 @@
<el-select <el-select
v-model="form.trainingItemType" v-model="form.trainingItemType"
placeholder="请选择" placeholder="请选择"
clearable
style="width: 250px" style="width: 250px"
:disabled="isEditFlag" :disabled="isEditFlag"
> >
@ -372,7 +463,49 @@
placeholder="请输入培训项目价格" placeholder="请输入培训项目价格"
/> />
</el-form-item> </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"> <el-form-item label="培训项目logo图片" prop="trainingItemCoverUrl">
<stationAcatar <stationAcatar
style="width: 208px" style="width: 208px"
@ -399,24 +532,7 @@
placeholder="请输入内容" placeholder="请输入内容"
/> --> /> -->
</el-form-item> </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 <el-form-item
label="培训项目详情" label="培训项目详情"
prop="trainingItemDetails" prop="trainingItemDetails"
@ -424,6 +540,7 @@
form.trainingItemType == 'VIDEO_LEARNING' || form.trainingItemType == 'VIDEO_LEARNING' ||
form.trainingItemType == 'LIVE_COURSES' || form.trainingItemType == 'LIVE_COURSES' ||
form.trainingItemType == 'LEARNING_ITEM_GROUP' form.trainingItemType == 'LEARNING_ITEM_GROUP'
||!form.trainingItemType
" "
> >
<el-input <el-input
@ -445,7 +562,8 @@
prop="trainingItemContent" prop="trainingItemContent"
v-if=" v-if="
this.form.trainingItemType == 'GRAPHIC_LEARNING' || this.form.trainingItemType == 'GRAPHIC_LEARNING' ||
form.trainingItemType == 'LEARNING_ITEM_GROUP' form.trainingItemType == 'LEARNING_ITEM_GROUP'||
!form.trainingItemType
" "
> >
<editor <editor
@ -462,6 +580,7 @@
v-if=" v-if="
form.trainingItemType == 'LIVE_COURSES' || form.trainingItemType == 'LIVE_COURSES' ||
form.trainingItemType == 'OFFLINE_TRAINING' form.trainingItemType == 'OFFLINE_TRAINING'
" "
> >
<el-date-picker <el-date-picker
@ -480,6 +599,7 @@
v-if=" v-if="
form.trainingItemType == 'LIVE_COURSES' || form.trainingItemType == 'LIVE_COURSES' ||
form.trainingItemType == 'OFFLINE_TRAINING' form.trainingItemType == 'OFFLINE_TRAINING'
" "
> >
<el-time-picker <el-time-picker
@ -498,6 +618,7 @@
v-if=" v-if="
form.trainingItemType == 'LIVE_COURSES' || form.trainingItemType == 'LIVE_COURSES' ||
form.trainingItemType == 'OFFLINE_TRAINING' form.trainingItemType == 'OFFLINE_TRAINING'
" "
> >
<el-time-picker <el-time-picker
@ -514,7 +635,8 @@
<el-form-item <el-form-item
label="培训项目地址" label="培训项目地址"
prop="trainingItemAddress" prop="trainingItemAddress"
v-if="form.trainingItemType == 'OFFLINE_TRAINING'" v-if="form.trainingItemType == 'OFFLINE_TRAINING'
"
> >
<el-input <el-input
v-model="form.trainingItemAddress" v-model="form.trainingItemAddress"
@ -524,7 +646,8 @@
<el-form-item <el-form-item
label="报名须知" label="报名须知"
prop="trainingItemNotes" prop="trainingItemNotes"
v-if="form.trainingItemType == 'OFFLINE_TRAINING'" v-if="form.trainingItemType == 'OFFLINE_TRAINING'
"
> >
<el-input <el-input
style="width: 250px" style="width: 250px"
@ -540,6 +663,8 @@
form.trainingItemType == 'LIVE_COURSES' || form.trainingItemType == 'LIVE_COURSES' ||
form.trainingItemType == 'GRAPHIC_LEARNING' || form.trainingItemType == 'GRAPHIC_LEARNING' ||
form.trainingItemType == 'OFFLINE_TRAINING' form.trainingItemType == 'OFFLINE_TRAINING'
||
!form.trainingItemType
" "
> >
<el-input <el-input
@ -551,7 +676,9 @@
<el-form-item <el-form-item
label="" label=""
prop="itemDirectoryUrl" prop="itemDirectoryUrl"
v-if="form.trainingItemType == 'VIDEO_LEARNING'" v-if="form.trainingItemType == 'VIDEO_LEARNING'
||
!form.trainingItemType"
> >
<el-table <el-table
ref="trainingItemDirectoryList" ref="trainingItemDirectoryList"
@ -629,6 +756,7 @@
import { import {
listTrainingItem, listTrainingItem,
listTrainingCategory, listTrainingCategory,
selectTrainingParent,
getTrainingItem, getTrainingItem,
delTrainingItem, delTrainingItem,
addTrainingItem, addTrainingItem,
@ -647,9 +775,15 @@ export default {
// //
isEditFlag: false, isEditFlag: false,
idd: 1, idd: 1,
innerVisiblepd: false,
loading: true, loading: true,
innerVisible: false, innerVisible: false,
trainingParentqueryParams: {
pageNum: 1,
pageSize: 10,
trainingCategoryCode: "",
trainingCategoryTitle: "",
},
trainingCategoryqueryParams: { trainingCategoryqueryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
@ -674,7 +808,7 @@ export default {
}, },
{ {
value: "LEARNING_ITEM_GROUP", value: "LEARNING_ITEM_GROUP",
label: "培训项目组", label: "学习培训项目组",
}, },
{ {
value: "VIDEO_LEARNING", value: "VIDEO_LEARNING",
@ -692,6 +826,7 @@ export default {
// //
ids: [], ids: [],
total2: 0, total2: 0,
total3: 0,
// //
single: true, single: true,
// //
@ -742,61 +877,68 @@ export default {
imgsurl: { pictureUrlList: [] }, imgsurl: { pictureUrlList: [] },
trainingCategoryList: [], trainingCategoryList: [],
trainingParentlist: [],
// //
rules: { rules: {
// trainingCategoryId: [], // buyFlag:[
// trainingItemTitle: [ // { required: true, message: "", trigger: "blur" },
// { required: true, message: "", trigger: "blur" },
// ], // ],
// trainingItemPrice: [ // trainingCategoryId: [
// { required: true, message: "", trigger: "blur" }, // { required: true, message: "", trigger: "blur" },
// ],
// trainingItemCoverUrl: [
// {
// required: true,
// message: "logo",
// trigger: "blur",
// },
// ],
// trainingItemPosterUrl: [
// {
// 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: [ // trainingItemType: [
// { required: true, message: "", trigger: "blur" }, // { required: true, message: "", trigger: "blur" },
// ], // ],
// trainingItemDetails: [ trainingItemDetails: [
// { required: true, message: "", trigger: "blur" }, { required: true, message: "请输入培训项目详情", trigger: "blur" },
// ], ],
// trainingItemContent: [ trainingItemContent: [
// { required: true, message: "", trigger: "blur" }, { required: true, message: "请输入培训项目内容", trigger: "blur" },
// ], ],
// trainingItemDate: [ trainingItemDate: [
// { required: true, message: "", trigger: "blur" }, { required: true, message: "请输入培训项目日期", trigger: "blur" },
// ], ],
// trainingItemStartTime: [ trainingItemStartTime: [
// { {
// required: true, required: true,
// message: "", message: "请输入培训项目开始时间",
// trigger: "blur", trigger: "blur",
// }, },
// ], ],
// trainingItemEndTime: [ trainingItemEndTime: [
// { {
// required: true, required: true,
// message: "", message: "请输入培训项目结束时间",
// trigger: "blur", trigger: "blur",
// }, },
// ], ],
// trainingItemAddress: [ trainingItemAddress: [
// { required: true, message: "", trigger: "blur" }, { required: true, message: "请输入培训项目地址", trigger: "blur" },
// ], ],
// trainingItemSort: [ trainingItemSort: [
// { required: true, message: "", trigger: "blur" }, { required: true, message: "请输入培训项目排序", trigger: "blur" },
// ], ],
}, },
}; };
}, },
@ -868,19 +1010,42 @@ export default {
}; };
this.info(); this.info();
}, },
//
resetQuerylist() {
this.trainingParentqueryParams = {
pageNum: 1,
pageSize: 10,
trainingCategoryCode: "",
};
this.trainingParentinfo();
},
// //
clickitem() { clickitem() {
this.info(); this.info();
this.innerVisible = true; this.innerVisible = true;
}, },
//
trainingParentitem() {
this.trainingParentinfo();
this.innerVisiblepd = true;
},
innerVisiblecancelzx() { innerVisiblecancelzx() {
this.innerVisible = false; this.innerVisible = false;
}, },
innerVisiblecancelpd() {
this.innerVisiblepd = false;
},
nurseclick(row) { nurseclick(row) {
this.form.trainingCategoryId = row.id; this.form.trainingCategoryId = row.id;
this.form.trainingCategoryName = row.trainingCategoryName; this.form.trainingCategoryName = row.trainingCategoryName;
this.innerVisible = false; this.innerVisible = false;
}, },
//
trainingParentitemlist(row) {
this.form.trainingParentId = row.id;
this.form.trainingItemTitle = row.trainingItemTitle;
this.innerVisiblepd = false;
},
info() { info() {
this.loading = true; this.loading = true;
listTrainingCategory(this.trainingCategoryqueryParams).then( 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) { imgUrl(imgUrl) {
this.form.trainingCategoryPictureUrl = imgUrl; this.form.trainingCategoryPictureUrl = imgUrl;
}, },
@ -930,7 +1105,7 @@ export default {
id: null, id: null,
trainingCategoryName: "请选择培训分类", trainingCategoryName: "请选择培训分类",
trainingCategoryId: null, trainingCategoryId: null,
trainingItemTitle: null, trainingItemTitle: "",
trainingItemCode: null, trainingItemCode: null,
trainingItemPrice: null, trainingItemPrice: null,
trainingItemCoverUrl: null, trainingItemCoverUrl: null,
@ -971,6 +1146,17 @@ export default {
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.form = {
trainingItemDirectoryList: [
{
itemDirectoryName: null,
itemDirectoryTitle: null,
itemDirectoryUrl: null,
itemDirectoryIntroduce: null,
itemDirectorySort: null,
},
],
};
this.reset(); this.reset();
this.open = true; this.open = true;
this.isEditFlag = false; this.isEditFlag = false;
@ -999,24 +1185,17 @@ export default {
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { 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) => { this.$refs["form"].validate((valid) => {
if (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) { if (this.form.trainingItemId != null) {
updateTrainingItem(this.form).then((response) => { updateTrainingItem(this.form).then((response) => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");