Browse Source

提交一下

1
mo 3 năm trước cách đây
mục cha
commit
a40e67349c

+ 85 - 27
src/views/categroyManager/modals/baseInfo.vue

@@ -12,7 +12,7 @@
         :label-position="labelPosition"
         :model="baseForm"
         ref="vipform"
-        label-width="120px"
+        label-width="140px"
         :rules="vipformRules"
         class="vipform"
       >
@@ -50,11 +50,12 @@
             placeholder="请输入活动说明"
           ></el-input>
         </el-form-item>
-        <el-form-item label="活动类型" prop="activeType">
+        <el-form-item label="活动类型" prop="activityType">
           <el-select
             v-model.trim="baseForm.activeType"
             placeholder="请选择活动类型"
             clearable
+            style="width: 400px!important"
           >
             <el-option label="课程活动" :value="0"></el-option>
             <el-option label="会员活动" :value="1"></el-option>
@@ -74,6 +75,15 @@
             }"
             end-placeholder="结束日期"
           ></el-date-picker>
+          <el-tooltip placement="top" popper-class="mTooltip">
+            <div slot="content">
+              可通过该方案购买课程的时间范围,到达开始时间才可购买,到达结束时间后不可购买,不填则不限制且立即生效
+            </div>
+            <i
+              class="el-icon-question micon el-tooltip"
+              style="font-size: 18px; color: #f56c6c"
+            ></i>
+          </el-tooltip>
         </el-form-item>
         <el-form-item label="排课时间范围" prop="courseTime">
           <el-date-picker
@@ -88,20 +98,42 @@
             }"
             end-placeholder="结束日期"
           ></el-date-picker>
+          <el-tooltip placement="top" popper-class="mTooltip">
+            <div slot="content">
+              通过该方案购买的课程排课时间不可超过该时间范围,不填则不限制
+            </div>
+            <i
+              class="el-icon-question micon el-tooltip"
+              style="font-size: 18px; color: #f56c6c"
+            ></i>
+          </el-tooltip>
         </el-form-item>
         <el-form-item label="适用学员" prop="applyToStudentType">
-          <select-all
-            v-model.trim="baseForm.applyToStudentType"
-            style="width: 400px"
-            multiple
-            filterable
-            clearable
-            placeholder='请选择适用学员'
-          >
-            <el-option label="新学员" :value="1"></el-option>
-            <el-option label="老学员" :value="0"></el-option>
-            <el-option label="所有学员" :value="-1"></el-option>
-          </select-all>
+          <el-row>
+            <el-col style="width: 400px">
+              <select-all
+                v-model.trim="baseForm.applyToStudentType"
+                style="width: 400px"
+                multiple
+                filterable
+                clearable
+                placeholder="请选择适用学员"
+              >
+                <el-option label="新学员" :value="1"></el-option>
+                <el-option label="老学员" :value="0"></el-option>
+                <el-option label="所有学员" :value="-1"></el-option>
+              </select-all>
+            </el-col>
+            <el-tooltip placement="top" popper-class="mTooltip">
+              <div slot="content">
+                可通过该方案购买课程的学员群体,不填则不限制
+              </div>
+              <i
+                class="el-icon-question micon el-tooltip"
+                style="font-size: 18px; color: #f56c6c;margin-left:3px;"
+              ></i>
+            </el-tooltip>
+          </el-row>
         </el-form-item>
         <el-form-item label="可购买次数" prop="studentMaxUsedTimes">
           <el-input
@@ -111,16 +143,37 @@
           >
             <template slot="append">次</template>
           </el-input>
+          <el-tooltip placement="top" popper-class="mTooltip">
+            <div slot="content">
+              学员可通购买该活动方案的次数限制,不填则不限制
+            </div>
+            <i
+              class="el-icon-question micon el-tooltip"
+              style="font-size: 18px; color: #f56c6c"
+            ></i>
+          </el-tooltip>
         </el-form-item>
-        <el-form-item label="是否充值课程余额" prop="applyToStudentType">
+        <el-form-item label="是否充值课程余额" prop="isPayToBalance" >
           <el-select
-            v-model.trim="baseForm.applyToStudentType"
+            v-model.trim="baseForm.isPayToBalance"
             placeholder="请选择是否充值课程余额"
             clearable
+            style="width: 400px!important"
           >
-            <el-option label="是" :value="1"></el-option>
-            <el-option label="否" :value="0"></el-option>
+            <el-option label="课程余额" :value="1"></el-option>
+            <el-option label="资格限制" :value="0"></el-option>
           </el-select>
+          <el-tooltip placement="top" popper-class="mTooltip">
+            <div slot="content">
+              课程余额:学员缴费金额进入课程余额,排课时扣减课程余额;若课程余额不足则不可排课
+              资格限制:学员缴费金额不进入课程余额,学员购买后增加可排课次数,排课后扣减可排课次数
+              会员活动默认为资格限制,不可修改
+            </div>
+            <i
+              class="el-icon-question micon el-tooltip"
+              style="font-size: 18px; color: #f56c6c"
+            ></i>
+          </el-tooltip>
         </el-form-item>
       </el-form>
     </div>
@@ -169,12 +222,15 @@ export default {
         courseTime: [
           { required: false, message: "请选择课程时间", trigger: "blur" },
         ],
-        studentMaxUsedTimes:[{ required: true, message: "请输入购买次数", trigger: "blur" }],
+        studentMaxUsedTimes: [
+          { required: true, message: "请输入购买次数", trigger: "blur" },
+        ],
         organ: [{ required: true, message: "请选择适用分部", trigger: "blur" }],
         stauts: [
           { required: true, message: "请选择活动形式", trigger: "blur" },
         ],
         applyToStudentType: [{ required: true, message: "请选择是否新生专享" }],
+        isPayToBalance: [{ required: true, message: "请选择是否支付到余额" }],
         allowOnlineToOffline: [
           { required: true, message: "请选择课程调整方式" },
         ],
@@ -456,7 +512,10 @@ export default {
       // addVipActive().then(res => { })
     },
     onOrganChange() {
+      // this.$forceUpdate();
+      this.$refs.vipform.validate()
       this.$forceUpdate();
+      console.log('调用')
     },
     onCheckAllBranch() {
       // 选择所有分部
@@ -465,6 +524,7 @@ export default {
       this.selects.branchs.forEach((item) => {
         vipform.organ.push(item.id);
       });
+       this.$refs.vipform.validate()
       this.$forceUpdate();
     },
 
@@ -576,14 +636,12 @@ export default {
 </style>
 <style lang="scss">
 .m-core {
-  .vipform {
-    .el-select {
-      width: 400px !important;
-      .el-input__inner {
-        width: 400px;
-      }
-    }
-  }
+  // .vipform {
+  //   .el-select {
+  //     .el-input__inner {
+  //     }
+  //   }
+  // }
   .activeType {
     .right {
       .el-input {

+ 95 - 52
src/views/categroyManager/modals/payInfo.vue

@@ -12,24 +12,28 @@
       label-position="right"
       :inline="true"
     >
-      <div v-if="activeType">
+      <div v-if="!activeType">
         <el-row>
-          <el-form-item label="课程类型" prop="applyToStudentType">
+          <el-form-item label="课程类型" prop="courseType">
             <el-select
               style="width: 400px !important"
-              v-model.trim="payForm.applyToStudentType"
+              v-model.trim="payForm.courseType"
               placeholder="请选择课程类型"
               clearable
             >
-              <el-option label="VIP课" :value="1"></el-option>
-              <el-option label="网管课" :value="0"></el-option>
+              <el-option label="VIP课" value="VIP"></el-option>
+              <el-option label="网管课" value="PRACTICE"></el-option>
             </el-select>
           </el-form-item>
         </el-row>
         <el-row>
-          <el-form-item label="课程形式" prop="stauts">
+          <el-form-item
+            label="课程形式"
+            prop="vipGroupCategoryIdList"
+            v-if="payForm.courseType == 'VIP'"
+          >
             <select-all
-              v-model.trim="payForm.stauts"
+              v-model.trim="payForm.vipGroupCategoryIdList"
               style="width: 400px"
               @visible-change="$forceUpdate()"
               clearable
@@ -45,7 +49,11 @@
           </el-form-item>
         </el-row>
         <el-row>
-          <el-form-item label="上课模式" prop="applyToStudentType">
+          <el-form-item
+            label="上课模式"
+            prop="applyToStudentType"
+            v-if="payForm.courseType == 'VIP'"
+          >
             <el-select
               style="width: 400px !important"
               v-model.trim="payForm.applyToStudentType"
@@ -76,20 +84,15 @@
           </el-form-item>
         </el-row>
         <el-row>
-          <el-form-item label="单课时长" prop="allowOnlineToOffline">
-            <el-select
-              style="width: 400px !important"
-              v-model.trim="payForm.allowOnlineToOffline"
-              placeholder="请选择单课时长"
-              clearable
+          <el-form-item label="单课时长" prop="singleCourseTime">
+            <el-input
+              v-model.number="payForm.singleCourseTime"
+              type="number"
+              style="width: 400px"
+              placeholder="单课时长"
             >
-              <el-option
-                :label="item.label"
-                :value="item.value"
-                v-for="item in coureTimerList"
-                :key="item.value"
-              ></el-option>
-            </el-select>
+              <template slot="append">分钟</template>
+            </el-input>
           </el-form-item>
         </el-row>
         <el-row>
@@ -120,11 +123,11 @@
         </el-row>
       </div>
       <div v-else>
-              <el-row>
-          <el-form-item label="会员名称" prop="applyToStudentType">
+        <el-row>
+          <el-form-item label="会员名称" prop="memberRankId">
             <el-select
               style="width: 400px !important"
-              v-model.trim="payForm.applyToStudentType"
+              v-model.trim="payForm.memberRankId"
               placeholder="请选择会员名称"
               clearable
               multiple
@@ -135,11 +138,11 @@
           </el-form-item>
         </el-row>
         <el-row>
-          <el-form-item label="会员时长" prop="allowOnlineToOffline">
+          <el-form-item label="会员时长" prop="memberTime">
             <el-select
               style="width: 400px !important"
-              v-model.trim="payForm.allowOnlineToOffline"
-              placeholder="请选择课程调整方式"
+              v-model.trim="payForm.memberTime"
+              placeholder="请选择会员时长"
               clearable
             >
               <el-option
@@ -153,9 +156,9 @@
         </el-row>
       </div>
       <el-row>
-        <el-form-item prop="maxCourseNum" label="折扣值">
+        <el-form-item prop="discount" label="折扣值">
           <el-input
-            v-model.number="payForm.maxCourseNum"
+            v-model.number="payForm.discount"
             type="number"
             style="width: 400px"
             placeholder="折扣值"
@@ -165,9 +168,9 @@
         </el-form-item>
       </el-row>
       <el-row>
-        <el-form-item prop="maxCourseNum" label="满赠达标课时">
+        <el-form-item prop="fullMinusCourseTimes" label="满赠达标课时">
           <el-input
-            v-model.number="payForm.maxCourseNum"
+            v-model.number="payForm.fullMinusCourseTimes"
             type="number"
             style="width: 400px"
             placeholder="满赠达标课时"
@@ -178,23 +181,44 @@
       </el-row>
       <el-row>
         <el-col>
-          <el-form-item label="赠课类型" prop="applyToStudentType">
+          <el-form-item label="赠课类型" prop="giveCourseType">
             <el-select
-              v-model.trim="payForm.applyToStudentType"
+              v-model.trim="payForm.giveCourseType"
               placeholder="请选择赠课类型"
               style="width: 400px !important"
               clearable
             >
-              <el-option label="VIP课" :value="1"></el-option>
-              <el-option label="网管课" :value="0"></el-option>
+              <el-option label="VIP课" value="VIP"></el-option>
+              <el-option label="网管课" value="PRACTICE"></el-option>
+              <el-option label="会员" value="MEMBER"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
+        <el-form-item
+          label="赠课课模式"
+          prop="applyToStudentType"
+          v-if="payForm.giveCourseType == 'VIP'"
+        >
+          <el-select
+            style="width: 400px !important"
+            v-model.trim="payForm.applyToStudentType"
+            placeholder="请选择上课模式"
+            clearable
+            multiple
+          >
+            <el-option label="线上" :value="1"></el-option>
+            <el-option label="线下" :value="0"></el-option>
+          </el-select>
+        </el-form-item>
         <el-col>
-          <el-form-item label="赠课形式" prop="stauts">
+          <el-form-item
+            label="赠课形式"
+            prop="giveCategoryId"
+            v-if="payForm.giveCourseType == 'VIP'"
+          >
             <select-all
               style="width: 400px !important"
-              v-model.trim="payForm.stauts"
+              v-model.trim="payForm.giveCategoryId"
               @visible-change="$forceUpdate()"
               clearable
               multiple
@@ -209,25 +233,44 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <el-form-item label="赠课时长" prop="allowOnlineToOffline">
-        <el-select
-          style="width: 400px !important"
-          v-model.trim="payForm.allowOnlineToOffline"
-          placeholder="请选择赠课时长"
-          clearable
+      <el-form-item
+        label="赠课时长"
+        prop="giveSingleCourseTime"
+        v-if="payForm.giveCourseType != 'MEMBER'"
+      >
+        <el-input
+          v-model.number="payForm.giveSingleCourseTime"
+          type="number"
+          style="width: 400px"
+          placeholder="赠课时长"
         >
-          <el-option
-            :label="item.label"
-            :value="item.value"
-            v-for="item in coureTimerList"
-            :key="item.value"
-          ></el-option>
-        </el-select>
+          <template slot="append">分钟</template>
+        </el-input>
       </el-form-item>
       <el-row>
-        <el-form-item prop="maxCourseNum" label="赠送课时数">
+        <el-form-item
+          prop="giveCourseNum"
+          label="赠送课时数"
+          v-if="payForm.giveCourseType != 'MEMBER'"
+        >
+          <el-input
+            v-model.number="payForm.giveCourseNum"
+            type="number"
+            style="width: 400px"
+            placeholder="赠送课时数"
+          >
+            <template slot="append">课时</template>
+          </el-input>
+        </el-form-item>
+      </el-row>
+      <el-row>
+        <el-form-item
+          prop="giveCourseNum"
+          label="赠送会员时长"
+          v-if="payForm.giveCourseType == 'MEMBER'"
+        >
           <el-input
-            v-model.number="payForm.maxCourseNum"
+            v-model.number="payForm.giveCourseNum"
             type="number"
             style="width: 400px"
             placeholder="赠送课时数"

+ 18 - 3
src/views/categroyManager/vipNewActive.vue

@@ -19,7 +19,7 @@
       <el-step title="课酬信息"></el-step>
     </el-steps>
     <div class="wrap">
-      <baseInfo :baseForm="baseForm" v-if="active == 1" />
+      <baseInfo :baseForm="baseForm" v-if="active == 1" ref='baseForm'/>
       <payInfo :payForm="payForm" :activeType="baseForm.activeType" v-if="active == 2" />
       <salaryInfo :salaryForm="salaryForm" v-if="active == 3" :activeType="baseForm.activeType" :payForm="payForm"/>
     </div>
@@ -66,9 +66,16 @@ export default {
         activeTime: [],
         courseTime: [],
         organ: [],
-        activeType:''
+        activityType:'',
+        applyToStudentType:'',
+        studentMaxUsedTimes:'',
+        isPayToBalance:''
+      },
+      payForm: {
+        courseType:'',
+        vipGroupCategoryIdList:[],
+        applyToStudentType:[]
       },
-      payForm: {},
       salaryForm: {},
     };
   },
@@ -87,11 +94,19 @@ export default {
       }
     },
     next() {
+      let flags = true
       if (this.active == 1) {
+
+        this.$refs.baseForm.$refs.vipform.validate(flag=>{
+        flags =  flag
+        })
         // 验证表单1
       } else if (this.active == 2) {
         // 验证表单2
       }
+      if(!flags){
+        return
+      }
       if (this.active < 3) {
         this.active++;
       }