|  | @@ -1,88 +1,114 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <div>
 | 
	
		
			
				|  |  | -    <el-alert title="课程信息设置"
 | 
	
		
			
				|  |  | -              :closable="false"
 | 
	
		
			
				|  |  | -              class="alert"
 | 
	
		
			
				|  |  | -              v-if="paymentTypeString !== 'SPAN_GROUP_CLASS_ADJUST'"
 | 
	
		
			
				|  |  | -              type="info">
 | 
	
		
			
				|  |  | +    <el-alert
 | 
	
		
			
				|  |  | +      title="课程信息设置"
 | 
	
		
			
				|  |  | +      :closable="false"
 | 
	
		
			
				|  |  | +      class="alert"
 | 
	
		
			
				|  |  | +      v-if="paymentTypeString !== 'SPAN_GROUP_CLASS_ADJUST'"
 | 
	
		
			
				|  |  | +      type="info"
 | 
	
		
			
				|  |  | +    >
 | 
	
		
			
				|  |  |      </el-alert>
 | 
	
		
			
				|  |  | -    <userBaseinfo :form.sync="form"
 | 
	
		
			
				|  |  | -                  :isCommon="isCommon"
 | 
	
		
			
				|  |  | -                  v-if="paymentTypeString !== 'SPAN_GROUP_CLASS_ADJUST'"
 | 
	
		
			
				|  |  | -                  :isUserType="isUserType"
 | 
	
		
			
				|  |  | -                  @getCharges="getCharges"
 | 
	
		
			
				|  |  | -                  @changeActive="changeActive"
 | 
	
		
			
				|  |  | -                  :typeList="typeList"
 | 
	
		
			
				|  |  | -                  :charges="charges"
 | 
	
		
			
				|  |  | -                  :rowDetail="rowDetail"
 | 
	
		
			
				|  |  | -                  :chargeTypeName="chargeTypeName"
 | 
	
		
			
				|  |  | -                  :paymentType="paymentType"
 | 
	
		
			
				|  |  | -                  ref="base" />
 | 
	
		
			
				|  |  | +    <userBaseinfo
 | 
	
		
			
				|  |  | +      :form.sync="form"
 | 
	
		
			
				|  |  | +      :isCommon="isCommon"
 | 
	
		
			
				|  |  | +      v-if="paymentTypeString !== 'SPAN_GROUP_CLASS_ADJUST'"
 | 
	
		
			
				|  |  | +      :isUserType="isUserType"
 | 
	
		
			
				|  |  | +      @getCharges="getCharges"
 | 
	
		
			
				|  |  | +      @changeActive="changeActive"
 | 
	
		
			
				|  |  | +      :typeList="typeList"
 | 
	
		
			
				|  |  | +      :charges="charges"
 | 
	
		
			
				|  |  | +      :rowDetail="rowDetail"
 | 
	
		
			
				|  |  | +      :chargeTypeName="chargeTypeName"
 | 
	
		
			
				|  |  | +      :paymentType="paymentType"
 | 
	
		
			
				|  |  | +      ref="base"
 | 
	
		
			
				|  |  | +    />
 | 
	
		
			
				|  |  |      <template v-if="paymentTypeString === 'SPAN_GROUP_CLASS_ADJUST'">
 | 
	
		
			
				|  |  | -      <el-alert title="加课信息设置"
 | 
	
		
			
				|  |  | -                :closable="false"
 | 
	
		
			
				|  |  | -                class="alert"
 | 
	
		
			
				|  |  | -                type="info">
 | 
	
		
			
				|  |  | +      <el-alert
 | 
	
		
			
				|  |  | +        title="加课信息设置"
 | 
	
		
			
				|  |  | +        :closable="false"
 | 
	
		
			
				|  |  | +        class="alert"
 | 
	
		
			
				|  |  | +        type="info"
 | 
	
		
			
				|  |  | +      >
 | 
	
		
			
				|  |  |        </el-alert>
 | 
	
		
			
				|  |  | -      <extraClassUser :form.sync="eclassuser"
 | 
	
		
			
				|  |  | -                  ref="eclass"
 | 
	
		
			
				|  |  | -                  :isUserType="isUserType"
 | 
	
		
			
				|  |  | -                  :courseUnitPriceSettingsByType="organizationCourseUnitPriceSettingsByType"
 | 
	
		
			
				|  |  | -                  @priceChange="priceChange"
 | 
	
		
			
				|  |  | -                  :clearable="true"
 | 
	
		
			
				|  |  | -                  @moneyChange="syncAllMoney" />
 | 
	
		
			
				|  |  | +      <extraClassUser
 | 
	
		
			
				|  |  | +        :form.sync="eclassuser"
 | 
	
		
			
				|  |  | +        ref="eclass"
 | 
	
		
			
				|  |  | +        :isUserType="isUserType"
 | 
	
		
			
				|  |  | +        :courseUnitPriceSettingsByType="
 | 
	
		
			
				|  |  | +          organizationCourseUnitPriceSettingsByType
 | 
	
		
			
				|  |  | +        "
 | 
	
		
			
				|  |  | +        @priceChange="priceChange"
 | 
	
		
			
				|  |  | +        :clearable="true"
 | 
	
		
			
				|  |  | +        @moneyChange="syncAllMoney"
 | 
	
		
			
				|  |  | +      />
 | 
	
		
			
				|  |  |      </template>
 | 
	
		
			
				|  |  |      <template v-else-if="!isCommon">
 | 
	
		
			
				|  |  | -      <el-alert title="加课信息设置"
 | 
	
		
			
				|  |  | -                :closable="false"
 | 
	
		
			
				|  |  | -                class="alert"
 | 
	
		
			
				|  |  | -                type="info">
 | 
	
		
			
				|  |  | +      <el-alert
 | 
	
		
			
				|  |  | +        title="加课信息设置"
 | 
	
		
			
				|  |  | +        :closable="false"
 | 
	
		
			
				|  |  | +        class="alert"
 | 
	
		
			
				|  |  | +        type="info"
 | 
	
		
			
				|  |  | +      >
 | 
	
		
			
				|  |  |        </el-alert>
 | 
	
		
			
				|  |  | -      <extraClass :form.sync="eclass"
 | 
	
		
			
				|  |  | -                  ref="eclass"
 | 
	
		
			
				|  |  | -                  @create="addExtraClass"
 | 
	
		
			
				|  |  | -                  @remove="removeExtraClass"
 | 
	
		
			
				|  |  | -                  :isUserType="isUserType"
 | 
	
		
			
				|  |  | -                  :courseUnitPriceSettingsByType="organizationCourseUnitPriceSettingsByType"
 | 
	
		
			
				|  |  | -                  @priceChange="priceChange"
 | 
	
		
			
				|  |  | -                  :clearable="true"
 | 
	
		
			
				|  |  | -                  @moneyChange="syncAllMoney" />
 | 
	
		
			
				|  |  | +      <extraClass
 | 
	
		
			
				|  |  | +        :form.sync="eclass"
 | 
	
		
			
				|  |  | +        ref="eclass"
 | 
	
		
			
				|  |  | +        @create="addExtraClass"
 | 
	
		
			
				|  |  | +        @remove="removeExtraClass"
 | 
	
		
			
				|  |  | +        :isUserType="isUserType"
 | 
	
		
			
				|  |  | +        :courseUnitPriceSettingsByType="
 | 
	
		
			
				|  |  | +          organizationCourseUnitPriceSettingsByType
 | 
	
		
			
				|  |  | +        "
 | 
	
		
			
				|  |  | +        @priceChange="priceChange"
 | 
	
		
			
				|  |  | +        :clearable="true"
 | 
	
		
			
				|  |  | +        @moneyChange="syncAllMoney"
 | 
	
		
			
				|  |  | +      />
 | 
	
		
			
				|  |  |      </template>
 | 
	
		
			
				|  |  | -    <extraClass v-else-if="(!isCommon && eclass.length) || isCommon"
 | 
	
		
			
				|  |  | -                :form="eclass"
 | 
	
		
			
				|  |  | -                ref="eclass"
 | 
	
		
			
				|  |  | -                :isCommon="isCommon"
 | 
	
		
			
				|  |  | -                @create="addExtraClass"
 | 
	
		
			
				|  |  | -                @remove="removeExtraClass"
 | 
	
		
			
				|  |  | -                @moneyChange="syncAllMoney"
 | 
	
		
			
				|  |  | -                :courseUnitPriceSettingsByType="organizationCourseUnitPriceSettingsByType"
 | 
	
		
			
				|  |  | -                :isUserType="isUserType"
 | 
	
		
			
				|  |  | -                :isDisabled="form.leixing === '1' || form.leixing === '2' || paymentType == '0'" />
 | 
	
		
			
				|  |  | +    <extraClass
 | 
	
		
			
				|  |  | +      v-else-if="(!isCommon && eclass.length) || isCommon"
 | 
	
		
			
				|  |  | +      :form="eclass"
 | 
	
		
			
				|  |  | +      ref="eclass"
 | 
	
		
			
				|  |  | +      :isCommon="isCommon"
 | 
	
		
			
				|  |  | +      @create="addExtraClass"
 | 
	
		
			
				|  |  | +      @remove="removeExtraClass"
 | 
	
		
			
				|  |  | +      @moneyChange="syncAllMoney"
 | 
	
		
			
				|  |  | +      :courseUnitPriceSettingsByType="organizationCourseUnitPriceSettingsByType"
 | 
	
		
			
				|  |  | +      :isUserType="isUserType"
 | 
	
		
			
				|  |  | +      :isDisabled="
 | 
	
		
			
				|  |  | +        form.leixing === '1' || form.leixing === '2' || paymentType == '0'
 | 
	
		
			
				|  |  | +      "
 | 
	
		
			
				|  |  | +    />
 | 
	
		
			
				|  |  |      <template>
 | 
	
		
			
				|  |  | -      <el-alert title="缴费设置"
 | 
	
		
			
				|  |  | -                :closable="false"
 | 
	
		
			
				|  |  | -                class="alert"
 | 
	
		
			
				|  |  | -                type="info">
 | 
	
		
			
				|  |  | +      <el-alert title="缴费设置" :closable="false" class="alert" type="info">
 | 
	
		
			
				|  |  |        </el-alert>
 | 
	
		
			
				|  |  |        <el-form ref="payment" :model="payment">
 | 
	
		
			
				|  |  |          <el-form-item
 | 
	
		
			
				|  |  |            label-width="160px"
 | 
	
		
			
				|  |  |            label="缴费方式"
 | 
	
		
			
				|  |  |            prop="paymentPattern"
 | 
	
		
			
				|  |  | -          :rules="[{required: true, message: '请选择缴费方式', trigger: 'change'}]"
 | 
	
		
			
				|  |  | +          :rules="[
 | 
	
		
			
				|  |  | +            { required: true, message: '请选择缴费方式', trigger: 'change' },
 | 
	
		
			
				|  |  | +          ]"
 | 
	
		
			
				|  |  |          >
 | 
	
		
			
				|  |  | -          <el-select style="width: 100%!important;" v-model="payment.paymentPattern" placeholder="请选择缴费方式">
 | 
	
		
			
				|  |  | +          <el-select
 | 
	
		
			
				|  |  | +            style="width: 100% !important"
 | 
	
		
			
				|  |  | +            v-model="payment.paymentPattern"
 | 
	
		
			
				|  |  | +            placeholder="请选择缴费方式"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  |              <el-option
 | 
	
		
			
				|  |  |                v-for="item in paymentPatternTypeOptions"
 | 
	
		
			
				|  |  |                :key="item.value"
 | 
	
		
			
				|  |  |                :label="item.label"
 | 
	
		
			
				|  |  | -              :value="item.value">
 | 
	
		
			
				|  |  | +              :value="item.value"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  |              </el-option>
 | 
	
		
			
				|  |  |            </el-select>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |        </el-form>
 | 
	
		
			
				|  |  | -      <template v-if="isMulticycle && paymentTypeString !== 'SPAN_GROUP_CLASS_ADJUST'">
 | 
	
		
			
				|  |  | -        <el-collapse :value="collapse" @change="collapseChange" >
 | 
	
		
			
				|  |  | +      <template
 | 
	
		
			
				|  |  | +        v-if="isMulticycle && paymentTypeString !== 'SPAN_GROUP_CLASS_ADJUST'"
 | 
	
		
			
				|  |  | +      >
 | 
	
		
			
				|  |  | +        <el-collapse :value="collapse" @change="collapseChange">
 | 
	
		
			
				|  |  |            <el-collapse-item
 | 
	
		
			
				|  |  |              v-for="(item, index) in cycles"
 | 
	
		
			
				|  |  |              :key="index"
 | 
	
	
		
			
				|  | @@ -90,8 +116,12 @@
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  |              <template slot="title">
 | 
	
		
			
				|  |  |                <div class="collapse-title">
 | 
	
		
			
				|  |  | -                <span>缴费周期 {{index + 1}}</span>
 | 
	
		
			
				|  |  | -                <i v-if="cycles.length > 1" class="el-icon-circle-close" @click.stop="removeCycle(index)"></i>
 | 
	
		
			
				|  |  | +                <span>缴费周期 {{ index + 1 }}</span>
 | 
	
		
			
				|  |  | +                <i
 | 
	
		
			
				|  |  | +                  v-if="cycles.length > 1"
 | 
	
		
			
				|  |  | +                  class="el-icon-circle-close"
 | 
	
		
			
				|  |  | +                  @click.stop="removeCycle(index)"
 | 
	
		
			
				|  |  | +                ></i>
 | 
	
		
			
				|  |  |                </div>
 | 
	
		
			
				|  |  |              </template>
 | 
	
		
			
				|  |  |              <paymentCycle
 | 
	
	
		
			
				|  | @@ -100,7 +130,11 @@
 | 
	
		
			
				|  |  |                :hidePaymentPattern="true"
 | 
	
		
			
				|  |  |                :isCommon="isCommon"
 | 
	
		
			
				|  |  |                :isUserType="isUserType"
 | 
	
		
			
				|  |  | -              :isDisabled="form.leixing === '1' || form.leixing === '2' || paymentType == '0'"
 | 
	
		
			
				|  |  | +              :isDisabled="
 | 
	
		
			
				|  |  | +                form.leixing === '1' ||
 | 
	
		
			
				|  |  | +                form.leixing === '2' ||
 | 
	
		
			
				|  |  | +                paymentType == '0'
 | 
	
		
			
				|  |  | +              "
 | 
	
		
			
				|  |  |              />
 | 
	
		
			
				|  |  |            </el-collapse-item>
 | 
	
		
			
				|  |  |          </el-collapse>
 | 
	
	
		
			
				|  | @@ -109,9 +143,10 @@
 | 
	
		
			
				|  |  |            plain
 | 
	
		
			
				|  |  |            type="info"
 | 
	
		
			
				|  |  |            size="small"
 | 
	
		
			
				|  |  | -          style="width: 100%;margin: 20px 0;"
 | 
	
		
			
				|  |  | +          style="width: 100%; margin: 20px 0"
 | 
	
		
			
				|  |  |            @click="addCycle"
 | 
	
		
			
				|  |  | -        >新增缴费周期</el-button>
 | 
	
		
			
				|  |  | +          >新增缴费周期</el-button
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  |        </template>
 | 
	
		
			
				|  |  |        <paymentCycle
 | 
	
		
			
				|  |  |          ref="cycle"
 | 
	
	
		
			
				|  | @@ -119,27 +154,25 @@
 | 
	
		
			
				|  |  |          :isCommon="isCommon"
 | 
	
		
			
				|  |  |          :hidePaymentPattern="true"
 | 
	
		
			
				|  |  |          :isUserType="isUserType"
 | 
	
		
			
				|  |  | -        :isDisabled="form.leixing === '1' || form.leixing === '2' || paymentType == '0'"
 | 
	
		
			
				|  |  | +        :isDisabled="
 | 
	
		
			
				|  |  | +          form.leixing === '1' || form.leixing === '2' || paymentType == '0'
 | 
	
		
			
				|  |  | +        "
 | 
	
		
			
				|  |  |          v-else
 | 
	
		
			
				|  |  |        />
 | 
	
		
			
				|  |  |      </template>
 | 
	
		
			
				|  |  | -    <el-alert title="其它"
 | 
	
		
			
				|  |  | -              :closable="false"
 | 
	
		
			
				|  |  | -              class="alert"
 | 
	
		
			
				|  |  | -              type="info">
 | 
	
		
			
				|  |  | +    <el-alert title="其它" :closable="false" class="alert" type="info">
 | 
	
		
			
				|  |  |      </el-alert>
 | 
	
		
			
				|  |  | -    <otherform :form="other"
 | 
	
		
			
				|  |  | -               ref="other" />
 | 
	
		
			
				|  |  | -    <div slot="footer"
 | 
	
		
			
				|  |  | -         class="dialog-footer">
 | 
	
		
			
				|  |  | +    <otherform :form="other" ref="other" />
 | 
	
		
			
				|  |  | +    <div slot="footer" class="dialog-footer">
 | 
	
		
			
				|  |  |        <el-button @click="$listeners.close">取 消</el-button>
 | 
	
		
			
				|  |  | -      <el-button type="primary"
 | 
	
		
			
				|  |  | -                 @click="submit">确认</el-button>
 | 
	
		
			
				|  |  | +      <el-button type="primary" @click="submit">确认</el-button>
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  | -    <el-dialog :title="nextTitle"
 | 
	
		
			
				|  |  | -               :visible.sync="nextVisible"
 | 
	
		
			
				|  |  | -               width="600px"
 | 
	
		
			
				|  |  | -               append-to-body>
 | 
	
		
			
				|  |  | +    <el-dialog
 | 
	
		
			
				|  |  | +      :title="nextTitle"
 | 
	
		
			
				|  |  | +      :visible.sync="nextVisible"
 | 
	
		
			
				|  |  | +      width="600px"
 | 
	
		
			
				|  |  | +      append-to-body
 | 
	
		
			
				|  |  | +    >
 | 
	
		
			
				|  |  |        <classrooms @close="closeNext" />
 | 
	
		
			
				|  |  |      </el-dialog>
 | 
	
		
			
				|  |  |    </div>
 | 
	
	
		
			
				|  | @@ -149,14 +182,14 @@ import {
 | 
	
		
			
				|  |  |    chargeTypeList,
 | 
	
		
			
				|  |  |    musicGroupOrganizationCourseSettingsQueryPage,
 | 
	
		
			
				|  |  |  } from "@/api/specialSetting";
 | 
	
		
			
				|  |  | -import { getMusicGroupPaymentCalenderDetail } from '@/api/buildTeam'
 | 
	
		
			
				|  |  | +import { getMusicGroupPaymentCalenderDetail } from "@/api/buildTeam";
 | 
	
		
			
				|  |  |  import {
 | 
	
		
			
				|  |  |    musicGroupPaymentCalenderAdd,
 | 
	
		
			
				|  |  |    musicGroupPaymentCalenderDetailBatchUpdate,
 | 
	
		
			
				|  |  |    queryByMusicGroupOrganizationCourseSettingsId,
 | 
	
		
			
				|  |  |    musicGroupPaymentCalenderView,
 | 
	
		
			
				|  |  |  } from "../api";
 | 
	
		
			
				|  |  | -import { paymentPatternType } from '@/constant'
 | 
	
		
			
				|  |  | +import { paymentPatternType } from "@/constant";
 | 
	
		
			
				|  |  |  import { getTimes, objectToOptions } from "@/utils";
 | 
	
		
			
				|  |  |  import userBaseinfo from "./user-baseinfo";
 | 
	
		
			
				|  |  |  import paymentCycle from "./payment-cycle";
 | 
	
	
		
			
				|  | @@ -164,9 +197,9 @@ import extraClass from "./extra-class";
 | 
	
		
			
				|  |  |  import extraClassUser from "./extra-class-user";
 | 
	
		
			
				|  |  |  import classrooms from "./classrooms";
 | 
	
		
			
				|  |  |  import otherform from "./other";
 | 
	
		
			
				|  |  | -import baseInfoVue from '../../teamDetail/components/baseInfo.vue';
 | 
	
		
			
				|  |  | -import merge from 'webpack-merge'
 | 
	
		
			
				|  |  | -import numeral from 'numeral'
 | 
	
		
			
				|  |  | +import baseInfoVue from "../../teamDetail/components/baseInfo.vue";
 | 
	
		
			
				|  |  | +import merge from "webpack-merge";
 | 
	
		
			
				|  |  | +import numeral from "numeral";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const paymentTypeFormat = {
 | 
	
		
			
				|  |  |    0: "MUSIC_APPLY",
 | 
	
	
		
			
				|  | @@ -177,7 +210,14 @@ const paymentTypeFormat = {
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  | -  props: ["type", "musicGroupId", "baseInfo", "paymentType", "rowDetail", 'organizationCourseUnitPriceSettings'],
 | 
	
		
			
				|  |  | +  props: [
 | 
	
		
			
				|  |  | +    "type",
 | 
	
		
			
				|  |  | +    "musicGroupId",
 | 
	
		
			
				|  |  | +    "baseInfo",
 | 
	
		
			
				|  |  | +    "paymentType",
 | 
	
		
			
				|  |  | +    "rowDetail",
 | 
	
		
			
				|  |  | +    "organizationCourseUnitPriceSettings",
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  |    components: {
 | 
	
		
			
				|  |  |      userBaseinfo,
 | 
	
		
			
				|  |  |      paymentCycle,
 | 
	
	
		
			
				|  | @@ -186,7 +226,7 @@ export default {
 | 
	
		
			
				|  |  |      classrooms,
 | 
	
		
			
				|  |  |      otherform,
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  | -  data () {
 | 
	
		
			
				|  |  | +  data() {
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  |        options: [],
 | 
	
		
			
				|  |  |        form: {
 | 
	
	
		
			
				|  | @@ -194,7 +234,7 @@ export default {
 | 
	
		
			
				|  |  |          leixing: "1",
 | 
	
		
			
				|  |  |          musicGroupOrganizationCourseSettingId: null,
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  | -      chargeTypeName: '',
 | 
	
		
			
				|  |  | +      chargeTypeName: "",
 | 
	
		
			
				|  |  |        other: {},
 | 
	
		
			
				|  |  |        cycles: [{}],
 | 
	
		
			
				|  |  |        cycle: {},
 | 
	
	
		
			
				|  | @@ -204,7 +244,7 @@ export default {
 | 
	
		
			
				|  |  |        nextVisible: false,
 | 
	
		
			
				|  |  |        typeList: [],
 | 
	
		
			
				|  |  |        charges: [],
 | 
	
		
			
				|  |  | -      studentIds: '',
 | 
	
		
			
				|  |  | +      studentIds: "",
 | 
	
		
			
				|  |  |        payment: {
 | 
	
		
			
				|  |  |          paymentPattern: null,
 | 
	
		
			
				|  |  |        },
 | 
	
	
		
			
				|  | @@ -215,21 +255,21 @@ export default {
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    computed: {
 | 
	
		
			
				|  |  |      musicGroup() {
 | 
	
		
			
				|  |  | -      return this.baseInfo?.musicGroup
 | 
	
		
			
				|  |  | +      return this.baseInfo?.musicGroup;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    isCommon () {
 | 
	
		
			
				|  |  | +    isCommon() {
 | 
	
		
			
				|  |  |        return this.form.leixing === "1";
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    isDisabled () {
 | 
	
		
			
				|  |  | +    isDisabled() {
 | 
	
		
			
				|  |  |        return this.form.leixing === "1" || String(this.paymentType) === "0";
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    isUserType () {
 | 
	
		
			
				|  |  | +    isUserType() {
 | 
	
		
			
				|  |  |        return this.type === "user";
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    nextTitle () {
 | 
	
		
			
				|  |  | +    nextTitle() {
 | 
	
		
			
				|  |  |        return this.isCommon ? "乐团课程-班级选择" : "临时加课-班级选择";
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    chargesById () {
 | 
	
		
			
				|  |  | +    chargesById() {
 | 
	
		
			
				|  |  |        const data = {};
 | 
	
		
			
				|  |  |        for (const item of this.charges) {
 | 
	
		
			
				|  |  |          data[item.id] = item;
 | 
	
	
		
			
				|  | @@ -237,50 +277,62 @@ export default {
 | 
	
		
			
				|  |  |        return data;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      paymentAmountDisabled() {
 | 
	
		
			
				|  |  | -      return (this.isUserType || (this.isCommon && this.isUserType)) && this.isDisabled
 | 
	
		
			
				|  |  | +      return (
 | 
	
		
			
				|  |  | +        (this.isUserType || (this.isCommon && this.isUserType)) &&
 | 
	
		
			
				|  |  | +        this.isDisabled
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      isMulticycle() {
 | 
	
		
			
				|  |  | -      let editMulticycle = false
 | 
	
		
			
				|  |  | -      let paymentType = ''
 | 
	
		
			
				|  |  | +      let editMulticycle = false;
 | 
	
		
			
				|  |  | +      let paymentType = "";
 | 
	
		
			
				|  |  |        if (this.viewDetail) {
 | 
	
		
			
				|  |  | -        const { musicGroupPaymentCalenders, auditDto } = this.viewDetail
 | 
	
		
			
				|  |  | -        paymentType = musicGroupPaymentCalenders[0]?.paymentType
 | 
	
		
			
				|  |  | -        editMulticycle = (musicGroupPaymentCalenders.length > 1 || paymentType != 'ADD_COURSE')
 | 
	
		
			
				|  |  | +        const { musicGroupPaymentCalenders, auditDto } = this.viewDetail;
 | 
	
		
			
				|  |  | +        paymentType = musicGroupPaymentCalenders[0]?.paymentType;
 | 
	
		
			
				|  |  | +        editMulticycle =
 | 
	
		
			
				|  |  | +          musicGroupPaymentCalenders.length > 1 || paymentType != "ADD_COURSE";
 | 
	
		
			
				|  |  |          if (editMulticycle) {
 | 
	
		
			
				|  |  | -          this.cycles = musicGroupPaymentCalenders.map(item => ({
 | 
	
		
			
				|  |  | +          this.cycles = musicGroupPaymentCalenders.map((item) => ({
 | 
	
		
			
				|  |  |              paymentAmount: item.paymentAmount,
 | 
	
		
			
				|  |  |              paymentDate: [item?.startPaymentDate, item?.deadlinePaymentDate],
 | 
	
		
			
				|  |  | -            paymentValid: [item?.paymentValidStartDate, item?.paymentValidEndDate]
 | 
	
		
			
				|  |  | -          }))
 | 
	
		
			
				|  |  | +            paymentValid: [
 | 
	
		
			
				|  |  | +              item?.paymentValidStartDate,
 | 
	
		
			
				|  |  | +              item?.paymentValidEndDate,
 | 
	
		
			
				|  |  | +            ],
 | 
	
		
			
				|  |  | +          }));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      return (this.payment.paymentPattern == 0 && this.form.leixing !== '2' && paymentType !== 'ADD_COURSE') || (this.payment.paymentPattern == 0 && editMulticycle)
 | 
	
		
			
				|  |  | +      return (
 | 
	
		
			
				|  |  | +        (this.payment.paymentPattern == 0 &&
 | 
	
		
			
				|  |  | +          this.form.leixing !== "2" &&
 | 
	
		
			
				|  |  | +          paymentType !== "ADD_COURSE") ||
 | 
	
		
			
				|  |  | +        (this.payment.paymentPattern == 0 && editMulticycle)
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      paymentTypeString() {
 | 
	
		
			
				|  |  | -      let paymentType = ''
 | 
	
		
			
				|  |  | +      let paymentType = "";
 | 
	
		
			
				|  |  |        if (this.viewDetail) {
 | 
	
		
			
				|  |  | -        const { musicGroupPaymentCalenders } = this.viewDetail
 | 
	
		
			
				|  |  | -        paymentType = musicGroupPaymentCalenders[0]?.paymentType
 | 
	
		
			
				|  |  | +        const { musicGroupPaymentCalenders } = this.viewDetail;
 | 
	
		
			
				|  |  | +        paymentType = musicGroupPaymentCalenders[0]?.paymentType;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      return paymentType
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +      return paymentType;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    watch: {
 | 
	
		
			
				|  |  | -    type () {
 | 
	
		
			
				|  |  | +    type() {
 | 
	
		
			
				|  |  |        this.$set(
 | 
	
		
			
				|  |  |          this.form,
 | 
	
		
			
				|  |  |          "payUserType",
 | 
	
		
			
				|  |  |          this.type === "user" ? "STUDENT" : "SCHOOL"
 | 
	
		
			
				|  |  |        );
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    baseInfo (val) {
 | 
	
		
			
				|  |  | -      this.formatCourse()
 | 
	
		
			
				|  |  | +    baseInfo(val) {
 | 
	
		
			
				|  |  | +      this.formatCourse();
 | 
	
		
			
				|  |  |        this.getCharges();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      organizationCourseUnitPriceSettings() {
 | 
	
		
			
				|  |  | -      this.formatCourse()
 | 
	
		
			
				|  |  | +      this.formatCourse();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    "form.leixing" (val) {
 | 
	
		
			
				|  |  | +    "form.leixing"(val) {
 | 
	
		
			
				|  |  |        this.cycles = [{}];
 | 
	
		
			
				|  |  |        this.collapse = [0];
 | 
	
		
			
				|  |  |        this.cycle = {};
 | 
	
	
		
			
				|  | @@ -292,41 +344,41 @@ export default {
 | 
	
		
			
				|  |  |          this.eclass = [{}];
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    async "form.musicGroupOrganizationCourseSettingId" (val) {
 | 
	
		
			
				|  |  | -      if (val&&!this.rowDetail) {
 | 
	
		
			
				|  |  | +    async "form.musicGroupOrganizationCourseSettingId"(val) {
 | 
	
		
			
				|  |  | +      if (val && !this.rowDetail) {
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |            const res = await queryByMusicGroupOrganizationCourseSettingsId({
 | 
	
		
			
				|  |  | -            id: val
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | -          this.eclass = res.data.filter(item => {
 | 
	
		
			
				|  |  | -            return !item.isStudentOptional || this.paymentType !== undefined
 | 
	
		
			
				|  |  | +            id: val,
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +          this.eclass = res.data.filter((item) => {
 | 
	
		
			
				|  |  | +            return !item.isStudentOptional || this.paymentType !== undefined;
 | 
	
		
			
				|  |  |            }) || [{}];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |            this.syncAllMoney();
 | 
	
		
			
				|  |  | -        } catch (error) { }
 | 
	
		
			
				|  |  | +        } catch (error) {}
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    'payment.paymentPattern'() {
 | 
	
		
			
				|  |  | -      this.syncAllMoney()
 | 
	
		
			
				|  |  | +    "payment.paymentPattern"() {
 | 
	
		
			
				|  |  | +      this.syncAllMoney();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  | -  mounted () {
 | 
	
		
			
				|  |  | -    this.formatCourse()
 | 
	
		
			
				|  |  | +  mounted() {
 | 
	
		
			
				|  |  | +    this.formatCourse();
 | 
	
		
			
				|  |  |      this.init();
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  | -  activated () {
 | 
	
		
			
				|  |  | -    this.formatCourse()
 | 
	
		
			
				|  |  | +  activated() {
 | 
	
		
			
				|  |  | +    this.formatCourse();
 | 
	
		
			
				|  |  |      this.init();
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    methods: {
 | 
	
		
			
				|  |  | -    async init () {
 | 
	
		
			
				|  |  | +    async init() {
 | 
	
		
			
				|  |  |        this.getCharges();
 | 
	
		
			
				|  |  |        if (this.rowDetail) {
 | 
	
		
			
				|  |  |          for (const key in paymentTypeFormat) {
 | 
	
		
			
				|  |  |            if (paymentTypeFormat.hasOwnProperty(key)) {
 | 
	
		
			
				|  |  |              const item = paymentTypeFormat[key];
 | 
	
		
			
				|  |  |              if (item === this.rowDetail.paymentType) {
 | 
	
		
			
				|  |  | -              this.paymentType = key
 | 
	
		
			
				|  |  | +              this.paymentType = key;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -340,22 +392,30 @@ export default {
 | 
	
		
			
				|  |  |            const res = await musicGroupPaymentCalenderView({
 | 
	
		
			
				|  |  |              musicGroupId: this.musicGroupId,
 | 
	
		
			
				|  |  |              batchNo: this.rowDetail.batchNo,
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | -          this.viewDetail = res.data
 | 
	
		
			
				|  |  | -          const firstPayment = res.data.musicGroupPaymentCalenders[0] || {}
 | 
	
		
			
				|  |  | -          this.eclass = (res.data.musicGroupPaymentCalenderCourseSettings || []).filter(item => {
 | 
	
		
			
				|  |  | -            return !item.isStudentOptional || this.paymentType !== undefined
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | -          this.eclassuser = res.data.musicGroupPaymentCalenderStudentDetails.map(item => {
 | 
	
		
			
				|  |  | -            if (this.paymentTypeString === 'SPAN_GROUP_CLASS_ADJUST') {
 | 
	
		
			
				|  |  | -              return {
 | 
	
		
			
				|  |  | -                ...item,
 | 
	
		
			
				|  |  | -                courseOriginalPrice: item.masterSubCoursePrice
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +          this.viewDetail = res.data;
 | 
	
		
			
				|  |  | +          const firstPayment = res.data.musicGroupPaymentCalenders[0] || {};
 | 
	
		
			
				|  |  | +          this.eclass = (
 | 
	
		
			
				|  |  | +            res.data.musicGroupPaymentCalenderCourseSettings || []
 | 
	
		
			
				|  |  | +          ).filter((item) => {
 | 
	
		
			
				|  |  | +            return !item.isStudentOptional || this.paymentType !== undefined;
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +          this.eclassuser = res.data.musicGroupPaymentCalenderStudentDetails.map(
 | 
	
		
			
				|  |  | +            (item) => {
 | 
	
		
			
				|  |  | +              if (this.paymentTypeString === "SPAN_GROUP_CLASS_ADJUST") {
 | 
	
		
			
				|  |  | +                return {
 | 
	
		
			
				|  |  | +                  ...item,
 | 
	
		
			
				|  |  | +                  courseOriginalPrice: item.masterSubCoursePrice,
 | 
	
		
			
				|  |  | +                };
 | 
	
		
			
				|  |  |                }
 | 
	
		
			
				|  |  | +              return item;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            return item
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | -          this.$set(this.payment, 'paymentPattern', String(this.viewDetail.auditDto?.paymentPattern))
 | 
	
		
			
				|  |  | +          );
 | 
	
		
			
				|  |  | +          this.$set(
 | 
	
		
			
				|  |  | +            this.payment,
 | 
	
		
			
				|  |  | +            "paymentPattern",
 | 
	
		
			
				|  |  | +            String(this.viewDetail.auditDto?.paymentPattern)
 | 
	
		
			
				|  |  | +          );
 | 
	
		
			
				|  |  |            if (this.$refs.cycle) {
 | 
	
		
			
				|  |  |              this.$set(
 | 
	
		
			
				|  |  |                this.cycle,
 | 
	
	
		
			
				|  | @@ -367,57 +427,80 @@ export default {
 | 
	
		
			
				|  |  |                firstPayment.paymentValidEndDate,
 | 
	
		
			
				|  |  |              ];
 | 
	
		
			
				|  |  |              // paymentDate startPaymentDate deadlinePaymentDate
 | 
	
		
			
				|  |  | -            this.$set(this.cycle, "paymentDate", [firstPayment.startPaymentDate, firstPayment.deadlinePaymentDate]);
 | 
	
		
			
				|  |  | +            this.$set(this.cycle, "paymentDate", [
 | 
	
		
			
				|  |  | +              firstPayment.startPaymentDate,
 | 
	
		
			
				|  |  | +              firstPayment.deadlinePaymentDate,
 | 
	
		
			
				|  |  | +            ]);
 | 
	
		
			
				|  |  |              this.$set(this.cycle, "paymentValid", arr);
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          this.studentIds = firstPayment.studentIds
 | 
	
		
			
				|  |  | -          this.$set(this.form, 'musicGroupOrganizationCourseSettingId', res.data.auditDto?.musicGroupOrganizationCourseSettingsId)
 | 
	
		
			
				|  |  | -          this.syncAllMoney()
 | 
	
		
			
				|  |  | +          this.studentIds = firstPayment.studentIds;
 | 
	
		
			
				|  |  | +          this.$set(
 | 
	
		
			
				|  |  | +            this.form,
 | 
	
		
			
				|  |  | +            "musicGroupOrganizationCourseSettingId",
 | 
	
		
			
				|  |  | +            res.data.auditDto?.musicGroupOrganizationCourseSettingsId
 | 
	
		
			
				|  |  | +          );
 | 
	
		
			
				|  |  | +          this.syncAllMoney();
 | 
	
		
			
				|  |  |          } catch (error) {}
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      formatCourse() {
 | 
	
		
			
				|  |  | -      const organId = this.musicGroup?.organId
 | 
	
		
			
				|  |  | -      const chargeTypeId = this.musicGroup?.chargeTypeId
 | 
	
		
			
				|  |  | -      const _ = {}
 | 
	
		
			
				|  |  | -      const list = (this.organizationCourseUnitPriceSettings || [])
 | 
	
		
			
				|  |  | -        .filter(item => organId && organId == item.organId && chargeTypeId && chargeTypeId == item.chargeTypeId)
 | 
	
		
			
				|  |  | +      const organId = this.musicGroup?.organId;
 | 
	
		
			
				|  |  | +      const chargeTypeId = this.musicGroup?.chargeTypeId;
 | 
	
		
			
				|  |  | +      const _ = {};
 | 
	
		
			
				|  |  | +      const list = (this.organizationCourseUnitPriceSettings || []).filter(
 | 
	
		
			
				|  |  | +        (item) =>
 | 
	
		
			
				|  |  | +          organId &&
 | 
	
		
			
				|  |  | +          organId == item.organId &&
 | 
	
		
			
				|  |  | +          chargeTypeId &&
 | 
	
		
			
				|  |  | +          chargeTypeId == item.chargeTypeId
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  |        for (const item of list) {
 | 
	
		
			
				|  |  | -        _[item.courseType] = item
 | 
	
		
			
				|  |  | +        _[item.courseType] = item;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      this.organizationCourseUnitPriceSettingsByType = _
 | 
	
		
			
				|  |  | -      return _
 | 
	
		
			
				|  |  | +      this.organizationCourseUnitPriceSettingsByType = _;
 | 
	
		
			
				|  |  | +      return _;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    priceChange (item, index) {
 | 
	
		
			
				|  |  | -      const _ = [...this.eclass]
 | 
	
		
			
				|  |  | -      const active = this.organizationCourseUnitPriceSettingsByType[item.courseType] || {}
 | 
	
		
			
				|  |  | -      const price = Math.round(numeral(active.unitPrice || 1).multiply((item.courseTotalMinuties || 1)).value())
 | 
	
		
			
				|  |  | -      item.courseCurrentPrice = price
 | 
	
		
			
				|  |  | -      item.courseOriginalPrice = price
 | 
	
		
			
				|  |  | -      _[index] = item
 | 
	
		
			
				|  |  | -      this.eclass = [..._]
 | 
	
		
			
				|  |  | -      this.syncAllMoney()
 | 
	
		
			
				|  |  | +    priceChange(item, index) {
 | 
	
		
			
				|  |  | +      const _ = [...this.eclass];
 | 
	
		
			
				|  |  | +      const active =
 | 
	
		
			
				|  |  | +        this.organizationCourseUnitPriceSettingsByType[item.courseType] || {};
 | 
	
		
			
				|  |  | +      const price = Math.round(
 | 
	
		
			
				|  |  | +        numeral(active.unitPrice || 1)
 | 
	
		
			
				|  |  | +          .multiply(item.courseTotalMinuties || 1)
 | 
	
		
			
				|  |  | +          .value()
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  | +      item.courseCurrentPrice = price;
 | 
	
		
			
				|  |  | +      item.courseOriginalPrice = price;
 | 
	
		
			
				|  |  | +      _[index] = item;
 | 
	
		
			
				|  |  | +      this.eclass = [..._];
 | 
	
		
			
				|  |  | +      this.syncAllMoney();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    syncAllMoney () {
 | 
	
		
			
				|  |  | -      if (this.paymentTypeString === 'SPAN_GROUP_CLASS_ADJUST') {
 | 
	
		
			
				|  |  | -        const money = this.viewDetail?.musicGroupPaymentCalenders[0].paymentAmount
 | 
	
		
			
				|  |  | +    syncAllMoney() {
 | 
	
		
			
				|  |  | +      if (this.paymentTypeString === "SPAN_GROUP_CLASS_ADJUST") {
 | 
	
		
			
				|  |  | +        const money = this.viewDetail?.musicGroupPaymentCalenders[0]
 | 
	
		
			
				|  |  | +          .paymentAmount;
 | 
	
		
			
				|  |  |          this.$set(this.cycle, "paymentAmount", money);
 | 
	
		
			
				|  |  | -        return money
 | 
	
		
			
				|  |  | +        return money;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        let money = 0;
 | 
	
		
			
				|  |  | -      let first = 0
 | 
	
		
			
				|  |  | -      let other = 0
 | 
	
		
			
				|  |  | -      let classs = this.paymentTypeString === 'SPAN_GROUP_CLASS_ADJUST' ? this.eclassuser : this.eclass
 | 
	
		
			
				|  |  | +      let first = 0;
 | 
	
		
			
				|  |  | +      let other = 0;
 | 
	
		
			
				|  |  | +      let classs =
 | 
	
		
			
				|  |  | +        this.paymentTypeString === "SPAN_GROUP_CLASS_ADJUST"
 | 
	
		
			
				|  |  | +          ? this.eclassuser
 | 
	
		
			
				|  |  | +          : this.eclass;
 | 
	
		
			
				|  |  |        for (const item of classs) {
 | 
	
		
			
				|  |  |          money += item.courseCurrentPrice;
 | 
	
		
			
				|  |  |          if (this.cycles && this.cycles.length) {
 | 
	
		
			
				|  |  |            if (item.isStudentOptional) {
 | 
	
		
			
				|  |  | -            first += item.courseCurrentPrice
 | 
	
		
			
				|  |  | +            first += item.courseCurrentPrice;
 | 
	
		
			
				|  |  |            } else {
 | 
	
		
			
				|  |  | -            const floorMoney = Math.floor(item.courseCurrentPrice / this.cycles.length)
 | 
	
		
			
				|  |  | -            const remainder = item.courseCurrentPrice % this.cycles.length
 | 
	
		
			
				|  |  | -            first += floorMoney + remainder
 | 
	
		
			
				|  |  | -            other += floorMoney
 | 
	
		
			
				|  |  | +            const floorMoney = Math.floor(
 | 
	
		
			
				|  |  | +              item.courseCurrentPrice / this.cycles.length
 | 
	
		
			
				|  |  | +            );
 | 
	
		
			
				|  |  | +            const remainder = item.courseCurrentPrice % this.cycles.length;
 | 
	
		
			
				|  |  | +            first += floorMoney + remainder;
 | 
	
		
			
				|  |  | +            other += floorMoney;
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -425,27 +508,27 @@ export default {
 | 
	
		
			
				|  |  |          this.cycles = this.cycles.map((item, index) => {
 | 
	
		
			
				|  |  |            return {
 | 
	
		
			
				|  |  |              ...item,
 | 
	
		
			
				|  |  | -            paymentAmount: (index === 0 ? first : other)
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | +            paymentAmount: index === 0 ? first : other,
 | 
	
		
			
				|  |  | +          };
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        // if (!money) {
 | 
	
		
			
				|  |  | -        // this.$set(this.cycle, "paymentAmount", undefined);
 | 
	
		
			
				|  |  | +      // this.$set(this.cycle, "paymentAmount", undefined);
 | 
	
		
			
				|  |  |        // } else {
 | 
	
		
			
				|  |  | -        this.$set(this.cycle, "paymentAmount", money);
 | 
	
		
			
				|  |  | +      this.$set(this.cycle, "paymentAmount", money);
 | 
	
		
			
				|  |  |        // }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        return money;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    async getChargeTypeList () {
 | 
	
		
			
				|  |  | +    async getChargeTypeList() {
 | 
	
		
			
				|  |  |        try {
 | 
	
		
			
				|  |  |          const res = await chargeTypeList({
 | 
	
		
			
				|  |  |            row: 9999,
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |          this.typeList = res.data.rows;
 | 
	
		
			
				|  |  | -      } catch (error) { }
 | 
	
		
			
				|  |  | +      } catch (error) {}
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    async getCharges () {
 | 
	
		
			
				|  |  | +    async getCharges() {
 | 
	
		
			
				|  |  |        const organId = this.musicGroup?.organId;
 | 
	
		
			
				|  |  |        const chargeTypeId = this.musicGroup?.chargeTypeId;
 | 
	
		
			
				|  |  |        this.chargeTypeName = this.musicGroup?.chargeTypeName;
 | 
	
	
		
			
				|  | @@ -455,50 +538,59 @@ export default {
 | 
	
		
			
				|  |  |            chargeTypeId,
 | 
	
		
			
				|  |  |            organId,
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  | -        const ids = res.data.rows.map(item => item.id)
 | 
	
		
			
				|  |  | +        const ids = res.data.rows.map((item) => item.id);
 | 
	
		
			
				|  |  |          if (!ids.includes(this.form.musicGroupOrganizationCourseSettingId)) {
 | 
	
		
			
				|  |  | -          this.$set(this.form, 'musicGroupOrganizationCourseSettingId', null)
 | 
	
		
			
				|  |  | +          this.$set(this.form, "musicGroupOrganizationCourseSettingId", null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          this.charges = res.data.rows;
 | 
	
		
			
				|  |  | -      } catch (error) { }
 | 
	
		
			
				|  |  | +      } catch (error) {}
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    addExtraClass () {
 | 
	
		
			
				|  |  | +    addExtraClass() {
 | 
	
		
			
				|  |  |        this.eclass.push({});
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    removeExtraClass (index) {
 | 
	
		
			
				|  |  | +    removeExtraClass(index) {
 | 
	
		
			
				|  |  |        this.eclass[index] = null;
 | 
	
		
			
				|  |  |        this.eclass = this.eclass.filter((item) => !!item);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    addCycle () {
 | 
	
		
			
				|  |  | +    addCycle() {
 | 
	
		
			
				|  |  |        this.cycles.push({});
 | 
	
		
			
				|  |  |        this.collapse.push(this.cycles.length - 1);
 | 
	
		
			
				|  |  | -      this.syncAllMoney()
 | 
	
		
			
				|  |  | +      this.syncAllMoney();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    removeCycle (index) {
 | 
	
		
			
				|  |  | +    removeCycle(index) {
 | 
	
		
			
				|  |  |        this.cycles[index] = null;
 | 
	
		
			
				|  |  |        this.cycles = this.cycles.filter((item) => !!item);
 | 
	
		
			
				|  |  |        if (this.collapse.includes(index)) {
 | 
	
		
			
				|  |  |          this.collapse.splice(index, 1);
 | 
	
		
			
				|  |  | -        this.collapse = this.collapse.map((item, _index) => _index - 1 >= index ? item -- : item)
 | 
	
		
			
				|  |  | +        this.collapse = this.collapse.map((item, _index) =>
 | 
	
		
			
				|  |  | +          _index - 1 >= index ? item-- : item
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      this.syncAllMoney()
 | 
	
		
			
				|  |  | +      this.syncAllMoney();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    collapseChange (val) {
 | 
	
		
			
				|  |  | +    collapseChange(val) {
 | 
	
		
			
				|  |  |        this.collapse = val;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    closeNext () {
 | 
	
		
			
				|  |  | +    closeNext() {
 | 
	
		
			
				|  |  |        this.nextVisible = false;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getForms () {
 | 
	
		
			
				|  |  | +    getForms() {
 | 
	
		
			
				|  |  |        const { $refs: refs } = this;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      return [refs.base, refs.eclass, refs.cycle, ...(refs.cycles || []), refs.other, refs.payment]
 | 
	
		
			
				|  |  | +      return [
 | 
	
		
			
				|  |  | +        refs.base,
 | 
	
		
			
				|  |  | +        refs.eclass,
 | 
	
		
			
				|  |  | +        refs.cycle,
 | 
	
		
			
				|  |  | +        ...(refs.cycles || []),
 | 
	
		
			
				|  |  | +        refs.other,
 | 
	
		
			
				|  |  | +        refs.payment,
 | 
	
		
			
				|  |  | +      ]
 | 
	
		
			
				|  |  |          .filter((item) => !!item)
 | 
	
		
			
				|  |  |          .map((item) => item.$refs.form || item);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      changeActive(val) {
 | 
	
		
			
				|  |  |        if (this.$listeners.changeActive) {
 | 
	
		
			
				|  |  | -        this.$listeners.changeActive(val)
 | 
	
		
			
				|  |  | +        this.$listeners.changeActive(val);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      async submit() {
 | 
	
	
		
			
				|  | @@ -512,37 +604,47 @@ export default {
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        if (this.eclass.length < 1 && this.eclassuser.length < 1) {
 | 
	
		
			
				|  |  | -        return this.$message.error('请至少选择一条加课信息')
 | 
	
		
			
				|  |  | +        return this.$message.error("请至少选择一条加课信息");
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        if (valided.length === forms.length) {
 | 
	
		
			
				|  |  |          const { leixing, ...rest } = {
 | 
	
		
			
				|  |  |            ...this.form,
 | 
	
		
			
				|  |  |            ...this.other,
 | 
	
		
			
				|  |  |            paymentPattern: this.payment.paymentPattern,
 | 
	
		
			
				|  |  | -          musicGroupPaymentDateRangeList: [...this.cycles.map(item => {
 | 
	
		
			
				|  |  | -            const { paymentDate, paymentValid, ...other } = item
 | 
	
		
			
				|  |  | -            return {
 | 
	
		
			
				|  |  | -              ...other,
 | 
	
		
			
				|  |  | -              ...getTimes(paymentDate, ["startPaymentDate", "deadlinePaymentDate"]),
 | 
	
		
			
				|  |  | -              ...getTimes(paymentValid, [
 | 
	
		
			
				|  |  | -                "paymentValidStartDate",
 | 
	
		
			
				|  |  | -                "paymentValidEndDate",
 | 
	
		
			
				|  |  | -              ]),
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -          })],
 | 
	
		
			
				|  |  | +          musicGroupPaymentDateRangeList: [
 | 
	
		
			
				|  |  | +            ...this.cycles.map((item) => {
 | 
	
		
			
				|  |  | +              const { paymentDate, paymentValid, ...other } = item;
 | 
	
		
			
				|  |  | +              return {
 | 
	
		
			
				|  |  | +                ...other,
 | 
	
		
			
				|  |  | +                ...getTimes(paymentDate, [
 | 
	
		
			
				|  |  | +                  "startPaymentDate",
 | 
	
		
			
				|  |  | +                  "deadlinePaymentDate",
 | 
	
		
			
				|  |  | +                ]),
 | 
	
		
			
				|  |  | +                ...getTimes(paymentValid, [
 | 
	
		
			
				|  |  | +                  "paymentValidStartDate",
 | 
	
		
			
				|  |  | +                  "paymentValidEndDate",
 | 
	
		
			
				|  |  | +                ]),
 | 
	
		
			
				|  |  | +              };
 | 
	
		
			
				|  |  | +            }),
 | 
	
		
			
				|  |  | +          ],
 | 
	
		
			
				|  |  |            musicGroupPaymentCalenderCourseSettingsList: this.eclass,
 | 
	
		
			
				|  |  |            musicGroupPaymentCalenderStudentDetails: this.eclassuser,
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          if (this.$refs.cycle) {
 | 
	
		
			
				|  |  | -          const { paymentDate, paymentValid, ...other } = this.cycle
 | 
	
		
			
				|  |  | -          rest.musicGroupPaymentDateRangeList = [{
 | 
	
		
			
				|  |  | +          const { paymentDate, paymentValid, ...other } = this.cycle;
 | 
	
		
			
				|  |  | +          rest.musicGroupPaymentDateRangeList = [
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  |                ...other,
 | 
	
		
			
				|  |  | -              ...getTimes(paymentDate, ["startPaymentDate", "deadlinePaymentDate"]),
 | 
	
		
			
				|  |  | +              ...getTimes(paymentDate, [
 | 
	
		
			
				|  |  | +                "startPaymentDate",
 | 
	
		
			
				|  |  | +                "deadlinePaymentDate",
 | 
	
		
			
				|  |  | +              ]),
 | 
	
		
			
				|  |  |                ...getTimes(paymentValid, [
 | 
	
		
			
				|  |  |                  "paymentValidStartDate",
 | 
	
		
			
				|  |  |                  "paymentValidEndDate",
 | 
	
		
			
				|  |  |                ]),
 | 
	
		
			
				|  |  | -          }]
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +          ];
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          const data = {
 | 
	
		
			
				|  |  |            ...rest,
 | 
	
	
		
			
				|  | @@ -554,37 +656,43 @@ export default {
 | 
	
		
			
				|  |  |              ],
 | 
	
		
			
				|  |  |            musicGroupId: this.musicGroupId,
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  | -        const info = this.viewDetail?.musicGroupPaymentCalenders[0]
 | 
	
		
			
				|  |  | -        if (info && this.viewDetail?.auditDto.paymentType === 'ADD_STUDENT') {
 | 
	
		
			
				|  |  | -          data.attribute1 = info.attribute1
 | 
	
		
			
				|  |  | +        const info = this.viewDetail?.musicGroupPaymentCalenders[0];
 | 
	
		
			
				|  |  | +        if (info && this.viewDetail?.auditDto.paymentType === "ADD_STUDENT") {
 | 
	
		
			
				|  |  | +          data.attribute1 = info.attribute1;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          if (!this.rowDetail?.batchNo) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            try {
 | 
	
		
			
				|  |  |              const res = await musicGroupPaymentCalenderAdd(data);
 | 
	
		
			
				|  |  | -            this.$listeners.close();
 | 
	
		
			
				|  |  | -            this.$listeners.submited(res.data);
 | 
	
		
			
				|  |  | -            // 在这里
 | 
	
		
			
				|  |  | -            if (this.$route.query.type == "teamDraft") {
 | 
	
		
			
				|  |  | -              this.$router.push({
 | 
	
		
			
				|  |  | -                query: merge(this.$route.query, { 'type': 'feeAudit' })
 | 
	
		
			
				|  |  | -              });
 | 
	
		
			
				|  |  | +                 if (this.$route.query.team_status == "PRE_BUILD_FEE") {
 | 
	
		
			
				|  |  | +                 this.$message.success("创建成功");
 | 
	
		
			
				|  |  | +                  this.$store.dispatch("delVisitedViews", this.$route);
 | 
	
		
			
				|  |  | +                  this.$router.push({
 | 
	
		
			
				|  |  | +                    path: "/teamList",
 | 
	
		
			
				|  |  | +                  });
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -          } catch (error) { }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // this.$listeners.close();
 | 
	
		
			
				|  |  | +            // this.$listeners.submited(res.data);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 在这里
 | 
	
		
			
				|  |  | +          } catch (error) {}
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |            try {
 | 
	
		
			
				|  |  | -            data.batchNo = this.rowDetail.batchNo
 | 
	
		
			
				|  |  | +            data.batchNo = this.rowDetail.batchNo;
 | 
	
		
			
				|  |  |              // 缴费类型无法修改,按照之前覆盖
 | 
	
		
			
				|  |  | -            data.paymentType = this.viewDetail.musicGroupPaymentCalenders[0]?.paymentType
 | 
	
		
			
				|  |  | +            data.paymentType = this.viewDetail.musicGroupPaymentCalenders[0]?.paymentType;
 | 
	
		
			
				|  |  |              const res = await musicGroupPaymentCalenderDetailBatchUpdate(data);
 | 
	
		
			
				|  |  |              this.$listeners.close();
 | 
	
		
			
				|  |  |              this.$listeners.submited(res.data);
 | 
	
		
			
				|  |  |              if (this.$route.query.type == "teamDraft") {
 | 
	
		
			
				|  |  |                this.$router.push({
 | 
	
		
			
				|  |  | -                query: merge(this.$route.query, { 'type': 'feeAudit' })
 | 
	
		
			
				|  |  | +                query: merge(this.$route.query, { type: "feeAudit" }),
 | 
	
		
			
				|  |  |                });
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -          } catch (error) { }
 | 
	
		
			
				|  |  | +          } catch (error) {}
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 |