|
@@ -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:setCourseRedPacket']"
|
|
|
+ >批量设置红包</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>
|