| 
					
				 | 
			
			
				@@ -1,8 +1,20 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-row :gutter="10" class="mb8"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-col :span="1.5"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          size="mini" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :disabled="this.selectCompanyIds.length === 0" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @click="handleChangeRedPacket" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-hasPermi="['course:period:setCompanyRedPacket']" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        >批量设置红包</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </el-row> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <!-- 公司列表弹窗 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <!--    <el-dialog title="设置红包" :visible.sync="companyDialogVisible" width="800px" append-to-body>--> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      <el-table :data="companyList" border> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-table :data="companyList" border @selection-change="handleSelectionCompany"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-table-column type="selection" width="55" align="center"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <el-table-column type="index" label="序号" width="60" align="center" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <el-table-column label="公司名称" prop="companyName" align="center" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <el-table-column label="操作" align="center" width="120"> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -47,11 +59,44 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <el-button type="primary" @click="handleSave">保 存</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </el-dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <!-- 课程红包设置弹窗 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-dialog title="设置红包金额" :visible.sync="batchRedPacketDialog.visible" width="400px" append-to-body> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form ref="batchRedPacketForm" :model="batchRedPacketDialog.form" label-width="100px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item label="红包金额" prop="amount" :rules="{required: true, message: '红包金额不能为空', trigger: 'blur'}"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div style="display: inline-flex; align-items: center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input-number 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              v-model="batchRedPacketDialog.form.amount" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :min="0.1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :precision="2" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :step="0.01" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-input-number> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <span style="margin-left: 10px">元</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div style="color: rgba(169,88,18,0.9)">金额低于0.1元将自动置为0.1元</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div slot="footer" class="dialog-footer"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button @click="batchRedPacketDialog.visible = false">取 消</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   :loading="batchRedPacketDialog.saveLoading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   :disabled="batchRedPacketDialog.saveLoading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   @click="handleChange">保 存</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </el-dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { getPeriodCompanyList, batchSaveRedPacket, getPeriodRedPacketList } from "@/api/course/userCoursePeriod"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getPeriodCompanyList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  batchSaveRedPacket, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getPeriodRedPacketList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  batchSaveRedPacketByCompany 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from "@/api/course/userCoursePeriod"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import redPacket from "@/views/course/userCoursePeriod/redPacket.vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -86,7 +131,15 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       courseDialogVisible: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       companyList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       redPacketList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      currentCompany: null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      currentCompany: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      selectCompanyIds: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      batchRedPacketDialog: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        visible: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        form: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          amount: 0.1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        saveLoading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   created() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -169,7 +222,45 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }).catch(error => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.$message.error("保存失败:" + error.message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleSelectionCompany(selection) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.selectCompanyIds = selection.map(item => item.companyId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleChangeRedPacket() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.batchRedPacketDialog.visible = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$refs.batchRedPacketForm.resetFields() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleChange() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!this.selectCompanyIds.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$message.warning('请选择公司'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$refs.batchRedPacketForm.validate((valid) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!valid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.$message.warning('请填写正确的红包金额') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.batchRedPacketDialog.saveLoading = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const saveData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          periodId: this.periodId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          companyIds: this.selectCompanyIds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          redPacketMoney: this.batchRedPacketDialog.form.amount 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        batchSaveRedPacketByCompany(saveData).then(response => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const {code, msg} = response 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (code === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.$message.success('保存成功'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.batchRedPacketDialog.visible = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.$emit('success'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.$message.error(msg || "保存失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.batchRedPacketDialog.saveLoading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 |