| 
					
				 | 
			
			
				@@ -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> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |