createMember.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <template>
  2. <div>
  3. <!-- <p class="title">已选择{{ multipleSelection.length }}名学员</p> -->
  4. <el-form :model="memberForm" label-width="120px" ref="memberForm">
  5. <el-form-item
  6. label="赠送会员类型"
  7. prop="addType"
  8. :rules="[
  9. { required: true, message: '请选择赠送会员类型', trigger: 'blur' },
  10. ]"
  11. >
  12. <el-select
  13. placeholder="赠送会员类型"
  14. clearable
  15. v-model.trim="memberForm.addType"
  16. style="width: 100% !important"
  17. >
  18. <el-option label="月度" value="MONTH"></el-option>
  19. <el-option label="季度" value="QUARTERLY"></el-option>
  20. <el-option label="半年" value="YEAR_HALF"></el-option>
  21. <el-option label="年度" value="YEAR"></el-option>
  22. <el-option label="固定天数" value="DAY"></el-option>
  23. </el-select>
  24. </el-form-item>
  25. <el-form-item
  26. label="赠送数量"
  27. prop="times"
  28. :rules="[
  29. { required: true, message: '请输入赠送数量', trigger: 'blur' },
  30. ]"
  31. >
  32. <el-input
  33. type="number"
  34. onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
  35. v-model="memberForm.times"
  36. placeholder="请输入赠送数量"
  37. >
  38. </el-input>
  39. </el-form-item>
  40. </el-form>
  41. </div>
  42. </template>
  43. <script>
  44. import { cloudAddStudents } from "../../api";
  45. export default {
  46. props: ["multipleSelection"],
  47. data() {
  48. return {
  49. memberForm: {
  50. times: null,
  51. addType: null,
  52. },
  53. studentIds: [],
  54. };
  55. },
  56. mounted() {
  57. this.studentIds = this.multipleSelection
  58. .map((stu) => {
  59. return stu.userId;
  60. });
  61. },
  62. methods: {
  63. submit() {
  64. this.$refs.memberForm.validate(async (res) => {
  65. if (res) {
  66. try {
  67. const { times, addType } = this.memberForm
  68. await cloudAddStudents({
  69. times: Number(times),
  70. addType,
  71. studentIds: this.studentIds,
  72. });
  73. this.$message.success('添加会员成功')
  74. this.$emit("close");
  75. this.$emit("submited");
  76. } catch (e) {
  77. console.log(e);
  78. }
  79. }
  80. });
  81. },
  82. },
  83. };
  84. </script>
  85. <style lang="scss" scoped>
  86. .title {
  87. margin-bottom: 30px;
  88. font-size: 16px;
  89. color: #000;
  90. }
  91. </style>