Browse Source

营期主页面

caoliqin 5 days ago
parent
commit
6d64517d28
2 changed files with 160 additions and 97 deletions
  1. 21 12
      src/api/course/userCoursePeriod.js
  2. 139 85
      src/views/course/userCoursePeriod/index.vue

+ 21 - 12
src/api/course/userCoursePeriod.js

@@ -1,52 +1,61 @@
 import request from '@/utils/request'
 
 // 查询会员营期列表
-export function listUserCoursePeriod(query) {
+export function listPeriod(query) {
   return request({
-    url: '/course/userCoursePeriod/list',
+    url: '/course/period/list',
     method: 'get',
     params: query
   })
 }
 
+// 自定义查询主列表分页
+export function pagePeriod(data) {
+  return request({
+    url: '/course/period/page',
+    method: 'post',
+    data: data
+  })
+}
+
 // 查询会员营期详细
-export function getUserCoursePeriod(periodId) {
+export function getPeriod(periodId) {
   return request({
-    url: '/course/userCoursePeriod/' + periodId,
+    url: '/course/period/' + periodId,
     method: 'get'
   })
 }
 
 // 新增会员营期
-export function addUserCoursePeriod(data) {
+export function addPeriod(data) {
   return request({
-    url: '/course/userCoursePeriod',
+    url: '/course/period',
     method: 'post',
     data: data
   })
 }
 
 // 修改会员营期
-export function updateUserCoursePeriod(data) {
+export function updatePeriod(data) {
   return request({
-    url: '/course/userCoursePeriod',
+    url: '/course/period',
     method: 'put',
     data: data
   })
 }
 
 // 删除会员营期
-export function delUserCoursePeriod(periodId) {
+export function delPeriod(periodId) {
   return request({
-    url: '/course/userCoursePeriod/' + periodId,
+    url: '/course/period/' + periodId,
     method: 'delete'
   })
 }
 
 // 导出会员营期
-export function exportUserCoursePeriod(query) {
+export function exportPeriod(query) {
   return request({
-    url: '/course/userCoursePeriod/export',
+    url: '/course/period/export',
     method: 'get',
     params: query
   })

+ 139 - 85
src/views/course/userCoursePeriod/index.vue

@@ -10,39 +10,30 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="公司id" prop="companyId">
-        <el-input
-          v-model="queryParams.companyId"
-          placeholder="请输入公司id"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="课程id" prop="courseId">
-        <el-input
-          v-model="queryParams.courseId"
-          placeholder="请输入课程id"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="视频id" prop="videoId">
-        <el-input
-          v-model="queryParams.videoId"
-          placeholder="请输入视频id"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="公司" prop="companyIdList">
+        <el-select v-model="queryParams.companyIdList" placeholder="请选择公司" clearable size="small" 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="开课时间" prop="startingTime">
+      <el-form-item label="开营日期开始" prop="periodStartingTime" label-width="120px">
         <el-date-picker clearable size="small" style="width: 200px"
-                        v-model="queryParams.startingTime"
-                        type="date"
-                        value-format="yyyy-MM-dd"
-                        placeholder="选择开课时间">
+          v-model="queryParams.periodStartingTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择开营日期开始时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="开营日期结束" prop="periodEndTime" label-width="120px">
+        <el-date-picker clearable size="small" style="width: 300px"
+          v-model="queryParams.periodEndTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择开营日期结束时间">
         </el-date-picker>
       </el-form-item>
       <el-form-item>
@@ -58,7 +49,7 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
-          v-hasPermi="['course:userCoursePeriod:add']"
+          v-hasPermi="['course:period:add']"
         >新增</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -68,7 +59,7 @@
           size="mini"
           :disabled="single"
           @click="handleUpdate"
-          v-hasPermi="['course:userCoursePeriod:edit']"
+          v-hasPermi="['course:period:edit']"
         >修改</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -78,7 +69,7 @@
           size="mini"
           :disabled="multiple"
           @click="handleDelete"
-          v-hasPermi="['course:userCoursePeriod:remove']"
+          v-hasPermi="['course:period:remove']"
         >删除</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -87,22 +78,31 @@
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-hasPermi="['course:userCoursePeriod:export']"
+          v-hasPermi="['course:period:export']"
         >导出</el-button>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="userCoursePeriodList" @selection-change="handleSelectionChange">
+    <el-table v-loading="loading" :data="periodList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="营期id" align="center" prop="periodId" />
+      <el-table-column label="所属训练营" align="center" prop="trainingCampName" />
       <el-table-column label="营期名称" align="center" prop="periodName" />
-      <el-table-column label="公司id" align="center" prop="companyId" />
-      <el-table-column label="课程id" align="center" prop="courseId" />
-      <el-table-column label="视频id" align="center" prop="videoId" />
-      <el-table-column label="开课时间" align="center" prop="startingTime" width="180">
+<!--      <el-table-column label="公司id" align="center" prop="companyId" />-->
+      <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="periodEndTime" width="180">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.startingTime, '{y}-{m}-{d}') }}</span>
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -112,14 +112,14 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="['course:userCoursePeriod:edit']"
+            v-hasPermi="['course:period:edit']"
           >修改</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-            v-hasPermi="['course:userCoursePeriod:remove']"
+            v-hasPermi="['course:period:remove']"
           >删除</el-button>
         </template>
       </el-table-column>
@@ -133,27 +133,58 @@
       @pagination="getList"
     />
 
-    <!-- 添加或修改会员营期对话框 -->
+     添加或修改会员营期对话框
     <el-dialog :title="title" :visible.sync="open" width="500px" 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-input v-model="form.companyId" placeholder="请输入公司id" />
+          <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-input v-model="form.courseId" placeholder="请输入课程id" />
+          <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-input v-model="form.videoId" placeholder="请输入视频id" />
+          <el-select v-model="form.videoId" placeholder="请选择视频id">
+            <el-option label="请选择字典生成" value="" />
+          </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>
+        <el-form-item label="直播间风格url" prop="liveRoomStyle">
+          <el-input v-model="form.liveRoomStyle" placeholder="请输入直播间风格url" />
+        </el-form-item>
+        <el-form-item label="红包发放方式,1-按课程,每个课程可得一个;2-按营期,每个营期可得一个" prop="redPacketGrantMethod">
+          <el-input v-model="form.redPacketGrantMethod" placeholder="请输入红包发放方式,1-按课程,每个课程可得一个;2-按营期,每个营期可得一个" />
+        </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>
-        <el-form-item label="开课时间" prop="startingTime">
+        <el-form-item label="开营日期-开始时间" prop="periodStartingTime">
           <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.startingTime"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          placeholder="选择开课时间">
+            v-model="form.periodStartingTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择开营日期-开始时间">
+          </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"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择开营日期-结束时间">
           </el-date-picker>
         </el-form-item>
       </el-form>
@@ -166,10 +197,11 @@
 </template>
 
 <script>
-import { listUserCoursePeriod, getUserCoursePeriod, delUserCoursePeriod, addUserCoursePeriod, updateUserCoursePeriod, exportUserCoursePeriod } from "@/api/course/userCoursePeriod";
+import { listPeriod, getPeriod, delPeriod, addPeriod, updatePeriod, exportPeriod, pagePeriod } from "@/api/course/userCoursePeriod";
+import { getCompanyList } from "@/api/company/company";
 
 export default {
-  name: "UserCoursePeriod",
+  name: "Period",
   data() {
     return {
       // 遮罩层
@@ -185,7 +217,9 @@ export default {
       // 总条数
       total: 0,
       // 会员营期表格数据
-      userCoursePeriodList: [],
+      periodList: [],
+      // 公司选项
+      companyOptions: [],
       // 弹出层标题
       title: "",
       // 是否显示弹出层
@@ -195,10 +229,13 @@ export default {
         pageNum: 1,
         pageSize: 10,
         periodName: null,
-        companyId: null,
-        courseId: null,
-        videoId: null,
-        startingTime: null,
+        // courseId: null,
+        // videoId: null,
+        // trainingCampId: null,
+        // periodType: null,
+        periodStartingTime: null,
+        periodEndTime: null,
+        companyIdList: []
       },
       // 表单参数
       form: {},
@@ -209,17 +246,27 @@ export default {
   },
   created() {
     this.getList();
+    this.getCompanyList();
   },
   methods: {
     /** 查询会员营期列表 */
     getList() {
       this.loading = true;
-      listUserCoursePeriod(this.queryParams).then(response => {
-        this.userCoursePeriodList = response.rows;
+      const params = { ...this.queryParams };
+      pagePeriod(params).then(response => {
+        this.periodList = response.rows;
         this.total = response.total;
         this.loading = false;
       });
     },
+    /** 获取公司下拉列表*/
+    getCompanyList() {
+      this.loading = true;
+      getCompanyList().then(response => {
+        this.companyOptions = response.data;
+        this.loading = false;
+      });
+    },
     // 取消按钮
     cancel() {
       this.open = false;
@@ -233,9 +280,15 @@ export default {
         companyId: null,
         courseId: null,
         videoId: null,
-        startingTime: null,
+        trainingCampId: null,
         createTime: null,
-        updateTime: null
+        updateTime: null,
+        courseStyle: null,
+        liveRoomStyle: null,
+        redPacketGrantMethod: null,
+        periodType: null,
+        periodStartingTime: null,
+        periodEndTime: null
       };
       this.resetForm("form");
     },
@@ -247,6 +300,7 @@ export default {
     /** 重置按钮操作 */
     resetQuery() {
       this.resetForm("queryForm");
+      this.queryParams.companyIdList = [];
       this.handleQuery();
     },
     // 多选框选中数据
@@ -265,7 +319,7 @@ export default {
     handleUpdate(row) {
       this.reset();
       const periodId = row.periodId || this.ids
-      getUserCoursePeriod(periodId).then(response => {
+      getPeriod(periodId).then(response => {
         this.form = response.data;
         this.open = true;
         this.title = "修改会员营期";
@@ -276,7 +330,7 @@ export default {
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.periodId != null) {
-            updateUserCoursePeriod(this.form).then(response => {
+            updatePeriod(this.form).then(response => {
               if (response.code === 200) {
                 this.msgSuccess("修改成功");
                 this.open = false;
@@ -284,7 +338,7 @@ export default {
               }
             });
           } else {
-            addUserCoursePeriod(this.form).then(response => {
+            addPeriod(this.form).then(response => {
               if (response.code === 200) {
                 this.msgSuccess("新增成功");
                 this.open = false;
@@ -299,28 +353,28 @@ export default {
     handleDelete(row) {
       const periodIds = row.periodId || this.ids;
       this.$confirm('是否确认删除会员营期编号为"' + periodIds + '"的数据项?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      }).then(function() {
-        return delUserCoursePeriod(periodIds);
-      }).then(() => {
-        this.getList();
-        this.msgSuccess("删除成功");
-      }).catch(function() {});
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPeriod(periodIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
     },
     /** 导出按钮操作 */
     handleExport() {
       const queryParams = this.queryParams;
       this.$confirm('是否确认导出所有会员营期数据项?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      }).then(function() {
-        return exportUserCoursePeriod(queryParams);
-      }).then(response => {
-        this.download(response.msg);
-      }).catch(function() {});
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPeriod(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        }).catch(function() {});
     }
   }
 };