|
@@ -137,26 +137,6 @@
|
|
|
v-hasPermi="['course:period:add']"
|
|
|
>新增</el-button>
|
|
|
</el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- icon="el-icon-edit"
|
|
|
- size="mini"
|
|
|
- :disabled="single"
|
|
|
- @click="handleUpdate"
|
|
|
- v-hasPermi="['course:period:edit']"
|
|
|
- >修改</el-button>
|
|
|
- </el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-button
|
|
|
- type="danger"
|
|
|
- icon="el-icon-delete"
|
|
|
- size="mini"
|
|
|
- :disabled="multiple"
|
|
|
- @click="handleDelete"
|
|
|
- v-hasPermi="['course:period:remove']"
|
|
|
- >删除</el-button>
|
|
|
- </el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
|
type="warning"
|
|
@@ -169,26 +149,13 @@
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
</el-row>
|
|
|
|
|
|
- <el-table v-loading="loading" :data="periodList" @selection-change="handleSelectionChange">
|
|
|
- <el-table-column type="selection" width="55" align="center" />
|
|
|
+ <el-table v-loading="loading" :data="periodList">
|
|
|
<el-table-column label="所属训练营" align="center" prop="trainingCampName" />
|
|
|
<el-table-column label="营期名称" align="center" prop="periodName" />
|
|
|
<el-table-column label="公司名称" align="center" prop="companyName" />
|
|
|
- <el-table-column label="开营开始时间" align="center" prop="periodStartingTime" width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{ parseTime(scope.row.periodStartingTime, '{y}-{m}-{d}') }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="开营结束时间" align="center" prop="periodEndTime" width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{ parseTime(scope.row.periodEndTime, '{y}-{m}-{d}') }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table-column label="开营开始时间" align="center" prop="periodStartingTime" width="180" />
|
|
|
+ <el-table-column label="开营结束时间" align="center" prop="periodEndTime" width="180" />
|
|
|
+ <el-table-column label="创建时间" align="center" prop="createTime" width="180" />
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button
|
|
@@ -198,6 +165,13 @@
|
|
|
@click="handleUpdate(scope.row)"
|
|
|
v-hasPermi="['course:period:edit']"
|
|
|
>修改</el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="handleCourse(scope.row)"
|
|
|
+ v-hasPermi="['course:period:edit']"
|
|
|
+ >课程管理</el-button>
|
|
|
<el-button
|
|
|
size="mini"
|
|
|
type="text"
|
|
@@ -220,59 +194,78 @@
|
|
|
</el-container>
|
|
|
|
|
|
<!-- 添加或修改会员营期对话框-->
|
|
|
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
+ <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
<el-form-item label="营期名称" prop="periodName">
|
|
|
<el-input v-model="form.periodName" placeholder="请输入营期名称" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="公司id" prop="companyId">
|
|
|
- <el-select v-model="form.companyId" placeholder="请选择公司id">
|
|
|
- <el-option label="请选择字典生成" value="" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="课程id" prop="courseId">
|
|
|
- <el-select v-model="form.courseId" placeholder="请选择课程id">
|
|
|
- <el-option label="请选择字典生成" value="" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="视频id" prop="videoId">
|
|
|
- <el-select v-model="form.videoId" placeholder="请选择视频id">
|
|
|
- <el-option label="请选择字典生成" value="" />
|
|
|
+ <el-select v-model="form.companyId" placeholder="请选择公司" multiple>
|
|
|
+ <el-option
|
|
|
+ v-for="item in companyOptions"
|
|
|
+ :key="item.companyId"
|
|
|
+ :label="item.companyName"
|
|
|
+ :value="item.companyId"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="训练营id" prop="trainingCampId">
|
|
|
- <el-input v-model="form.trainingCampId" placeholder="请输入训练营id" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="课程风格url" prop="courseStyle">
|
|
|
- <el-input v-model="form.courseStyle" placeholder="请输入课程风格url" />
|
|
|
+ <el-form-item label="课程风格" prop="courseStyle">
|
|
|
+ <image-upload v-model="form.courseStyle" :limit="1" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="直播间风格url" prop="liveRoomStyle">
|
|
|
- <el-input v-model="form.liveRoomStyle" placeholder="请输入直播间风格url" />
|
|
|
+ <el-form-item label="直播间风格" prop="liveRoomStyle">
|
|
|
+ <image-upload v-model="form.liveRoomStyle" :limit="1" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="红包发放方式,1-按课程,每个课程可得一个;2-按营期,每个营期可得一个" prop="redPacketGrantMethod">
|
|
|
- <el-input v-model="form.redPacketGrantMethod" placeholder="请输入红包发放方式,1-按课程,每个课程可得一个;2-按营期,每个营期可得一个" />
|
|
|
+ <el-form-item label="红包发放方式" prop="redPacketGrantMethod">
|
|
|
+ <el-radio-group v-model="form.redPacketGrantMethod">
|
|
|
+ <el-radio :label="1" >按课程</el-radio>
|
|
|
+ <el-radio :label="2" >按营期</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="营期类型,1-多课程营期;2-单课程营期" prop="periodType">
|
|
|
- <el-select v-model="form.periodType" placeholder="请选择营期类型,1-多课程营期;2-单课程营期">
|
|
|
- <el-option label="请选择字典生成" value="" />
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="营期类型" prop="periodType">
|
|
|
+ <el-radio-group v-model="form.periodType">
|
|
|
+ <el-radio :label="1" >多课程</el-radio>
|
|
|
+ <el-radio :label="2" >单课程</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="开营日期-开始时间" prop="periodStartingTime">
|
|
|
- <el-date-picker clearable size="small" style="width: 200px"
|
|
|
- v-model="form.periodStartingTime"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择开营日期-开始时间">
|
|
|
+ <el-form-item label="开营日期" prop="periodStartingTime">
|
|
|
+ <el-date-picker
|
|
|
+ :style="{display: form.periodType == 1 ? '' : 'none !important'}"
|
|
|
+ v-model="form.dateRange"
|
|
|
+ @change="timeChange(1)"
|
|
|
+ type="daterange"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ value-format="yyyy-MM-dd">
|
|
|
</el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="开营日期-结束时间" prop="periodEndTime">
|
|
|
- <el-date-picker clearable size="small" style="width: 200px"
|
|
|
- v-model="form.periodEndTime"
|
|
|
+ <el-date-picker
|
|
|
+ :style="{display: form.periodType == 2 ? '' : 'none !important'}"
|
|
|
+ @change="timeChange(2)"
|
|
|
+ v-model="form.date"
|
|
|
type="date"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择开营日期-结束时间">
|
|
|
+ placeholder="选择日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
+
|
|
|
+<!-- <div v-if="form.periodType == 1">-->
|
|
|
+<!-- <el-form-item label="开课时间" prop="periodType">-->
|
|
|
+<!-- <el-radio-group v-model="form.periodType">-->
|
|
|
+<!-- <el-radio :label="1" >多课程</el-radio>-->
|
|
|
+<!-- <el-radio :label="2" >单课程</el-radio>-->
|
|
|
+<!-- </el-radio-group>-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
+<!-- <el-form-item :label="'第' + item.lesson + '节'" prop="periodStartingTime" v-for="item in form.days">-->
|
|
|
+<!-- <el-date-picker-->
|
|
|
+<!-- v-model="item.dateRange"-->
|
|
|
+<!-- type="datetimerange"-->
|
|
|
+<!-- range-separator="至"-->
|
|
|
+<!-- start-placeholder="开始日期"-->
|
|
|
+<!-- end-placeholder="结束日期"-->
|
|
|
+<!-- value-format="yyyy-MM-dd HH:mm:ss">-->
|
|
|
+<!-- </el-date-picker>-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
+<!-- </div>-->
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
@@ -292,13 +285,105 @@
|
|
|
<el-button @click="cancelCampForm">取 消</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <!-- 添加或修改会员营期对话框-->
|
|
|
+ <el-dialog title="课程管理" :visible.sync="course.open" width="90%" top="10px" append-to-body style="padding-bottom: 10px">
|
|
|
+ <el-row :gutter="10" class="mb8">
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button
|
|
|
+ v-if="(getDiff(course.row.periodStartingTime, course.row.periodEndTime) - course.total) > 0"
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-plus"
|
|
|
+ size="mini"
|
|
|
+ @click="handleAddCourse"
|
|
|
+ v-hasPermi="['course:period:add']"
|
|
|
+ >添加课程</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-table v-loading="course.loading" :data="course.list">
|
|
|
+ <el-table-column label="课程" align="center" prop="courseName" />
|
|
|
+ <el-table-column label="小节" align="center" prop="videoName" />
|
|
|
+ <el-table-column v-if="course.row.redPacketGrantMethod == 2" label="红包金额" align="center" prop="money">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-model="scope.row.money">
|
|
|
+ <template slot="append">元</template>
|
|
|
+ </el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+<!-- <el-table-column label="有效时间" align="center" prop="periodStartingTime" width="180" />-->
|
|
|
+ <el-table-column label="创建时间" align="center" prop="createTime" width="180" />
|
|
|
+<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
|
|
+<!-- <template slot-scope="scope">-->
|
|
|
+<!-- <el-button-->
|
|
|
+<!-- size="mini"-->
|
|
|
+<!-- type="text"-->
|
|
|
+<!-- icon="el-icon-edit"-->
|
|
|
+<!-- @click="handleUpdate(scope.row)"-->
|
|
|
+<!-- v-hasPermi="['course:period:edit']"-->
|
|
|
+<!-- >修改</el-button>-->
|
|
|
+<!-- <el-button-->
|
|
|
+<!-- size="mini"-->
|
|
|
+<!-- type="text"-->
|
|
|
+<!-- icon="el-icon-edit"-->
|
|
|
+<!-- @click="handleCourse(scope.row)"-->
|
|
|
+<!-- v-hasPermi="['course:period:edit']"-->
|
|
|
+<!-- >课程管理</el-button>-->
|
|
|
+<!-- <el-button-->
|
|
|
+<!-- size="mini"-->
|
|
|
+<!-- type="text"-->
|
|
|
+<!-- icon="el-icon-delete"-->
|
|
|
+<!-- @click="handleDelete(scope.row)"-->
|
|
|
+<!-- v-hasPermi="['course:period:remove']"-->
|
|
|
+<!-- >删除</el-button>-->
|
|
|
+<!-- </template>-->
|
|
|
+<!-- </el-table-column>-->
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="saveCourseData">保存</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 添加或修改会员营期对话框-->
|
|
|
+ <el-dialog title="添加课程" :visible.sync="course.addOpen" width="500px" append-to-body>
|
|
|
+ <el-form ref="courseAddForm" :model="course.form" label-width="100px">
|
|
|
+ <el-form-item label="课程" prop="courseId">
|
|
|
+ <el-select filterable v-model="course.form.courseId" placeholder="请选择课程" clearable size="small" @change="courseChange(course.form.courseId)" style="width: 100%">
|
|
|
+ <el-option
|
|
|
+ v-for="dict in courseList"
|
|
|
+ :key="dict.dictValue"
|
|
|
+ :label="dict.dictLabel"
|
|
|
+ :value="parseInt(dict.dictValue)"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="小节" prop="videoId">
|
|
|
+ <el-select filterable v-model="course.form.videoIds" placeholder="请选择小节" :multiple-limit="getDiff(course.row.periodStartingTime, course.row.periodEndTime) - course.total" multiple clearable size="small" style="width: 100%">
|
|
|
+ <el-option
|
|
|
+ v-for="dict in videoList"
|
|
|
+ :key="dict.dictValue"
|
|
|
+ :label="dict.dictLabel"
|
|
|
+ :value="parseInt(dict.dictValue)"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitCourseForm">确 定</el-button>
|
|
|
+ <el-button @click="closeAddCourse">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { listPeriod, getPeriod, delPeriod, addPeriod, updatePeriod, exportPeriod, pagePeriod } from "@/api/course/userCoursePeriod";
|
|
|
-import { getCompanyList } from "@/api/company/company";
|
|
|
+import {addPeriod, delPeriod, exportPeriod, getPeriod, pagePeriod, updatePeriod, getDays, addCourse, updateListCourseData} from "@/api/course/userCoursePeriod";
|
|
|
+import {getCompanyList} from "@/api/company/company";
|
|
|
import { listCamp, addCamp, delCamp, copyCamp } from "@/api/course/userCourseCamp";
|
|
|
+import { courseList,videoList } from '@/api/course/courseRedPacketLog'
|
|
|
|
|
|
export default {
|
|
|
name: "Period",
|
|
@@ -324,6 +409,7 @@ export default {
|
|
|
periodList: [],
|
|
|
// 左侧列表数据
|
|
|
leftList: [],
|
|
|
+ videoList: [],
|
|
|
// 弹出层标题
|
|
|
title: "",
|
|
|
// 是否显示弹出层
|
|
@@ -347,6 +433,19 @@ export default {
|
|
|
},
|
|
|
// 表单参数
|
|
|
form: {},
|
|
|
+ course: {
|
|
|
+ open: false,
|
|
|
+ row:{},
|
|
|
+ list:[],
|
|
|
+ queryParams: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ },
|
|
|
+ loading: true,
|
|
|
+ total: 0,
|
|
|
+ addOpen: false,
|
|
|
+ form: {},
|
|
|
+ },
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
},
|
|
@@ -358,6 +457,7 @@ export default {
|
|
|
activeCampIndex: null,
|
|
|
// 训练营对话框是否显示
|
|
|
campDialogVisible: false,
|
|
|
+ courseList: false,
|
|
|
// 训练营表单
|
|
|
campForm: {
|
|
|
trainingCampName: ''
|
|
@@ -376,9 +476,14 @@ export default {
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
- this.getList();
|
|
|
+
|
|
|
+ courseList().then(response => {
|
|
|
+ this.courseList = response.list;
|
|
|
+ });
|
|
|
+ // this.getList();
|
|
|
this.getLeftList();
|
|
|
this.getCompanyList();
|
|
|
+
|
|
|
},
|
|
|
methods: {
|
|
|
/** 查询会员营期列表 */
|
|
@@ -404,7 +509,7 @@ export default {
|
|
|
this.campList = response.data.list || [];
|
|
|
this.leftQueryParams.hasNextPage = response.data.hasNextPage;
|
|
|
this.activeCampIndex = this.campList.length > 0 ? 0 : null;
|
|
|
-
|
|
|
+ this.selectCamp(this.activeCampIndex);
|
|
|
// 如果当前显示的列表高度不足以触发滚动,但还有更多数据,自动加载下一页
|
|
|
this.$nextTick(() => {
|
|
|
const scrollEl = this.$refs.campList;
|
|
@@ -462,6 +567,12 @@ export default {
|
|
|
const periodId = row.periodId || this.ids
|
|
|
getPeriod(periodId).then(response => {
|
|
|
this.form = response.data;
|
|
|
+ if(this.form.periodType == 1){
|
|
|
+ this.form.dateRange = [this.form.periodStartingTime, this.form.periodEndTime];
|
|
|
+ }
|
|
|
+ if(this.form.periodType == 1){
|
|
|
+ this.form.date = this.form.periodStartingTime;
|
|
|
+ }
|
|
|
this.open = true;
|
|
|
this.title = "修改会员营期";
|
|
|
});
|
|
@@ -470,8 +581,11 @@ export default {
|
|
|
submitForm() {
|
|
|
this.$refs["form"].validate(valid => {
|
|
|
if (valid) {
|
|
|
- if (this.form.periodId != null) {
|
|
|
- updatePeriod(this.form).then(response => {
|
|
|
+ let data = JSON.parse(JSON.stringify(this.form));
|
|
|
+ data.companyId = data.companyId.join()
|
|
|
+ data.trainingCampId = this.queryParams.trainingCampId
|
|
|
+ if (data.periodId != null) {
|
|
|
+ updatePeriod(data).then(response => {
|
|
|
if (response.code === 200) {
|
|
|
this.msgSuccess("修改成功");
|
|
|
this.open = false;
|
|
@@ -479,7 +593,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
- addPeriod(this.form).then(response => {
|
|
|
+ addPeriod(data).then(response => {
|
|
|
if (response.code === 200) {
|
|
|
this.msgSuccess("新增成功");
|
|
|
this.open = false;
|
|
@@ -543,9 +657,12 @@ export default {
|
|
|
updateTime: null,
|
|
|
courseStyle: null,
|
|
|
liveRoomStyle: null,
|
|
|
- redPacketGrantMethod: null,
|
|
|
- periodType: null,
|
|
|
+ redPacketGrantMethod: 1,
|
|
|
+ periodType: 1,
|
|
|
periodStartingTime: null,
|
|
|
+ dateRange: [],
|
|
|
+ date: null,
|
|
|
+ days: [],
|
|
|
periodEndTime: null
|
|
|
};
|
|
|
this.resetForm("form");
|
|
@@ -668,12 +785,8 @@ export default {
|
|
|
this.activeCampIndex = index;
|
|
|
// TODO:加载对应的训练营营期数据
|
|
|
const selectedCamp = this.campList[index];
|
|
|
- // 设置查询参数
|
|
|
- // this.queryParams = {
|
|
|
- // ...this.queryParams,
|
|
|
- // trainingCampId: selectedCamp.trainingCampId
|
|
|
- // };
|
|
|
- // this.getList();
|
|
|
+ this.queryParams.trainingCampId = selectedCamp.trainingCampId;
|
|
|
+ this.getList();
|
|
|
},
|
|
|
/** 处理滚动事件,实现滚动到底部加载更多 */
|
|
|
handleScroll() {
|
|
@@ -739,8 +852,113 @@ export default {
|
|
|
this.$message.error('加载更多训练营失败');
|
|
|
this.loadingMore = false;
|
|
|
});
|
|
|
- }
|
|
|
- }
|
|
|
+ },
|
|
|
+ timeChange(type){
|
|
|
+ if(type == 1){
|
|
|
+ this.form.periodStartingTime = this.form.dateRange[0];
|
|
|
+ this.form.periodEndTime = this.form.dateRange[1];
|
|
|
+
|
|
|
+
|
|
|
+ // 转换为天数
|
|
|
+ let days = this.getDiff(this.form.periodStartingTime, this.form.periodEndTime);
|
|
|
+ for (let i = 0; i < days; i++) {
|
|
|
+ this.form.days.push({lesson: i + 1});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(type == 2){
|
|
|
+ this.form.periodStartingTime = this.form.date;
|
|
|
+ this.form.periodEndTime = this.form.date;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getDiff(start, end) {
|
|
|
+ if(start == null || start == undefined || start == '') return 0;
|
|
|
+ if(end == null || end == undefined || end == '') return 0;
|
|
|
+ if(start == end) 1;
|
|
|
+ const startDate = this.getUTCDate(start);
|
|
|
+ const endDate = this.getUTCDate(end);
|
|
|
+
|
|
|
+ // 判断是否为同一天(UTC 日期)
|
|
|
+ const isSameDay =
|
|
|
+ startDate.getUTCFullYear() === endDate.getUTCFullYear() &&
|
|
|
+ startDate.getUTCMonth() === endDate.getUTCMonth() &&
|
|
|
+ startDate.getUTCDate() === endDate.getUTCDate();
|
|
|
+
|
|
|
+ if (isSameDay) {
|
|
|
+ return 1; // 同一天返回 1
|
|
|
+ } else {
|
|
|
+ // 计算非同日期的天数差(基于 UTC 午夜时间)
|
|
|
+ const timeDiff = endDate - startDate;
|
|
|
+ return Math.floor(timeDiff / (1000 * 3600 * 24)); // 直接取整
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getUTCDate(dateStr) {
|
|
|
+ const [year, month, day] = dateStr.split('-').map(Number);
|
|
|
+ return new Date(Date.UTC(year, month - 1, day)); // 月份从0开始
|
|
|
+ },
|
|
|
+ handleCourse(row){
|
|
|
+ this.course = {
|
|
|
+ open: false,
|
|
|
+ row:{},
|
|
|
+ list:[],
|
|
|
+ queryParams: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 9999,
|
|
|
+ },
|
|
|
+ loading: true,
|
|
|
+ total: 0,
|
|
|
+ addOpen: false,
|
|
|
+ form: {},
|
|
|
+ };
|
|
|
+ this.course.open = true;
|
|
|
+ this.course.row = row;
|
|
|
+ this.course.queryParams.periodId = row.periodId;
|
|
|
+ this.getCourseList();
|
|
|
+ },
|
|
|
+ getCourseList(){
|
|
|
+ this.course.loading = true;
|
|
|
+ getDays(this.course.queryParams).then(e => {
|
|
|
+ this.course.list = e.rows;
|
|
|
+ this.course.total = e.total;
|
|
|
+ this.course.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleAddCourse(){
|
|
|
+ this.course.addOpen = true;
|
|
|
+ this.course.form = {
|
|
|
+ periodId: this.course.row.periodId,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ closeAddCourse(){
|
|
|
+ this.course.addOpen = false;
|
|
|
+ },
|
|
|
+
|
|
|
+ //查询小节
|
|
|
+ courseChange(row){
|
|
|
+ this.course.form.videoIds = [];
|
|
|
+ videoList(row).then(response => {
|
|
|
+ this.videoList=response.list
|
|
|
+ });
|
|
|
+ },
|
|
|
+ submitCourseForm(){
|
|
|
+ this.$refs.courseAddForm.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ // 提交数据
|
|
|
+ addCourse(this.course.form).then(response => {
|
|
|
+ this.$message.success('添加成功');
|
|
|
+ this.course.addOpen = false;
|
|
|
+ // 重新加载训练营列表
|
|
|
+ this.getCourseList();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ saveCourseData(){
|
|
|
+ updateListCourseData(this.course.list).then(response => {
|
|
|
+ this.$message.success('保存成功');
|
|
|
+ this.getCourseList();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ },
|
|
|
};
|
|
|
</script>
|
|
|
|