|
@@ -6,8 +6,8 @@
|
|
|
<!-- 顶部区域 -->
|
|
|
<div class="left-header">
|
|
|
<div class="left-header-top">
|
|
|
- <el-button type="primary" class="search-btn" @click="handleLeftQuery">搜索</el-button>
|
|
|
- <el-button type="primary" style="width: 50%" icon="el-icon-plus" @click="handleAddTrainingCamp">新建训练营</el-button>
|
|
|
+ <el-button type="primary" class="search-btn" @click="handleLeftQuery" v-hasPermi="['course:trainingCamp:list']">搜索</el-button>
|
|
|
+ <el-button type="primary" style="width: 50%" icon="el-icon-plus" @click="handleAddTrainingCamp" v-hasPermi="['course:trainingCamp:add']">新建训练营</el-button>
|
|
|
</div>
|
|
|
<div class="search-input-wrapper">
|
|
|
<el-input
|
|
@@ -63,9 +63,9 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="camp-actions">
|
|
|
- <el-button type="text" class="action-btn delete-btn" @click.stop="handleDeleteCamp(item)">删除</el-button>
|
|
|
- <el-button type="text" class="action-btn copy-btn" @click.stop="handleCopyCamp(item)">复制</el-button>
|
|
|
- <el-button type="text" class="action-btn copy-btn" @click.stop="handleEditCamp(item)">编辑</el-button>
|
|
|
+ <el-button type="text" class="action-btn delete-btn" @click.stop="handleDeleteCamp(item)" v-hasPermi="['course:trainingCamp:remove']">删除</el-button>
|
|
|
+<!-- <el-button type="text" class="action-btn copy-btn" @click.stop="handleCopyCamp(item)" v-hasPermi="['course:trainingCamp:copy']">复制</el-button>-->
|
|
|
+ <el-button type="text" class="action-btn copy-btn" @click.stop="handleEditCamp(item)" v-hasPermi="['course:trainingCamp:edit']">编辑</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 底部加载更多提示 -->
|
|
@@ -120,7 +120,7 @@
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
|
+ <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery" v-hasPermi="['course:period:list']">搜索</el-button>
|
|
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -153,14 +153,14 @@
|
|
|
icon="el-icon-edit"
|
|
|
size="mini"
|
|
|
@click="handleBatchSetRedPacket"
|
|
|
- v-hasPermi="['course:period:export']"
|
|
|
+ v-hasPermi="['course:period:setRedPacket']"
|
|
|
:disabled="batchSetRedPacketDisabled"
|
|
|
>批量设置红包</el-button>
|
|
|
</el-col>
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
</el-row>
|
|
|
|
|
|
- <el-table v-loading="loading" :data="periodList" @selection-change="handleSelectionChange">
|
|
|
+ <el-table v-loading="loading" :data="periodList" @selection-change="handleSelectionChange" border>
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
<el-table-column label="营期名称" align="center" prop="periodName" />
|
|
|
<el-table-column label="公司名称" align="center" prop="companyName" />
|
|
@@ -175,7 +175,7 @@
|
|
|
type="text"
|
|
|
icon="el-icon-edit"
|
|
|
@click="handleUpdate(scope.row)"
|
|
|
- v-hasPermi="['course:period:edit']"
|
|
|
+ v-hasPermi="['course:period:query']"
|
|
|
>修改</el-button>
|
|
|
<!-- <el-button-->
|
|
|
<!-- size="mini"-->
|
|
@@ -201,6 +201,7 @@
|
|
|
type="text"
|
|
|
icon="el-icon-circle-close"
|
|
|
@click="handleClosePeriod(scope.row)"
|
|
|
+ v-hasPermi="['course:period:close']"
|
|
|
>结束营期</el-button>
|
|
|
<el-button
|
|
|
size="mini"
|
|
@@ -245,6 +246,9 @@
|
|
|
<el-form-item label="直播间风格" prop="liveRoomStyle">
|
|
|
<image-upload v-model="form.liveRoomStyle" :limit="1" />
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="课程LOGO" prop="courseLogo">
|
|
|
+ <image-upload v-model="form.courseLogo" :limit="1" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="红包发放方式" prop="redPacketGrantMethod">
|
|
|
<el-radio-group v-model="form.redPacketGrantMethod">
|
|
|
<el-radio :label="1" >按课程</el-radio>
|
|
@@ -257,7 +261,7 @@
|
|
|
<el-radio :label="2" >单课程</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="销售可查看天数" prop="periodType">
|
|
|
+ <el-form-item label="销售可查看天数" prop="maxViewNum">
|
|
|
<el-input-number :min="0" v-model="form.maxViewNum" style="width: 200px" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="开营日期" prop="periodStartingTime">
|
|
@@ -270,7 +274,9 @@
|
|
|
range-separator="至"
|
|
|
start-placeholder="开始日期"
|
|
|
end-placeholder="结束日期"
|
|
|
- value-format="yyyy-MM-dd">
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ :picker-options="{disabledDate}"
|
|
|
+ >
|
|
|
</el-date-picker>
|
|
|
<el-date-picker
|
|
|
:style="{display: form.periodType == 2 ? '' : 'none !important'}"
|
|
@@ -278,7 +284,9 @@
|
|
|
v-model="form.date"
|
|
|
type="date"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择日期">
|
|
|
+ placeholder="选择日期"
|
|
|
+ :picker-options="{disabledDate}"
|
|
|
+ >
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
|
|
@@ -372,26 +380,6 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="看课时间" prop="timeRange">
|
|
|
- <el-time-picker
|
|
|
- is-range
|
|
|
- v-model="course.form.timeRange"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="开始时间"
|
|
|
- value-format="HH:mm:ss"
|
|
|
- end-placeholder="结束时间"
|
|
|
- placeholder="选择时间范围">
|
|
|
- </el-time-picker>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="领取红包时间" prop="lastJoinTime">
|
|
|
- <el-time-picker
|
|
|
- v-model="course.form.joinTime"
|
|
|
- :selectableRange="course.form.timeRange"
|
|
|
- value-format="HH:mm:ss"
|
|
|
- placeholder="选择时间范围">
|
|
|
- </el-time-picker>
|
|
|
- <p style="color: red;margin: 0;font-size: 12px">超过领取红包时间,只允许看课,不允许领取红包</p>
|
|
|
- </el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" @click="submitCourseForm">确 定</el-button>
|
|
@@ -416,6 +404,10 @@
|
|
|
v-model="updateCourse.form.joinTime"
|
|
|
:selectableRange="updateCourse.form.timeRange"
|
|
|
value-format="HH:mm:ss"
|
|
|
+ format="HH:mm:ss"
|
|
|
+ :picker-options="{
|
|
|
+ selectableRange: updateCourse.form.timeRange || '00:00:00 - 23:59:59'
|
|
|
+ }"
|
|
|
placeholder="选择时间范围">
|
|
|
</el-time-picker>
|
|
|
<p style="color: red;margin: 0;font-size: 12px">超过领取红包时间,只允许看课,不允许领取红包</p>
|
|
@@ -426,23 +418,23 @@
|
|
|
<el-button @click="closeUpdateCourse">取 消</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <el-dialog title="修改营期时间" :visible.sync="updateDateOpen" width="500px" append-to-body>
|
|
|
- <el-form ref="courseUpdateForm" :model="form" label-width="100px">
|
|
|
- <el-form-item label="营期时间" prop="dayDate">
|
|
|
- <el-date-picker
|
|
|
- v-model="form.dayDate"
|
|
|
- :selectableRange="form.dayDate"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- type="date"
|
|
|
- placeholder="选择时间">
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="updateDate">确 定</el-button>
|
|
|
- <el-button @click="updateDateOpen = false">取 消</el-button>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
+<!-- <el-dialog title="修改营期时间" :visible.sync="updateDateOpen" width="500px" append-to-body>-->
|
|
|
+<!-- <el-form ref="courseUpdateForm" :model="form" label-width="100px">-->
|
|
|
+<!-- <el-form-item label="营期时间" prop="dayDate">-->
|
|
|
+<!-- <el-date-picker-->
|
|
|
+<!-- v-model="form.dayDate"-->
|
|
|
+<!-- :selectableRange="form.dayDate"-->
|
|
|
+<!-- value-format="yyyy-MM-dd"-->
|
|
|
+<!-- type="date"-->
|
|
|
+<!-- placeholder="选择时间">-->
|
|
|
+<!-- </el-date-picker>-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
+<!-- </el-form>-->
|
|
|
+<!-- <div slot="footer" class="dialog-footer">-->
|
|
|
+<!-- <el-button type="primary" @click="updateDate">确 定</el-button>-->
|
|
|
+<!-- <el-button @click="updateDateOpen = false">取 消</el-button>-->
|
|
|
+<!-- </div>-->
|
|
|
+<!-- </el-dialog>-->
|
|
|
|
|
|
<!-- <red-packet-->
|
|
|
<!-- :visible.sync="redPacketVisible"-->
|
|
@@ -456,7 +448,7 @@
|
|
|
title="营期相关设置"
|
|
|
:visible.sync="periodSettingsVisible"
|
|
|
direction="rtl"
|
|
|
- size="70%"
|
|
|
+ size="74%"
|
|
|
:destroy-on-close="true"
|
|
|
append-to-body
|
|
|
custom-class="period-settings-drawer"
|
|
@@ -472,7 +464,7 @@
|
|
|
icon="el-icon-plus"
|
|
|
size="mini"
|
|
|
@click="handleAddCourse"
|
|
|
- v-hasPermi="['course:period:add']"
|
|
|
+ v-hasPermi="['course:period:addCourse']"
|
|
|
>添加课程</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
@@ -481,14 +473,15 @@
|
|
|
size="mini"
|
|
|
:disabled="updateCourse.ids.length <= 0"
|
|
|
@click="handleUpdateCourse"
|
|
|
- v-hasPermi="['course:period:add']"
|
|
|
+ v-hasPermi="['course:period:updateCourseTime']"
|
|
|
>修改看课时间</el-button>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <el-table v-loading="course.loading" :data="course.list" @selection-change="handleSelectionCourseChange">
|
|
|
+ <el-table v-loading="course.loading" :data="course.list" @selection-change="handleSelectionCourseChange" border>
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
<el-table-column label="课程" align="center" prop="courseName" width="180" />
|
|
|
<el-table-column label="小节" align="center" prop="videoName" />
|
|
|
+ <el-table-column label="开课状态" align="center" prop="status" width="100" :formatter="courseStatusFormatter" />
|
|
|
<el-table-column label="营期时间" align="center" prop="dayDate" />
|
|
|
<el-table-column label="开始时间" align="center" prop="startDateTime" width="100">
|
|
|
<template slot-scope="scope">
|
|
@@ -512,12 +505,14 @@
|
|
|
type="text"
|
|
|
icon="el-icon-top"
|
|
|
@click="handleTop(scope.row)"
|
|
|
+ v-hasPermi="['course:period:courseMove']"
|
|
|
>上移</el-button>
|
|
|
<el-button
|
|
|
size="mini"
|
|
|
type="text"
|
|
|
icon="el-icon-bottom"
|
|
|
@click="handleBottom(scope.row)"
|
|
|
+ v-hasPermi="['course:period:courseMove']"
|
|
|
>下移</el-button>
|
|
|
<!-- <el-button-->
|
|
|
<!-- size="mini"-->
|
|
@@ -641,6 +636,24 @@ export default {
|
|
|
},
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
+ periodName: [
|
|
|
+ { required: true, message: '营期名称不能为空', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ companyId: [
|
|
|
+ { required: true, message: '公司不能为空', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ redPacketGrantMethod: [
|
|
|
+ { required: true, message: '红包发放方式不能为空', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ periodType: [
|
|
|
+ { required: true, message: '营期类型不能为空', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ maxViewNum: [
|
|
|
+ { required: true, message: '销售可查看天数不能为空', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ periodStartingTime: [
|
|
|
+ { required: true, message: '开营日期不能为空', trigger: 'change' }
|
|
|
+ ]
|
|
|
},
|
|
|
// 公司选项
|
|
|
companyOptions: [],
|
|
@@ -1250,7 +1263,8 @@ export default {
|
|
|
this.updateCourse.open = true;
|
|
|
this.updateCourse.form = {
|
|
|
ids: this.updateCourse.ids,
|
|
|
- joinTime: [],
|
|
|
+ timeRange: [], // 初始化timeRange
|
|
|
+ joinTime: null // 初始化joinTime
|
|
|
};
|
|
|
},
|
|
|
closeAddCourse() {
|
|
@@ -1266,7 +1280,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
closeUpdateCourse() {
|
|
|
- this.course.open = false;
|
|
|
+ this.updateCourse.open = false;
|
|
|
},
|
|
|
courseChange(row){
|
|
|
this.course.form.videoIds = [];
|
|
@@ -1448,6 +1462,9 @@ export default {
|
|
|
this.form = {id: row.id, dayDate: row.dayDate};
|
|
|
this.updateDateOpen = true;
|
|
|
},
|
|
|
+ disabledDate(time) {
|
|
|
+ return time.getTime() < new Date(new Date().setHours(0,0,0,0));
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|