|  | @@ -1,150 +1,181 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  | -  <div class='m-container'>
 | 
	
		
			
				|  |  | +  <div class="m-container">
 | 
	
		
			
				|  |  |      <h2>
 | 
	
		
			
				|  |  | -      <el-page-header @back="onCancel"
 | 
	
		
			
				|  |  | -                      :content="(pageType == 'create' ? '添加' : '修改') + '分部活动'"></el-page-header>
 | 
	
		
			
				|  |  | +      <el-page-header
 | 
	
		
			
				|  |  | +        @back="onCancel"
 | 
	
		
			
				|  |  | +        :content="(pageType == 'create' ? '添加' : '修改') + '分部活动'"
 | 
	
		
			
				|  |  | +      ></el-page-header>
 | 
	
		
			
				|  |  |      </h2>
 | 
	
		
			
				|  |  |      <div class="m-core">
 | 
	
		
			
				|  |  | -      <el-form :model="result"
 | 
	
		
			
				|  |  | -               :rules="rules"
 | 
	
		
			
				|  |  | -               ref="form"
 | 
	
		
			
				|  |  | -               label-width="120px">
 | 
	
		
			
				|  |  | -        <el-form-item label="活动名称"
 | 
	
		
			
				|  |  | -                      prop="name"
 | 
	
		
			
				|  |  | -                      style="width: 500px">
 | 
	
		
			
				|  |  | +      <el-form :model="result" :rules="rules" ref="form" label-width="120px">
 | 
	
		
			
				|  |  | +        <el-form-item label="活动名称" prop="name" style="width: 500px">
 | 
	
		
			
				|  |  |            <el-input v-model.trim="result.name"></el-input>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item prop="rewardMode"
 | 
	
		
			
				|  |  | -                      label="活动类型"
 | 
	
		
			
				|  |  | -                      style="width: 500px">
 | 
	
		
			
				|  |  | +        <el-form-item prop="rewardMode" label="活动类型" style="width: 500px">
 | 
	
		
			
				|  |  |            <el-radio-group v-model.trim="result.rewardMode">
 | 
	
		
			
				|  |  |              <el-radio label="STAIR">阶梯奖励</el-radio>
 | 
	
		
			
				|  |  |              <el-radio label="PER">累计奖励</el-radio>
 | 
	
		
			
				|  |  |            </el-radio-group>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item class="moreRule"
 | 
	
		
			
				|  |  | -                      style="margin-bottom: 0;">
 | 
	
		
			
				|  |  | +        <el-form-item class="moreRule" style="margin-bottom: 0">
 | 
	
		
			
				|  |  |            <span class="min">最小值</span>
 | 
	
		
			
				|  |  |            <span class="min">最大值</span>
 | 
	
		
			
				|  |  |            <span class="max">奖励金额</span>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |          <div class="moreRule">
 | 
	
		
			
				|  |  | -          <div class="moreRuleIn"
 | 
	
		
			
				|  |  | -               v-for="(domain, index) in result.domains"
 | 
	
		
			
				|  |  | -               :key="domain.key">
 | 
	
		
			
				|  |  | +          <div
 | 
	
		
			
				|  |  | +            class="moreRuleIn"
 | 
	
		
			
				|  |  | +            v-for="(domain, index) in result.domains"
 | 
	
		
			
				|  |  | +            :key="domain.key"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  |              <el-form-item :label="'梯度' + (index + 1)">
 | 
	
		
			
				|  |  | -              <el-input type="number"
 | 
	
		
			
				|  |  | -                        v-number
 | 
	
		
			
				|  |  | -                        :disabled="domain.disabled"
 | 
	
		
			
				|  |  | -                        @mousewheel.native.prevent
 | 
	
		
			
				|  |  | -                        v-model.trim="domain.min"></el-input>
 | 
	
		
			
				|  |  | +              <el-input
 | 
	
		
			
				|  |  | +                type="number"
 | 
	
		
			
				|  |  | +                v-number
 | 
	
		
			
				|  |  | +                :disabled="domain.disabled"
 | 
	
		
			
				|  |  | +                @mousewheel.native.prevent
 | 
	
		
			
				|  |  | +                v-model.trim="domain.min"
 | 
	
		
			
				|  |  | +              ></el-input>
 | 
	
		
			
				|  |  |              </el-form-item>
 | 
	
		
			
				|  |  |              <el-form-item>
 | 
	
		
			
				|  |  | -              <el-input type="number"
 | 
	
		
			
				|  |  | -                        @mousewheel.native.prevent
 | 
	
		
			
				|  |  | -                        v-number
 | 
	
		
			
				|  |  | -                        :disabled="domain.disabled"
 | 
	
		
			
				|  |  | -                        v-model.trim="domain.max"></el-input>
 | 
	
		
			
				|  |  | +              <el-input
 | 
	
		
			
				|  |  | +                type="number"
 | 
	
		
			
				|  |  | +                @mousewheel.native.prevent
 | 
	
		
			
				|  |  | +                v-number
 | 
	
		
			
				|  |  | +                :disabled="domain.disabled"
 | 
	
		
			
				|  |  | +                v-model.trim="domain.max"
 | 
	
		
			
				|  |  | +              ></el-input>
 | 
	
		
			
				|  |  |              </el-form-item>
 | 
	
		
			
				|  |  |              <el-form-item>
 | 
	
		
			
				|  |  | -              <el-input style="width: auto;"
 | 
	
		
			
				|  |  | -                        type="number"
 | 
	
		
			
				|  |  | -                        @mousewheel.native.prevent
 | 
	
		
			
				|  |  | -                        :disabled="domain.disabled"
 | 
	
		
			
				|  |  | -                        v-model.trim="domain.money"></el-input>
 | 
	
		
			
				|  |  | -              <el-button v-if="index != 0 && !domain.disabled"
 | 
	
		
			
				|  |  | -                         @click.prevent="removeDomain(result, domain)">删除</el-button>
 | 
	
		
			
				|  |  | +              <el-input
 | 
	
		
			
				|  |  | +                style="width: auto"
 | 
	
		
			
				|  |  | +                type="number"
 | 
	
		
			
				|  |  | +                @mousewheel.native.prevent
 | 
	
		
			
				|  |  | +                :disabled="domain.disabled"
 | 
	
		
			
				|  |  | +                v-model.trim="domain.money"
 | 
	
		
			
				|  |  | +              ></el-input>
 | 
	
		
			
				|  |  | +              <el-button
 | 
	
		
			
				|  |  | +                v-if="index != 0 && !domain.disabled"
 | 
	
		
			
				|  |  | +                @click.prevent="removeDomain(result, domain)"
 | 
	
		
			
				|  |  | +                >删除</el-button
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  |              </el-form-item>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  | -          <div class="el-form-item__error"
 | 
	
		
			
				|  |  | -               v-if="result.errorText">{{ result.errorText }}</div>
 | 
	
		
			
				|  |  | +          <div class="el-form-item__error" v-if="result.errorText">
 | 
	
		
			
				|  |  | +            {{ result.errorText }}
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |          <el-form-item class="add">
 | 
	
		
			
				|  |  | -          <el-button icon="el-icon-plus"
 | 
	
		
			
				|  |  | -                     @click="addDomain(result)">新增梯度</el-button>
 | 
	
		
			
				|  |  | +          <el-button icon="el-icon-plus" @click="addDomain(result)"
 | 
	
		
			
				|  |  | +            >新增梯度</el-button
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        <el-form-item prop="vipGroupCategoryIdList"
 | 
	
		
			
				|  |  | -                      label="课程类型"
 | 
	
		
			
				|  |  | -                      style="width: 500px">
 | 
	
		
			
				|  |  | -          <el-select style="width: 100% !important;"
 | 
	
		
			
				|  |  | -                     v-model.trim="result.vipGroupCategoryIdList"
 | 
	
		
			
				|  |  | -                     filterable
 | 
	
		
			
				|  |  | -                     clearable
 | 
	
		
			
				|  |  | -                     multiple
 | 
	
		
			
				|  |  | -                     placeholder="请选择">
 | 
	
		
			
				|  |  | -            <el-option v-for="item in selects.vipGroupCategory"
 | 
	
		
			
				|  |  | -                       :key="item.id"
 | 
	
		
			
				|  |  | -                       :label="item.name"
 | 
	
		
			
				|  |  | -                       :value="item.id.toString()"> </el-option>
 | 
	
		
			
				|  |  | -          </el-select>
 | 
	
		
			
				|  |  | +        <el-form-item
 | 
	
		
			
				|  |  | +          prop="vipGroupCategoryIdList"
 | 
	
		
			
				|  |  | +          label="课程类型"
 | 
	
		
			
				|  |  | +          style="width: 500px"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          <select-all
 | 
	
		
			
				|  |  | +            style="width: 100% !important"
 | 
	
		
			
				|  |  | +            v-model.trim="result.vipGroupCategoryIdList"
 | 
	
		
			
				|  |  | +            filterable
 | 
	
		
			
				|  |  | +            clearable
 | 
	
		
			
				|  |  | +            multiple
 | 
	
		
			
				|  |  | +            placeholder="请选择"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <!-- <el-select > -->
 | 
	
		
			
				|  |  | +            <el-option
 | 
	
		
			
				|  |  | +              v-for="item in selects.vipGroupCategory"
 | 
	
		
			
				|  |  | +              :key="item.id"
 | 
	
		
			
				|  |  | +              :label="item.name"
 | 
	
		
			
				|  |  | +              :value="item.id.toString()"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +            </el-option>
 | 
	
		
			
				|  |  | +          </select-all>
 | 
	
		
			
				|  |  | +          <!-- </el-select> -->
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        <el-form-item prop="organId"
 | 
	
		
			
				|  |  | -                      label="所属分部"
 | 
	
		
			
				|  |  | -                      style="width: 500px">
 | 
	
		
			
				|  |  | -          <el-select style="width: 100% !important;"
 | 
	
		
			
				|  |  | -                     filterable
 | 
	
		
			
				|  |  | -                     clearable
 | 
	
		
			
				|  |  | -                     @change="onSubjectChange('search')"
 | 
	
		
			
				|  |  | -                     v-model.trim="result.organId"
 | 
	
		
			
				|  |  | -                     placeholder="请选择">
 | 
	
		
			
				|  |  | -            <el-option v-for="item in selects.branchs"
 | 
	
		
			
				|  |  | -                       :key="item.id"
 | 
	
		
			
				|  |  | -                       :label="item.name"
 | 
	
		
			
				|  |  | -                       :value="item.id.toString()"> </el-option>
 | 
	
		
			
				|  |  | +        <el-form-item prop="organId" label="所属分部" style="width: 500px">
 | 
	
		
			
				|  |  | +          <el-select
 | 
	
		
			
				|  |  | +            style="width: 100% !important"
 | 
	
		
			
				|  |  | +            filterable
 | 
	
		
			
				|  |  | +            clearable
 | 
	
		
			
				|  |  | +            @change="onSubjectChange('search')"
 | 
	
		
			
				|  |  | +            v-model.trim="result.organId"
 | 
	
		
			
				|  |  | +            placeholder="请选择"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <el-option
 | 
	
		
			
				|  |  | +              v-for="item in selects.branchs"
 | 
	
		
			
				|  |  | +              :key="item.id"
 | 
	
		
			
				|  |  | +              :label="item.name"
 | 
	
		
			
				|  |  | +              :value="item.id.toString()"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +            </el-option>
 | 
	
		
			
				|  |  |            </el-select>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        <el-form-item prop="subjectIds"
 | 
	
		
			
				|  |  | -                      label="所属声部"
 | 
	
		
			
				|  |  | -                      style="width: 500px">
 | 
	
		
			
				|  |  | -          <el-select style="width: 100% !important;"
 | 
	
		
			
				|  |  | -                     filterable
 | 
	
		
			
				|  |  | -                     clearable
 | 
	
		
			
				|  |  | -                     multiple
 | 
	
		
			
				|  |  | -                     @change="onSubjectChange('search')"
 | 
	
		
			
				|  |  | -                     v-model.trim="result.subjectIds"
 | 
	
		
			
				|  |  | -                     placeholder="请选择">
 | 
	
		
			
				|  |  | -            <el-option v-for="(item, i) in selects.subjects"
 | 
	
		
			
				|  |  | -                         :key="i"
 | 
	
		
			
				|  |  | -                         :label="item.name"
 | 
	
		
			
				|  |  | -                         :value="item.id.toString()"></el-option>
 | 
	
		
			
				|  |  | -          </el-select>
 | 
	
		
			
				|  |  | +        <el-form-item prop="subjectIds" label="所属声部" style="width: 500px">
 | 
	
		
			
				|  |  | +          <select-all
 | 
	
		
			
				|  |  | +            style="width: 100% !important"
 | 
	
		
			
				|  |  | +            filterable
 | 
	
		
			
				|  |  | +            clearable
 | 
	
		
			
				|  |  | +            multiple
 | 
	
		
			
				|  |  | +            @change="onSubjectChange('search')"
 | 
	
		
			
				|  |  | +            v-model.trim="result.subjectIds"
 | 
	
		
			
				|  |  | +            placeholder="请选择"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <el-option
 | 
	
		
			
				|  |  | +              v-for="(item, i) in selects.subjects"
 | 
	
		
			
				|  |  | +              :key="i"
 | 
	
		
			
				|  |  | +              :label="item.name"
 | 
	
		
			
				|  |  | +              :value="item.id.toString()"
 | 
	
		
			
				|  |  | +            ></el-option>
 | 
	
		
			
				|  |  | +          </select-all>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        <el-form-item prop="teacherId"
 | 
	
		
			
				|  |  | -                      label="老师"
 | 
	
		
			
				|  |  | -                      style="width: 500px">
 | 
	
		
			
				|  |  | -          <el-select style="width: 80% !important;"
 | 
	
		
			
				|  |  | -                     v-model.trim="result.teacherId"
 | 
	
		
			
				|  |  | -                     filterable
 | 
	
		
			
				|  |  | -                     clearable
 | 
	
		
			
				|  |  | -                     multiple
 | 
	
		
			
				|  |  | -                     placeholder="请选择">
 | 
	
		
			
				|  |  | -            <el-option v-for="(item, index) in teacherList"
 | 
	
		
			
				|  |  | -                       :key="index"
 | 
	
		
			
				|  |  | -                       :label="item.label"
 | 
	
		
			
				|  |  | -                       :value="item.value.toString()"> </el-option>
 | 
	
		
			
				|  |  | -          </el-select>
 | 
	
		
			
				|  |  | -          <el-button @click="onCheckAll">全选</el-button>
 | 
	
		
			
				|  |  | +        <el-form-item prop="teacherId" label="老师" style="width: 500px">
 | 
	
		
			
				|  |  | +          <select-all
 | 
	
		
			
				|  |  | +            style="width: 100% !important"
 | 
	
		
			
				|  |  | +            v-model.trim="result.teacherId"
 | 
	
		
			
				|  |  | +            filterable
 | 
	
		
			
				|  |  | +            clearable
 | 
	
		
			
				|  |  | +            multiple
 | 
	
		
			
				|  |  | +            placeholder="请选择"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <el-option
 | 
	
		
			
				|  |  | +              v-for="(item, index) in teacherList"
 | 
	
		
			
				|  |  | +              :key="index"
 | 
	
		
			
				|  |  | +              :label="item.label"
 | 
	
		
			
				|  |  | +              :value="item.value.toString()"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +            </el-option>
 | 
	
		
			
				|  |  | +          </select-all>
 | 
	
		
			
				|  |  | +          <!-- <el-button @click="onCheckAll">全选</el-button> -->
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |          <el-form-item>
 | 
	
		
			
				|  |  |            <el-button @click="resetForm">重置</el-button>
 | 
	
		
			
				|  |  | -          <el-button type="primary"
 | 
	
		
			
				|  |  | -                     @click="onSubmit('form')">立即{{ pageType == "create" ? '创建' : '修改' }}</el-button>
 | 
	
		
			
				|  |  | +          <el-button type="primary" @click="onSubmit('form')"
 | 
	
		
			
				|  |  | +            >立即{{ pageType == "create" ? "创建" : "修改" }}</el-button
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |        </el-form>
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  | -import { getEmployeeOrgan, getSoundTree } from '@/api/buildTeam'
 | 
	
		
			
				|  |  | -import { courseScheduleRewardsQuery, getUserRole, courseScheduleRewardsAdd, courseScheduleRewardsUpdate, findTeacherByOrganId } from '@/api/systemManage'
 | 
	
		
			
				|  |  | -import { vipGroupCategory } from "@/api/vipSeting"
 | 
	
		
			
				|  |  | +import { getEmployeeOrgan, getSoundTree } from "@/api/buildTeam";
 | 
	
		
			
				|  |  | +import {
 | 
	
		
			
				|  |  | +  courseScheduleRewardsQuery,
 | 
	
		
			
				|  |  | +  getUserRole,
 | 
	
		
			
				|  |  | +  courseScheduleRewardsAdd,
 | 
	
		
			
				|  |  | +  courseScheduleRewardsUpdate,
 | 
	
		
			
				|  |  | +  findTeacherByOrganId,
 | 
	
		
			
				|  |  | +} from "@/api/systemManage";
 | 
	
		
			
				|  |  | +import { vipGroupCategory } from "@/api/vipSeting";
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  | -  name: 'branchActiveOperation',
 | 
	
		
			
				|  |  | -  data () {
 | 
	
		
			
				|  |  | +  name: "branchActiveOperation",
 | 
	
		
			
				|  |  | +  data() {
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  |        organId: null,
 | 
	
		
			
				|  |  |        pageType: this.$route.query.type,
 | 
	
	
		
			
				|  | @@ -157,224 +188,279 @@ export default {
 | 
	
		
			
				|  |  |          organId: null,
 | 
	
		
			
				|  |  |          teacherId: null,
 | 
	
		
			
				|  |  |          subjectIds: null,
 | 
	
		
			
				|  |  | -        courseScheduleType: 'VIP',
 | 
	
		
			
				|  |  | -        domains: [{
 | 
	
		
			
				|  |  | -          min: null,
 | 
	
		
			
				|  |  | -          max: null,
 | 
	
		
			
				|  |  | -          money: null,
 | 
	
		
			
				|  |  | -          disabled: false,
 | 
	
		
			
				|  |  | -          key: Date.now()
 | 
	
		
			
				|  |  | -        }],
 | 
	
		
			
				|  |  | -        errorText: null
 | 
	
		
			
				|  |  | +        courseScheduleType: "VIP",
 | 
	
		
			
				|  |  | +        domains: [
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            min: null,
 | 
	
		
			
				|  |  | +            max: null,
 | 
	
		
			
				|  |  | +            money: null,
 | 
	
		
			
				|  |  | +            disabled: false,
 | 
	
		
			
				|  |  | +            key: Date.now(),
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        errorText: null,
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  |        rules: {
 | 
	
		
			
				|  |  | -        name: [{ required: true, message: '请输入活动名称', trigger: 'blur' }],
 | 
	
		
			
				|  |  | -        rewardMode: [{ required: true, message: '请选择活动类型', trigger: 'change' }],
 | 
	
		
			
				|  |  | -        vipGroupCategoryIdList: [{ type: 'array', required: true, message: '请选择课程类型', trigger: 'change' }],
 | 
	
		
			
				|  |  | -        organId: [{ required: true, message: '请选择所属分部', trigger: 'change' }],
 | 
	
		
			
				|  |  | -        subjectIds: [{ type: 'array', required: true, message: '请选择所属声部', trigger: 'change' }],
 | 
	
		
			
				|  |  | -        teacherId: [{ type: 'array', required: true, message: '请选择老师', trigger: 'change' }]
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +        name: [{ required: true, message: "请输入活动名称", trigger: "blur" }],
 | 
	
		
			
				|  |  | +        rewardMode: [
 | 
	
		
			
				|  |  | +          { required: true, message: "请选择活动类型", trigger: "change" },
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        vipGroupCategoryIdList: [
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            type: "array",
 | 
	
		
			
				|  |  | +            required: true,
 | 
	
		
			
				|  |  | +            message: "请选择课程类型",
 | 
	
		
			
				|  |  | +            trigger: "change",
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        organId: [
 | 
	
		
			
				|  |  | +          { required: true, message: "请选择所属分部", trigger: "change" },
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        subjectIds: [
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            type: "array",
 | 
	
		
			
				|  |  | +            required: true,
 | 
	
		
			
				|  |  | +            message: "请选择所属声部",
 | 
	
		
			
				|  |  | +            trigger: "change",
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        teacherId: [
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            type: "array",
 | 
	
		
			
				|  |  | +            required: true,
 | 
	
		
			
				|  |  | +            message: "请选择老师",
 | 
	
		
			
				|  |  | +            trigger: "change",
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  | -  mounted () {
 | 
	
		
			
				|  |  | -    this.__init()
 | 
	
		
			
				|  |  | +  mounted() {
 | 
	
		
			
				|  |  | +    this.__init();
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    methods: {
 | 
	
		
			
				|  |  | -    async __init () {
 | 
	
		
			
				|  |  | -      this.$refs.form.resetFields()
 | 
	
		
			
				|  |  | +    async __init() {
 | 
	
		
			
				|  |  | +      this.$refs.form.resetFields();
 | 
	
		
			
				|  |  |        // 获取类型
 | 
	
		
			
				|  |  | -      this.$store.dispatch('setVipGroupCategory')
 | 
	
		
			
				|  |  | +      this.$store.dispatch("setVipGroupCategory");
 | 
	
		
			
				|  |  |        // 获取分部
 | 
	
		
			
				|  |  | -      this.$store.dispatch('setBranchs')
 | 
	
		
			
				|  |  | +      this.$store.dispatch("setBranchs");
 | 
	
		
			
				|  |  |        // 获取声部
 | 
	
		
			
				|  |  | -      this.$store.dispatch('setSubjects')
 | 
	
		
			
				|  |  | +      this.$store.dispatch("setSubjects");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      if (this.pageType == 'update') {
 | 
	
		
			
				|  |  | -        let courseScheduleRewards = await courseScheduleRewardsQuery({ id: this.id })
 | 
	
		
			
				|  |  | +      if (this.pageType == "update") {
 | 
	
		
			
				|  |  | +        let courseScheduleRewards = await courseScheduleRewardsQuery({
 | 
	
		
			
				|  |  | +          id: this.id,
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  |          if (courseScheduleRewards.code == 200) {
 | 
	
		
			
				|  |  | -          let data = courseScheduleRewards.data
 | 
	
		
			
				|  |  | +          let data = courseScheduleRewards.data;
 | 
	
		
			
				|  |  |            this.$nextTick(() => {
 | 
	
		
			
				|  |  | -            this.result.organId = data.organId
 | 
	
		
			
				|  |  | -            this.result.subjectIds = data.subjectIds ? data.subjectIds.split(',') : data.subjectIds
 | 
	
		
			
				|  |  | -            this.onSubjectChange('update')
 | 
	
		
			
				|  |  | +            this.result.organId = data.organId;
 | 
	
		
			
				|  |  | +            this.result.subjectIds = data.subjectIds
 | 
	
		
			
				|  |  | +              ? data.subjectIds.split(",")
 | 
	
		
			
				|  |  | +              : data.subjectIds;
 | 
	
		
			
				|  |  | +            this.onSubjectChange("update");
 | 
	
		
			
				|  |  |              this.result = {
 | 
	
		
			
				|  |  |                id: data.id,
 | 
	
		
			
				|  |  |                name: data.name,
 | 
	
		
			
				|  |  |                rewardMode: data.rewardMode,
 | 
	
		
			
				|  |  |                organId: data.organId,
 | 
	
		
			
				|  |  | -              subjectIds: data.subjectIds ? data.subjectIds.split(',') : data.subjectIds,
 | 
	
		
			
				|  |  | -              vipGroupCategoryIdList: data.vipGroupCategoryIdList ? data.vipGroupCategoryIdList.split(',') : data.vipGroupCategoryIdList,
 | 
	
		
			
				|  |  | -              teacherId: data.teacherId ? data.teacherId.split(',') : data.teacherId,
 | 
	
		
			
				|  |  | +              subjectIds: data.subjectIds
 | 
	
		
			
				|  |  | +                ? data.subjectIds.split(",")
 | 
	
		
			
				|  |  | +                : data.subjectIds,
 | 
	
		
			
				|  |  | +              vipGroupCategoryIdList: data.vipGroupCategoryIdList
 | 
	
		
			
				|  |  | +                ? data.vipGroupCategoryIdList.split(",")
 | 
	
		
			
				|  |  | +                : data.vipGroupCategoryIdList,
 | 
	
		
			
				|  |  | +              teacherId: data.teacherId
 | 
	
		
			
				|  |  | +                ? data.teacherId.split(",")
 | 
	
		
			
				|  |  | +                : data.teacherId,
 | 
	
		
			
				|  |  |                courseScheduleType: data.courseScheduleType,
 | 
	
		
			
				|  |  | -              domains: data.rewardsRulesJson ?
 | 
	
		
			
				|  |  | -                JSON.parse(data.rewardsRulesJson) : [{
 | 
	
		
			
				|  |  | -                  min: null,
 | 
	
		
			
				|  |  | -                  max: null,
 | 
	
		
			
				|  |  | -                  money: null,
 | 
	
		
			
				|  |  | -                  disabled: false,
 | 
	
		
			
				|  |  | -                  key: Date.now()
 | 
	
		
			
				|  |  | -                }],
 | 
	
		
			
				|  |  | -              errorText: null
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | +              domains: data.rewardsRulesJson
 | 
	
		
			
				|  |  | +                ? JSON.parse(data.rewardsRulesJson)
 | 
	
		
			
				|  |  | +                : [
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                      min: null,
 | 
	
		
			
				|  |  | +                      max: null,
 | 
	
		
			
				|  |  | +                      money: null,
 | 
	
		
			
				|  |  | +                      disabled: false,
 | 
	
		
			
				|  |  | +                      key: Date.now(),
 | 
	
		
			
				|  |  | +                    },
 | 
	
		
			
				|  |  | +                  ],
 | 
	
		
			
				|  |  | +              errorText: null,
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        } else {
 | 
	
		
			
				|  |  | -        this.resetForm()
 | 
	
		
			
				|  |  | +        this.resetForm();
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    async onSubjectChange (type) {
 | 
	
		
			
				|  |  | -      let organId = this.result.organId
 | 
	
		
			
				|  |  | -      let subject = this.result.subjectIds
 | 
	
		
			
				|  |  | +    async onSubjectChange(type) {
 | 
	
		
			
				|  |  | +      let organId = this.result.organId;
 | 
	
		
			
				|  |  | +      let subject = this.result.subjectIds;
 | 
	
		
			
				|  |  |        // 判断是否有分部和声部
 | 
	
		
			
				|  |  | -      if (subject.length <= 0 || !organId || organId == '') {
 | 
	
		
			
				|  |  | -        this.teacherList = []
 | 
	
		
			
				|  |  | -        this.result.teacherId = []
 | 
	
		
			
				|  |  | -        return
 | 
	
		
			
				|  |  | +      if (subject.length <= 0 || !organId || organId == "") {
 | 
	
		
			
				|  |  | +        this.teacherList = [];
 | 
	
		
			
				|  |  | +        this.result.teacherId = [];
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      let subjectIds = Object.assign([], subject).join(',')
 | 
	
		
			
				|  |  | -      await findTeacherByOrganId({ organId: organId, subjectIds: subjectIds, jobNature: 'FULL_TIME' }).then(res => {
 | 
	
		
			
				|  |  | +      let subjectIds = Object.assign([], subject).join(",");
 | 
	
		
			
				|  |  | +      await findTeacherByOrganId({
 | 
	
		
			
				|  |  | +        organId: organId,
 | 
	
		
			
				|  |  | +        subjectIds: subjectIds,
 | 
	
		
			
				|  |  | +        jobNature: "FULL_TIME",
 | 
	
		
			
				|  |  | +      }).then((res) => {
 | 
	
		
			
				|  |  |          if (res.code == 200) {
 | 
	
		
			
				|  |  | -          if (type != 'update') {
 | 
	
		
			
				|  |  | -            this.teacherList = []
 | 
	
		
			
				|  |  | -            this.result.teacherId = []
 | 
	
		
			
				|  |  | +          if (type != "update") {
 | 
	
		
			
				|  |  | +            this.teacherList = [];
 | 
	
		
			
				|  |  | +            this.result.teacherId = [];
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          res.data.forEach(item => {
 | 
	
		
			
				|  |  | +          res.data.forEach((item) => {
 | 
	
		
			
				|  |  |              this.teacherList.push({
 | 
	
		
			
				|  |  |                label: item.realName,
 | 
	
		
			
				|  |  | -              value: item.id
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | +              value: item.id,
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onCheckAll () { // 全选老师
 | 
	
		
			
				|  |  | +    onCheckAll() {
 | 
	
		
			
				|  |  | +      // 全选老师
 | 
	
		
			
				|  |  |        if (this.teacherList.length <= 0) {
 | 
	
		
			
				|  |  | -        return
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      this.result.teacherId = []
 | 
	
		
			
				|  |  | -      this.teacherList.forEach(item => {
 | 
	
		
			
				|  |  | -        this.result.teacherId.push(item.value.toString())
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | +      this.result.teacherId = [];
 | 
	
		
			
				|  |  | +      this.teacherList.forEach((item) => {
 | 
	
		
			
				|  |  | +        this.result.teacherId.push(item.value.toString());
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onSubmit (formName) {
 | 
	
		
			
				|  |  | +    onSubmit(formName) {
 | 
	
		
			
				|  |  |        this.$refs[formName].validate((valid) => {
 | 
	
		
			
				|  |  | -        let result = JSON.parse(JSON.stringify(this.result))
 | 
	
		
			
				|  |  | -        this.addDomain(result, true)
 | 
	
		
			
				|  |  | +        let result = JSON.parse(JSON.stringify(this.result));
 | 
	
		
			
				|  |  | +        this.addDomain(result, true);
 | 
	
		
			
				|  |  |          if (valid && !result.errorText) {
 | 
	
		
			
				|  |  |            // 如果奖励金额为空时,默认为0
 | 
	
		
			
				|  |  | -          result.domains.forEach(item => {
 | 
	
		
			
				|  |  | +          result.domains.forEach((item) => {
 | 
	
		
			
				|  |  |              if (!item.money) {
 | 
	
		
			
				|  |  | -              item.money = 0
 | 
	
		
			
				|  |  | +              item.money = 0;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  |            let params = {
 | 
	
		
			
				|  |  |              organId: result.organId,
 | 
	
		
			
				|  |  | -            vipGroupCategoryIdList: result.vipGroupCategoryIdList.join(','),
 | 
	
		
			
				|  |  | -            teacherId: result.teacherId.join(','),
 | 
	
		
			
				|  |  | +            vipGroupCategoryIdList: result.vipGroupCategoryIdList.join(","),
 | 
	
		
			
				|  |  | +            teacherId: result.teacherId.join(","),
 | 
	
		
			
				|  |  |              courseScheduleType: result.courseScheduleType,
 | 
	
		
			
				|  |  |              rewardMode: result.rewardMode,
 | 
	
		
			
				|  |  | -            subjectIds: result.subjectIds.join(','),
 | 
	
		
			
				|  |  | +            subjectIds: result.subjectIds.join(","),
 | 
	
		
			
				|  |  |              rewardsRulesJson: JSON.stringify(result.domains),
 | 
	
		
			
				|  |  | -            name: result.name
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -          if (this.pageType == 'update') {
 | 
	
		
			
				|  |  | -            params.id = result.id
 | 
	
		
			
				|  |  | -            courseScheduleRewardsUpdate(params).then(res => {
 | 
	
		
			
				|  |  | -              this.messageTips('修改', res)
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -          } else if (this.pageType == 'create') {
 | 
	
		
			
				|  |  | +            name: result.name,
 | 
	
		
			
				|  |  | +          };
 | 
	
		
			
				|  |  | +          if (this.pageType == "update") {
 | 
	
		
			
				|  |  | +            params.id = result.id;
 | 
	
		
			
				|  |  | +            courseScheduleRewardsUpdate(params).then((res) => {
 | 
	
		
			
				|  |  | +              this.messageTips("修改", res);
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +          } else if (this.pageType == "create") {
 | 
	
		
			
				|  |  |              // return false
 | 
	
		
			
				|  |  | -            courseScheduleRewardsAdd(params).then(res => {
 | 
	
		
			
				|  |  | -              this.messageTips('添加', res)
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +            courseScheduleRewardsAdd(params).then((res) => {
 | 
	
		
			
				|  |  | +              this.messageTips("添加", res);
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |            return false;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    messageTips (title, res) {
 | 
	
		
			
				|  |  | +    messageTips(title, res) {
 | 
	
		
			
				|  |  |        if (res.code == 200) {
 | 
	
		
			
				|  |  | -        this.$message.success('修改成功')
 | 
	
		
			
				|  |  | -        this.$store.dispatch('delVisitedViews', this.$route)
 | 
	
		
			
				|  |  | -        this.$router.push({ path: '/vipClassSet/branchActive', query: { rules: this.pageInfo, searchForm: this.searchForm } })
 | 
	
		
			
				|  |  | +        this.$message.success("修改成功");
 | 
	
		
			
				|  |  | +        this.$store.dispatch("delVisitedViews", this.$route);
 | 
	
		
			
				|  |  | +        this.$router.push({
 | 
	
		
			
				|  |  | +          path: "/vipClassSet/branchActive",
 | 
	
		
			
				|  |  | +          query: { rules: this.pageInfo, searchForm: this.searchForm },
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  |        } else {
 | 
	
		
			
				|  |  | -        this.$message.error(res.msg)
 | 
	
		
			
				|  |  | +        this.$message.error(res.msg);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onCancel () {
 | 
	
		
			
				|  |  | -      this.$store.dispatch('delVisitedViews', this.$route)
 | 
	
		
			
				|  |  | -      this.$router.push({ path: '/vipClassSet/branchActive', query: { rules: this.pageInfo, searchForm: this.searchForm } })
 | 
	
		
			
				|  |  | +    onCancel() {
 | 
	
		
			
				|  |  | +      this.$store.dispatch("delVisitedViews", this.$route);
 | 
	
		
			
				|  |  | +      this.$router.push({
 | 
	
		
			
				|  |  | +        path: "/vipClassSet/branchActive",
 | 
	
		
			
				|  |  | +        query: { rules: this.pageInfo, searchForm: this.searchForm },
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    resetForm () {
 | 
	
		
			
				|  |  | -      this.teacherList = []
 | 
	
		
			
				|  |  | +    resetForm() {
 | 
	
		
			
				|  |  | +      this.teacherList = [];
 | 
	
		
			
				|  |  |        this.result = {
 | 
	
		
			
				|  |  |          name: null,
 | 
	
		
			
				|  |  |          rewardMode: null,
 | 
	
		
			
				|  |  |          organId: null,
 | 
	
		
			
				|  |  |          subjectIds: [],
 | 
	
		
			
				|  |  |          teacherId: [],
 | 
	
		
			
				|  |  | -        courseScheduleType: 'VIP',
 | 
	
		
			
				|  |  | -        domains: [{
 | 
	
		
			
				|  |  | -          min: null,
 | 
	
		
			
				|  |  | -          max: null,
 | 
	
		
			
				|  |  | -          money: null,
 | 
	
		
			
				|  |  | -          disabled: false,
 | 
	
		
			
				|  |  | -          key: Date.now()
 | 
	
		
			
				|  |  | -        }],
 | 
	
		
			
				|  |  | -        errorText: null
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      this.$refs.form.resetFields()
 | 
	
		
			
				|  |  | +        courseScheduleType: "VIP",
 | 
	
		
			
				|  |  | +        domains: [
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            min: null,
 | 
	
		
			
				|  |  | +            max: null,
 | 
	
		
			
				|  |  | +            money: null,
 | 
	
		
			
				|  |  | +            disabled: false,
 | 
	
		
			
				|  |  | +            key: Date.now(),
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        errorText: null,
 | 
	
		
			
				|  |  | +      };
 | 
	
		
			
				|  |  | +      this.$refs.form.resetFields();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    removeDomain (form, item) {
 | 
	
		
			
				|  |  | -      var index = form.domains.indexOf(item)
 | 
	
		
			
				|  |  | +    removeDomain(form, item) {
 | 
	
		
			
				|  |  | +      var index = form.domains.indexOf(item);
 | 
	
		
			
				|  |  |        if (index !== -1) {
 | 
	
		
			
				|  |  | -        form.domains.splice(index, 1)
 | 
	
		
			
				|  |  | +        form.domains.splice(index, 1);
 | 
	
		
			
				|  |  |          // 取消最后一个数据的禁用状态
 | 
	
		
			
				|  |  | -        form.domains[form.domains.length - 1].disabled = false
 | 
	
		
			
				|  |  | -        form.errorText = null
 | 
	
		
			
				|  |  | +        form.domains[form.domains.length - 1].disabled = false;
 | 
	
		
			
				|  |  | +        form.errorText = null;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    addDomain (form, checked) {
 | 
	
		
			
				|  |  | +    addDomain(form, checked) {
 | 
	
		
			
				|  |  |        // debugger
 | 
	
		
			
				|  |  |        let domains = form.domains,
 | 
	
		
			
				|  |  |          singleLength = domains.length,
 | 
	
		
			
				|  |  | -        lastDate = domains[singleLength - 1] // 获取倒数一个对象
 | 
	
		
			
				|  |  | +        lastDate = domains[singleLength - 1]; // 获取倒数一个对象
 | 
	
		
			
				|  |  |        if (!lastDate.min) {
 | 
	
		
			
				|  |  | -        form.errorText = '最小值不能为空'
 | 
	
		
			
				|  |  | -        return
 | 
	
		
			
				|  |  | +        form.errorText = "最小值不能为空";
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        if (singleLength <= 1 && parseInt(lastDate.min) <= 0) {
 | 
	
		
			
				|  |  | -        form.errorText = '最小值不能小于0'
 | 
	
		
			
				|  |  | -        return
 | 
	
		
			
				|  |  | -      } else if (singleLength > 1 && parseInt(lastDate.min) <= parseInt(domains[singleLength - 2].max)) {
 | 
	
		
			
				|  |  | -        form.errorText = '最小值不能小于或等于上一个梯度的最大值'
 | 
	
		
			
				|  |  | -        return
 | 
	
		
			
				|  |  | +        form.errorText = "最小值不能小于0";
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  | +      } else if (
 | 
	
		
			
				|  |  | +        singleLength > 1 &&
 | 
	
		
			
				|  |  | +        parseInt(lastDate.min) <= parseInt(domains[singleLength - 2].max)
 | 
	
		
			
				|  |  | +      ) {
 | 
	
		
			
				|  |  | +        form.errorText = "最小值不能小于或等于上一个梯度的最大值";
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        if (!parseInt(lastDate.max)) {
 | 
	
		
			
				|  |  | -        form.errorText = '最大值不能为空'
 | 
	
		
			
				|  |  | -        return
 | 
	
		
			
				|  |  | +        form.errorText = "最大值不能为空";
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  |        } else if (parseInt(lastDate.max) <= parseInt(lastDate.min)) {
 | 
	
		
			
				|  |  | -        form.errorText = '最大值应大于该梯度的最小值'
 | 
	
		
			
				|  |  | -        return
 | 
	
		
			
				|  |  | +        form.errorText = "最大值应大于该梯度的最小值";
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      form.errorText = null
 | 
	
		
			
				|  |  | +      form.errorText = null;
 | 
	
		
			
				|  |  |        if (!checked) {
 | 
	
		
			
				|  |  | -        lastDate.disabled = true
 | 
	
		
			
				|  |  | +        lastDate.disabled = true;
 | 
	
		
			
				|  |  |          domains.push({
 | 
	
		
			
				|  |  |            min: null,
 | 
	
		
			
				|  |  |            max: null,
 | 
	
		
			
				|  |  |            disabled: false,
 | 
	
		
			
				|  |  | -          key: Date.now()
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | +          key: Date.now(),
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  <style lang="scss" scoped>
 | 
	
		
			
				|  |  |  .el-button--primary {
 | 
	
	
		
			
				|  | @@ -445,4 +531,4 @@ export default {
 | 
	
		
			
				|  |  |    text-align: center;
 | 
	
		
			
				|  |  |    margin-right: 10px;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -</style>
 | 
	
		
			
				|  |  | +</style>
 |